diff --git a/docs/api-refs/decide-gateway-sr-based.mdx b/docs/api-refs/decide-gateway-sr-based.mdx index 591932f4..474718dd 100644 --- a/docs/api-refs/decide-gateway-sr-based.mdx +++ b/docs/api-refs/decide-gateway-sr-based.mdx @@ -19,8 +19,10 @@ curl --location "$BASE_URL/decide-gateway" \ "rankingAlgorithm": "SR_BASED_ROUTING", "eliminationEnabled": true, "enableMultiObjective": false, + "stickyRouting": true, "paymentInfo": { "paymentId": "sr_001", + "customerId": "cust_123", "amount": 1000, "currency": "USD", "country": "US", @@ -34,6 +36,13 @@ curl --location "$BASE_URL/decide-gateway" \ }' ``` +`stickyRouting` and `paymentInfo.customerId` are optional. When the merchant's +`sticky_routing_enabled` flag is on and a `customerId` is present, the engine pins the +customer's most-successful connector for this payment-method combo over the SR pick — +unless the connector's current score fell below the health threshold (outage/elimination), +or `stickyRouting` is `false` (a per-request opt-out mirroring `enableMultiObjective`). +An applied sticky pin reports `"routing_approach": "STICKY_ROUTING"`. + ## Response ```json diff --git a/docs/api-refs/update-gateway-score.mdx b/docs/api-refs/update-gateway-score.mdx index cc8355be..4ed6ca17 100644 --- a/docs/api-refs/update-gateway-score.mdx +++ b/docs/api-refs/update-gateway-score.mdx @@ -19,10 +19,22 @@ curl --location "$BASE_URL/update-gateway-score" \ "gatewayReferenceId": null, "status": "CHARGED", "paymentId": "sr_001", - "enforceDynamicRoutingFailure": null + "enforceDynamicRoutingFailure": null, + "customerId": "cust_123", + "paymentMethod": "INTERAC", + "paymentMethodType": "RTP" }' ``` +`customerId`, `paymentMethod`, and `paymentMethodType` are optional and feed the sticky-routing +habit counters (per-merchant flag `sticky_routing_enabled`): `CHARGED`/`AUTHORIZED`/ +`PARTIAL_CHARGED` add one, failure statuses (`AUTHENTICATION_FAILED`, `AUTHORIZATION_FAILED`, +`JUSPAY_DECLINED`, `FAILURE`) subtract one, floored at zero — a failure never creates state. When absent they are recovered +from the decide-time snapshot, which expires 30 minutes after the decide call — send them +explicitly if your success webhooks can arrive later than that. Echo the decide call's +`paymentInfo` values: `paymentMethod`/`paymentMethodType` are matched case-insensitively, +while `customerId` must match byte-exactly. + ## Response ```text diff --git a/docs/openapi.json b/docs/openapi.json index 2f5ddbee..779b8e69 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -5338,6 +5338,13 @@ "enableMultiObjective": { "type": "boolean", "description": "Per-request override for the multi-objective (cost-aware) post-step. true forces it on, false forces it off; omitted falls back to the merchant's multi_objective_routing_enabled feature flag." + }, + "stickyRouting": { + "type": [ + "boolean", + "null" + ], + "description": "Per-request sticky-routing override, mirroring enableMultiObjective: false disables the pin for this payment; true or omitted leaves it eligible, still gated by the merchant's sticky_routing_enabled feature flag and a customerId in paymentInfo." } } }, @@ -5600,6 +5607,30 @@ "null" ], "description": "Set by the orchestrator when this call is a smart-retry attempt." + }, + "customerId": { + "type": [ + "string", + "null" + ], + "example": "cust_123", + "description": "Customer behind the payment; feeds the sticky-routing habit counter (successes add one, failure statuses subtract one, floored at zero). Optional — recovered from the decide-time snapshot when absent, but required for feedback arriving more than 30 minutes after the decide call." + }, + "paymentMethod": { + "type": [ + "string", + "null" + ], + "example": "INTERAC", + "description": "Payment method for the sticky-routing write when the decide-time snapshot has expired. Snapshot fallback when absent." + }, + "paymentMethodType": { + "type": [ + "string", + "null" + ], + "example": "RTP", + "description": "Payment method type; same role as paymentMethod." } } }, diff --git a/src/decider/gatewaydecider/flow_new.rs b/src/decider/gatewaydecider/flow_new.rs index 3558cc58..30064a7b 100644 --- a/src/decider/gatewaydecider/flow_new.rs +++ b/src/decider/gatewaydecider/flow_new.rs @@ -254,6 +254,7 @@ pub async fn decider_full_payload_hs_function( cpu_start, ab_test_sr_override, dreq_.enable_multi_objective, + dreq_.sticky_routing, ) .await; @@ -298,6 +299,7 @@ async fn perform_hybrid_routing( cpu_start, None, dreq_.enable_multi_objective, + dreq_.sticky_routing, ) .await; @@ -377,6 +379,7 @@ pub async fn run_decider_flow( cpu_start: Instant, ab_test_sr_override: Option, enable_multi_objective_override: Option, + sticky_routing_override: Option, ) -> Result { let txnCreationTime = deciderParams .dpTxnDetail @@ -754,6 +757,120 @@ pub async fn run_decider_flow( } } + // Sticky routing runs last: pin the customer's proven connector over the + // SR/cost/volume pick — and over the default ordering when SR is off, so + // the precedence is sticky > SR > default. Explicit orders (priority + // logic, merchant preference, downtime relabels) and hedging exploration + // stay untouched. Fails open on any miss. + let sticky_allowed = sticky_routing_override.unwrap_or(true) + && !hedging_on + && matches!( + decider_flow.writer.gwDeciderApproach, + T::GatewayDeciderApproach::SrSelection + | T::GatewayDeciderApproach::SrSelectionV2Routing + | T::GatewayDeciderApproach::SrSelectionV3Routing + | T::GatewayDeciderApproach::SrSelectionMultiObjective + | T::GatewayDeciderApproach::SrSelectionVolumeCommitment + | T::GatewayDeciderApproach::Default + ); + if sticky_allowed { + let scoring_data = decider_flow.writer.gateway_scoring_data.clone(); + if let Some(customer_id) = scoring_data.customerId.clone() { + if is_feature_enabled( + crate::sticky_routing::STICKY_ROUTING_FEATURE.to_string(), + merchant_id_text.clone(), + kvRedis(), + ) + .await + { + match crate::sticky_routing::read_sticky_data( + &merchant_id_text, + &customer_id, + ) + .await + { + Ok(Some(sticky_data)) => { + // Health veto: never resurrect a connector the outage/ + // elimination penalties just buried. + let min_score = maxScore.unwrap_or(0.0) + * crate::sticky_routing::sticky_min_score_ratio().await; + let candidates = sticky_data.connectors_for_combo( + &scoring_data.paymentMethod, + &scoring_data.paymentMethodType, + ); + let had_candidates = !candidates.is_empty(); + let pick = candidates.into_iter().find(|(gateway, _)| { + currentGatewayScoreMap + .get(gateway) + .is_some_and(|score| *score >= min_score) + }); + if pick.is_none() { + // Counts existed but every connector failed the + // eligibility/health filter — the veto did its job. + crate::metrics::STICKY_ROUTING_DECISION_COUNTER + .with_label_values(&[if had_candidates { + "vetoed" + } else { + "no_state" + }]) + .inc(); + } + if let Some((sticky_gateway, success_count)) = pick { + logger::info!( + action = "sticky_routing", + tag = "sticky_routing", + "sticky pin {} ({} successes) over {:?}", + sticky_gateway, + success_count, + decidedGateway + ); + // Every applied pin reports STICKY_ROUTING — a + // returning customer's repeat combo reading as SR + // would confuse callers. The SRv3 scoring gates + // admit the label, so pinned outcomes keep feeding + // the windows either way; agree-vs-diverge stays + // visible in the sticky decision metrics. + if decidedGateway.as_ref() != Some(&sticky_gateway) { + decidedGateway = Some(sticky_gateway); + // Recompute fallbacks around the sticky winner, + // and drop the now-superseded cost/volume claims + // so analytics can't credit a pick that didn't + // reach the customer. + cost_fallbacks_override = None; + decider_flow.writer.multi_objective_info = None; + decider_flow.writer.volume_steer_info = None; + crate::metrics::STICKY_ROUTING_DECISION_COUNTER + .with_label_values(&["overridden"]) + .inc(); + } else { + crate::metrics::STICKY_ROUTING_DECISION_COUNTER + .with_label_values(&["pinned_agreeing"]) + .inc(); + } + decider_flow.writer.gwDeciderApproach = + T::GatewayDeciderApproach::StickyRouting; + } + } + Ok(None) => { + crate::metrics::STICKY_ROUTING_DECISION_COUNTER + .with_label_values(&["no_state"]) + .inc(); + } + Err(error) => { + crate::metrics::STICKY_ROUTING_DECISION_COUNTER + .with_label_values(&["read_error"]) + .inc(); + logger::warn!( + action = "sticky_routing", + tag = "sticky_routing", + "sticky read failed, using SR pick: {error}" + ); + } + } + } + } + } + let stateBindings = ( decider_flow.writer.srElminiationApproachInfo.clone(), decider_flow.writer.isOptimizedBasedOnSRMetricEnabled, diff --git a/src/decider/gatewaydecider/types.rs b/src/decider/gatewaydecider/types.rs index ea3e025f..fcc9d657 100644 --- a/src/decider/gatewaydecider/types.rs +++ b/src/decider/gatewaydecider/types.rs @@ -550,6 +550,7 @@ pub fn initial_decider_state(date_created: String) -> DeciderState { udfs: None, udfs_consumed_for_routing: None, gatewayReferenceId: None, + customerId: None, }, ab_test_sr_override: None, } @@ -582,6 +583,10 @@ pub struct GatewayScoringData { pub gatewayReferenceId: Option, pub udfs: Option, pub udfs_consumed_for_routing: Option, + /// Customer behind the payment, stashed so the feedback path can key sticky-routing + /// counts. Default keeps snapshots written before this field deserializing. + #[serde(default)] + pub customerId: Option, } impl GatewayScoringData { @@ -661,6 +666,8 @@ pub enum GatewayDeciderApproach { /// A volume-contract nudge moved the payment off the SR head — the volume-driven sibling of /// [`Self::SrSelectionMultiObjective`]. SrSelectionVolumeCommitment, + /// Sticky routing pinned the customer's proven connector over the SR pick. + StickyRouting, } #[derive(Debug, Serialize, Deserialize, PartialEq)] @@ -980,6 +987,11 @@ pub struct DomainDeciderRequestForApiCallV2 { pub elimination_enabled: Option, #[serde(default)] pub enable_multi_objective: Option, + /// Per-request sticky-routing override, mirroring `enable_multi_objective`: false + /// disables the pin for this payment; absent/true leaves it to the merchant-level + /// `sticky_routing_enabled` feature flag and a present customerId. + #[serde(default)] + pub sticky_routing: Option, } pub fn deserialize_optional_udfs_to_hashmap<'de, D>( @@ -1603,6 +1615,7 @@ impl fmt::Display for GatewayDeciderApproach { Self::SrSelectionVolumeCommitment => { write!(f, "SR_SELECTION_VOLUME_COMMITMENT") } + Self::StickyRouting => write!(f, "STICKY_ROUTING"), } } } diff --git a/src/decider/gatewaydecider/utils.rs b/src/decider/gatewaydecider/utils.rs index 7315e20c..4803ca4e 100644 --- a/src/decider/gatewaydecider/utils.rs +++ b/src/decider/gatewaydecider/utils.rs @@ -2035,6 +2035,7 @@ pub fn get_default_gateway_scoring_data( udfs, udfs_consumed_for_routing: None, gatewayReferenceId: gatewayRefId, + customerId: None, } } @@ -2109,6 +2110,12 @@ pub async fn get_gateway_scoring_data( Some(decider_flow.get().dpOrder.udfs.clone()), is_legacy_decider_flow, ); + default_gateway_scoring_data.customerId = decider_flow + .get() + .dpOrder + .customerId + .clone() + .map(|customer| customer.0); let updated_gateway_scoring_data = match txn_card_info.paymentMethodType.as_str() { UPI => { let handle_and_package_based_routing = is_feature_enabled( diff --git a/src/feedback/gateway_scoring_service.rs b/src/feedback/gateway_scoring_service.rs index 1fe6fd73..94937993 100644 --- a/src/feedback/gateway_scoring_service.rs +++ b/src/feedback/gateway_scoring_service.rs @@ -447,6 +447,113 @@ pub fn invalid_request_error(detail: &str, e: &impl std::fmt::Display) -> T::Err } } +/// Sticky-routing write: a success increments the habit, a gateway failure decrements it +/// (merchant feedback is the source of truth in both directions). Returns true when handling +/// is complete (written, deduped, disabled, or an ineligible status) and false when the +/// customer/pm context is missing and a second pass with the GatewayScoringData snapshot +/// should retry. Never fails the feedback call. +async fn maybe_record_sticky_success( + api_payload: &FT::UpdateScorePayload, + snapshot: Option<&GatewayScoringData>, +) -> bool { + // Narrow sets on both sides. Successes: NOT txn_success_states(), whose post-auth + // lifecycle states (VOIDED, AUTO_REFUNDED, CAPTURE_FAILED, ...) would let a late + // lifecycle webhook re-count an earlier attempt's connector. Failures: mirror + // txn_failure_states() — actual payment failures, not pending/lifecycle noise. + let is_success = matches!( + api_payload.status, + TS::Charged | TS::Authorized | TS::PartialCharged + ); + let is_failure = matches!( + api_payload.status, + TS::AuthenticationFailed | TS::AuthorizationFailed | TS::JuspayDeclined | TS::Failure + ); + if !is_success && !is_failure { + return true; + } + let customer_id = api_payload + .customer_id + .clone() + .or_else(|| snapshot.and_then(|data| data.customerId.clone())); + let payment_method = api_payload + .payment_method + .clone() + .or_else(|| snapshot.map(|data| data.paymentMethod.clone())); + let payment_method_type = api_payload + .payment_method_type + .clone() + .or_else(|| snapshot.map(|data| data.paymentMethodType.clone())); + let (Some(customer_id), Some(payment_method), Some(payment_method_type)) = + (customer_id, payment_method, payment_method_type) + else { + // Context incomplete: ask for the snapshot pass; on the snapshot pass itself, give up. + return snapshot.is_some(); + }; + if !is_feature_enabled( + crate::sticky_routing::STICKY_ROUTING_FEATURE.to_string(), + api_payload.merchant_id.clone(), + C::kvRedis(), + ) + .await + { + return true; + } + // Deliberately NO dedupe: update-gateway-score is the source of truth, and the engine's + // own SR scoring applies every feedback event unconditionally by default (its locks are + // opt-in per merchant). If the caller sends an event N times, it counts N times. + let write = if is_success { + crate::sticky_routing::record_success( + &api_payload.merchant_id, + &customer_id, + &payment_method, + &payment_method_type, + &api_payload.gateway, + ) + .await + } else { + crate::sticky_routing::record_failure( + &api_payload.merchant_id, + &customer_id, + &payment_method, + &payment_method_type, + &api_payload.gateway, + ) + .await + }; + match write { + Ok(outcome) => { + let label = match outcome { + crate::sticky_routing::StickyWriteOutcome::Recorded { .. } => "recorded", + crate::sticky_routing::StickyWriteOutcome::SkippedOverBudget => "over_budget", + crate::sticky_routing::StickyWriteOutcome::Decremented => "decremented", + crate::sticky_routing::StickyWriteOutcome::SkippedNoHabit => "no_habit", + }; + crate::metrics::STICKY_ROUTING_WRITE_COUNTER + .with_label_values(&[label]) + .inc(); + logger::info!( + action = "sticky_routing", + merchant_id = %api_payload.merchant_id, + payment_id = %api_payload.payment_id, + gateway = %api_payload.gateway, + "sticky write applied: {outcome:?}" + ); + } + Err(error) => { + crate::metrics::STICKY_ROUTING_WRITE_COUNTER + .with_label_values(&["write_error"]) + .inc(); + logger::error!( + action = "sticky_routing", + merchant_id = %api_payload.merchant_id, + payment_id = %api_payload.payment_id, + "sticky write failed: {error}" + ); + } + } + true +} + pub async fn check_and_update_gateway_score_( api_payload: FT::UpdateScorePayload, ) -> Result { @@ -464,6 +571,11 @@ pub async fn check_and_update_gateway_score_( ) .await; + // Sticky-routing write, same placement rationale: when the payload carries + // customer + pm context it must not be gated on the scoring-data snapshot, + // so a success webhook landing after the snapshot's 30-min TTL still counts. + let sticky_done = maybe_record_sticky_success(&api_payload, None).await; + // GSM-based scoring filter: skip penalization for failures where the gateway // is healthy (user/issuer-originated errors). Gated per merchant so it can be // rolled back instantly without a deploy. @@ -504,7 +616,9 @@ pub async fn check_and_update_gateway_score_( .map(|g| (&g.unified_message, &g.decision)), ); if let Some(gsm_info) = gsm_lookup_result { - if is_gateway_healthy_failure(&gsm_info) { + // Failures only: a success must never early-return here — it still needs + // the SR reward and the snapshot-fallback sticky pass below. + if !is_success && is_gateway_healthy_failure(&gsm_info) { logger::info!( action = "GSM_SCORING_FILTER_SKIP", tag = "GSM_SCORING_FILTER_SKIP", @@ -547,6 +661,11 @@ pub async fn check_and_update_gateway_score_( match m_gateway_scoring_data { Ok(gateway_scoring_data) => { + // Second sticky pass for callers that sent no customer/pm fields — + // the snapshot supplies them. + if !sticky_done { + maybe_record_sticky_success(&api_payload, Some(&gateway_scoring_data)).await; + } // Extract transaction details and card info from the API payload let txn_detail: TxnDetail = match Fbu::get_txn_detail_from_api_payload( api_payload.clone(), @@ -1135,9 +1254,14 @@ pub fn isRoutingApproachInSRV2(maybe_text: Option) -> bool { // (`SR_SELECTION_MULTI_OBJECTIVE`) carries no "V3" token, so match it explicitly — // otherwise producer isolation silently drops every cost-routed outcome and the // chosen gateway's score never moves on success or failure. +// STICKY_ROUTING is the same shape: the pin re-picks among SRv3-scored candidates +// (its health veto reads the SRv3 map), so its outcomes must keep feeding the +// producer or a pinned connector's score freezes and the veto can never trip. pub fn is_routing_approach_in_srv3(maybe_text: Option) -> bool { match maybe_text { - Some(text) => text.contains("V3") || text.contains("MULTI_OBJECTIVE"), + Some(text) => { + text.contains("V3") || text.contains("MULTI_OBJECTIVE") || text.contains("STICKY") + } None => false, } } @@ -1149,9 +1273,15 @@ pub fn is_routing_approach_in_srv3(maybe_text: Option) -> bool { // (cost) routing is also off-policy: it deliberately picks a *non-top*, SR-equivalent // (cheaper) PSP, which is exploration of that PSP. Treat it as explore too, otherwise // cost-routed outcomes are excluded from scoring whenever explore/exploit is enabled. +// Every applied sticky pin carries the STICKY_ROUTING label (agreeing or diverging), so +// pinned outcomes must keep updating scores here too — freezing a pinned connector's +// window would blind the health veto. Divergent pins are off-policy like multi-objective; +// the agreeing case trades a little estimator purity for an unambiguous caller label. pub fn is_routing_approach_in_explore(maybe_text: Option) -> bool { match maybe_text { - Some(text) => text.contains("HEDGING") || text.contains("MULTI_OBJECTIVE"), + Some(text) => { + text.contains("HEDGING") || text.contains("MULTI_OBJECTIVE") || text.contains("STICKY") + } None => false, } } @@ -1480,6 +1610,8 @@ mod tests { assert!(is_routing_approach_in_srv3(Some( "SR_SELECTION_MULTI_OBJECTIVE".into() ))); + // Sticky pins re-pick among SRv3 candidates — same rule. + assert!(is_routing_approach_in_srv3(Some("STICKY_ROUTING".into()))); } #[test] @@ -1500,6 +1632,10 @@ mod tests { assert!(is_routing_approach_in_explore(Some( "SR_SELECTION_MULTI_OBJECTIVE".into() ))); + // Sticky-labeled outcomes always update scores — the health veto needs live windows. + assert!(is_routing_approach_in_explore(Some( + "STICKY_ROUTING".into() + ))); } #[test] diff --git a/src/feedback/types.rs b/src/feedback/types.rs index bf64a518..30a59277 100644 --- a/src/feedback/types.rs +++ b/src/feedback/types.rs @@ -259,6 +259,15 @@ pub struct UpdateScorePayload { /// When present, the engine emits a SmartRetryDecision analytics event capturing /// which gateway was retried and whether it recovered the payment. pub is_smart_retry: Option, + /// Customer identifier, used to accumulate sticky-routing success counts. + /// Optional; when absent it is recovered from the decide-time GatewayScoringData + /// snapshot, which expires 30 minutes after the decide call. + pub customer_id: Option, + /// Payment method for the sticky-routing write when feedback arrives after the + /// decide-time snapshot expired (e.g. a late CHARGED webhook). Snapshot fallback. + pub payment_method: Option, + /// Payment method type; same role as `payment_method`. + pub payment_method_type: Option, } #[derive(Debug, Serialize, Deserialize, Clone)] diff --git a/src/lib.rs b/src/lib.rs index a7843b13..8801dac8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,6 +47,7 @@ pub mod middleware; pub mod redis; pub mod routes; pub mod sr_auto_calibration; +pub mod sticky_routing; pub mod storage; pub mod tenant; pub mod types; diff --git a/src/metrics.rs b/src/metrics.rs index dc68fda4..454e9bb8 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -43,6 +43,21 @@ lazy_static! { &["rule_name"] ).unwrap(); + /// Sticky-routing decide-time outcomes, counted only when the feature engaged (flag on, + /// customer present): overridden / pinned_agreeing / vetoed / no_state / read_error. + pub static ref STICKY_ROUTING_DECISION_COUNTER: IntCounterVec = register_int_counter_vec!( + "sticky_routing_decisions_total", + "Sticky-routing decide-time outcomes", + &["outcome"] + ).unwrap(); + + /// Sticky-routing feedback-write outcomes: recorded / decremented / no_habit / over_budget / write_error. + pub static ref STICKY_ROUTING_WRITE_COUNTER: IntCounterVec = register_int_counter_vec!( + "sticky_routing_writes_total", + "Sticky-routing feedback-write outcomes", + &["outcome"] + ).unwrap(); + /// Count of analytics events captured by flow type pub static ref ANALYTICS_EVENT_COUNTER: IntCounterVec = register_int_counter_vec!( "analytics_events_total", diff --git a/src/redis/commands.rs b/src/redis/commands.rs index 0535129f..7b3b4190 100644 --- a/src/redis/commands.rs +++ b/src/redis/commands.rs @@ -759,4 +759,80 @@ impl RedisConnectionWrapper { None => Ok(None), } } + + // TTL + HINCRBY + EXPIRE in one MULTI: the pre-write TTL (-2 = key absent) gives the + // caller an atomic new-key signal with zero extra round trips, and a new hash can never + // be left without a TTL. + pub async fn hincrby_with_expire( + &self, + key: &str, + field: &str, + increment: i64, + ttl_seconds: i64, + ) -> Result<(i64, i64), errors::RedisError> { + let key_owned = key.to_string(); + let field_owned = field.to_string(); + let result: Vec = self + .multi(false, |transaction| { + Box::pin(async move { + transaction.ttl::<(), _>(&key_owned).await?; + transaction + .hincrby::<(), _, _>( + &RedisKey::from(key_owned.clone()), + field_owned.as_str(), + increment, + ) + .await?; + transaction.expire::<(), _>(&key_owned, ttl_seconds).await?; + Ok(()) + }) + }) + .await + .change_context(errors::RedisError::SetHashFailed)?; + match (result.first(), result.get(1)) { + (Some(prev_ttl), Some(new_count)) => Ok((*prev_ttl, *new_count)), + _ => Err(error_stack::Report::new(errors::RedisError::UnknownResult)), + } + } + + pub async fn hlen(&self, key: &str) -> Result { + self.conn + .pool + .hlen(key) + .await + .change_context(errors::RedisError::GetFailed) + } + + // Plain HINCRBY — no TTL re-arm; the caller owns key-lifetime semantics. + pub async fn hincrby( + &self, + key: &str, + field: &str, + increment: i64, + ) -> Result { + self.conn + .pool + .hincrby(key, field, increment) + .await + .change_context(errors::RedisError::SetHashFailed) + } + + pub async fn hgetall_map( + &self, + key: &str, + ) -> Result, errors::RedisError> { + self.conn + .pool + .hgetall(key) + .await + .change_context(errors::RedisError::GetFailed) + } + + pub async fn hdel_field(&self, key: &str, field: &str) -> Result { + self.conn + .pool + .hdel(key, field) + .await + .change_context(errors::RedisError::DeleteFailed) + } } diff --git a/src/routes/merchant_account_config.rs b/src/routes/merchant_account_config.rs index 6f2803be..69e93c87 100644 --- a/src/routes/merchant_account_config.rs +++ b/src/routes/merchant_account_config.rs @@ -55,6 +55,9 @@ pub enum KnownFeature { Autopilot, /// Volume-commitment steering — a secondary objective that runs alongside cost savings. VolumeContracts, + /// Sticky routing — THE merchant-level switch for the feature (like multi-objective): + /// gates both the feedback-write and decide-read paths. + StickyRouting, } impl KnownFeature { @@ -68,6 +71,7 @@ impl KnownFeature { Self::SrAutoCalibration, Self::Autopilot, Self::VolumeContracts, + Self::StickyRouting, ] } @@ -81,6 +85,7 @@ impl KnownFeature { "auto-calibration" => Some(Self::SrAutoCalibration), "autopilot" => Some(Self::Autopilot), "volume-contracts" => Some(Self::VolumeContracts), + "sticky-routing" => Some(Self::StickyRouting), _ => None, } } @@ -100,6 +105,9 @@ impl KnownFeature { Self::VolumeContracts => { crate::decider::gatewaydecider::volume_commitment::FEATURE_FLAG } + // The same key the feedback write and decide read check, so this toggle + // drives sticky routing directly. + Self::StickyRouting => crate::sticky_routing::STICKY_ROUTING_FEATURE, } } diff --git a/src/sticky_routing.rs b/src/sticky_routing.rs new file mode 100644 index 00000000..08a581ce --- /dev/null +++ b/src/sticky_routing.rs @@ -0,0 +1,566 @@ +//! Redis storage for sticky routing: per-customer net connector scores. +//! +//! Logical model: `merchant:customer -> { pm:pmt -> { connector -> net_count } }` where the +//! count is successes minus gateway failures (floored at zero — merchant feedback is the +//! source of truth in both directions, but a habit never goes negative), stored as +//! ONE Redis hash per (merchant, customer) with flattened `pm:pmt:connector` integer fields, so +//! HINCRBY stays atomic under the concurrent feedback tasks, listpack encoding keeps a customer +//! at ~250 bytes, and a single HGETALL serves the exact-combo lookup. Deliberately no +//! cross-combo fallback — transaction-level fallbacks already cover a missing combo. +//! +//! Eviction safety — sticky keys must never crowd other routing state out of Redis: +//! 1. every hash carries a sliding TTL, re-armed in the same MULTI as the write, so idle +//! customers self-evict and every sticky key stays volatile (safe under `volatile-*` +//! maxmemory policies); +//! 2. a per-customer combo cap prunes the lowest-count field instead of growing unbounded, +//! which also keeps the hash under the listpack encoding threshold; +//! 3. a per-merchant admission budget (two-window creation counter) stops NEW customer hashes +//! once the per-TTL-window budget is spent — existing customers keep updating, so the +//! worst-case footprint is bounded up front instead of relying on Redis eviction. + +use std::collections::HashMap; +use std::time::{SystemTime, UNIX_EPOCH}; + +use crate::app::get_tenant_app_state; +use crate::logger; +use crate::redis::cache::findByNameFromRedis; + +type RedisResult = Result>; + +/// Hash key per (merchant, customer): `sticky_gw_{merchant_id}_{customer_id}`. +pub const STICKY_KEY_PREFIX: &str = "sticky_gw_"; +/// Per-window new-customer counter: `sticky_gw_adm_{merchant_id}_{window_index}`. +const ADMISSION_COUNTER_PREFIX: &str = "sticky_gw_adm_"; + +/// 90 days — sliding "as long as the customer keeps paying" retention. +pub const DEFAULT_STICKY_KEY_TTL_SECS: i64 = 90 * 24 * 60 * 60; +/// Combo-field cap per customer; stays below hash-max-listpack-entries (128). +pub const DEFAULT_MAX_COMBOS_PER_CUSTOMER: usize = 30; +/// New customer hashes allowed per merchant per TTL window (~250B each => ~250MB/window ceiling). +pub const DEFAULT_MAX_NEW_CUSTOMERS_PER_WINDOW: i64 = 1_000_000; + +/// Service-configuration overrides, read through the same cache chain as the SR score TTLs. +const SC_STICKY_KEY_TTL: &str = "STICKY_ROUTING_KEY_TTL"; +const SC_MAX_COMBOS: &str = "STICKY_ROUTING_MAX_COMBOS_PER_CUSTOMER"; +const SC_MIN_SCORE_RATIO: &str = "STICKY_ROUTING_MIN_SCORE_RATIO"; + +/// Health veto divider: the sticky connector's post-elimination score must be at least this +/// fraction of the top score, or the pin is skipped — outage/eliminated connectors sit far +/// below the top after the penalty passes, so the pin cannot resurrect them. +pub const DEFAULT_STICKY_MIN_SCORE_RATIO: f64 = 0.5; + +pub async fn sticky_min_score_ratio() -> f64 { + findByNameFromRedis::(SC_MIN_SCORE_RATIO.to_string()) + .await + .filter(|ratio| (0.0..=1.0).contains(ratio)) + .unwrap_or(DEFAULT_STICKY_MIN_SCORE_RATIO) +} + +/// FeatureConf key gating sticky writes/reads per merchant — the ops kill switch. +pub const STICKY_ROUTING_FEATURE: &str = "sticky_routing_enabled"; + +fn sc_merchant_budget_key(merchant_id: &str) -> String { + format!("STICKY_ROUTING_MAX_CUSTOMERS_{merchant_id}") +} + +/// Outcome of a sticky write; `SkippedOverBudget` means the merchant's new-key budget is spent. +#[derive(Debug, PartialEq, Eq)] +pub enum StickyWriteOutcome { + Recorded { + new_customer: bool, + }, + SkippedOverBudget, + /// A failure subtracted one from an existing habit (floored at zero). + Decremented, + /// A failure arrived for a combo:connector this customer has no positive habit on — + /// failures never create or deepen state, so there was nothing to subtract. + SkippedNoHabit, +} + +/// The nested view of one customer's hash: `"pm:pmt" -> connector -> success_count`. +#[derive(Debug, Default, PartialEq, Eq)] +pub struct StickyData { + pub combos: HashMap>, +} + +impl StickyData { + /// Rebuild the nested map from raw HGETALL output; unparsable fields are skipped. + pub fn from_raw(raw: HashMap) -> Self { + let mut combos: HashMap> = HashMap::new(); + for (field, value) in raw { + let (Some((pm, pmt, connector)), Ok(count)) = + (decode_field(&field), value.parse::()) + else { + continue; + }; + combos + .entry(format!("{pm}:{pmt}")) + .or_default() + .insert(connector, count); + } + Self { combos } + } + + /// Connectors for the exact (pm, pmt) combo, highest net count first. Only positive + /// counts qualify — a habit fully eroded by failures is no habit at all. + pub fn connectors_for_combo( + &self, + payment_method: &str, + payment_method_type: &str, + ) -> Vec<(String, i64)> { + self.combos + .get(&combo_key(payment_method, payment_method_type)) + .map(|counts| { + sorted_desc( + counts + .iter() + .filter(|(_, n)| **n > 0) + .map(|(c, n)| (c.clone(), *n)), + ) + }) + .unwrap_or_default() + } +} + +/// Record one successful payment: HINCRBY the combo:connector field and re-arm the key TTL. +pub async fn record_success( + merchant_id: &str, + customer_id: &str, + payment_method: &str, + payment_method_type: &str, + connector: &str, +) -> RedisResult { + let app_state = get_tenant_app_state().await; + let key = sticky_key(merchant_id, customer_id); + let ttl = key_ttl_secs().await; + + // The pre-write TTL from the MULTI (-2 = key absent) is the new-customer signal: + // atomic (exactly one concurrent first-payment sees -2) and free of the extra + // round trip a separate EXISTS would cost on every success. + let field = encode_field(payment_method, payment_method_type, connector); + let (prev_ttl, new_count) = app_state + .redis_conn + .hincrby_with_expire(&key, &field, 1, ttl) + .await?; + let is_new_customer = prev_ttl == -2; + + if is_new_customer { + if !admit_new_customer(merchant_id, ttl).await { + // Undo the just-created key: refusing the customer beats breaching the budget. + let _ = app_state.redis_conn.delete_key(&key).await; + logger::warn!( + action = "sticky_routing", + merchant_id = merchant_id, + "sticky write skipped: merchant new-customer budget exhausted for this window" + ); + return Ok(StickyWriteOutcome::SkippedOverBudget); + } + note_new_customer(merchant_id, ttl).await; + } + // First success on this combo:connector — enforce the field cap (drains any prior excess too). + if new_count == 1 { + prune_if_over_cap(&key, &field).await; + } + + Ok(StickyWriteOutcome::Recorded { + new_customer: is_new_customer, + }) +} + +/// A gateway failure subtracts one from the habit, floored at zero. Failures never CREATE +/// state: no key (key-creation stays tied to successful payments, which is what bounds the +/// footprint) and no field. Deliberately no TTL re-arm — failing activity must not extend a +/// habit's lifetime. +pub async fn record_failure( + merchant_id: &str, + customer_id: &str, + payment_method: &str, + payment_method_type: &str, + connector: &str, +) -> RedisResult { + let app_state = get_tenant_app_state().await; + let key = sticky_key(merchant_id, customer_id); + let field = encode_field(payment_method, payment_method_type, connector); + + let current: Option = app_state.redis_conn.hget(&key, &field, "i64").await?; + match current { + Some(count) if count > 0 => { + let new_count = app_state.redis_conn.hincrby(&key, &field, -1).await?; + // Only positive counts are stored: a habit erased by failures is deleted, not + // kept at zero (zeros would eat the combo cap; a raced re-creation via the + // HGET->HINCRBY window lands <= 0 and is removed here too, best-effort). + if new_count <= 0 { + let _ = app_state.redis_conn.hdel_field(&key, &field).await; + } + Ok(StickyWriteOutcome::Decremented) + } + _ => Ok(StickyWriteOutcome::SkippedNoHabit), + } +} + +/// One HGETALL: the customer's full nested sticky map, or None if nothing is stored. +pub async fn read_sticky_data( + merchant_id: &str, + customer_id: &str, +) -> RedisResult> { + let app_state = get_tenant_app_state().await; + let raw = app_state + .redis_conn + .hgetall_map(&sticky_key(merchant_id, customer_id)) + .await?; + Ok((!raw.is_empty()).then(|| StickyData::from_raw(raw))) +} + +/// Erase one customer's sticky state (merchant offboarding / data-erasure requests). +pub async fn delete_sticky_data(merchant_id: &str, customer_id: &str) -> RedisResult<()> { + let app_state = get_tenant_app_state().await; + app_state + .redis_conn + .delete_key(&sticky_key(merchant_id, customer_id)) + .await?; + Ok(()) +} + +// Trim only — customer ids stay case-sensitive (folding could merge distinct customers), +// so feedback must echo the decide call's customerId byte-exactly (documented in api-refs). +fn sticky_key(merchant_id: &str, customer_id: &str) -> String { + format!( + "{STICKY_KEY_PREFIX}{}_{}", + merchant_id.trim(), + customer_id.trim() + ) +} + +fn combo_key(payment_method: &str, payment_method_type: &str) -> String { + format!( + "{}:{}", + canonical_dimension(payment_method), + canonical_dimension(payment_method_type) + ) +} + +fn encode_field(payment_method: &str, payment_method_type: &str, connector: &str) -> String { + format!( + "{}:{}", + combo_key(payment_method, payment_method_type), + sanitize(connector) + ) +} + +fn decode_field(field: &str) -> Option<(String, String, String)> { + let mut parts = field.splitn(3, ':'); + match (parts.next(), parts.next(), parts.next()) { + (Some(pm), Some(pmt), Some(connector)) + if !pm.is_empty() && !pmt.is_empty() && !connector.is_empty() => + { + Some((pm.to_string(), pmt.to_string(), connector.to_string())) + } + _ => None, + } +} + +// ':' is the field separator, so it can never appear inside a component. +fn sanitize(part: &str) -> String { + part.trim().replace(':', "_") +} + +// pm/pmt arrive from two sources (feedback payload verbatim; decide-time snapshot uppercased), +// so they are case-folded here or the same combo fragments across fields. The connector is NOT +// case-folded: the read path must compare it verbatim against the caller's eligible list. +fn canonical_dimension(part: &str) -> String { + sanitize(part).to_uppercase() +} + +fn sorted_desc(entries: impl Iterator) -> Vec<(String, i64)> { + let mut list: Vec<(String, i64)> = entries.collect(); + list.sort_by(|a, b| b.1.cmp(&a.1).then_with(|| a.0.cmp(&b.0))); + list +} + +/// Victims for the field cap: the `excess` lowest counts (name as tie-break), never the +/// just-written field. Draining the full excess (not one victim) means a hash that got over +/// the cap through concurrent writes or a config change converges back on the next trigger. +fn select_prune_victims( + fields: &HashMap, + protect: &str, + excess: usize, +) -> Vec { + let mut candidates: Vec<(&String, i64)> = fields + .iter() + .filter(|(name, _)| name.as_str() != protect) + .map(|(name, count)| (name, *count)) + .collect(); + candidates.sort_by(|a, b| a.1.cmp(&b.1).then_with(|| a.0.cmp(b.0))); + candidates + .into_iter() + .take(excess) + .map(|(name, _)| name.clone()) + .collect() +} + +// Best-effort: a failed prune leaves the hash transiently over the cap; the next new-field +// write drains it. A concurrent writer's fresh count-1 field can be picked as a victim — rare, +// and self-healing since its next success recreates it. +async fn prune_if_over_cap(key: &str, protect_field: &str) { + let app_state = get_tenant_app_state().await; + let max_combos = max_combos_per_customer().await; + // Cheap length gate first: the full HGETALL scan only runs when actually over cap. + match app_state.redis_conn.hlen(key).await { + Ok(len) if len as usize <= max_combos => return, + Ok(_) => {} + Err(err) => { + logger::error!( + action = "sticky_routing", + "prune length check failed for {key}: {err}" + ); + return; + } + } + let raw = match app_state.redis_conn.hgetall_map(key).await { + Ok(raw) => raw, + Err(err) => { + logger::error!( + action = "sticky_routing", + "prune read failed for {key}: {err}" + ); + return; + } + }; + if raw.len() <= max_combos { + return; + } + let excess = raw.len() - max_combos; + let counts: HashMap = raw + .into_iter() + .filter_map(|(field, value)| value.parse::().ok().map(|count| (field, count))) + .collect(); + for victim in select_prune_victims(&counts, protect_field, excess) { + if let Err(err) = app_state.redis_conn.hdel_field(key, &victim).await { + logger::error!( + action = "sticky_routing", + "prune hdel failed for {key}: {err}" + ); + } + } +} + +async fn key_ttl_secs() -> i64 { + findByNameFromRedis::(SC_STICKY_KEY_TTL.to_string()) + .await + .map(|v| v as i64) + .filter(|v| *v > 0) + .unwrap_or(DEFAULT_STICKY_KEY_TTL_SECS) +} + +async fn max_combos_per_customer() -> usize { + findByNameFromRedis::(SC_MAX_COMBOS.to_string()) + .await + .map(|v| v as usize) + .filter(|v| *v > 0) + .unwrap_or(DEFAULT_MAX_COMBOS_PER_CUSTOMER) +} + +async fn merchant_new_customer_budget(merchant_id: &str) -> i64 { + findByNameFromRedis::(sc_merchant_budget_key(merchant_id)) + .await + .map(|v| v as i64) + .filter(|v| *v > 0) + .unwrap_or(DEFAULT_MAX_NEW_CUSTOMERS_PER_WINDOW) +} + +fn window_index(ttl_secs: i64) -> u64 { + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .map(|d| d.as_secs()) + .unwrap_or(0); + now / (ttl_secs.max(1) as u64) +} + +fn admission_key(merchant_id: &str, window: u64) -> String { + format!("{ADMISSION_COUNTER_PREFIX}{merchant_id}_{window}") +} + +// Creation-rate cap: current + previous window creations must stay under the budget. This bounds +// growth rate rather than exact live count — long-lived active customers outlive their window's +// counter, but those keys are earning their keep and still expire once the customer goes idle. +async fn admit_new_customer(merchant_id: &str, ttl_secs: i64) -> bool { + let budget = merchant_new_customer_budget(merchant_id).await; + let window = window_index(ttl_secs); + let current = read_admission_counter(&admission_key(merchant_id, window)).await; + let previous = + read_admission_counter(&admission_key(merchant_id, window.saturating_sub(1))).await; + current.saturating_add(previous) < budget +} + +async fn read_admission_counter(key: &str) -> i64 { + let app_state = get_tenant_app_state().await; + // A missing counter (or a read error) reads as zero — admission stays best-effort. + app_state + .redis_conn + .get_key::(key, "i64") + .await + .unwrap_or(0) +} + +async fn note_new_customer(merchant_id: &str, ttl_secs: i64) { + let app_state = get_tenant_app_state().await; + let key = admission_key(merchant_id, window_index(ttl_secs)); + match app_state.redis_conn.increment_key(&key).await { + // First increment created the counter — bound its lifetime to the two-window horizon. + Ok(1) => { + if let Err(err) = app_state + .redis_conn + .expire_key(&key, ttl_secs.saturating_mul(2)) + .await + { + logger::error!( + action = "sticky_routing", + "admission counter expire failed for {key}: {err}" + ); + } + } + Ok(_) => {} + Err(err) => { + logger::error!( + action = "sticky_routing", + "admission counter incr failed for {key}: {err}" + ); + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn field_encoding_roundtrips() { + let field = encode_field("INTERAC", "RTP", "GIGADAT"); + assert_eq!(field, "INTERAC:RTP:GIGADAT"); + assert_eq!( + decode_field(&field), + Some(("INTERAC".into(), "RTP".into(), "GIGADAT".into())) + ); + assert_eq!(decode_field("only:two"), None); + assert_eq!(decode_field("a:b:"), None); + } + + #[test] + fn pm_and_pmt_case_fold_but_connector_stays_verbatim() { + // Payload-sourced ("interac"/"rtp") and snapshot-sourced ("INTERAC"/"RTP") writes + // must land on the same field, or one customer's combo fragments. + assert_eq!( + encode_field("interac", "rtp", "gigadat"), + "INTERAC:RTP:gigadat" + ); + assert_eq!( + encode_field(" INTERAC ", "RTP", "gigadat"), + "INTERAC:RTP:gigadat" + ); + let raw = HashMap::from([("INTERAC:RTP:gigadat".to_string(), "2".to_string())]); + let data = StickyData::from_raw(raw); + assert_eq!( + data.connectors_for_combo("interac", "rtp"), + vec![("gigadat".to_string(), 2)] + ); + } + + #[test] + fn sanitize_keeps_separator_unambiguous() { + let field = encode_field("PM:WITH:COLONS", "PMT", "CON"); + assert_eq!( + decode_field(&field), + Some(("PM_WITH_COLONS".into(), "PMT".into(), "CON".into())) + ); + } + + #[test] + fn from_raw_builds_nested_map_and_skips_junk() { + let raw = HashMap::from([ + ("INTERAC:RTP:GIGADAT".to_string(), "3".to_string()), + ("INTERAC:RTP:LOONIO".to_string(), "2".to_string()), + ("INTERAC:BANK:PAYPER".to_string(), "5".to_string()), + ("bad_field".to_string(), "1".to_string()), + ("INTERAC:RTP:BROKEN".to_string(), "not_a_number".to_string()), + ]); + let data = StickyData::from_raw(raw); + assert_eq!(data.combos.len(), 2); + assert_eq!(data.combos["INTERAC:RTP"]["GIGADAT"], 3); + assert_eq!(data.combos["INTERAC:BANK"]["PAYPER"], 5); + assert!(!data.combos["INTERAC:RTP"].contains_key("BROKEN")); + } + + #[test] + fn combo_lookup_sorts_by_count_then_name() { + let raw = HashMap::from([ + ("INTERAC:RTP:GIGADAT".to_string(), "3".to_string()), + ("INTERAC:RTP:LOONIO".to_string(), "2".to_string()), + ("INTERAC:RTP:APEX".to_string(), "3".to_string()), + ]); + let data = StickyData::from_raw(raw); + assert_eq!( + data.connectors_for_combo("INTERAC", "RTP"), + vec![ + ("APEX".to_string(), 3), + ("GIGADAT".to_string(), 3), + ("LOONIO".to_string(), 2) + ] + ); + assert!(data.connectors_for_combo("CARD", "CREDIT").is_empty()); + } + + #[test] + fn eroded_habits_never_pin() { + // Failures floor a habit at zero; zero (or a raced-below-zero value) is no habit. + let raw = HashMap::from([ + ("INTERAC:RTP:GIGADAT".to_string(), "0".to_string()), + ("INTERAC:RTP:LOONIO".to_string(), "-1".to_string()), + ("INTERAC:RTP:APEX".to_string(), "1".to_string()), + ]); + let data = StickyData::from_raw(raw); + assert_eq!( + data.connectors_for_combo("INTERAC", "RTP"), + vec![("APEX".to_string(), 1)] + ); + } + + #[test] + fn prune_victims_are_lowest_counts_and_never_the_new_field() { + let fields = HashMap::from([ + ("INTERAC:RTP:GIGADAT".to_string(), 3), + ("INTERAC:RTP:LOONIO".to_string(), 1), + ("CARD:CREDIT:STRIPE".to_string(), 1), + ]); + // Lowest count with name tie-break: CARD:CREDIT:STRIPE < INTERAC:RTP:LOONIO. + assert_eq!( + select_prune_victims(&fields, "INTERAC:RTP:GIGADAT", 1), + vec!["CARD:CREDIT:STRIPE".to_string()] + ); + // The full excess drains in one pass, lowest counts first. + assert_eq!( + select_prune_victims(&fields, "INTERAC:RTP:GIGADAT", 2), + vec![ + "CARD:CREDIT:STRIPE".to_string(), + "INTERAC:RTP:LOONIO".to_string() + ] + ); + // The just-written field is protected even when it has the lowest count. + let fields = HashMap::from([("A:B:NEW".to_string(), 1), ("A:B:OLD".to_string(), 7)]); + assert_eq!( + select_prune_victims(&fields, "A:B:NEW", 1), + vec!["A:B:OLD".to_string()] + ); + // Excess larger than the candidate pool never panics or touches the protected field. + assert_eq!( + select_prune_victims(&fields, "A:B:NEW", 5), + vec!["A:B:OLD".to_string()] + ); + } + + #[test] + fn window_math_is_stable() { + assert_eq!(admission_key("m1", 42), "sticky_gw_adm_m1_42"); + // ttl <= 0 must not divide by zero. + let _ = window_index(0); + } +} diff --git a/tests/api/routing/sticky-routing.spec.ts b/tests/api/routing/sticky-routing.spec.ts new file mode 100644 index 00000000..5e353f5c --- /dev/null +++ b/tests/api/routing/sticky-routing.spec.ts @@ -0,0 +1,343 @@ +import { test, expect, factory } from '../../fixtures/test' +import { expectValidGatewayResponse } from '../../helpers/assertions' + +/** + * Sticky routing (#393): the decide → feedback → decide loop against the real stack. + * + * The engine records success counts per (customer, PM:PMT, connector) from + * update-gateway-score and, when the merchant's `sticky-routing` feature is on, pins the + * customer's highest-count connector at decide time. Score writes happen in a spawned task + * after the feedback response, so every assertion that depends on a prior write polls. + * + * Every applied pin reports `routing_approach === "STICKY_ROUTING"` (agreeing or diverging), + * so pin assertions check both the decided gateway and the label. Deliberately NOT asserted + * here: the health veto — driving a connector into elimination needs a scored history that + * belongs in the Rust-level tests. + */ + +const PM = 'INTERAC' +const PMT = 'RTP' +const ELIGIBLE = ['stripe', 'adyen', 'checkout'] + +async function enableSticky(api: any, merchantId: string) { + const r = await api.raw('POST', `/merchant-account/${merchantId}/features/sticky-routing`, { + body: { enabled: true }, + }) + expect(r.status).toBe(200) +} + +function decideRequest(merchantId: string, customerId: string, overrides: Record = {}) { + // The factory emits a fixed shape and silently drops unknown keys, so top-level extras + // like stickyRouting must be re-attached to the built request explicitly. + const { stickyRouting, ...factoryOverrides } = overrides + const request = factory.srDecideGatewayRequest({ + merchantId, + eligibleGatewayList: ELIGIBLE, + paymentInfo: { + paymentId: factory.paymentId('sticky'), + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }, + ...factoryOverrides, + }) + if (stickyRouting !== undefined) request.stickyRouting = stickyRouting + return request +} + +/** Feedback score writes are async server-side: retry the decide until the pin lands. */ +async function pollDecideUntil( + api: any, + request: () => Record, + predicate: (body: any) => boolean, + attempts = 40, +): Promise { + let last: any + for (let i = 0; i < attempts; i++) { + const r = await api.decideGateway(request()) + expect(r.status).toBe(200) + expectValidGatewayResponse(r.body) + last = r.body + if (predicate(r.body)) return r.body + await new Promise((resolve) => setTimeout(resolve, 250)) + } + return last +} + +// Sequential on purpose: enabling a feature does a read-modify-write on the SHARED +// FeatureConf row (one service_configuration row holds every merchant's entry), so +// concurrent enableSticky calls from parallel tests lose each other's updates and a +// test's flag can silently vanish mid-run. One worker sidesteps the race; the API-side +// fix is tracked separately. +test.describe.configure({ mode: 'default' }) + +test.describe('Sticky routing (API)', () => { + test('a recorded success pins the customer to that connector', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('sticky') + + // Seed one success on adyen: decide (writes the scoring-data snapshot), then feedback. + const seedPaymentId = factory.paymentId('seed') + const seed = await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: seedPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + expect(seed.status).toBe(200) + const fb = await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: seedPaymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + expect(fb.status).toBe(200) + + const pinned = await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'adyen' && body.routing_approach === 'STICKY_ROUTING', + ) + expect(pinned.decided_gateway).toBe('adyen') + expect(pinned.routing_approach).toBe('STICKY_ROUTING') + + // The pin is stable across repeated decisions. + const again = await api.decideGateway(decideRequest(merchant.id, customerId)) + expect(again.body.decided_gateway).toBe('adyen') + expect(again.body.routing_approach).toBe('STICKY_ROUTING') + }) + + test('stickyRouting:false leaves the SR decision alone', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('optout') + + const seedPaymentId = factory.paymentId('seed') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: seedPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: seedPaymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + // Wait until the seeded state provably pins… + await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'adyen' && body.routing_approach === 'STICKY_ROUTING', + ) + + // …then the opt-out flag must suppress the sticky label on the same state. + const optedOut = await api.decideGateway( + decideRequest(merchant.id, customerId, { stickyRouting: false }), + ) + expect(optedOut.status).toBe(200) + expect(optedOut.body.routing_approach).not.toBe('STICKY_ROUTING') + }) + + test('no sticky behavior without the merchant feature flag', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + // Flag deliberately NOT enabled: neither the write nor the read side may engage. + const customerId = factory.customerId('flagoff') + + const seedPaymentId = factory.paymentId('seed') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: seedPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: seedPaymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + + for (let i = 0; i < 5; i++) { + const r = await api.decideGateway(decideRequest(merchant.id, customerId)) + expect(r.status).toBe(200) + expect(r.body.routing_approach).not.toBe('STICKY_ROUTING') + await new Promise((resolve) => setTimeout(resolve, 100)) + } + }) + + test('a retried payment sticks to the connector that finally succeeded', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('retry') + + const paymentId = factory.paymentId('retry') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + // Attempt 1 fails on stripe; the retry succeeds on adyen. Only the success may stick. + const fail = await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId, + gateway: 'stripe', + status: 'AUTHORIZATION_FAILED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + expect(fail.status).toBe(200) + const success = await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + expect(success.status).toBe(200) + + const pinned = await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'adyen' && body.routing_approach === 'STICKY_ROUTING', + ) + expect(pinned.decided_gateway).toBe('adyen') + expect(pinned.routing_approach).toBe('STICKY_ROUTING') + }) + + test('sticky state is scoped to the payment-method combo', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('combo') + + const seedPaymentId = factory.paymentId('seed') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: seedPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: seedPaymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'adyen' && body.routing_approach === 'STICKY_ROUTING', + ) + + // A different combo for the same customer has no counts — no sticky label. + const otherCombo = await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { + paymentId: factory.paymentId('card'), + customerId, + paymentMethod: 'VISA', + paymentMethodType: 'CARD', + }, + }), + ) + expect(otherCombo.status).toBe(200) + expect(otherCombo.body.routing_approach).not.toBe('STICKY_ROUTING') + }) + + test('gateway failures erode the habit until the pin releases', async ({ api, merchant }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('erode') + + // Build a habit of exactly one success on adyen… + const seedPaymentId = factory.paymentId('seed') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: seedPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: seedPaymentId, + gateway: 'adyen', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'adyen' && body.routing_approach === 'STICKY_ROUTING', + ) + + // …then one gateway failure (a different payment) subtracts it back to zero. + const failPaymentId = factory.paymentId('fail') + await api.decideGateway( + decideRequest(merchant.id, customerId, { + paymentInfo: { paymentId: failPaymentId, customerId, paymentMethod: PM, paymentMethodType: PMT }, + }), + ) + const fb = await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: failPaymentId, + gateway: 'adyen', + status: 'AUTHORIZATION_FAILED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + expect(fb.status).toBe(200) + + // A zeroed habit is no habit: the pin (and its label) must disappear. + const released = await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.routing_approach !== 'STICKY_ROUTING', + ) + expect(released.routing_approach).not.toBe('STICKY_ROUTING') + }) + + test('a late webhook with inline fields records without the decide-time snapshot', async ({ + api, + merchant, + }) => { + await api.createSuccessRateConfig(merchant.id) + await enableSticky(api, merchant.id) + const customerId = factory.customerId('late') + + // No prior decide for this paymentId: the snapshot never existed, so the write can + // only come from the payload fields (the >30-min-webhook path, compressed in time). + const fb = await api.updateGatewayScore({ + merchantId: merchant.id, + paymentId: factory.paymentId('nodecide'), + gateway: 'checkout', + status: 'CHARGED', + customerId, + paymentMethod: PM, + paymentMethodType: PMT, + }) + expect(fb.status).toBe(200) + + const pinned = await pollDecideUntil( + api, + () => decideRequest(merchant.id, customerId), + (body) => body.decided_gateway === 'checkout' && body.routing_approach === 'STICKY_ROUTING', + ) + expect(pinned.decided_gateway).toBe('checkout') + expect(pinned.routing_approach).toBe('STICKY_ROUTING') + }) +}) diff --git a/website/dist/assets/index-BNDMqUsk.js b/website/dist/assets/index-BNDMqUsk.js new file mode 100644 index 00000000..99bd599f --- /dev/null +++ b/website/dist/assets/index-BNDMqUsk.js @@ -0,0 +1,641 @@ +var GJ=Object.defineProperty;var qJ=(t,e,n)=>e in t?GJ(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var VM=(t,e,n)=>qJ(t,typeof e!="symbol"?e+"":e,n);function KJ(t,e){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var vv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Y9={exports:{}},$k={},X9={exports:{}},qt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var by=Symbol.for("react.element"),YJ=Symbol.for("react.portal"),XJ=Symbol.for("react.fragment"),JJ=Symbol.for("react.strict_mode"),ZJ=Symbol.for("react.profiler"),QJ=Symbol.for("react.provider"),eZ=Symbol.for("react.context"),tZ=Symbol.for("react.forward_ref"),nZ=Symbol.for("react.suspense"),rZ=Symbol.for("react.memo"),aZ=Symbol.for("react.lazy"),WM=Symbol.iterator;function sZ(t){return t===null||typeof t!="object"?null:(t=WM&&t[WM]||t["@@iterator"],typeof t=="function"?t:null)}var J9={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Z9=Object.assign,Q9={};function dm(t,e,n){this.props=t,this.context=e,this.refs=Q9,this.updater=n||J9}dm.prototype.isReactComponent={};dm.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};dm.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function eB(){}eB.prototype=dm.prototype;function oO(t,e,n){this.props=t,this.context=e,this.refs=Q9,this.updater=n||J9}var lO=oO.prototype=new eB;lO.constructor=oO;Z9(lO,dm.prototype);lO.isPureReactComponent=!0;var HM=Array.isArray,tB=Object.prototype.hasOwnProperty,cO={current:null},nB={key:!0,ref:!0,__self:!0,__source:!0};function rB(t,e,n){var r,a={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)tB.call(e,r)&&!nB.hasOwnProperty(r)&&(a[r]=e[r]);var l=arguments.length-2;if(l===1)a.children=n;else if(1>>1,$=V[G];if(0>>1;Ga(z,H))U<$&&0>a(ee,z)?(V[G]=ee,V[U]=H,G=U):(V[G]=z,V[R]=H,G=R);else if(U<$&&0>a(ee,H))V[G]=ee,V[U]=H,G=U;else break e}}return Y}function a(V,Y){var H=V.sortIndex-Y.sortIndex;return H!==0?H:V.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,m=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(V){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=V)r(u),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=n(u)}}function j(V){if(x=!1,w(V),!m)if(n(c)!==null)m=!0,X(k);else{var Y=n(u);Y!==null&&Q(j,Y.startTime-V)}}function k(V,Y){m=!1,x&&(x=!1,b(N),N=-1),p=!0;var H=h;try{for(w(Y),f=n(c);f!==null&&(!(f.expirationTime>Y)||V&&!M());){var G=f.callback;if(typeof G=="function"){f.callback=null,h=f.priorityLevel;var $=G(f.expirationTime<=Y);Y=t.unstable_now(),typeof $=="function"?f.callback=$:f===n(c)&&r(c),w(Y)}else r(c);f=n(c)}if(f!==null)var F=!0;else{var R=n(u);R!==null&&Q(j,R.startTime-Y),F=!1}return F}finally{f=null,h=H,p=!1}}var _=!1,S=null,N=-1,E=5,P=-1;function M(){return!(t.unstable_now()-PV||125G?(V.sortIndex=H,e(u,V),n(c)===null&&V===n(u)&&(x?(b(N),N=-1):x=!0,Q(j,H-G))):(V.sortIndex=$,e(c,V),m||p||(m=!0,X(k))),V},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(V){var Y=h;return function(){var H=h;h=Y;try{return V.apply(this,arguments)}finally{h=H}}}})(lB);oB.exports=lB;var gZ=oB.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var xZ=g,mi=gZ;function $e(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$N=Object.prototype.hasOwnProperty,yZ=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,qM={},KM={};function vZ(t){return $N.call(KM,t)?!0:$N.call(qM,t)?!1:yZ.test(t)?KM[t]=!0:(qM[t]=!0,!1)}function bZ(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function wZ(t,e,n,r){if(e===null||typeof e>"u"||bZ(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function bs(t,e,n,r,a,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var za={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){za[t]=new bs(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];za[e]=new bs(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){za[t]=new bs(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){za[t]=new bs(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){za[t]=new bs(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){za[t]=new bs(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){za[t]=new bs(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){za[t]=new bs(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){za[t]=new bs(t,5,!1,t.toLowerCase(),null,!1,!1)});var dO=/[\-:]([a-z])/g;function fO(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){za[t]=new bs(t,1,!1,t.toLowerCase(),null,!1,!1)});za.xlinkHref=new bs("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){za[t]=new bs(t,1,!1,t.toLowerCase(),null,!0,!0)});function hO(t,e,n,r){var a=za.hasOwnProperty(e)?za[e]:null;(a!==null?a.type!==0:r||!(2l||a[o]!==s[l]){var c=` +`+a[o].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=o&&0<=l);break}}}finally{$2=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?zg(t):""}function kZ(t){switch(t.tag){case 5:return zg(t.type);case 16:return zg("Lazy");case 13:return zg("Suspense");case 19:return zg("SuspenseList");case 0:case 2:case 15:return t=L2(t.type,!1),t;case 11:return t=L2(t.type.render,!1),t;case 1:return t=L2(t.type,!0),t;default:return""}}function zN(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case gh:return"Fragment";case mh:return"Portal";case LN:return"Profiler";case pO:return"StrictMode";case FN:return"Suspense";case BN:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case dB:return(t.displayName||"Context")+".Consumer";case uB:return(t._context.displayName||"Context")+".Provider";case mO:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case gO:return e=t.displayName||null,e!==null?e:zN(t.type)||"Memo";case Fc:e=t._payload,t=t._init;try{return zN(t(e))}catch{}}return null}function jZ(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return zN(e);case 8:return e===pO?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Nu(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function hB(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function SZ(t){var e=hB(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function kv(t){t._valueTracker||(t._valueTracker=SZ(t))}function pB(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=hB(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function k1(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function UN(t,e){var n=e.checked;return vr({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function XM(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=Nu(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function mB(t,e){e=e.checked,e!=null&&hO(t,"checked",e,!1)}function VN(t,e){mB(t,e);var n=Nu(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?WN(t,e.type,n):e.hasOwnProperty("defaultValue")&&WN(t,e.type,Nu(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function JM(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function WN(t,e,n){(e!=="number"||k1(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var Ug=Array.isArray;function Fh(t,e,n,r){if(t=t.options,e){e={};for(var a=0;a"+e.valueOf().toString()+"",e=jv.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Ux(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var ux={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},_Z=["Webkit","ms","Moz","O"];Object.keys(ux).forEach(function(t){_Z.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),ux[e]=ux[t]})});function vB(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||ux.hasOwnProperty(t)&&ux[t]?(""+e).trim():e+"px"}function bB(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=vB(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,a):t[n]=a}}var NZ=vr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function qN(t,e){if(e){if(NZ[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error($e(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error($e(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error($e(61))}if(e.style!=null&&typeof e.style!="object")throw Error($e(62))}}function KN(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var YN=null;function xO(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var XN=null,Bh=null,zh=null;function eR(t){if(t=jy(t)){if(typeof XN!="function")throw Error($e(280));var e=t.stateNode;e&&(e=Uk(e),XN(t.stateNode,t.type,e))}}function wB(t){Bh?zh?zh.push(t):zh=[t]:Bh=t}function kB(){if(Bh){var t=Bh,e=zh;if(zh=Bh=null,eR(t),e)for(t=0;t>>=0,t===0?32:31-($Z(t)/LZ|0)|0}var Sv=64,_v=4194304;function Vg(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function N1(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,a=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~a;l!==0?r=Vg(l):(s&=o,s!==0&&(r=Vg(s)))}else o=n&~a,o!==0?r=Vg(o):s!==0&&(r=Vg(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&a)&&(a=r&-r,s=e&-e,a>=s||a===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function wy(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-No(e),t[e]=n}function UZ(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=fx),cR=" ",uR=!1;function UB(t,e){switch(t){case"keyup":return gQ.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function VB(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var xh=!1;function yQ(t,e){switch(t){case"compositionend":return VB(e);case"keypress":return e.which!==32?null:(uR=!0,cR);case"textInput":return t=e.data,t===cR&&uR?null:t;default:return null}}function vQ(t,e){if(xh)return t==="compositionend"||!_O&&UB(t,e)?(t=BB(),Yb=kO=Zc=null,xh=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pR(n)}}function qB(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?qB(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function KB(){for(var t=window,e=k1();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=k1(t.document)}return e}function NO(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function EQ(t){var e=KB(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&qB(n.ownerDocument.documentElement,n)){if(r!==null&&NO(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var a=n.textContent.length,s=Math.min(r.start,a);r=r.end===void 0?s:Math.min(r.end,a),!t.extend&&s>r&&(a=r,r=s,s=a),a=mR(n,s);var o=mR(n,r);a&&o&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(a.node,a.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,yh=null,nC=null,px=null,rC=!1;function gR(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;rC||yh==null||yh!==k1(r)||(r=yh,"selectionStart"in r&&NO(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),px&&Kx(px,r)||(px=r,r=A1(nC,"onSelect"),0wh||(t.current=cC[wh],cC[wh]=null,wh--)}function Zn(t,e){wh++,cC[wh]=t.current,t.current=e}var Cu={},ns=Vu(Cu),Vs=Vu(!1),Yd=Cu;function fp(t,e){var n=t.type.contextTypes;if(!n)return Cu;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var a={},s;for(s in n)a[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=a),a}function Ws(t){return t=t.childContextTypes,t!=null}function T1(){ir(Vs),ir(ns)}function jR(t,e,n){if(ns.current!==Cu)throw Error($e(168));Zn(ns,e),Zn(Vs,n)}function rz(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in e))throw Error($e(108,jZ(t)||"Unknown",a));return vr({},n,r)}function P1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Cu,Yd=ns.current,Zn(ns,t),Zn(Vs,Vs.current),!0}function SR(t,e,n){var r=t.stateNode;if(!r)throw Error($e(169));n?(t=rz(t,e,Yd),r.__reactInternalMemoizedMergedChildContext=t,ir(Vs),ir(ns),Zn(ns,t)):ir(Vs),Zn(Vs,n)}var ql=null,Vk=!1,Z2=!1;function az(t){ql===null?ql=[t]:ql.push(t)}function BQ(t){Vk=!0,az(t)}function Wu(){if(!Z2&&ql!==null){Z2=!0;var t=0,e=Nn;try{var n=ql;for(Nn=1;t>=o,a-=o,Xl=1<<32-No(e)+a|n<N?(E=S,S=null):E=S.sibling;var P=h(b,S,w[N],j);if(P===null){S===null&&(S=E);break}t&&S&&P.alternate===null&&e(b,S),v=s(P,v,N),_===null?k=P:_.sibling=P,_=P,S=E}if(N===w.length)return n(b,S),fr&&dd(b,N),k;if(S===null){for(;NN?(E=S,S=null):E=S.sibling;var M=h(b,S,P.value,j);if(M===null){S===null&&(S=E);break}t&&S&&M.alternate===null&&e(b,S),v=s(M,v,N),_===null?k=M:_.sibling=M,_=M,S=E}if(P.done)return n(b,S),fr&&dd(b,N),k;if(S===null){for(;!P.done;N++,P=w.next())P=f(b,P.value,j),P!==null&&(v=s(P,v,N),_===null?k=P:_.sibling=P,_=P);return fr&&dd(b,N),k}for(S=r(b,S);!P.done;N++,P=w.next())P=p(S,b,N,P.value,j),P!==null&&(t&&P.alternate!==null&&S.delete(P.key===null?N:P.key),v=s(P,v,N),_===null?k=P:_.sibling=P,_=P);return t&&S.forEach(function(A){return e(b,A)}),fr&&dd(b,N),k}function y(b,v,w,j){if(typeof w=="object"&&w!==null&&w.type===gh&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case wv:e:{for(var k=w.key,_=v;_!==null;){if(_.key===k){if(k=w.type,k===gh){if(_.tag===7){n(b,_.sibling),v=a(_,w.props.children),v.return=b,b=v;break e}}else if(_.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Fc&&CR(k)===_.type){n(b,_.sibling),v=a(_,w.props),v.ref=lg(b,_,w),v.return=b,b=v;break e}n(b,_);break}else e(b,_);_=_.sibling}w.type===gh?(v=Fd(w.props.children,b.mode,j,w.key),v.return=b,b=v):(j=r1(w.type,w.key,w.props,null,b.mode,j),j.ref=lg(b,v,w),j.return=b,b=j)}return o(b);case mh:e:{for(_=w.key;v!==null;){if(v.key===_)if(v.tag===4&&v.stateNode.containerInfo===w.containerInfo&&v.stateNode.implementation===w.implementation){n(b,v.sibling),v=a(v,w.children||[]),v.return=b,b=v;break e}else{n(b,v);break}else e(b,v);v=v.sibling}v=iS(w,b.mode,j),v.return=b,b=v}return o(b);case Fc:return _=w._init,y(b,v,_(w._payload),j)}if(Ug(w))return m(b,v,w,j);if(rg(w))return x(b,v,w,j);Pv(b,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,v!==null&&v.tag===6?(n(b,v.sibling),v=a(v,w),v.return=b,b=v):(n(b,v),v=sS(w,b.mode,j),v.return=b,b=v),o(b)):n(b,v)}return y}var pp=lz(!0),cz=lz(!1),D1=Vu(null),I1=null,Sh=null,OO=null;function TO(){OO=Sh=I1=null}function PO(t){var e=D1.current;ir(D1),t._currentValue=e}function fC(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Vh(t,e){I1=t,OO=Sh=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&($s=!0),t.firstContext=null)}function qi(t){var e=t._currentValue;if(OO!==t)if(t={context:t,memoizedValue:e,next:null},Sh===null){if(I1===null)throw Error($e(308));Sh=t,I1.dependencies={lanes:0,firstContext:t}}else Sh=Sh.next=t;return e}var kd=null;function MO(t){kd===null?kd=[t]:kd.push(t)}function uz(t,e,n,r){var a=e.interleaved;return a===null?(n.next=n,MO(e)):(n.next=a.next,a.next=n),e.interleaved=n,dc(t,r)}function dc(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Bc=!1;function RO(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function dz(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function rc(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function mu(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,cn&2){var a=r.pending;return a===null?e.next=e:(e.next=a.next,a.next=e),r.pending=e,dc(t,n)}return a=r.interleaved,a===null?(e.next=e,MO(r)):(e.next=a.next,a.next=e),r.interleaved=e,dc(t,n)}function Jb(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,vO(t,n)}}function ER(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?a=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?a=s=e:s=s.next=e}else a=s=e;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function $1(t,e,n,r){var a=t.updateQueue;Bc=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?s=u:o.next=u,o=c;var d=t.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(s!==null){var f=a.baseState;o=0,d=u=c=null,l=s;do{var h=l.lane,p=l.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,x=l;switch(h=e,p=n,x.tag){case 1:if(m=x.payload,typeof m=="function"){f=m.call(p,f,h);break e}f=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=x.payload,h=typeof m=="function"?m.call(p,f,h):m,h==null)break e;f=vr({},f,h);break e;case 2:Bc=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,h=a.effects,h===null?a.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=p,c=f):d=d.next=p,o|=h;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;h=l,l=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);if(d===null&&(c=f),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,e=a.shared.interleaved,e!==null){a=e;do o|=a.lane,a=a.next;while(a!==e)}else s===null&&(a.shared.lanes=0);Zd|=o,t.lanes=o,t.memoizedState=f}}function AR(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=eS.transition;eS.transition={};try{t(!1),e()}finally{Nn=n,eS.transition=r}}function Ez(){return Ki().memoizedState}function WQ(t,e,n){var r=xu(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Az(t))Oz(e,n);else if(n=uz(t,e,n,r),n!==null){var a=gs();Co(n,t,r,a),Tz(n,e,r)}}function HQ(t,e,n){var r=xu(t),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Az(t))Oz(e,a);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(a.hasEagerState=!0,a.eagerState=l,Eo(l,o)){var c=e.interleaved;c===null?(a.next=a,MO(e)):(a.next=c.next,c.next=a),e.interleaved=a;return}}catch{}finally{}n=uz(t,e,a,r),n!==null&&(a=gs(),Co(n,t,r,a),Tz(n,e,r))}}function Az(t){var e=t.alternate;return t===yr||e!==null&&e===yr}function Oz(t,e){mx=F1=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Tz(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,vO(t,n)}}var B1={readContext:qi,useCallback:Wa,useContext:Wa,useEffect:Wa,useImperativeHandle:Wa,useInsertionEffect:Wa,useLayoutEffect:Wa,useMemo:Wa,useReducer:Wa,useRef:Wa,useState:Wa,useDebugValue:Wa,useDeferredValue:Wa,useTransition:Wa,useMutableSource:Wa,useSyncExternalStore:Wa,useId:Wa,unstable_isNewReconciler:!1},GQ={readContext:qi,useCallback:function(t,e){return Ko().memoizedState=[t,e===void 0?null:e],t},useContext:qi,useEffect:TR,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,Qb(4194308,4,jz.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Qb(4194308,4,t,e)},useInsertionEffect:function(t,e){return Qb(4,2,t,e)},useMemo:function(t,e){var n=Ko();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Ko();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=WQ.bind(null,yr,t),[r.memoizedState,t]},useRef:function(t){var e=Ko();return t={current:t},e.memoizedState=t},useState:OR,useDebugValue:UO,useDeferredValue:function(t){return Ko().memoizedState=t},useTransition:function(){var t=OR(!1),e=t[0];return t=VQ.bind(null,t[1]),Ko().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=yr,a=Ko();if(fr){if(n===void 0)throw Error($e(407));n=n()}else{if(n=e(),ja===null)throw Error($e(349));Jd&30||mz(r,e,n)}a.memoizedState=n;var s={value:n,getSnapshot:e};return a.queue=s,TR(xz.bind(null,r,s,t),[t]),r.flags|=2048,n0(9,gz.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=Ko(),e=ja.identifierPrefix;if(fr){var n=Jl,r=Xl;n=(r&~(1<<32-No(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=e0++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[Zo]=e,t[Jx]=r,zz(t,e,!1,!1),e.stateNode=t;e:{switch(o=KN(n,r),n){case"dialog":nr("cancel",t),nr("close",t),a=r;break;case"iframe":case"object":case"embed":nr("load",t),a=r;break;case"video":case"audio":for(a=0;axp&&(e.flags|=128,r=!0,cg(s,!1),e.lanes=4194304)}else{if(!r)if(t=L1(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),cg(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!fr)return Ha(e),null}else 2*Dr()-s.renderingStartTime>xp&&n!==1073741824&&(e.flags|=128,r=!0,cg(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Dr(),e.sibling=null,n=gr.current,Zn(gr,r?n&1|2:n&1),e):(Ha(e),null);case 22:case 23:return KO(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ii&1073741824&&(Ha(e),e.subtreeFlags&6&&(e.flags|=8192)):Ha(e),null;case 24:return null;case 25:return null}throw Error($e(156,e.tag))}function eee(t,e){switch(EO(e),e.tag){case 1:return Ws(e.type)&&T1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return mp(),ir(Vs),ir(ns),$O(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return IO(e),null;case 13:if(ir(gr),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error($e(340));hp()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ir(gr),null;case 4:return mp(),null;case 10:return PO(e.type._context),null;case 22:case 23:return KO(),null;case 24:return null;default:return null}}var Rv=!1,Ya=!1,tee=typeof WeakSet=="function"?WeakSet:Set,ot=null;function _h(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){_r(t,e,r)}else n.current=null}function wC(t,e,n){try{n()}catch(r){_r(t,e,r)}}var UR=!1;function nee(t,e){if(aC=C1,t=KB(),NO(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=t,h=null;t:for(;;){for(var p;f!==n||a!==0&&f.nodeType!==3||(l=o+a),f!==s||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===t)break t;if(h===n&&++u===a&&(l=o),h===s&&++d===r&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(sC={focusedElem:t,selectionRange:n},C1=!1,ot=e;ot!==null;)if(e=ot,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,ot=t;else for(;ot!==null;){e=ot;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,y=m.memoizedState,b=e.stateNode,v=b.getSnapshotBeforeUpdate(e.elementType===e.type?x:ho(e.type,x),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=e.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error($e(163))}}catch(j){_r(e,e.return,j)}if(t=e.sibling,t!==null){t.return=e.return,ot=t;break}ot=e.return}return m=UR,UR=!1,m}function gx(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&t)===t){var s=a.destroy;a.destroy=void 0,s!==void 0&&wC(e,n,s)}a=a.next}while(a!==r)}}function Gk(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function kC(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function Wz(t){var e=t.alternate;e!==null&&(t.alternate=null,Wz(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Zo],delete e[Jx],delete e[lC],delete e[LQ],delete e[FQ])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Hz(t){return t.tag===5||t.tag===3||t.tag===4}function VR(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Hz(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function jC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=O1));else if(r!==4&&(t=t.child,t!==null))for(jC(t,e,n),t=t.sibling;t!==null;)jC(t,e,n),t=t.sibling}function SC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(SC(t,e,n),t=t.sibling;t!==null;)SC(t,e,n),t=t.sibling}var Pa=null,po=!1;function Rc(t,e,n){for(n=n.child;n!==null;)Gz(t,e,n),n=n.sibling}function Gz(t,e,n){if(fl&&typeof fl.onCommitFiberUnmount=="function")try{fl.onCommitFiberUnmount(Lk,n)}catch{}switch(n.tag){case 5:Ya||_h(n,e);case 6:var r=Pa,a=po;Pa=null,Rc(t,e,n),Pa=r,po=a,Pa!==null&&(po?(t=Pa,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Pa.removeChild(n.stateNode));break;case 18:Pa!==null&&(po?(t=Pa,n=n.stateNode,t.nodeType===8?J2(t.parentNode,n):t.nodeType===1&&J2(t,n),Gx(t)):J2(Pa,n.stateNode));break;case 4:r=Pa,a=po,Pa=n.stateNode.containerInfo,po=!0,Rc(t,e,n),Pa=r,po=a;break;case 0:case 11:case 14:case 15:if(!Ya&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var s=a,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&wC(n,e,o),a=a.next}while(a!==r)}Rc(t,e,n);break;case 1:if(!Ya&&(_h(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){_r(n,e,l)}Rc(t,e,n);break;case 21:Rc(t,e,n);break;case 22:n.mode&1?(Ya=(r=Ya)||n.memoizedState!==null,Rc(t,e,n),Ya=r):Rc(t,e,n);break;default:Rc(t,e,n)}}function WR(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new tee),e.forEach(function(r){var a=dee.bind(null,t,r);n.has(r)||(n.add(r),r.then(a,a))})}}function oo(t,e){var n=e.deletions;if(n!==null)for(var r=0;ra&&(a=o),r&=~s}if(r=a,r=Dr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*aee(r/1960))-r,10t?16:t,Qc===null)var r=!1;else{if(t=Qc,Qc=null,V1=0,cn&6)throw Error($e(331));var a=cn;for(cn|=4,ot=t.current;ot!==null;){var s=ot,o=s.child;if(ot.flags&16){var l=s.deletions;if(l!==null){for(var c=0;cDr()-GO?Ld(t,0):HO|=n),Hs(t,e)}function e7(t,e){e===0&&(t.mode&1?(e=_v,_v<<=1,!(_v&130023424)&&(_v=4194304)):e=1);var n=gs();t=dc(t,e),t!==null&&(wy(t,e,n),Hs(t,n))}function uee(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),e7(t,n)}function dee(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,a=t.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=t.stateNode;break;default:throw Error($e(314))}r!==null&&r.delete(e),e7(t,n)}var t7;t7=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||Vs.current)$s=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return $s=!1,ZQ(t,e,n);$s=!!(t.flags&131072)}else $s=!1,fr&&e.flags&1048576&&sz(e,R1,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;e1(t,e),t=e.pendingProps;var a=fp(e,ns.current);Vh(e,n),a=FO(null,e,r,t,a,n);var s=BO();return e.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ws(r)?(s=!0,P1(e)):s=!1,e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,RO(e),a.updater=Hk,e.stateNode=a,a._reactInternals=e,pC(e,r,t,n),e=xC(null,e,r,!0,s,n)):(e.tag=0,fr&&s&&CO(e),ls(null,e,a,n),e=e.child),e;case 16:r=e.elementType;e:{switch(e1(t,e),t=e.pendingProps,a=r._init,r=a(r._payload),e.type=r,a=e.tag=hee(r),t=ho(r,t),a){case 0:e=gC(null,e,r,t,n);break e;case 1:e=FR(null,e,r,t,n);break e;case 11:e=$R(null,e,r,t,n);break e;case 14:e=LR(null,e,r,ho(r.type,t),n);break e}throw Error($e(306,r,""))}return e;case 0:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),gC(t,e,r,a,n);case 1:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),FR(t,e,r,a,n);case 3:e:{if(Lz(e),t===null)throw Error($e(387));r=e.pendingProps,s=e.memoizedState,a=s.element,dz(t,e),$1(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){a=gp(Error($e(423)),e),e=BR(t,e,r,n,a);break e}else if(r!==a){a=gp(Error($e(424)),e),e=BR(t,e,r,n,a);break e}else for(di=pu(e.stateNode.containerInfo.firstChild),pi=e,fr=!0,xo=null,n=cz(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(hp(),r===a){e=fc(t,e,n);break e}ls(t,e,r,n)}e=e.child}return e;case 5:return fz(e),t===null&&dC(e),r=e.type,a=e.pendingProps,s=t!==null?t.memoizedProps:null,o=a.children,iC(r,a)?o=null:s!==null&&iC(r,s)&&(e.flags|=32),$z(t,e),ls(t,e,o,n),e.child;case 6:return t===null&&dC(e),null;case 13:return Fz(t,e,n);case 4:return DO(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=pp(e,null,r,n):ls(t,e,r,n),e.child;case 11:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),$R(t,e,r,a,n);case 7:return ls(t,e,e.pendingProps,n),e.child;case 8:return ls(t,e,e.pendingProps.children,n),e.child;case 12:return ls(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,a=e.pendingProps,s=e.memoizedProps,o=a.value,Zn(D1,r._currentValue),r._currentValue=o,s!==null)if(Eo(s.value,o)){if(s.children===a.children&&!Vs.current){e=fc(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=rc(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),fC(s.return,n,e),l.lanes|=n;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error($e(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),fC(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ls(t,e,a.children,n),e=e.child}return e;case 9:return a=e.type,r=e.pendingProps.children,Vh(e,n),a=qi(a),r=r(a),e.flags|=1,ls(t,e,r,n),e.child;case 14:return r=e.type,a=ho(r,e.pendingProps),a=ho(r.type,a),LR(t,e,r,a,n);case 15:return Dz(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),e1(t,e),e.tag=1,Ws(r)?(t=!0,P1(e)):t=!1,Vh(e,n),Pz(e,r,a),pC(e,r,a,n),xC(null,e,r,!0,t,n);case 19:return Bz(t,e,n);case 22:return Iz(t,e,n)}throw Error($e(156,e.tag))};function n7(t,e){return AB(t,e)}function fee(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $i(t,e,n,r){return new fee(t,e,n,r)}function XO(t){return t=t.prototype,!(!t||!t.isReactComponent)}function hee(t){if(typeof t=="function")return XO(t)?1:0;if(t!=null){if(t=t.$$typeof,t===mO)return 11;if(t===gO)return 14}return 2}function yu(t,e){var n=t.alternate;return n===null?(n=$i(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function r1(t,e,n,r,a,s){var o=2;if(r=t,typeof t=="function")XO(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case gh:return Fd(n.children,a,s,e);case pO:o=8,a|=8;break;case LN:return t=$i(12,n,e,a|2),t.elementType=LN,t.lanes=s,t;case FN:return t=$i(13,n,e,a),t.elementType=FN,t.lanes=s,t;case BN:return t=$i(19,n,e,a),t.elementType=BN,t.lanes=s,t;case fB:return Kk(n,a,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case uB:o=10;break e;case dB:o=9;break e;case mO:o=11;break e;case gO:o=14;break e;case Fc:o=16,r=null;break e}throw Error($e(130,t==null?t:typeof t,""))}return e=$i(o,n,e,a),e.elementType=t,e.type=r,e.lanes=s,e}function Fd(t,e,n,r){return t=$i(7,t,r,e),t.lanes=n,t}function Kk(t,e,n,r){return t=$i(22,t,r,e),t.elementType=fB,t.lanes=n,t.stateNode={isHidden:!1},t}function sS(t,e,n){return t=$i(6,t,null,e),t.lanes=n,t}function iS(t,e,n){return e=$i(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function pee(t,e,n,r,a){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=B2(0),this.expirationTimes=B2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=B2(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function JO(t,e,n,r,a,s,o,l,c){return t=new pee(t,e,n,l,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=$i(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},RO(s),t}function mee(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i7)}catch(t){console.error(t)}}i7(),iB.exports=yi;var fs=iB.exports,ZR=fs;IN.createRoot=ZR.createRoot,IN.hydrateRoot=ZR.hydrateRoot;/** + * @remix-run/router v1.23.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function a0(){return a0=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function t3(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function wee(){return Math.random().toString(36).substr(2,8)}function e4(t,e){return{usr:t.state,key:t.key,idx:e}}function AC(t,e,n,r){return n===void 0&&(n=null),a0({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?mm(e):e,{state:n,key:e&&e.key||r||wee()})}function G1(t){let{pathname:e="/",search:n="",hash:r=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function mm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function kee(t,e,n,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:s=!1}=r,o=a.history,l=eu.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(a0({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=eu.Pop;let y=d(),b=y==null?null:y-u;u=y,c&&c({action:l,location:x.location,delta:b})}function h(y,b){l=eu.Push;let v=AC(x.location,y,b);u=d()+1;let w=e4(v,u),j=x.createHref(v);try{o.pushState(w,"",j)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;a.location.assign(j)}s&&c&&c({action:l,location:x.location,delta:1})}function p(y,b){l=eu.Replace;let v=AC(x.location,y,b);u=d();let w=e4(v,u),j=x.createHref(v);o.replaceState(w,"",j),s&&c&&c({action:l,location:x.location,delta:0})}function m(y){let b=a.location.origin!=="null"?a.location.origin:a.location.href,v=typeof y=="string"?y:G1(y);return v=v.replace(/ $/,"%20"),Lr(b,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,b)}let x={get action(){return l},get location(){return t(a,o)},listen(y){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(QR,f),c=y,()=>{a.removeEventListener(QR,f),c=null}},createHref(y){return e(a,y)},createURL:m,encodeLocation(y){let b=m(y);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:p,go(y){return o.go(y)}};return x}var t4;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(t4||(t4={}));function jee(t,e,n){return n===void 0&&(n="/"),See(t,e,n)}function See(t,e,n,r){let a=typeof e=="string"?mm(e):e,s=n3(a.pathname||"/",n);if(s==null)return null;let o=o7(t);_ee(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};c.relativePath.startsWith("/")&&(Lr(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=vu([r,c.relativePath]),d=n.concat(c);s.children&&s.children.length>0&&(Lr(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),o7(s.children,e,d,u)),!(s.path==null&&!s.index)&&e.push({path:u,score:Pee(u,s.index),routesMeta:d})};return t.forEach((s,o)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))a(s,o);else for(let c of l7(s.path))a(s,o,c)}),e}function l7(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,a=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return a?[s,""]:[s];let o=l7(r.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),a&&l.push(...o),l.map(c=>t.startsWith("/")&&c===""?"/":c)}function _ee(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:Mee(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Nee=/^:[\w-]+$/,Cee=3,Eee=2,Aee=1,Oee=10,Tee=-2,n4=t=>t==="*";function Pee(t,e){let n=t.split("/"),r=n.length;return n.some(n4)&&(r+=Tee),e&&(r+=Eee),n.filter(a=>!n4(a)).reduce((a,s)=>a+(Nee.test(s)?Cee:s===""?Aee:Oee),r)}function Mee(t,e){return t.length===e.length&&t.slice(0,-1).every((r,a)=>r===e[a])?t[t.length-1]-e[e.length-1]:0}function Ree(t,e,n){let{routesMeta:r}=t,a={},s="/",o=[];for(let l=0;l{let{paramName:h,isOptional:p}=d;if(h==="*"){let x=l[f]||"";o=s.slice(0,s.length-x.length).replace(/(.)\/+$/,"$1")}const m=l[f];return p&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:t}}function Iee(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),t3(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,e?void 0:"i"),r]}function $ee(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return t3(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function n3(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}const Lee=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Fee=t=>Lee.test(t);function Bee(t,e){e===void 0&&(e="/");let{pathname:n,search:r="",hash:a=""}=typeof t=="string"?mm(t):t,s;if(n)if(Fee(n))s=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),t3(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?s=r4(n.substring(1),"/"):s=r4(n,e)}else s=e;return{pathname:s,search:Vee(r),hash:Wee(a)}}function r4(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function oS(t,e,n,r){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function zee(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function r3(t,e){let n=zee(t);return e?n.map((r,a)=>a===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function a3(t,e,n,r){r===void 0&&(r=!1);let a;typeof t=="string"?a=mm(t):(a=a0({},t),Lr(!a.pathname||!a.pathname.includes("?"),oS("?","pathname","search",a)),Lr(!a.pathname||!a.pathname.includes("#"),oS("#","pathname","hash",a)),Lr(!a.search||!a.search.includes("#"),oS("#","search","hash",a)));let s=t===""||a.pathname==="",o=s?"/":a.pathname,l;if(o==null)l=n;else{let f=e.length-1;if(!r&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),f-=1;a.pathname=h.join("/")}l=f>=0?e[f]:"/"}let c=Bee(a,l),u=o&&o!=="/"&&o.endsWith("/"),d=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const vu=t=>t.join("/").replace(/\/\/+/g,"/"),Uee=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Vee=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Wee=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Hee(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const c7=["post","put","patch","delete"];new Set(c7);const Gee=["get",...c7];new Set(Gee);/** + * React Router v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function s0(){return s0=Object.assign?Object.assign.bind():function(t){for(var e=1;e{l.current=!0}),g.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=a3(u,JSON.parse(o),s,d.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:vu([e,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[e,r,o,s,t])}const Xee=g.createContext(null);function Jee(t){let e=g.useContext(Sl).outlet;return e&&g.createElement(Xee.Provider,{value:t},e)}function f7(){let{matches:t}=g.useContext(Sl),e=t[t.length-1];return e?e.params:{}}function h7(t,e){let{relative:n}=e===void 0?{}:e,{future:r}=g.useContext(Hu),{matches:a}=g.useContext(Sl),{pathname:s}=_l(),o=JSON.stringify(r3(a,r.v7_relativeSplatPath));return g.useMemo(()=>a3(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function Zee(t,e){return Qee(t,e)}function Qee(t,e,n,r){gm()||Lr(!1);let{navigator:a}=g.useContext(Hu),{matches:s}=g.useContext(Sl),o=s[s.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=_l(),d;if(e){var f;let y=typeof e=="string"?mm(e):e;c==="/"||(f=y.pathname)!=null&&f.startsWith(c)||Lr(!1),d=y}else d=u;let h=d.pathname||"/",p=h;if(c!=="/"){let y=c.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(y.length).join("/")}let m=jee(t,{pathname:p}),x=ate(m&&m.map(y=>Object.assign({},y,{params:Object.assign({},l,y.params),pathname:vu([c,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?c:vu([c,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),s,n,r);return e&&x?g.createElement(Qk.Provider,{value:{location:s0({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:eu.Pop}},x):x}function ete(){let t=lte(),e=Hee(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},e),n?g.createElement("pre",{style:a},n):null,null)}const tte=g.createElement(ete,null);class nte extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?g.createElement(Sl.Provider,{value:this.props.routeContext},g.createElement(u7.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function rte(t){let{routeContext:e,match:n,children:r}=t,a=g.useContext(s3);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(Sl.Provider,{value:e},r)}function ate(t,e,n,r){var a;if(e===void 0&&(e=[]),n===void 0&&(n=null),r===void 0&&(r=null),t==null){var s;if(!n)return null;if(n.errors)t=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,l=(a=n)==null?void 0:a.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Lr(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,h)=>{let p,m=!1,x=null,y=null;n&&(p=l&&f.route.id?l[f.route.id]:void 0,x=f.route.errorElement||tte,c&&(u<0&&h===0?(ute("route-fallback"),m=!0,y=null):u===h&&(m=!0,y=f.route.hydrateFallbackElement||null)));let b=e.concat(o.slice(0,h+1)),v=()=>{let w;return p?w=x:m?w=y:f.route.Component?w=g.createElement(f.route.Component,null):f.route.element?w=f.route.element:w=d,g.createElement(rte,{match:f,routeContext:{outlet:d,matches:b,isDataRoute:n!=null},children:w})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(nte,{location:n.location,revalidation:n.revalidation,component:x,error:p,children:v(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):v()},null)}var p7=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(p7||{}),m7=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(m7||{});function ste(t){let e=g.useContext(s3);return e||Lr(!1),e}function ite(t){let e=g.useContext(qee);return e||Lr(!1),e}function ote(t){let e=g.useContext(Sl);return e||Lr(!1),e}function g7(t){let e=ote(),n=e.matches[e.matches.length-1];return n.route.id||Lr(!1),n.route.id}function lte(){var t;let e=g.useContext(u7),n=ite(),r=g7();return e!==void 0?e:(t=n.errors)==null?void 0:t[r]}function cte(){let{router:t}=ste(p7.UseNavigateStable),e=g7(m7.UseNavigateStable),n=g.useRef(!1);return d7(()=>{n.current=!0}),g.useCallback(function(a,s){s===void 0&&(s={}),n.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,s0({fromRouteId:e},s)))},[t,e])}const a4={};function ute(t,e,n){a4[t]||(a4[t]=!0)}function dte(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function vx(t){let{to:e,replace:n,state:r,relative:a}=t;gm()||Lr(!1);let{future:s,static:o}=g.useContext(Hu),{matches:l}=g.useContext(Sl),{pathname:c}=_l(),u=Kr(),d=a3(e,r3(l,s.v7_relativeSplatPath),c,a==="path"),f=JSON.stringify(d);return g.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:a}),[u,f,a,n,r]),null}function x7(t){return Jee(t.context)}function bn(t){Lr(!1)}function fte(t){let{basename:e="/",children:n=null,location:r,navigationType:a=eu.Pop,navigator:s,static:o=!1,future:l}=t;gm()&&Lr(!1);let c=e.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:c,navigator:s,static:o,future:s0({v7_relativeSplatPath:!1},l)}),[c,l,s,o]);typeof r=="string"&&(r=mm(r));let{pathname:d="/",search:f="",hash:h="",state:p=null,key:m="default"}=r,x=g.useMemo(()=>{let y=n3(d,c);return y==null?null:{location:{pathname:y,search:f,hash:h,state:p,key:m},navigationType:a}},[c,d,f,h,p,m,a]);return x==null?null:g.createElement(Hu.Provider,{value:u},g.createElement(Qk.Provider,{children:n,value:x}))}function hte(t){let{children:e,location:n}=t;return Zee(OC(e),n)}new Promise(()=>{});function OC(t,e){e===void 0&&(e=[]);let n=[];return g.Children.forEach(t,(r,a)=>{if(!g.isValidElement(r))return;let s=[...e,a];if(r.type===g.Fragment){n.push.apply(n,OC(r.props.children,s));return}r.type!==bn&&Lr(!1),!r.props.index||!r.props.children||Lr(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=OC(r.props.children,s)),n.push(o)}),n}/** + * React Router DOM v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function TC(){return TC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(n[a]=t[a]);return n}function mte(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function gte(t,e){return t.button===0&&(!e||e==="_self")&&!mte(t)}function PC(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let r=t[n];return e.concat(Array.isArray(r)?r.map(a=>[n,a]):[[n,r]])},[]))}function xte(t,e){let n=PC(t);return e&&e.forEach((r,a)=>{n.has(a)||e.getAll(a).forEach(s=>{n.append(a,s)})}),n}const yte=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],vte="6";try{window.__reactRouterVersion=vte}catch{}const bte="startTransition",s4=fm[bte];function wte(t){let{basename:e,children:n,future:r,window:a}=t,s=g.useRef();s.current==null&&(s.current=bee({window:a,v5Compat:!0}));let o=s.current,[l,c]=g.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=g.useCallback(f=>{u&&s4?s4(()=>c(f)):c(f)},[c,u]);return g.useLayoutEffect(()=>o.listen(d),[o,d]),g.useEffect(()=>dte(r),[r]),g.createElement(fte,{basename:e,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const kte=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",jte=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ef=g.forwardRef(function(e,n){let{onClick:r,relative:a,reloadDocument:s,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=e,h=pte(e,yte),{basename:p}=g.useContext(Hu),m,x=!1;if(typeof u=="string"&&jte.test(u)&&(m=u,kte))try{let w=new URL(window.location.href),j=u.startsWith("//")?new URL(w.protocol+u):new URL(u),k=n3(j.pathname,p);j.origin===w.origin&&k!=null?u=k+j.search+j.hash:x=!0}catch{}let y=Kee(u,{relative:a}),b=Ste(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:a,viewTransition:f});function v(w){r&&r(w),w.defaultPrevented||b(w)}return g.createElement("a",TC({},h,{href:m||y,onClick:x||s?r:v,ref:n,target:c}))});var i4;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(i4||(i4={}));var o4;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(o4||(o4={}));function Ste(t,e){let{target:n,replace:r,state:a,preventScrollReset:s,relative:o,viewTransition:l}=e===void 0?{}:e,c=Kr(),u=_l(),d=h7(t,{relative:o});return g.useCallback(f=>{if(gte(f,n)){f.preventDefault();let h=r!==void 0?r:G1(u)===G1(d);c(t,{replace:h,state:a,preventScrollReset:s,relative:o,viewTransition:l})}},[u,c,d,r,a,n,t,s,o,l])}function Nl(t){let e=g.useRef(PC(t)),n=g.useRef(!1),r=_l(),a=g.useMemo(()=>xte(r.search,n.current?null:e.current),[r.search]),s=Kr(),o=g.useCallback((l,c)=>{const u=PC(typeof l=="function"?l(a):l);n.current=!0,s("?"+u,c)},[s,a]);return[a,o]}var y7={exports:{}},v7={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yp=g;function _te(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Nte=typeof Object.is=="function"?Object.is:_te,Cte=yp.useState,Ete=yp.useEffect,Ate=yp.useLayoutEffect,Ote=yp.useDebugValue;function Tte(t,e){var n=e(),r=Cte({inst:{value:n,getSnapshot:e}}),a=r[0].inst,s=r[1];return Ate(function(){a.value=n,a.getSnapshot=e,lS(a)&&s({inst:a})},[t,n,e]),Ete(function(){return lS(a)&&s({inst:a}),t(function(){lS(a)&&s({inst:a})})},[t]),Ote(n),n}function lS(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Nte(t,n)}catch{return!0}}function Pte(t,e){return e()}var Mte=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Pte:Tte;v7.useSyncExternalStore=yp.useSyncExternalStore!==void 0?yp.useSyncExternalStore:Mte;y7.exports=v7;var MC=y7.exports;const b7=0,w7=1,k7=2,l4=3;var c4=Object.prototype.hasOwnProperty;function RC(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&RC(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(c4.call(t,n)&&++r&&!c4.call(e,n)||!(n in e)||!RC(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}const Kl=new WeakMap,Zl=()=>{},Xa=Zl(),DC=Object,Jt=t=>t===Xa,Qo=t=>typeof t=="function",Eu=(t,e)=>({...t,...e}),j7=t=>Qo(t.then),cS={},$v={},i3="undefined",_y=typeof window!=i3,IC=typeof document!=i3,Rte=_y&&"Deno"in window,Dte=()=>_y&&typeof window.requestAnimationFrame!=i3,S7=(t,e)=>{const n=Kl.get(t);return[()=>!Jt(e)&&t.get(e)||cS,r=>{if(!Jt(e)){const a=t.get(e);e in $v||($v[e]=a),n[5](e,Eu(a,r),a||cS)}},n[6],()=>!Jt(e)&&e in $v?$v[e]:!Jt(e)&&t.get(e)||cS]};let $C=!0;const Ite=()=>$C,[LC,FC]=_y&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Zl,Zl],$te=()=>{const t=IC&&document.visibilityState;return Jt(t)||t!=="hidden"},Lte=t=>(IC&&document.addEventListener("visibilitychange",t),LC("focus",t),()=>{IC&&document.removeEventListener("visibilitychange",t),FC("focus",t)}),Fte=t=>{const e=()=>{$C=!0,t()},n=()=>{$C=!1};return LC("online",e),LC("offline",n),()=>{FC("online",e),FC("offline",n)}},Bte={isOnline:Ite,isVisible:$te},zte={initFocus:Lte,initReconnect:Fte},u4=!J.useId,Hh=!_y||Rte,Ute=t=>Dte()?window.requestAnimationFrame(t):setTimeout(t,1),uS=Hh?g.useEffect:g.useLayoutEffect,dS=typeof navigator<"u"&&navigator.connection,d4=!Hh&&dS&&(["slow-2g","2g"].includes(dS.effectiveType)||dS.saveData),Lv=new WeakMap,Vte=t=>DC.prototype.toString.call(t),fS=(t,e)=>t===`[object ${e}]`;let Wte=0;const BC=t=>{const e=typeof t,n=Vte(t),r=fS(n,"Date"),a=fS(n,"RegExp"),s=fS(n,"Object");let o,l;if(DC(t)===t&&!r&&!a){if(o=Lv.get(t),o)return o;if(o=++Wte+"~",Lv.set(t,o),Array.isArray(t)){for(o="@",l=0;l{if(Qo(t))try{t=t()}catch{t=""}const e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?BC(t):"",[t,e]};let Hte=0;const zC=()=>++Hte;async function _7(...t){const[e,n,r,a]=t,s=Eu({populateCache:!0,throwOnError:!0},typeof a=="boolean"?{revalidate:a}:a||{});let o=s.populateCache;const l=s.rollbackOnError;let c=s.optimisticData;const u=h=>typeof l=="function"?l(h):l!==!1,d=s.throwOnError;if(Qo(n)){const h=n,p=[],m=e.keys();for(const x of m)!/^\$(inf|sub)\$/.test(x)&&h(e.get(x)._k)&&p.push(x);return Promise.all(p.map(f))}return f(n);async function f(h){const[p]=o3(h);if(!p)return;const[m,x]=S7(e,p),[y,b,v,w]=Kl.get(e),j=()=>{const D=y[p];return(Qo(s.revalidate)?s.revalidate(m().data,h):s.revalidate!==!1)&&(delete v[p],delete w[p],D&&D[0])?D[0](k7).then(()=>m().data):m().data};if(t.length<3)return j();let k=r,_,S=!1;const N=zC();b[p]=[N,0];const E=!Jt(c),P=m(),M=P.data,A=P._c,O=Jt(A)?M:A;if(E&&(c=Qo(c)?c(O,M):c,x({data:c,_c:O})),Qo(k))try{k=k(O)}catch(D){_=D,S=!0}if(k&&j7(k))if(k=await k.catch(D=>{_=D,S=!0}),N!==b[p][0]){if(S)throw _;return k}else S&&E&&u(_)&&(o=!0,x({data:O,_c:Xa}));if(o&&!S)if(Qo(o)){const D=o(k,O);x({data:D,error:Xa,_c:Xa})}else x({data:k,error:Xa,_c:Xa});if(b[p][1]=zC(),Promise.resolve(j()).then(()=>{x({_c:Xa})}),S){if(d)throw _;return}return k}}const f4=(t,e)=>{for(const n in t)t[n][0]&&t[n][0](e)},Gte=(t,e)=>{if(!Kl.has(t)){const n=Eu(zte,e),r=Object.create(null),a=_7.bind(Xa,t);let s=Zl;const o=Object.create(null),l=(d,f)=>{const h=o[d]||[];return o[d]=h,h.push(f),()=>h.splice(h.indexOf(f),1)},c=(d,f,h)=>{t.set(d,f);const p=o[d];if(p)for(const m of p)m(f,h)},u=()=>{if(!Kl.has(t)&&(Kl.set(t,[r,Object.create(null),Object.create(null),Object.create(null),a,c,l]),!Hh)){const d=n.initFocus(setTimeout.bind(Xa,f4.bind(Xa,r,b7))),f=n.initReconnect(setTimeout.bind(Xa,f4.bind(Xa,r,w7)));s=()=>{d&&d(),f&&f(),Kl.delete(t)}}};return u(),[t,a,u,s]}return[t,Kl.get(t)[4]]},qte=(t,e,n,r,a)=>{const s=n.errorRetryCount,o=a.retryCount,l=~~((Math.random()+.5)*(1<<(o<8?o:8)))*n.errorRetryInterval;!Jt(s)&&o>s||setTimeout(r,l,a)},Kte=RC,[N7,C7]=Gte(new Map),Yte=Eu({onLoadingSlow:Zl,onSuccess:Zl,onError:Zl,onErrorRetry:qte,onDiscarded:Zl,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:d4?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:d4?5e3:3e3,compare:Kte,isPaused:()=>!1,cache:N7,mutate:C7,fallback:{}},Bte),Xte=(t,e)=>{const n=Eu(t,e);if(e){const{use:r,fallback:a}=t,{use:s,fallback:o}=e;r&&s&&(n.use=r.concat(s)),a&&o&&(n.fallback=Eu(a,o))}return n},Jte=g.createContext({}),Zte="$inf$",E7=_y&&window.__SWR_DEVTOOLS_USE__,Qte=E7?window.__SWR_DEVTOOLS_USE__:[],ene=()=>{E7&&(window.__SWR_DEVTOOLS_REACT__=J)},tne=t=>Qo(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],ej=()=>{const t=g.useContext(Jte);return g.useMemo(()=>Eu(Yte,t),[t])},nne=t=>(e,n,r)=>t(e,n&&((...s)=>{const[o]=o3(e),[,,,l]=Kl.get(N7);if(o.startsWith(Zte))return n(...s);const c=l[o];return Jt(c)?n(...s):(delete l[o],c)}),r),rne=Qte.concat(nne),ane=t=>function(...n){const r=ej(),[a,s,o]=tne(n),l=Xte(r,o);let c=t;const{use:u}=l,d=(u||[]).concat(rne);for(let f=d.length;f--;)c=d[f](c);return c(a,s||l.fetcher||null,l)},sne=(t,e,n)=>{const r=e[t]||(e[t]=[]);return r.push(n),()=>{const a=r.indexOf(n);a>=0&&(r[a]=r[r.length-1],r.pop())}};ene();const hS=J.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}}),pS={dedupe:!0},h4=Promise.resolve(Xa),ine=()=>Zl,one=(t,e,n)=>{const{cache:r,compare:a,suspense:s,fallbackData:o,revalidateOnMount:l,revalidateIfStale:c,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:h,strictServerPrefetchWarning:p}=n,[m,x,y,b]=Kl.get(r),[v,w]=o3(t),j=g.useRef(!1),k=g.useRef(!1),_=g.useRef(v),S=g.useRef(e),N=g.useRef(n),E=()=>N.current,P=()=>E().isVisible()&&E().isOnline(),[M,A,O,D]=S7(r,v),I=g.useRef({}).current,X=Jt(o)?Jt(n.fallback)?Xa:n.fallback[v]:o,Q=(ve,Ne)=>{for(const je in I){const Me=je;if(Me==="data"){if(!a(ve[Me],Ne[Me])&&(!Jt(ve[Me])||!a(U,Ne[Me])))return!1}else if(Ne[Me]!==ve[Me])return!1}return!0},V=!j.current,Y=g.useMemo(()=>{const ve=M(),Ne=D(),je=B=>{const se=Eu(B);return delete se._k,(()=>{if(!v||!e||E().isPaused())return!1;if(V&&!Jt(l))return l;const Ce=Jt(X)?se.data:X;return Jt(Ce)||c})()?{isValidating:!0,isLoading:!0,...se}:se},Me=je(ve),Be=ve===Ne?Me:je(Ne);let tt=Me;return[()=>{const B=je(M());return Q(B,tt)?(tt.data=B.data,tt.isLoading=B.isLoading,tt.isValidating=B.isValidating,tt.error=B.error,tt):(tt=B,B)},()=>Be]},[r,v]),H=MC.useSyncExternalStore(g.useCallback(ve=>O(v,(Ne,je)=>{Q(je,Ne)||ve()}),[r,v]),Y[0],Y[1]),G=m[v]&&m[v].length>0,$=H.data,F=Jt($)?X&&j7(X)?hS(X):X:$,R=H.error,z=g.useRef(F),U=h?Jt($)?Jt(z.current)?F:z.current:$:F,ee=v&&Jt(F),pe=g.useRef(null);!Hh&&MC.useSyncExternalStore(ine,()=>(pe.current=!1,pe),()=>(pe.current=!0,pe));const re=pe.current;p&&re&&!s&&ee&&console.warn(`Missing pre-initiated data for serialized key "${v}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const he=!v||!e||E().isPaused()||G&&!Jt(R)?!1:V&&!Jt(l)?l:s?Jt(F)?!1:c:Jt(F)||c,q=V&&he,W=Jt(H.isValidating)?q:H.isValidating,ue=Jt(H.isLoading)?q:H.isLoading,te=g.useCallback(async ve=>{const Ne=S.current;if(!v||!Ne||k.current||E().isPaused())return!1;let je,Me,Be=!0;const tt=ve||{},B=!y[v]||!tt.dedupe,se=()=>u4?!k.current&&v===_.current&&j.current:v===_.current,de={isValidating:!1,isLoading:!1},Ce=()=>{A(de)},fe=()=>{const we=y[v];we&&we[1]===Me&&delete y[v]},be={isValidating:!0};Jt(M().data)&&(be.isLoading=!0);try{if(B&&(A(be),n.loadingTimeout&&Jt(M().data)&&setTimeout(()=>{Be&&se()&&E().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[Ne(w),zC()]),[je,Me]=y[v],je=await je,B&&setTimeout(fe,n.dedupingInterval),!y[v]||y[v][1]!==Me)return B&&se()&&E().onDiscarded(v),!1;de.error=Xa;const we=x[v];if(!Jt(we)&&(Me<=we[0]||Me<=we[1]||we[1]===0))return Ce(),B&&se()&&E().onDiscarded(v),!1;const Le=M().data;de.data=a(Le,je)?Le:je,B&&se()&&E().onSuccess(je,v,n)}catch(we){fe();const Le=E(),{shouldRetryOnError:Oe}=Le;Le.isPaused()||(de.error=we,B&&se()&&(Le.onError(we,v,Le),(Oe===!0||Qo(Oe)&&Oe(we))&&(!E().revalidateOnFocus||!E().revalidateOnReconnect||P())&&Le.onErrorRetry(we,v,Le,He=>{const vt=m[v];vt&&vt[0]&&vt[0](l4,He)},{retryCount:(tt.retryCount||0)+1,dedupe:!0})))}return Be=!1,Ce(),!0},[v,r]),ie=g.useCallback((...ve)=>_7(r,_.current,...ve),[]);if(uS(()=>{S.current=e,N.current=n,Jt($)||(z.current=$)}),uS(()=>{if(!v)return;const ve=te.bind(Xa,pS);let Ne=0;E().revalidateOnFocus&&(Ne=Date.now()+E().focusThrottleInterval);const Me=sne(v,m,(Be,tt={})=>{if(Be==b7){const B=Date.now();E().revalidateOnFocus&&B>Ne&&P()&&(Ne=B+E().focusThrottleInterval,ve())}else if(Be==w7)E().revalidateOnReconnect&&P()&&ve();else{if(Be==k7)return te();if(Be==l4)return te(tt)}});return k.current=!1,_.current=v,j.current=!0,A({_k:w}),he&&(y[v]||(Jt(F)||Hh?ve():Ute(ve))),()=>{k.current=!0,Me()}},[v]),uS(()=>{let ve;function Ne(){const Me=Qo(u)?u(M().data):u;Me&&ve!==-1&&(ve=setTimeout(je,Me))}function je(){!M().error&&(d||E().isVisible())&&(f||E().isOnline())?te(pS).then(Ne):Ne()}return Ne(),()=>{ve&&(clearTimeout(ve),ve=-1)}},[u,d,f,v]),g.useDebugValue(U),s){if(!u4&&Hh&&ee)throw new Error("Fallback data is required when using Suspense in SSR.");ee&&(S.current=e,N.current=n,k.current=!1);const ve=b[v],Ne=!Jt(ve)&&ee?ie(ve):h4;if(hS(Ne),!Jt(R)&&ee)throw R;const je=ee?te(pS):h4;!Jt(U)&&ee&&(je.status="fulfilled",je.value=!0),hS(je)}return{mutate:ie,get data(){return I.data=!0,U},get error(){return I.error=!0,R},get isValidating(){return I.isValidating=!0,W},get isLoading(){return I.isLoading=!0,ue}}},ut=ane(one);function A7(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e-1}var iae=sae,oae=nj;function lae(t,e){var n=this.__data__,r=oae(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var cae=lae,uae=Gre,dae=eae,fae=rae,hae=iae,pae=cae;function bm(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e0?1:-1},Sd=function(e){return tf(e)&&e.indexOf("%")===e.length-1},Ue=function(e){return Rse(e)&&!km(e)},Lse=function(e){return Pt(e)},sa=function(e){return Ue(e)||tf(e)},Fse=0,Sf=function(e){var n=++Fse;return"".concat(e||"").concat(n)},nf=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ue(e)&&!tf(e))return r;var s;if(Sd(e)){var o=e.indexOf("%");s=n*parseFloat(e.slice(0,o))/100}else s=+e;return km(s)&&(s=r),a&&s>n&&(s=n),s},Yc=function(e){if(!e)return null;var n=Object.keys(e);return n&&n.length?e[n[0]]:null},Bse=function(e){if(!Array.isArray(e))return!1;for(var n=e.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Kse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function VC(t){"@babel/helpers - typeof";return VC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},VC(t)}var _4={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ac=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},N4=null,xS=null,v3=function t(e){if(e===N4&&Array.isArray(xS))return xS;var n=[];return g.Children.forEach(e,function(r){Pt(r)||(Ase.isFragment(r)?n=n.concat(t(r.props.children)):n.push(r))}),xS=n,N4=e,n};function Gs(t,e){var n=[],r=[];return Array.isArray(e)?r=e.map(function(a){return ac(a)}):r=[ac(e)],v3(t).forEach(function(a){var s=Wi(a,"type.displayName")||Wi(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function oi(t,e){var n=Gs(t,e);return n&&n[0]}var C4=function(e){if(!e||!e.props)return!1;var n=e.props,r=n.width,a=n.height;return!(!Ue(r)||r<=0||!Ue(a)||a<=0)},Yse=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],Xse=function(e){return e&&e.type&&tf(e.type)&&Yse.indexOf(e.type)>=0},U7=function(e){return e&&VC(e)==="object"&&"clipDot"in e},Jse=function(e,n,r,a){var s,o=(s=gS==null?void 0:gS[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Rt(e)&&(a&&o.includes(n)||Wse.includes(n))||r&&y3.includes(n)},It=function(e,n,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(g.isValidElement(e)&&(a=e.props),!ym(a))return null;var s={};return Object.keys(a).forEach(function(o){var l;Jse((l=a)===null||l===void 0?void 0:l[o],o,n,r)&&(s[o]=a[o])}),s},WC=function t(e,n){if(e===n)return!0;var r=g.Children.count(e);if(r!==g.Children.count(n))return!1;if(r===0)return!0;if(r===1)return E4(Array.isArray(e)?e[0]:e,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function nie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function GC(t){var e=t.children,n=t.width,r=t.height,a=t.viewBox,s=t.className,o=t.style,l=t.title,c=t.desc,u=tie(t,eie),d=a||{width:n,height:r,x:0,y:0},f=Zt("recharts-surface",s);return J.createElement("svg",HC({},It(u,!0,"svg"),{className:f,width:n,height:r,style:o,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height)}),J.createElement("title",null,l),J.createElement("desc",null,c),e)}var rie=["children","className"];function qC(){return qC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function sie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var pn=J.forwardRef(function(t,e){var n=t.children,r=t.className,a=aie(t,rie),s=Zt("recharts-layer",r);return J.createElement("g",qC({className:s},It(a,!0),{ref:e}),n)}),pl=function(e,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;sa?0:a+e),n=n>a?a:n,n<0&&(n+=a),a=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(a);++r=r?t:lie(t,e,n)}var uie=cie,die="\\ud800-\\udfff",fie="\\u0300-\\u036f",hie="\\ufe20-\\ufe2f",pie="\\u20d0-\\u20ff",mie=fie+hie+pie,gie="\\ufe0e\\ufe0f",xie="\\u200d",yie=RegExp("["+xie+die+mie+gie+"]");function vie(t){return yie.test(t)}var V7=vie;function bie(t){return t.split("")}var wie=bie,W7="\\ud800-\\udfff",kie="\\u0300-\\u036f",jie="\\ufe20-\\ufe2f",Sie="\\u20d0-\\u20ff",_ie=kie+jie+Sie,Nie="\\ufe0e\\ufe0f",Cie="["+W7+"]",KC="["+_ie+"]",YC="\\ud83c[\\udffb-\\udfff]",Eie="(?:"+KC+"|"+YC+")",H7="[^"+W7+"]",G7="(?:\\ud83c[\\udde6-\\uddff]){2}",q7="[\\ud800-\\udbff][\\udc00-\\udfff]",Aie="\\u200d",K7=Eie+"?",Y7="["+Nie+"]?",Oie="(?:"+Aie+"(?:"+[H7,G7,q7].join("|")+")"+Y7+K7+")*",Tie=Y7+K7+Oie,Pie="(?:"+[H7+KC+"?",KC,G7,q7,Cie].join("|")+")",Mie=RegExp(YC+"(?="+YC+")|"+Pie+Tie,"g");function Rie(t){return t.match(Mie)||[]}var Die=Rie,Iie=wie,$ie=V7,Lie=Die;function Fie(t){return $ie(t)?Lie(t):Iie(t)}var Bie=Fie,zie=uie,Uie=V7,Vie=Bie,Wie=I7;function Hie(t){return function(e){e=Wie(e);var n=Uie(e)?Vie(e):void 0,r=n?n[0]:e.charAt(0),a=n?zie(n,1).join(""):e.slice(1);return r[t]()+a}}var Gie=Hie,qie=Gie,Kie=qie("toUpperCase"),Yie=Kie;const gj=Rn(Yie);function Xn(t){return function(){return t}}const X7=Math.cos,Y1=Math.sin,Mo=Math.sqrt,X1=Math.PI,xj=2*X1,XC=Math.PI,JC=2*XC,hd=1e-6,Xie=JC-hd;function J7(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return J7;const n=10**e;return function(r){this._+=r[0];for(let a=1,s=r.length;ahd)if(!(Math.abs(f*c-u*d)>hd)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let p=r-o,m=a-l,x=c*c+u*u,y=p*p+m*m,b=Math.sqrt(x),v=Math.sqrt(h),w=s*Math.tan((XC-Math.acos((x+h-y)/(2*b*v)))/2),j=w/v,k=w/b;Math.abs(j-1)>hd&&this._append`L${e+j*d},${n+j*f}`,this._append`A${s},${s},0,0,${+(f*p>d*m)},${this._x1=e+k*c},${this._y1=n+k*u}`}}arc(e,n,r,a,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let l=r*Math.cos(a),c=r*Math.sin(a),u=e+l,d=n+c,f=1^o,h=o?a-s:s-a;this._x1===null?this._append`M${u},${d}`:(Math.abs(this._x1-u)>hd||Math.abs(this._y1-d)>hd)&&this._append`L${u},${d}`,r&&(h<0&&(h=h%JC+JC),h>Xie?this._append`A${r},${r},0,1,${f},${e-l},${n-c}A${r},${r},0,1,${f},${this._x1=u},${this._y1=d}`:h>hd&&this._append`A${r},${r},0,${+(h>=XC)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function b3(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new Zie(e)}function w3(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Z7(t){this._context=t}Z7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function yj(t){return new Z7(t)}function Q7(t){return t[0]}function eU(t){return t[1]}function tU(t,e){var n=Xn(!0),r=null,a=yj,s=null,o=b3(l);t=typeof t=="function"?t:t===void 0?Q7:Xn(t),e=typeof e=="function"?e:e===void 0?eU:Xn(e);function l(c){var u,d=(c=w3(c)).length,f,h=!1,p;for(r==null&&(s=a(p=o())),u=0;u<=d;++u)!(u=p;--m)l.point(w[m],j[m]);l.lineEnd(),l.areaEnd()}b&&(w[h]=+t(y,h,f),j[h]=+e(y,h,f),l.point(r?+r(y,h,f):w[h],n?+n(y,h,f):j[h]))}if(v)return l=null,v+""||null}function d(){return tU().defined(a).curve(o).context(s)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Xn(+f),r=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Xn(+f),u):t},u.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Xn(+f),u):r},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Xn(+f),n=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Xn(+f),u):e},u.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Xn(+f),u):n},u.lineX0=u.lineY0=function(){return d().x(t).y(e)},u.lineY1=function(){return d().x(t).y(n)},u.lineX1=function(){return d().x(r).y(e)},u.defined=function(f){return arguments.length?(a=typeof f=="function"?f:Xn(!!f),u):a},u.curve=function(f){return arguments.length?(o=f,s!=null&&(l=o(s)),u):o},u.context=function(f){return arguments.length?(f==null?s=l=null:l=o(s=f),u):s},u}class nU{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function Qie(t){return new nU(t,!0)}function eoe(t){return new nU(t,!1)}const k3={draw(t,e){const n=Mo(e/X1);t.moveTo(n,0),t.arc(0,0,n,0,xj)}},toe={draw(t,e){const n=Mo(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},rU=Mo(1/3),noe=rU*2,roe={draw(t,e){const n=Mo(e/noe),r=n*rU;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},aoe={draw(t,e){const n=Mo(e),r=-n/2;t.rect(r,r,n,n)}},soe=.8908130915292852,aU=Y1(X1/10)/Y1(7*X1/10),ioe=Y1(xj/10)*aU,ooe=-X7(xj/10)*aU,loe={draw(t,e){const n=Mo(e*soe),r=ioe*n,a=ooe*n;t.moveTo(0,-n),t.lineTo(r,a);for(let s=1;s<5;++s){const o=xj*s/5,l=X7(o),c=Y1(o);t.lineTo(c*n,-l*n),t.lineTo(l*r-c*a,c*r+l*a)}t.closePath()}},yS=Mo(3),coe={draw(t,e){const n=-Mo(e/(yS*3));t.moveTo(0,n*2),t.lineTo(-yS*n,-n),t.lineTo(yS*n,-n),t.closePath()}},Ni=-.5,Ci=Mo(3)/2,ZC=1/Mo(12),uoe=(ZC/2+1)*3,doe={draw(t,e){const n=Mo(e/uoe),r=n/2,a=n*ZC,s=r,o=n*ZC+n,l=-s,c=o;t.moveTo(r,a),t.lineTo(s,o),t.lineTo(l,c),t.lineTo(Ni*r-Ci*a,Ci*r+Ni*a),t.lineTo(Ni*s-Ci*o,Ci*s+Ni*o),t.lineTo(Ni*l-Ci*c,Ci*l+Ni*c),t.lineTo(Ni*r+Ci*a,Ni*a-Ci*r),t.lineTo(Ni*s+Ci*o,Ni*o-Ci*s),t.lineTo(Ni*l+Ci*c,Ni*c-Ci*l),t.closePath()}};function foe(t,e){let n=null,r=b3(a);t=typeof t=="function"?t:Xn(t||k3),e=typeof e=="function"?e:Xn(e===void 0?64:+e);function a(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(t=typeof s=="function"?s:Xn(s),a):t},a.size=function(s){return arguments.length?(e=typeof s=="function"?s:Xn(+s),a):e},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function J1(){}function Z1(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function sU(t){this._context=t}sU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Z1(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function hoe(t){return new sU(t)}function iU(t){this._context=t}iU.prototype={areaStart:J1,areaEnd:J1,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function poe(t){return new iU(t)}function oU(t){this._context=t}oU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function moe(t){return new oU(t)}function lU(t){this._context=t}lU.prototype={areaStart:J1,areaEnd:J1,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function goe(t){return new lU(t)}function O4(t){return t<0?-1:1}function T4(t,e,n){var r=t._x1-t._x0,a=e-t._x1,s=(t._y1-t._y0)/(r||a<0&&-0),o=(n-t._y1)/(a||r<0&&-0),l=(s*a+o*r)/(r+a);return(O4(s)+O4(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function P4(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function vS(t,e,n){var r=t._x0,a=t._y0,s=t._x1,o=t._y1,l=(s-r)/3;t._context.bezierCurveTo(r+l,a+l*e,s-l,o-l*n,s,o)}function Q1(t){this._context=t}Q1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:vS(this,this._t0,P4(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,vS(this,P4(this,n=T4(this,t,e)),n);break;default:vS(this,this._t0,n=T4(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function cU(t){this._context=new uU(t)}(cU.prototype=Object.create(Q1.prototype)).point=function(t,e){Q1.prototype.point.call(this,e,t)};function uU(t){this._context=t}uU.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,a,s){this._context.bezierCurveTo(e,t,r,n,s,a)}};function xoe(t){return new Q1(t)}function yoe(t){return new cU(t)}function dU(t){this._context=t}dU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=M4(t),a=M4(e),s=0,o=1;o=0;--e)a[e]=(o[e]-a[e+1])/s[e];for(s[n-1]=(t[n]+a[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function boe(t){return new vj(t,.5)}function woe(t){return new vj(t,0)}function koe(t){return new vj(t,1)}function vp(t,e){if((o=t.length)>1)for(var n=1,r,a,s=t[e[0]],o,l=s.length;n=0;)n[e]=e;return n}function joe(t,e){return t[e]}function Soe(t){const e=[];return e.key=t,e}function _oe(){var t=Xn([]),e=QC,n=vp,r=joe;function a(s){var o=Array.from(t.apply(this,arguments),Soe),l,c=o.length,u=-1,d;for(const f of s)for(l=0,++u;l0){for(var n,r,a=0,s=t[0].length,o;a0){for(var n=0,r=t[e[0]],a,s=r.length;n0)||!((s=(a=t[e[0]]).length)>0))){for(var n=0,r=1,a,s,o;r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Roe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var fU={symbolCircle:k3,symbolCross:toe,symbolDiamond:roe,symbolSquare:aoe,symbolStar:loe,symbolTriangle:coe,symbolWye:doe},Doe=Math.PI/180,Ioe=function(e){var n="symbol".concat(gj(e));return fU[n]||k3},$oe=function(e,n,r){if(n==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Doe;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Loe=function(e,n){fU["symbol".concat(gj(e))]=n},bj=function(e){var n=e.type,r=n===void 0?"circle":n,a=e.size,s=a===void 0?64:a,o=e.sizeType,l=o===void 0?"area":o,c=Moe(e,Aoe),u=D4(D4({},c),{},{type:r,size:s,sizeType:l}),d=function(){var y=Ioe(r),b=foe().type(y).size($oe(s,l,r));return b()},f=u.className,h=u.cx,p=u.cy,m=It(u,!0);return h===+h&&p===+p&&s===+s?J.createElement("path",eE({},m,{className:Zt("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(p,")"),d:d()})):null};bj.registerSymbol=Loe;function bp(t){"@babel/helpers - typeof";return bp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bp(t)}function tE(){return tE=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var v=p.inactive?u:p.color;return J.createElement("li",tE({className:y,style:f,key:"legend-item-".concat(m)},i0(r.props,p,m)),J.createElement(GC,{width:o,height:o,viewBox:d,style:h},r.renderIcon(p)),J.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},x?x(b,p,m):b))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,o=r.align;if(!a||!a.length)return null;var l={padding:0,margin:0,textAlign:s==="horizontal"?o:"left"};return J.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])}(g.PureComponent);l0(j3,"displayName","Legend");l0(j3,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Koe=rj;function Yoe(){this.__data__=new Koe,this.size=0}var Xoe=Yoe;function Joe(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}var Zoe=Joe;function Qoe(t){return this.__data__.get(t)}var ele=Qoe;function tle(t){return this.__data__.has(t)}var nle=tle,rle=rj,ale=d3,sle=f3,ile=200;function ole(t,e){var n=this.__data__;if(n instanceof rle){var r=n.__data__;if(!ale||r.lengthl))return!1;var u=s.get(t),d=s.get(e);if(u&&d)return u==e&&d==t;var f=-1,h=!0,p=n&Ale?new _le:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=Mce}var C3=Rce,Dce=jc,Ice=C3,$ce=Sc,Lce="[object Arguments]",Fce="[object Array]",Bce="[object Boolean]",zce="[object Date]",Uce="[object Error]",Vce="[object Function]",Wce="[object Map]",Hce="[object Number]",Gce="[object Object]",qce="[object RegExp]",Kce="[object Set]",Yce="[object String]",Xce="[object WeakMap]",Jce="[object ArrayBuffer]",Zce="[object DataView]",Qce="[object Float32Array]",eue="[object Float64Array]",tue="[object Int8Array]",nue="[object Int16Array]",rue="[object Int32Array]",aue="[object Uint8Array]",sue="[object Uint8ClampedArray]",iue="[object Uint16Array]",oue="[object Uint32Array]",ar={};ar[Qce]=ar[eue]=ar[tue]=ar[nue]=ar[rue]=ar[aue]=ar[sue]=ar[iue]=ar[oue]=!0;ar[Lce]=ar[Fce]=ar[Jce]=ar[Bce]=ar[Zce]=ar[zce]=ar[Uce]=ar[Vce]=ar[Wce]=ar[Hce]=ar[Gce]=ar[qce]=ar[Kce]=ar[Yce]=ar[Xce]=!1;function lue(t){return $ce(t)&&Ice(t.length)&&!!ar[Dce(t)]}var cue=lue;function uue(t){return function(e){return t(e)}}var jU=uue,rw={exports:{}};rw.exports;(function(t,e){var n=O7,r=e&&!e.nodeType&&e,a=r&&!0&&t&&!t.nodeType&&t,s=a&&a.exports===r,o=s&&n.process,l=function(){try{var c=a&&a.require&&a.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}}();t.exports=l})(rw,rw.exports);var due=rw.exports,fue=cue,hue=jU,U4=due,V4=U4&&U4.isTypedArray,pue=V4?hue(V4):fue,SU=pue,mue=yce,gue=_3,xue=Xs,yue=kU,vue=N3,bue=SU,wue=Object.prototype,kue=wue.hasOwnProperty;function jue(t,e){var n=xue(t),r=!n&&gue(t),a=!n&&!r&&yue(t),s=!n&&!r&&!a&&bue(t),o=n||r||a||s,l=o?mue(t.length,String):[],c=l.length;for(var u in t)(e||kue.call(t,u))&&!(o&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||vue(u,c)))&&l.push(u);return l}var Sue=jue,_ue=Object.prototype;function Nue(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||_ue;return t===n}var Cue=Nue;function Eue(t,e){return function(n){return t(e(n))}}var _U=Eue,Aue=_U,Oue=Aue(Object.keys,Object),Tue=Oue,Pue=Cue,Mue=Tue,Rue=Object.prototype,Due=Rue.hasOwnProperty;function Iue(t){if(!Pue(t))return Mue(t);var e=[];for(var n in Object(t))Due.call(t,n)&&n!="constructor"&&e.push(n);return e}var $ue=Iue,Lue=c3,Fue=C3;function Bue(t){return t!=null&&Fue(t.length)&&!Lue(t)}var Cy=Bue,zue=Sue,Uue=$ue,Vue=Cy;function Wue(t){return Vue(t)?zue(t):Uue(t)}var wj=Wue,Hue=ice,Gue=gce,que=wj;function Kue(t){return Hue(t,que,Gue)}var Yue=Kue,W4=Yue,Xue=1,Jue=Object.prototype,Zue=Jue.hasOwnProperty;function Que(t,e,n,r,a,s){var o=n&Xue,l=W4(t),c=l.length,u=W4(e),d=u.length;if(c!=d&&!o)return!1;for(var f=c;f--;){var h=l[f];if(!(o?h in e:Zue.call(e,h)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var x=!0;s.set(t,e),s.set(e,t);for(var y=o;++f-1}var Jfe=Xfe;function Zfe(t,e,n){for(var r=-1,a=t==null?0:t.length;++r=hhe){var u=e?null:dhe(t);if(u)return fhe(u);o=!1,a=uhe,c=new ohe}else c=e?[]:l;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ahe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ohe(t){return t.value}function The(t,e){if(J.isValidElement(t))return J.cloneElement(t,e);if(typeof t=="function")return J.createElement(t,e);e.ref;var n=Ehe(e,bhe);return J.createElement(j3,n)}var iD=1,ml=function(t){function e(){var n;whe(this,e);for(var r=arguments.length,a=new Array(r),s=0;siD||Math.abs(a.height-this.lastBoundingBox.height)>iD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Bl({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,o=a.align,l=a.verticalAlign,c=a.margin,u=a.chartWidth,d=a.chartHeight,f,h;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(o==="center"&&s==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(l==="middle"){var m=this.getBBoxSnapshot();h={top:((d||0)-m.height)/2}}else h=l==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return Bl(Bl({},f),h)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,o=a.width,l=a.height,c=a.wrapperStyle,u=a.payloadUniqBy,d=a.payload,f=Bl(Bl({position:"absolute",width:o||"auto",height:l||"auto"},this.getDefaultPosition(c)),c);return J.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){r.wrapperNode=p}},The(s,Bl(Bl({},this.props),{},{payload:PU(d,u,Ohe)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Bl(Bl({},this.defaultProps),r.props),o=s.layout;return o==="vertical"&&Ue(r.props.height)?{height:r.props.height}:o==="horizontal"?{width:r.props.width||a}:null}}])}(g.PureComponent);kj(ml,"displayName","Legend");kj(ml,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var oD=Ny,Phe=_3,Mhe=Xs,lD=oD?oD.isConcatSpreadable:void 0;function Rhe(t){return Mhe(t)||Phe(t)||!!(lD&&t&&t[lD])}var Dhe=Rhe,Ihe=bU,$he=Dhe;function DU(t,e,n,r,a){var s=-1,o=t.length;for(n||(n=$he),a||(a=[]);++s0&&n(l)?e>1?DU(l,e-1,n,r,a):Ihe(a,l):r||(a[a.length]=l)}return a}var IU=DU;function Lhe(t){return function(e,n,r){for(var a=-1,s=Object(e),o=r(e),l=o.length;l--;){var c=o[t?l:++a];if(n(s[c],c,s)===!1)break}return e}}var Fhe=Lhe,Bhe=Fhe,zhe=Bhe(),Uhe=zhe,Vhe=Uhe,Whe=wj;function Hhe(t,e){return t&&Vhe(t,e,Whe)}var $U=Hhe,Ghe=Cy;function qhe(t,e){return function(n,r){if(n==null)return n;if(!Ghe(n))return t(n,r);for(var a=n.length,s=e?a:-1,o=Object(n);(e?s--:++se||s&&o&&c&&!l&&!u||r&&o&&c||!n&&c||!a)return 1;if(!r&&!s&&!u&&t=l)return c;var u=n[r];return c*(u=="desc"?-1:1)}}return t.index-e.index}var ope=ipe,jS=p3,lpe=m3,cpe=qu,upe=LU,dpe=npe,fpe=jU,hpe=ope,ppe=_m,mpe=Xs;function gpe(t,e,n){e.length?e=jS(e,function(s){return mpe(s)?function(o){return lpe(o,s.length===1?s[0]:s)}:s}):e=[ppe];var r=-1;e=jS(e,fpe(cpe));var a=upe(t,function(s,o,l){var c=jS(e,function(u){return u(s)});return{criteria:c,index:++r,value:s}});return dpe(a,function(s,o){return hpe(s,o,n)})}var xpe=gpe;function ype(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}var vpe=ype,bpe=vpe,uD=Math.max;function wpe(t,e,n){return e=uD(e===void 0?t.length-1:e,0),function(){for(var r=arguments,a=-1,s=uD(r.length-e,0),o=Array(s);++a0){if(++e>=Tpe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Dpe=Rpe,Ipe=Ope,$pe=Dpe,Lpe=$pe(Ipe),Fpe=Lpe,Bpe=_m,zpe=kpe,Upe=Fpe;function Vpe(t,e){return Upe(zpe(t,e,Bpe),t+"")}var Wpe=Vpe,Hpe=u3,Gpe=Cy,qpe=N3,Kpe=Gu;function Ype(t,e,n){if(!Kpe(n))return!1;var r=typeof e;return(r=="number"?Gpe(n)&&qpe(e,n.length):r=="string"&&e in n)?Hpe(n[e],t):!1}var jj=Ype,Xpe=IU,Jpe=xpe,Zpe=Wpe,fD=jj,Qpe=Zpe(function(t,e){if(t==null)return[];var n=e.length;return n>1&&fD(t,e[0],e[1])?e=[]:n>2&&fD(e[0],e[1],e[2])&&(e=[e[0]]),Jpe(t,Xpe(e,1),[])}),eme=Qpe;const O3=Rn(eme);function c0(t){"@babel/helpers - typeof";return c0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c0(t)}function cE(){return cE=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.x),"".concat(fg,"-left"),Ue(n)&&e&&Ue(e.x)&&n=e.y),"".concat(fg,"-top"),Ue(r)&&e&&Ue(e.y)&&rx?Math.max(d,c[r]):Math.max(f,c[r])}function mme(t){var e=t.translateX,n=t.translateY,r=t.useTranslate3d;return{transform:r?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function gme(t){var e=t.allowEscapeViewBox,n=t.coordinate,r=t.offsetTopLeft,a=t.position,s=t.reverseDirection,o=t.tooltipBox,l=t.useTranslate3d,c=t.viewBox,u,d,f;return o.height>0&&o.width>0&&n?(d=mD({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),f=mD({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),u=mme({translateX:d,translateY:f,useTranslate3d:l})):u=hme,{cssProperties:u,cssClasses:pme({translateX:d,translateY:f,coordinate:n})}}function kp(t){"@babel/helpers - typeof";return kp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kp(t)}function gD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function xD(t){for(var e=1;eyD||Math.abs(r.height-this.state.lastBoundingBox.height)>yD)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,o=a.allowEscapeViewBox,l=a.animationDuration,c=a.animationEasing,u=a.children,d=a.coordinate,f=a.hasPayload,h=a.isAnimationActive,p=a.offset,m=a.position,x=a.reverseDirection,y=a.useTranslate3d,b=a.viewBox,v=a.wrapperStyle,w=gme({allowEscapeViewBox:o,coordinate:d,offsetTopLeft:p,position:m,reverseDirection:x,tooltipBox:this.state.lastBoundingBox,useTranslate3d:y,viewBox:b}),j=w.cssClasses,k=w.cssProperties,_=xD(xD({transition:h&&s?"transform ".concat(l,"ms ").concat(c):void 0},k),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&f?"visible":"hidden",position:"absolute",top:0,left:0},v);return J.createElement("div",{tabIndex:-1,className:j,style:_,ref:function(N){r.wrapperNode=N}},u)}}])}(g.PureComponent),Nme=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Ku={isSsr:Nme()};function jp(t){"@babel/helpers - typeof";return jp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jp(t)}function vD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function bD(t){for(var e=1;e0;return J.createElement(_me,{allowEscapeViewBox:o,animationDuration:l,animationEasing:c,isAnimationActive:h,active:s,coordinate:d,hasPayload:_,offset:p,position:y,reverseDirection:b,useTranslate3d:v,viewBox:w,wrapperStyle:j},Ime(u,bD(bD({},this.props),{},{payload:k})))}}])}(g.PureComponent);T3(Vr,"displayName","Tooltip");T3(Vr,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Ku.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var $me=Cl,Lme=function(){return $me.Date.now()},Fme=Lme,Bme=/\s/;function zme(t){for(var e=t.length;e--&&Bme.test(t.charAt(e)););return e}var Ume=zme,Vme=Ume,Wme=/^\s+/;function Hme(t){return t&&t.slice(0,Vme(t)+1).replace(Wme,"")}var Gme=Hme,qme=Gme,wD=Gu,Kme=xm,kD=NaN,Yme=/^[-+]0x[0-9a-f]+$/i,Xme=/^0b[01]+$/i,Jme=/^0o[0-7]+$/i,Zme=parseInt;function Qme(t){if(typeof t=="number")return t;if(Kme(t))return kD;if(wD(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=wD(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=qme(t);var n=Xme.test(t);return n||Jme.test(t)?Zme(t.slice(2),n?2:8):Yme.test(t)?kD:+t}var WU=Qme,ege=Gu,_S=Fme,jD=WU,tge="Expected a function",nge=Math.max,rge=Math.min;function age(t,e,n){var r,a,s,o,l,c,u=0,d=!1,f=!1,h=!0;if(typeof t!="function")throw new TypeError(tge);e=jD(e)||0,ege(n)&&(d=!!n.leading,f="maxWait"in n,s=f?nge(jD(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h);function p(_){var S=r,N=a;return r=a=void 0,u=_,o=t.apply(N,S),o}function m(_){return u=_,l=setTimeout(b,e),d?p(_):o}function x(_){var S=_-c,N=_-u,E=e-S;return f?rge(E,s-N):E}function y(_){var S=_-c,N=_-u;return c===void 0||S>=e||S<0||f&&N>=s}function b(){var _=_S();if(y(_))return v(_);l=setTimeout(b,x(_))}function v(_){return l=void 0,h&&r?p(_):(r=a=void 0,o)}function w(){l!==void 0&&clearTimeout(l),u=0,r=c=a=l=void 0}function j(){return l===void 0?o:v(_S())}function k(){var _=_S(),S=y(_);if(r=arguments,a=this,c=_,S){if(l===void 0)return m(c);if(f)return clearTimeout(l),l=setTimeout(b,e),p(c)}return l===void 0&&(l=setTimeout(b,e)),o}return k.cancel=w,k.flush=j,k}var sge=age,ige=sge,oge=Gu,lge="Expected a function";function cge(t,e,n){var r=!0,a=!0;if(typeof t!="function")throw new TypeError(lge);return oge(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),ige(t,e,{leading:r,maxWait:e,trailing:a})}var uge=cge;const HU=Rn(uge);function d0(t){"@babel/helpers - typeof";return d0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d0(t)}function SD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Uv(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(O=HU(O,x,{trailing:!0,leading:!1}));var D=new ResizeObserver(O),I=k.current.getBoundingClientRect(),X=I.width,Q=I.height;return M(X,Q),D.observe(k.current),function(){D.disconnect()}},[M,x]);var A=g.useMemo(function(){var O=E.containerWidth,D=E.containerHeight;if(O<0||D<0)return null;pl(Sd(o)||Sd(c),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,c),pl(!n||n>0,"The aspect(%s) must be greater than zero.",n);var I=Sd(o)?O:o,X=Sd(c)?D:c;n&&n>0&&(I?X=I/n:X&&(I=X*n),h&&X>h&&(X=h)),pl(I>0||X>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,I,X,o,c,d,f,n);var Q=!Array.isArray(p)&&ac(p.type).endsWith("Chart");return J.Children.map(p,function(V){return J.isValidElement(V)?g.cloneElement(V,Uv({width:I,height:X},Q?{style:Uv({height:"100%",width:"100%",maxHeight:X,maxWidth:I},V.props.style)}:{})):V})},[n,p,c,h,f,d,E,o]);return J.createElement("div",{id:y?"".concat(y):void 0,className:Zt("recharts-responsive-container",b),style:Uv(Uv({},j),{},{width:o,height:c,minWidth:d,minHeight:f,maxHeight:h}),ref:k},A)}),Ey=function(e){return null};Ey.displayName="Cell";function f0(t){"@babel/helpers - typeof";return f0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f0(t)}function ND(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function hE(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Ku.isSsr)return{width:0,height:0};var r=Sge(n),a=JSON.stringify({text:e,copyStyle:r});if(Wf.widthCache[a])return Wf.widthCache[a];try{var s=document.getElementById(CD);s||(s=document.createElement("span"),s.setAttribute("id",CD),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var o=hE(hE({},jge),r);Object.assign(s.style,o),s.textContent="".concat(e);var l=s.getBoundingClientRect(),c={width:l.width,height:l.height};return Wf.widthCache[a]=c,++Wf.cacheCount>kge&&(Wf.cacheCount=0,Wf.widthCache={}),c}catch{return{width:0,height:0}}},_ge=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function h0(t){"@babel/helpers - typeof";return h0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h0(t)}function ow(t,e){return Age(t)||Ege(t,e)||Cge(t,e)||Nge()}function Nge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cge(t,e){if(t){if(typeof t=="string")return ED(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ED(t,e)}}function ED(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Vge(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function RD(t,e){return qge(t)||Gge(t,e)||Hge(t,e)||Wge()}function Wge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hge(t,e){if(t){if(typeof t=="string")return DD(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DD(t,e)}}function DD(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[];return I.reduce(function(X,Q){var V=Q.word,Y=Q.width,H=X[X.length-1];if(H&&(a==null||s||H.width+Y+rQ.width?X:Q})};if(!d)return p;for(var x="…",y=function(I){var X=f.slice(0,I),Q=YU({breakAll:u,style:c,children:X+x}).wordsWithComputedWidth,V=h(Q),Y=V.length>o||m(V).width>Number(a);return[Y,V]},b=0,v=f.length-1,w=0,j;b<=v&&w<=f.length-1;){var k=Math.floor((b+v)/2),_=k-1,S=y(_),N=RD(S,2),E=N[0],P=N[1],M=y(k),A=RD(M,1),O=A[0];if(!E&&!O&&(b=k+1),E&&O&&(v=k-1),!E&&O){j=P;break}w++}return j||p},ID=function(e){var n=Pt(e)?[]:e.toString().split(KU);return[{words:n}]},Yge=function(e){var n=e.width,r=e.scaleToFit,a=e.children,s=e.style,o=e.breakAll,l=e.maxLines;if((n||r)&&!Ku.isSsr){var c,u,d=YU({breakAll:o,children:a,style:s});if(d){var f=d.wordsWithComputedWidth,h=d.spaceWidth;c=f,u=h}else return ID(a);return Kge({breakAll:o,children:a,maxLines:l,style:s},c,u,n,r)}return ID(a)},$D="#808080",lw=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.lineHeight,l=o===void 0?"1em":o,c=e.capHeight,u=c===void 0?"0.71em":c,d=e.scaleToFit,f=d===void 0?!1:d,h=e.textAnchor,p=h===void 0?"start":h,m=e.verticalAnchor,x=m===void 0?"end":m,y=e.fill,b=y===void 0?$D:y,v=MD(e,zge),w=g.useMemo(function(){return Yge({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:f,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,f,v.style,v.width]),j=v.dx,k=v.dy,_=v.angle,S=v.className,N=v.breakAll,E=MD(v,Uge);if(!sa(r)||!sa(s))return null;var P=r+(Ue(j)?j:0),M=s+(Ue(k)?k:0),A;switch(x){case"start":A=NS("calc(".concat(u,")"));break;case"middle":A=NS("calc(".concat((w.length-1)/2," * -").concat(l," + (").concat(u," / 2))"));break;default:A=NS("calc(".concat(w.length-1," * -").concat(l,")"));break}var O=[];if(f){var D=w[0].width,I=v.width;O.push("scale(".concat((Ue(I)?I/D:1)/D,")"))}return _&&O.push("rotate(".concat(_,", ").concat(P,", ").concat(M,")")),O.length&&(E.transform=O.join(" ")),J.createElement("text",pE({},It(E,!0),{x:P,y:M,className:Zt("recharts-text",S),textAnchor:p,fill:b.includes("url")?$D:b}),w.map(function(X,Q){var V=X.words.join(N?"":" ");return J.createElement("tspan",{x:P,dy:Q===0?A:l,key:"".concat(V,"-").concat(Q)},V)}))};function bu(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Xge(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function P3(t){let e,n,r;t.length!==2?(e=bu,n=(l,c)=>bu(t(l),c),r=(l,c)=>t(l)-c):(e=t===bu||t===Xge?t:Jge,n=t,r=t);function a(l,c,u=0,d=l.length){if(u>>1;n(l[f],c)<0?u=f+1:d=f}while(u>>1;n(l[f],c)<=0?u=f+1:d=f}while(uu&&r(l[f-1],c)>-r(l[f],c)?f-1:f}return{left:a,center:o,right:s}}function Jge(){return 0}function XU(t){return t===null?NaN:+t}function*Zge(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const Qge=P3(bu),Ay=Qge.right;P3(XU).center;class LD extends Map{constructor(e,n=nxe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,a]of e)this.set(r,a)}get(e){return super.get(FD(this,e))}has(e){return super.has(FD(this,e))}set(e,n){return super.set(exe(this,e),n)}delete(e){return super.delete(txe(this,e))}}function FD({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function exe({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function txe({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function nxe(t){return t!==null&&typeof t=="object"?t.valueOf():t}function rxe(t=bu){if(t===bu)return JU;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function JU(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const axe=Math.sqrt(50),sxe=Math.sqrt(10),ixe=Math.sqrt(2);function cw(t,e,n){const r=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),o=s>=axe?10:s>=sxe?5:s>=ixe?2:1;let l,c,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(t*u),c=Math.round(e*u),l/ue&&--c,u=-u):(u=Math.pow(10,a)*o,l=Math.round(t/u),c=Math.round(e/u),l*ue&&--c),c0))return[];if(t===e)return[t];const r=e=a))return[];const l=s-a+1,c=new Array(l);if(r)if(o<0)for(let u=0;u=r)&&(n=r);return n}function zD(t,e){let n;for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function ZU(t,e,n=0,r=1/0,a){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(a=a===void 0?JU:rxe(a);r>n;){if(r-n>600){const c=r-n+1,u=e-n+1,d=Math.log(c),f=.5*Math.exp(2*d/3),h=.5*Math.sqrt(d*f*(c-f)/c)*(u-c/2<0?-1:1),p=Math.max(n,Math.floor(e-u*f/c+h)),m=Math.min(r,Math.floor(e+(c-u)*f/c+h));ZU(t,e,p,m,a)}const s=t[e];let o=n,l=r;for(hg(t,n,e),a(t[r],s)>0&&hg(t,n,r);o0;)--l}a(t[n],s)===0?hg(t,n,l):(++l,hg(t,l,r)),l<=e&&(n=l+1),e<=l&&(r=l-1)}return t}function hg(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function oxe(t,e,n){if(t=Float64Array.from(Zge(t)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return zD(t);if(e>=1)return BD(t);var r,a=(r-1)*e,s=Math.floor(a),o=BD(ZU(t,s).subarray(0,s+1)),l=zD(t.subarray(s+1));return o+(l-o)*(a-s)}}function lxe(t,e,n=XU){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,a=(r-1)*e,s=Math.floor(a),o=+n(t[s],s,t),l=+n(t[s+1],s+1,t);return o+(l-o)*(a-s)}}function cxe(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(a);++r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Wv(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Wv(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=dxe.exec(t))?new Ls(e[1],e[2],e[3],1):(e=fxe.exec(t))?new Ls(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=hxe.exec(t))?Wv(e[1],e[2],e[3],e[4]):(e=pxe.exec(t))?Wv(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=mxe.exec(t))?KD(e[1],e[2]/100,e[3]/100,1):(e=gxe.exec(t))?KD(e[1],e[2]/100,e[3]/100,e[4]):UD.hasOwnProperty(t)?HD(UD[t]):t==="transparent"?new Ls(NaN,NaN,NaN,0):null}function HD(t){return new Ls(t>>16&255,t>>8&255,t&255,1)}function Wv(t,e,n,r){return r<=0&&(t=e=n=NaN),new Ls(t,e,n,r)}function vxe(t){return t instanceof Oy||(t=x0(t)),t?(t=t.rgb(),new Ls(t.r,t.g,t.b,t.opacity)):new Ls}function vE(t,e,n,r){return arguments.length===1?vxe(t):new Ls(t,e,n,r??1)}function Ls(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}R3(Ls,vE,eV(Oy,{brighter(t){return t=t==null?uw:Math.pow(uw,t),new Ls(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?m0:Math.pow(m0,t),new Ls(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ls(Bd(this.r),Bd(this.g),Bd(this.b),dw(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:GD,formatHex:GD,formatHex8:bxe,formatRgb:qD,toString:qD}));function GD(){return`#${_d(this.r)}${_d(this.g)}${_d(this.b)}`}function bxe(){return`#${_d(this.r)}${_d(this.g)}${_d(this.b)}${_d((isNaN(this.opacity)?1:this.opacity)*255)}`}function qD(){const t=dw(this.opacity);return`${t===1?"rgb(":"rgba("}${Bd(this.r)}, ${Bd(this.g)}, ${Bd(this.b)}${t===1?")":`, ${t})`}`}function dw(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Bd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function _d(t){return t=Bd(t),(t<16?"0":"")+t.toString(16)}function KD(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new yo(t,e,n,r)}function tV(t){if(t instanceof yo)return new yo(t.h,t.s,t.l,t.opacity);if(t instanceof Oy||(t=x0(t)),!t)return new yo;if(t instanceof yo)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,l=s-a,c=(s+a)/2;return l?(e===s?o=(n-r)/l+(n0&&c<1?0:o,new yo(o,l,c,t.opacity)}function wxe(t,e,n,r){return arguments.length===1?tV(t):new yo(t,e,n,r??1)}function yo(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}R3(yo,wxe,eV(Oy,{brighter(t){return t=t==null?uw:Math.pow(uw,t),new yo(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?m0:Math.pow(m0,t),new yo(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new Ls(CS(t>=240?t-240:t+120,a,r),CS(t,a,r),CS(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new yo(YD(this.h),Hv(this.s),Hv(this.l),dw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=dw(this.opacity);return`${t===1?"hsl(":"hsla("}${YD(this.h)}, ${Hv(this.s)*100}%, ${Hv(this.l)*100}%${t===1?")":`, ${t})`}`}}));function YD(t){return t=(t||0)%360,t<0?t+360:t}function Hv(t){return Math.max(0,Math.min(1,t||0))}function CS(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const D3=t=>()=>t;function kxe(t,e){return function(n){return t+n*e}}function jxe(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Sxe(t){return(t=+t)==1?nV:function(e,n){return n-e?jxe(e,n,t):D3(isNaN(e)?n:e)}}function nV(t,e){var n=e-t;return n?kxe(t,n):D3(isNaN(t)?e:t)}const XD=function t(e){var n=Sxe(e);function r(a,s){var o=n((a=vE(a)).r,(s=vE(s)).r),l=n(a.g,s.g),c=n(a.b,s.b),u=nV(a.opacity,s.opacity);return function(d){return a.r=o(d),a.g=l(d),a.b=c(d),a.opacity=u(d),a+""}}return r.gamma=t,r}(1);function _xe(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;an&&(s=e.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(r=r[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,c.push({i:o,x:fw(r,a)})),n=ES.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Ixe(t,e,n){var r=t[0],a=t[1],s=e[0],o=e[1];return a2?$xe:Ixe,c=u=null,f}function f(h){return h==null||isNaN(h=+h)?s:(c||(c=l(t.map(r),e,n)))(r(o(h)))}return f.invert=function(h){return o(a((u||(u=l(e,t.map(r),fw)))(h)))},f.domain=function(h){return arguments.length?(t=Array.from(h,hw),d()):t.slice()},f.range=function(h){return arguments.length?(e=Array.from(h),d()):e.slice()},f.rangeRound=function(h){return e=Array.from(h),n=I3,d()},f.clamp=function(h){return arguments.length?(o=h?!0:hs,d()):o!==hs},f.interpolate=function(h){return arguments.length?(n=h,d()):n},f.unknown=function(h){return arguments.length?(s=h,f):s},function(h,p){return r=h,a=p,d()}}function $3(){return Sj()(hs,hs)}function Lxe(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pw(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Sp(t){return t=pw(Math.abs(t)),t?t[1]:NaN}function Fxe(t,e){return function(n,r){for(var a=n.length,s=[],o=0,l=t[0],c=0;a>0&&l>0&&(c+l+1>r&&(l=Math.max(1,r-c)),s.push(n.substring(a-=l,a+l)),!((c+=l+1)>r));)l=t[o=(o+1)%t.length];return s.reverse().join(e)}}function Bxe(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var zxe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function y0(t){if(!(e=zxe.exec(t)))throw new Error("invalid format: "+t);var e;return new L3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}y0.prototype=L3.prototype;function L3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}L3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Uxe(t){e:for(var e=t.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var mw;function Vxe(t,e){var n=pw(t,e);if(!n)return mw=void 0,t.toPrecision(e);var r=n[0],a=n[1],s=a-(mw=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+pw(t,Math.max(0,e+s-1))[0]}function ZD(t,e){var n=pw(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const QD={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Lxe,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>ZD(t*100,e),r:ZD,s:Vxe,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function eI(t){return t}var tI=Array.prototype.map,nI=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Wxe(t){var e=t.grouping===void 0||t.thousands===void 0?eI:Fxe(tI.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",a=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?eI:Bxe(tI.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(f,h){f=y0(f);var p=f.fill,m=f.align,x=f.sign,y=f.symbol,b=f.zero,v=f.width,w=f.comma,j=f.precision,k=f.trim,_=f.type;_==="n"?(w=!0,_="g"):QD[_]||(j===void 0&&(j=12),k=!0,_="g"),(b||p==="0"&&m==="=")&&(b=!0,p="0",m="=");var S=(h&&h.prefix!==void 0?h.prefix:"")+(y==="$"?n:y==="#"&&/[boxX]/.test(_)?"0"+_.toLowerCase():""),N=(y==="$"?r:/[%p]/.test(_)?o:"")+(h&&h.suffix!==void 0?h.suffix:""),E=QD[_],P=/[defgprs%]/.test(_);j=j===void 0?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function M(A){var O=S,D=N,I,X,Q;if(_==="c")D=E(A)+D,A="";else{A=+A;var V=A<0||1/A<0;if(A=isNaN(A)?c:E(Math.abs(A),j),k&&(A=Uxe(A)),V&&+A==0&&x!=="+"&&(V=!1),O=(V?x==="("?x:l:x==="-"||x==="("?"":x)+O,D=(_==="s"&&!isNaN(A)&&mw!==void 0?nI[8+mw/3]:"")+D+(V&&x==="("?")":""),P){for(I=-1,X=A.length;++IQ||Q>57){D=(Q===46?a+A.slice(I+1):A.slice(I))+D,A=A.slice(0,I);break}}}w&&!b&&(A=e(A,1/0));var Y=O.length+A.length+D.length,H=Y>1)+O+A+D+H.slice(Y);break;default:A=H+O+A+D;break}return s(A)}return M.toString=function(){return f+""},M}function d(f,h){var p=Math.max(-8,Math.min(8,Math.floor(Sp(h)/3)))*3,m=Math.pow(10,-p),x=u((f=y0(f),f.type="f",f),{suffix:nI[8+p/3]});return function(y){return x(m*y)}}return{format:u,formatPrefix:d}}var Gv,F3,rV;Hxe({thousands:",",grouping:[3],currency:["$",""]});function Hxe(t){return Gv=Wxe(t),F3=Gv.format,rV=Gv.formatPrefix,Gv}function Gxe(t){return Math.max(0,-Sp(Math.abs(t)))}function qxe(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Sp(e)/3)))*3-Sp(Math.abs(t)))}function Kxe(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Sp(e)-Sp(t))+1}function aV(t,e,n,r){var a=xE(t,e,n),s;switch(r=y0(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=qxe(a,o))&&(r.precision=s),rV(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Kxe(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Gxe(a))&&(r.precision=s-(r.type==="%")*2);break}}return F3(r)}function Yu(t){var e=t.domain;return t.ticks=function(n){var r=e();return mE(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return aV(a[0],a[a.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),a=0,s=r.length-1,o=r[a],l=r[s],c,u,d=10;for(l0;){if(u=gE(o,l,n),u===c)return r[a]=o,r[s]=l,e(r);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return t},t}function gw(){var t=$3();return t.copy=function(){return Ty(t,gw())},Zi.apply(t,arguments),Yu(t)}function sV(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,hw),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return sV(t).unknown(e)},t=arguments.length?Array.from(t,hw):[0,1],Yu(n)}function iV(t,e){t=t.slice();var n=0,r=t.length-1,a=t[n],s=t[r],o;return sMath.pow(t,e)}function Qxe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function sI(t){return(e,n)=>-t(-e,n)}function B3(t){const e=t(rI,aI),n=e.domain;let r=10,a,s;function o(){return a=Qxe(r),s=Zxe(r),n()[0]<0?(a=sI(a),s=sI(s),t(Yxe,Xxe)):t(rI,aI),e}return e.base=function(l){return arguments.length?(r=+l,o()):r},e.domain=function(l){return arguments.length?(n(l),o()):n()},e.ticks=l=>{const c=n();let u=c[0],d=c[c.length-1];const f=d0){for(;h<=p;++h)for(m=1;md)break;b.push(x)}}else for(;h<=p;++h)for(m=r-1;m>=1;--m)if(x=h>0?m/s(-h):m*s(h),!(xd)break;b.push(x)}b.length*2{if(l==null&&(l=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=y0(c)).precision==null&&(c.trim=!0),c=F3(c)),l===1/0)return c;const u=Math.max(1,r*l/e.ticks().length);return d=>{let f=d/s(Math.round(a(d)));return f*rn(iV(n(),{floor:l=>s(Math.floor(a(l))),ceil:l=>s(Math.ceil(a(l)))})),e}function oV(){const t=B3(Sj()).domain([1,10]);return t.copy=()=>Ty(t,oV()).base(t.base()),Zi.apply(t,arguments),t}function iI(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function oI(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function z3(t){var e=1,n=t(iI(e),oI(e));return n.constant=function(r){return arguments.length?t(iI(e=+r),oI(e)):e},Yu(n)}function lV(){var t=z3(Sj());return t.copy=function(){return Ty(t,lV()).constant(t.constant())},Zi.apply(t,arguments)}function lI(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function e0e(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function t0e(t){return t<0?-t*t:t*t}function U3(t){var e=t(hs,hs),n=1;function r(){return n===1?t(hs,hs):n===.5?t(e0e,t0e):t(lI(n),lI(1/n))}return e.exponent=function(a){return arguments.length?(n=+a,r()):n},Yu(e)}function V3(){var t=U3(Sj());return t.copy=function(){return Ty(t,V3()).exponent(t.exponent())},Zi.apply(t,arguments),t}function n0e(){return V3.apply(null,arguments).exponent(.5)}function cI(t){return Math.sign(t)*t*t}function r0e(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function cV(){var t=$3(),e=[0,1],n=!1,r;function a(s){var o=r0e(t(s));return isNaN(o)?r:n?Math.round(o):o}return a.invert=function(s){return t.invert(cI(s))},a.domain=function(s){return arguments.length?(t.domain(s),a):t.domain()},a.range=function(s){return arguments.length?(t.range((e=Array.from(s,hw)).map(cI)),a):e.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(t.clamp(s),a):t.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return cV(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Zi.apply(a,arguments),Yu(a)}function uV(){var t=[],e=[],n=[],r;function a(){var o=0,l=Math.max(1,e.length);for(n=new Array(l-1);++o0?n[l-1]:t[0],l=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(c){return arguments.length&&(s=c),o},o.thresholds=function(){return r.slice()},o.copy=function(){return dV().domain([t,e]).range(a).unknown(s)},Zi.apply(Yu(o),arguments)}function fV(){var t=[.5],e=[0,1],n,r=1;function a(s){return s!=null&&s<=s?e[Ay(t,s,0,r)]:n}return a.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),a):t.slice()},a.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),a):e.slice()},a.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return fV().domain(t).range(e).unknown(n)},Zi.apply(a,arguments)}const AS=new Date,OS=new Date;function ca(t,e,n,r){function a(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(t(s=new Date(+s)),s),a.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),a.round=s=>{const o=a(s),l=a.ceil(s);return s-o(e(s=new Date(+s),o==null?1:Math.floor(o)),s),a.range=(s,o,l)=>{const c=[];if(s=a.ceil(s),l=l==null?1:Math.floor(l),!(s0))return c;let u;do c.push(u=new Date(+s)),e(s,l),t(s);while(uca(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;e(o,-1),!s(o););else for(;--l>=0;)for(;e(o,1),!s(o););}),n&&(a.count=(s,o)=>(AS.setTime(+s),OS.setTime(+o),t(AS),t(OS),Math.floor(n(AS,OS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?o=>r(o)%s===0:o=>a.count(0,o)%s===0):a)),a}const xw=ca(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);xw.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ca(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):xw);xw.range;const Ql=1e3,Fi=Ql*60,ec=Fi*60,hc=ec*24,W3=hc*7,uI=hc*30,TS=hc*365,Nd=ca(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Ql)},(t,e)=>(e-t)/Ql,t=>t.getUTCSeconds());Nd.range;const H3=ca(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ql)},(t,e)=>{t.setTime(+t+e*Fi)},(t,e)=>(e-t)/Fi,t=>t.getMinutes());H3.range;const G3=ca(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Fi)},(t,e)=>(e-t)/Fi,t=>t.getUTCMinutes());G3.range;const q3=ca(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ql-t.getMinutes()*Fi)},(t,e)=>{t.setTime(+t+e*ec)},(t,e)=>(e-t)/ec,t=>t.getHours());q3.range;const K3=ca(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ec)},(t,e)=>(e-t)/ec,t=>t.getUTCHours());K3.range;const Py=ca(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Fi)/hc,t=>t.getDate()-1);Py.range;const _j=ca(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/hc,t=>t.getUTCDate()-1);_j.range;const hV=ca(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/hc,t=>Math.floor(t/hc));hV.range;function _f(t){return ca(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Fi)/W3)}const Nj=_f(0),yw=_f(1),a0e=_f(2),s0e=_f(3),_p=_f(4),i0e=_f(5),o0e=_f(6);Nj.range;yw.range;a0e.range;s0e.range;_p.range;i0e.range;o0e.range;function Nf(t){return ca(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/W3)}const Cj=Nf(0),vw=Nf(1),l0e=Nf(2),c0e=Nf(3),Np=Nf(4),u0e=Nf(5),d0e=Nf(6);Cj.range;vw.range;l0e.range;c0e.range;Np.range;u0e.range;d0e.range;const Y3=ca(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Y3.range;const X3=ca(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());X3.range;const pc=ca(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());pc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ca(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});pc.range;const mc=ca(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());mc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ca(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});mc.range;function pV(t,e,n,r,a,s){const o=[[Nd,1,Ql],[Nd,5,5*Ql],[Nd,15,15*Ql],[Nd,30,30*Ql],[s,1,Fi],[s,5,5*Fi],[s,15,15*Fi],[s,30,30*Fi],[a,1,ec],[a,3,3*ec],[a,6,6*ec],[a,12,12*ec],[r,1,hc],[r,2,2*hc],[n,1,W3],[e,1,uI],[e,3,3*uI],[t,1,TS]];function l(u,d,f){const h=dy).right(o,h);if(p===o.length)return t.every(xE(u/TS,d/TS,f));if(p===0)return xw.every(Math.max(xE(u,d,f),1));const[m,x]=o[h/o[p-1][2]53)return null;"w"in W||(W.w=1),"Z"in W?(te=MS(pg(W.y,0,1)),ie=te.getUTCDay(),te=ie>4||ie===0?vw.ceil(te):vw(te),te=_j.offset(te,(W.V-1)*7),W.y=te.getUTCFullYear(),W.m=te.getUTCMonth(),W.d=te.getUTCDate()+(W.w+6)%7):(te=PS(pg(W.y,0,1)),ie=te.getDay(),te=ie>4||ie===0?yw.ceil(te):yw(te),te=Py.offset(te,(W.V-1)*7),W.y=te.getFullYear(),W.m=te.getMonth(),W.d=te.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),ie="Z"in W?MS(pg(W.y,0,1)).getUTCDay():PS(pg(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(ie+5)%7:W.w+W.U*7-(ie+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,MS(W)):PS(W)}}function N(re,he,q,W){for(var ue=0,te=he.length,ie=q.length,me,ve;ue=ie)return-1;if(me=he.charCodeAt(ue++),me===37){if(me=he.charAt(ue++),ve=k[me in dI?he.charAt(ue++):me],!ve||(W=ve(re,q,W))<0)return-1}else if(me!=q.charCodeAt(W++))return-1}return W}function E(re,he,q){var W=u.exec(he.slice(q));return W?(re.p=d.get(W[0].toLowerCase()),q+W[0].length):-1}function P(re,he,q){var W=p.exec(he.slice(q));return W?(re.w=m.get(W[0].toLowerCase()),q+W[0].length):-1}function M(re,he,q){var W=f.exec(he.slice(q));return W?(re.w=h.get(W[0].toLowerCase()),q+W[0].length):-1}function A(re,he,q){var W=b.exec(he.slice(q));return W?(re.m=v.get(W[0].toLowerCase()),q+W[0].length):-1}function O(re,he,q){var W=x.exec(he.slice(q));return W?(re.m=y.get(W[0].toLowerCase()),q+W[0].length):-1}function D(re,he,q){return N(re,e,he,q)}function I(re,he,q){return N(re,n,he,q)}function X(re,he,q){return N(re,r,he,q)}function Q(re){return o[re.getDay()]}function V(re){return s[re.getDay()]}function Y(re){return c[re.getMonth()]}function H(re){return l[re.getMonth()]}function G(re){return a[+(re.getHours()>=12)]}function $(re){return 1+~~(re.getMonth()/3)}function F(re){return o[re.getUTCDay()]}function R(re){return s[re.getUTCDay()]}function z(re){return c[re.getUTCMonth()]}function U(re){return l[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function pe(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var he=_(re+="",w);return he.toString=function(){return re},he},parse:function(re){var he=S(re+="",!1);return he.toString=function(){return re},he},utcFormat:function(re){var he=_(re+="",j);return he.toString=function(){return re},he},utcParse:function(re){var he=S(re+="",!0);return he.toString=function(){return re},he}}}var dI={"-":"",_:" ",0:"0"},Sa=/^\s*\d+/,x0e=/^%/,y0e=/[\\^$*+?|[\]().{}]/g;function mn(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",s=a.length;return r+(s[e.toLowerCase(),n]))}function b0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function w0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function k0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function j0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function S0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function fI(t,e,n){var r=Sa.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function hI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function _0e(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function N0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function C0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function pI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function E0e(t,e,n){var r=Sa.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function mI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function A0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function O0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function T0e(t,e,n){var r=Sa.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function P0e(t,e,n){var r=Sa.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function M0e(t,e,n){var r=x0e.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function R0e(t,e,n){var r=Sa.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function D0e(t,e,n){var r=Sa.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function gI(t,e){return mn(t.getDate(),e,2)}function I0e(t,e){return mn(t.getHours(),e,2)}function $0e(t,e){return mn(t.getHours()%12||12,e,2)}function L0e(t,e){return mn(1+Py.count(pc(t),t),e,3)}function mV(t,e){return mn(t.getMilliseconds(),e,3)}function F0e(t,e){return mV(t,e)+"000"}function B0e(t,e){return mn(t.getMonth()+1,e,2)}function z0e(t,e){return mn(t.getMinutes(),e,2)}function U0e(t,e){return mn(t.getSeconds(),e,2)}function V0e(t){var e=t.getDay();return e===0?7:e}function W0e(t,e){return mn(Nj.count(pc(t)-1,t),e,2)}function gV(t){var e=t.getDay();return e>=4||e===0?_p(t):_p.ceil(t)}function H0e(t,e){return t=gV(t),mn(_p.count(pc(t),t)+(pc(t).getDay()===4),e,2)}function G0e(t){return t.getDay()}function q0e(t,e){return mn(yw.count(pc(t)-1,t),e,2)}function K0e(t,e){return mn(t.getFullYear()%100,e,2)}function Y0e(t,e){return t=gV(t),mn(t.getFullYear()%100,e,2)}function X0e(t,e){return mn(t.getFullYear()%1e4,e,4)}function J0e(t,e){var n=t.getDay();return t=n>=4||n===0?_p(t):_p.ceil(t),mn(t.getFullYear()%1e4,e,4)}function Z0e(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+mn(e/60|0,"0",2)+mn(e%60,"0",2)}function xI(t,e){return mn(t.getUTCDate(),e,2)}function Q0e(t,e){return mn(t.getUTCHours(),e,2)}function eye(t,e){return mn(t.getUTCHours()%12||12,e,2)}function tye(t,e){return mn(1+_j.count(mc(t),t),e,3)}function xV(t,e){return mn(t.getUTCMilliseconds(),e,3)}function nye(t,e){return xV(t,e)+"000"}function rye(t,e){return mn(t.getUTCMonth()+1,e,2)}function aye(t,e){return mn(t.getUTCMinutes(),e,2)}function sye(t,e){return mn(t.getUTCSeconds(),e,2)}function iye(t){var e=t.getUTCDay();return e===0?7:e}function oye(t,e){return mn(Cj.count(mc(t)-1,t),e,2)}function yV(t){var e=t.getUTCDay();return e>=4||e===0?Np(t):Np.ceil(t)}function lye(t,e){return t=yV(t),mn(Np.count(mc(t),t)+(mc(t).getUTCDay()===4),e,2)}function cye(t){return t.getUTCDay()}function uye(t,e){return mn(vw.count(mc(t)-1,t),e,2)}function dye(t,e){return mn(t.getUTCFullYear()%100,e,2)}function fye(t,e){return t=yV(t),mn(t.getUTCFullYear()%100,e,2)}function hye(t,e){return mn(t.getUTCFullYear()%1e4,e,4)}function pye(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Np(t):Np.ceil(t),mn(t.getUTCFullYear()%1e4,e,4)}function mye(){return"+0000"}function yI(){return"%"}function vI(t){return+t}function bI(t){return Math.floor(+t/1e3)}var Hf,vV,bV;gye({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function gye(t){return Hf=g0e(t),vV=Hf.format,Hf.parse,bV=Hf.utcFormat,Hf.utcParse,Hf}function xye(t){return new Date(t)}function yye(t){return t instanceof Date?+t:+new Date(+t)}function J3(t,e,n,r,a,s,o,l,c,u){var d=$3(),f=d.invert,h=d.domain,p=u(".%L"),m=u(":%S"),x=u("%I:%M"),y=u("%I %p"),b=u("%a %d"),v=u("%b %d"),w=u("%B"),j=u("%Y");function k(_){return(c(_)<_?p:l(_)<_?m:o(_)<_?x:s(_)<_?y:r(_)<_?a(_)<_?b:v:n(_)<_?w:j)(_)}return d.invert=function(_){return new Date(f(_))},d.domain=function(_){return arguments.length?h(Array.from(_,yye)):h().map(xye)},d.ticks=function(_){var S=h();return t(S[0],S[S.length-1],_??10)},d.tickFormat=function(_,S){return S==null?k:u(S)},d.nice=function(_){var S=h();return(!_||typeof _.range!="function")&&(_=e(S[0],S[S.length-1],_??10)),_?h(iV(S,_)):d},d.copy=function(){return Ty(d,J3(t,e,n,r,a,s,o,l,c,u))},d}function vye(){return Zi.apply(J3(p0e,m0e,pc,Y3,Nj,Py,q3,H3,Nd,vV).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function bye(){return Zi.apply(J3(f0e,h0e,mc,X3,Cj,_j,K3,G3,Nd,bV).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Ej(){var t=0,e=1,n,r,a,s,o=hs,l=!1,c;function u(f){return f==null||isNaN(f=+f)?c:o(a===0?.5:(f=(s(f)-n)*a,l?Math.max(0,Math.min(1,f)):f))}u.domain=function(f){return arguments.length?([t,e]=f,n=s(t=+t),r=s(e=+e),a=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(f){return arguments.length?(l=!!f,u):l},u.interpolator=function(f){return arguments.length?(o=f,u):o};function d(f){return function(h){var p,m;return arguments.length?([p,m]=h,o=f(p,m),u):[o(0),o(1)]}}return u.range=d(Nm),u.rangeRound=d(I3),u.unknown=function(f){return arguments.length?(c=f,u):c},function(f){return s=f,n=f(t),r=f(e),a=n===r?0:1/(r-n),u}}function Xu(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function wV(){var t=Yu(Ej()(hs));return t.copy=function(){return Xu(t,wV())},_c.apply(t,arguments)}function kV(){var t=B3(Ej()).domain([1,10]);return t.copy=function(){return Xu(t,kV()).base(t.base())},_c.apply(t,arguments)}function jV(){var t=z3(Ej());return t.copy=function(){return Xu(t,jV()).constant(t.constant())},_c.apply(t,arguments)}function Z3(){var t=U3(Ej());return t.copy=function(){return Xu(t,Z3()).exponent(t.exponent())},_c.apply(t,arguments)}function wye(){return Z3.apply(null,arguments).exponent(.5)}function SV(){var t=[],e=hs;function n(r){if(r!=null&&!isNaN(r=+r))return e((Ay(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let a of r)a!=null&&!isNaN(a=+a)&&t.push(a);return t.sort(bu),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,a)=>e(a/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>oxe(t,s/r))},n.copy=function(){return SV(e).domain(t)},_c.apply(n,arguments)}function Aj(){var t=0,e=.5,n=1,r=1,a,s,o,l,c,u=hs,d,f=!1,h;function p(x){return isNaN(x=+x)?h:(x=.5+((x=+d(x))-s)*(r*xe}var Nye=_ye,Cye=EV,Eye=Nye,Aye=_m;function Oye(t){return t&&t.length?Cye(t,Aye,Eye):void 0}var Tye=Oye;const tu=Rn(Tye);function Pye(t,e){return tt.e^s.s<0?1:-1;for(r=s.d.length,a=t.d.length,e=0,n=rt.d[e]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};lt.decimalPlaces=lt.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*sr;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};lt.dividedBy=lt.div=function(t){return sc(this,new this.constructor(t))};lt.dividedToIntegerBy=lt.idiv=function(t){var e=this,n=e.constructor;return Bn(sc(e,new n(t),0,1),n.precision)};lt.equals=lt.eq=function(t){return!this.cmp(t)};lt.exponent=function(){return Gr(this)};lt.greaterThan=lt.gt=function(t){return this.cmp(t)>0};lt.greaterThanOrEqualTo=lt.gte=function(t){return this.cmp(t)>=0};lt.isInteger=lt.isint=function(){return this.e>this.d.length-2};lt.isNegative=lt.isneg=function(){return this.s<0};lt.isPositive=lt.ispos=function(){return this.s>0};lt.isZero=function(){return this.s===0};lt.lessThan=lt.lt=function(t){return this.cmp(t)<0};lt.lessThanOrEqualTo=lt.lte=function(t){return this.cmp(t)<1};lt.logarithm=lt.log=function(t){var e,n=this,r=n.constructor,a=r.precision,s=a+5;if(t===void 0)t=new r(10);else if(t=new r(t),t.s<1||t.eq(ui))throw Error(Yi+"NaN");if(n.s<1)throw Error(Yi+(n.s?"NaN":"-Infinity"));return n.eq(ui)?new r(0):(hr=!1,e=sc(v0(n,s),v0(t,s),s),hr=!0,Bn(e,a))};lt.minus=lt.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?PV(e,t):OV(e,(t.s=-t.s,t))};lt.modulo=lt.mod=function(t){var e,n=this,r=n.constructor,a=r.precision;if(t=new r(t),!t.s)throw Error(Yi+"NaN");return n.s?(hr=!1,e=sc(n,t,0,1).times(t),hr=!0,n.minus(e)):Bn(new r(n),a)};lt.naturalExponential=lt.exp=function(){return TV(this)};lt.naturalLogarithm=lt.ln=function(){return v0(this)};lt.negated=lt.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};lt.plus=lt.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?OV(e,t):PV(e,(t.s=-t.s,t))};lt.precision=lt.sd=function(t){var e,n,r,a=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(zd+t);if(e=Gr(a)+1,r=a.d.length-1,n=r*sr+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return t&&e>n?e:n};lt.squareRoot=lt.sqrt=function(){var t,e,n,r,a,s,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(Yi+"NaN")}for(t=Gr(l),hr=!1,a=Math.sqrt(+l),a==0||a==1/0?(e=al(l.d),(e.length+t)%2==0&&(e+="0"),a=Math.sqrt(e),t=Em((t+1)/2)-(t<0||t%2),a==1/0?e="5e"+t:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new c(e)):r=new c(a.toString()),n=c.precision,a=o=n+3;;)if(s=r,r=s.plus(sc(l,s,o+2)).times(.5),al(s.d).slice(0,o)===(e=al(r.d)).slice(0,o)){if(e=e.slice(o-3,o+1),a==o&&e=="4999"){if(Bn(s,n+1,0),s.times(s).eq(l)){r=s;break}}else if(e!="9999")break;o+=4}return hr=!0,Bn(r,n)};lt.times=lt.mul=function(t){var e,n,r,a,s,o,l,c,u,d=this,f=d.constructor,h=d.d,p=(t=new f(t)).d;if(!d.s||!t.s)return new f(0);for(t.s*=d.s,n=d.e+t.e,c=h.length,u=p.length,c=0;){for(e=0,a=c+r;a>r;)l=s[a]+p[r]*h[a-r-1]+e,s[a--]=l%ga|0,e=l/ga|0;s[a]=(s[a]+e)%ga|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=n,hr?Bn(t,f.precision):t};lt.toDecimalPlaces=lt.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(kl(t,0,Cm),e===void 0?e=r.rounding:kl(e,0,8),Bn(n,t+Gr(n)+1,e))};lt.toExponential=function(t,e){var n,r=this,a=r.constructor;return t===void 0?n=af(r,!0):(kl(t,0,Cm),e===void 0?e=a.rounding:kl(e,0,8),r=Bn(new a(r),t+1,e),n=af(r,!0,t+1)),n};lt.toFixed=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?af(a):(kl(t,0,Cm),e===void 0?e=s.rounding:kl(e,0,8),r=Bn(new s(a),t+Gr(a)+1,e),n=af(r.abs(),!1,t+Gr(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};lt.toInteger=lt.toint=function(){var t=this,e=t.constructor;return Bn(new e(t),Gr(t)+1,e.rounding)};lt.toNumber=function(){return+this};lt.toPower=lt.pow=function(t){var e,n,r,a,s,o,l=this,c=l.constructor,u=12,d=+(t=new c(t));if(!t.s)return new c(ui);if(l=new c(l),!l.s){if(t.s<1)throw Error(Yi+"Infinity");return l}if(l.eq(ui))return l;if(r=c.precision,t.eq(ui))return Bn(l,r);if(e=t.e,n=t.d.length-1,o=e>=n,s=l.s,o){if((n=d<0?-d:d)<=AV){for(a=new c(ui),e=Math.ceil(r/sr+4),hr=!1;n%2&&(a=a.times(l),jI(a.d,e)),n=Em(n/2),n!==0;)l=l.times(l),jI(l.d,e);return hr=!0,t.s<0?new c(ui).div(a):Bn(a,r)}}else if(s<0)throw Error(Yi+"NaN");return s=s<0&&t.d[Math.max(e,n)]&1?-1:1,l.s=1,hr=!1,a=t.times(v0(l,r+u)),hr=!0,a=TV(a),a.s=s,a};lt.toPrecision=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?(n=Gr(a),r=af(a,n<=s.toExpNeg||n>=s.toExpPos)):(kl(t,1,Cm),e===void 0?e=s.rounding:kl(e,0,8),a=Bn(new s(a),t,e),n=Gr(a),r=af(a,t<=n||n<=s.toExpNeg,t)),r};lt.toSignificantDigits=lt.tosd=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(kl(t,1,Cm),e===void 0?e=r.rounding:kl(e,0,8)),Bn(new r(n),t,e)};lt.toString=lt.valueOf=lt.val=lt.toJSON=lt[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Gr(t),n=t.constructor;return af(t,e<=n.toExpNeg||e>=n.toExpPos)};function OV(t,e){var n,r,a,s,o,l,c,u,d=t.constructor,f=d.precision;if(!t.s||!e.s)return e.s||(e=new d(t)),hr?Bn(e,f):e;if(c=t.d,u=e.d,o=t.e,a=e.e,c=c.slice(),s=o-a,s){for(s<0?(r=c,s=-s,l=u.length):(r=u,a=o,l=c.length),o=Math.ceil(f/sr),l=o>l?o+1:l+1,s>l&&(s=l,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(l=c.length,s=u.length,l-s<0&&(s=l,r=u,u=c,c=r),n=0;s;)n=(c[--s]=c[s]+u[s]+n)/ga|0,c[s]%=ga;for(n&&(c.unshift(n),++a),l=c.length;c[--l]==0;)c.pop();return e.d=c,e.e=a,hr?Bn(e,f):e}function kl(t,e,n){if(t!==~~t||tn)throw Error(zd+t)}function al(t){var e,n,r,a=t.length-1,s="",o=t[0];if(a>0){for(s+=o,e=1;eo?1:-1;else for(l=c=0;la[l]?1:-1;break}return c}function n(r,a,s){for(var o=0;s--;)r[s]-=o,o=r[s]1;)r.shift()}return function(r,a,s,o){var l,c,u,d,f,h,p,m,x,y,b,v,w,j,k,_,S,N,E=r.constructor,P=r.s==a.s?1:-1,M=r.d,A=a.d;if(!r.s)return new E(r);if(!a.s)throw Error(Yi+"Division by zero");for(c=r.e-a.e,S=A.length,k=M.length,p=new E(P),m=p.d=[],u=0;A[u]==(M[u]||0);)++u;if(A[u]>(M[u]||0)&&--c,s==null?v=s=E.precision:o?v=s+(Gr(r)-Gr(a))+1:v=s,v<0)return new E(0);if(v=v/sr+2|0,u=0,S==1)for(d=0,A=A[0],v++;(u1&&(A=t(A,d),M=t(M,d),S=A.length,k=M.length),j=S,x=M.slice(0,S),y=x.length;y=ga/2&&++_;do d=0,l=e(A,x,S,y),l<0?(b=x[0],S!=y&&(b=b*ga+(x[1]||0)),d=b/_|0,d>1?(d>=ga&&(d=ga-1),f=t(A,d),h=f.length,y=x.length,l=e(f,x,h,y),l==1&&(d--,n(f,S16)throw Error(eT+Gr(t));if(!t.s)return new d(ui);for(hr=!1,l=f,o=new d(.03125);t.abs().gte(.1);)t=t.times(o),u+=5;for(r=Math.log(md(2,u))/Math.LN10*2+5|0,l+=r,n=a=s=new d(ui),d.precision=l;;){if(a=Bn(a.times(t),l),n=n.times(++c),o=s.plus(sc(a,n,l)),al(o.d).slice(0,l)===al(s.d).slice(0,l)){for(;u--;)s=Bn(s.times(s),l);return d.precision=f,e==null?(hr=!0,Bn(s,f)):s}s=o}}function Gr(t){for(var e=t.e*sr,n=t.d[0];n>=10;n/=10)e++;return e}function RS(t,e,n){if(e>t.LN10.sd())throw hr=!0,n&&(t.precision=n),Error(Yi+"LN10 precision limit exceeded");return Bn(new t(t.LN10),e)}function zc(t){for(var e="";t--;)e+="0";return e}function v0(t,e){var n,r,a,s,o,l,c,u,d,f=1,h=10,p=t,m=p.d,x=p.constructor,y=x.precision;if(p.s<1)throw Error(Yi+(p.s?"NaN":"-Infinity"));if(p.eq(ui))return new x(0);if(e==null?(hr=!1,u=y):u=e,p.eq(10))return e==null&&(hr=!0),RS(x,u);if(u+=h,x.precision=u,n=al(m),r=n.charAt(0),s=Gr(p),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(t),n=al(p.d),r=n.charAt(0),f++;s=Gr(p),r>1?(p=new x("0."+n),s++):p=new x(r+"."+n.slice(1))}else return c=RS(x,u+2,y).times(s+""),p=v0(new x(r+"."+n.slice(1)),u-h).plus(c),x.precision=y,e==null?(hr=!0,Bn(p,y)):p;for(l=o=p=sc(p.minus(ui),p.plus(ui),u),d=Bn(p.times(p),u),a=3;;){if(o=Bn(o.times(d),u),c=l.plus(sc(o,new x(a),u)),al(c.d).slice(0,u)===al(l.d).slice(0,u))return l=l.times(2),s!==0&&(l=l.plus(RS(x,u+2,y).times(s+""))),l=sc(l,new x(f),u),x.precision=y,e==null?(hr=!0,Bn(l,y)):l;l=c,a+=2}}function kI(t,e){var n,r,a;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;)++r;for(a=e.length;e.charCodeAt(a-1)===48;)--a;if(e=e.slice(r,a),e){if(a-=r,n=n-r-1,t.e=Em(n/sr),t.d=[],r=(n+1)%sr,n<0&&(r+=sr),rbw||t.e<-bw))throw Error(eT+n)}else t.s=0,t.e=0,t.d=[0];return t}function Bn(t,e,n){var r,a,s,o,l,c,u,d,f=t.d;for(o=1,s=f[0];s>=10;s/=10)o++;if(r=e-o,r<0)r+=sr,a=e,u=f[d=0];else{if(d=Math.ceil((r+1)/sr),s=f.length,d>=s)return t;for(u=s=f[d],o=1;s>=10;s/=10)o++;r%=sr,a=r-sr+o}if(n!==void 0&&(s=md(10,o-a-1),l=u/s%10|0,c=e<0||f[d+1]!==void 0||u%s,c=n<4?(l||c)&&(n==0||n==(t.s<0?3:2)):l>5||l==5&&(n==4||c||n==6&&(r>0?a>0?u/md(10,o-a):0:f[d-1])%10&1||n==(t.s<0?8:7))),e<1||!f[0])return c?(s=Gr(t),f.length=1,e=e-s-1,f[0]=md(10,(sr-e%sr)%sr),t.e=Em(-e/sr)||0):(f.length=1,f[0]=t.e=t.s=0),t;if(r==0?(f.length=d,s=1,d--):(f.length=d+1,s=md(10,sr-r),f[d]=a>0?(u/md(10,o-a)%md(10,a)|0)*s:0),c)for(;;)if(d==0){(f[0]+=s)==ga&&(f[0]=1,++t.e);break}else{if(f[d]+=s,f[d]!=ga)break;f[d--]=0,s=1}for(r=f.length;f[--r]===0;)f.pop();if(hr&&(t.e>bw||t.e<-bw))throw Error(eT+Gr(t));return t}function PV(t,e){var n,r,a,s,o,l,c,u,d,f,h=t.constructor,p=h.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new h(t),hr?Bn(e,p):e;if(c=t.d,f=e.d,r=e.e,u=t.e,c=c.slice(),o=u-r,o){for(d=o<0,d?(n=c,o=-o,l=f.length):(n=f,r=u,l=c.length),a=Math.max(Math.ceil(p/sr),l)+2,o>a&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for(a=c.length,l=f.length,d=a0;--a)c[l++]=0;for(a=f.length;a>o;){if(c[--a]0?s=s.charAt(0)+"."+s.slice(1)+zc(r):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+zc(-a-1)+s,n&&(r=n-o)>0&&(s+=zc(r))):a>=o?(s+=zc(a+1-o),n&&(r=n-a-1)>0&&(s=s+"."+zc(r))):((r=a+1)0&&(a+1===o&&(s+="."),s+=zc(r))),t.s<0?"-"+s:s}function jI(t,e){if(t.length>e)return t.length=e,!0}function MV(t){var e,n,r;function a(s){var o=this;if(!(o instanceof a))return new a(s);if(o.constructor=a,s instanceof a){o.s=s.s,o.e=s.e,o.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(zd+s);if(s>0)o.s=1;else if(s<0)s=-s,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(s===~~s&&s<1e7){o.e=0,o.d=[s];return}return kI(o,s.toString())}else if(typeof s!="string")throw Error(zd+s);if(s.charCodeAt(0)===45?(s=s.slice(1),o.s=-1):o.s=1,eve.test(s))kI(o,s);else throw Error(zd+s)}if(a.prototype=lt,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=MV,a.config=a.set=tve,t===void 0&&(t={}),t)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=a[e+1]&&r<=a[e+2])this[n]=r;else throw Error(zd+n+": "+r);if((r=t[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(zd+n+": "+r);return this}var tT=MV(Qye);ui=new tT(1);const Mn=tT;function nve(t){return ive(t)||sve(t)||ave(t)||rve()}function rve(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ave(t,e){if(t){if(typeof t=="string")return kE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return kE(t,e)}}function sve(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function ive(t){if(Array.isArray(t))return kE(t)}function kE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,a):t(e-o,SI(function(){for(var l=arguments.length,c=new Array(l),u=0;ut.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,a=!1,s=void 0;try{for(var o=t[Symbol.iterator](),l;!(r=(l=o.next()).done)&&(n.push(l.value),!(e&&n.length===e));r=!0);}catch(c){a=!0,s=c}finally{try{!r&&o.return!=null&&o.return()}finally{if(a)throw s}}return n}}function wve(t){if(Array.isArray(t))return t}function LV(t){var e=b0(t,2),n=e[0],r=e[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function FV(t,e,n){if(t.lte(0))return new Mn(0);var r=Pj.getDigitCount(t.toNumber()),a=new Mn(10).pow(r),s=t.div(a),o=r!==1?.05:.1,l=new Mn(Math.ceil(s.div(o).toNumber())).add(n).mul(o),c=l.mul(a);return e?c:new Mn(Math.ceil(c))}function kve(t,e,n){var r=1,a=new Mn(t);if(!a.isint()&&n){var s=Math.abs(t);s<1?(r=new Mn(10).pow(Pj.getDigitCount(t)-1),a=new Mn(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Mn(Math.floor(t)))}else t===0?a=new Mn(Math.floor((e-1)/2)):n||(a=new Mn(Math.floor(t)));var o=Math.floor((e-1)/2),l=uve(cve(function(c){return a.add(new Mn(c-o).mul(r)).toNumber()}),jE);return l(0,e)}function BV(t,e,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new Mn(0),tickMin:new Mn(0),tickMax:new Mn(0)};var s=FV(new Mn(e).sub(t).div(n-1),r,a),o;t<=0&&e>=0?o=new Mn(0):(o=new Mn(t).add(e).div(2),o=o.sub(new Mn(o).mod(s)));var l=Math.ceil(o.sub(t).div(s).toNumber()),c=Math.ceil(new Mn(e).sub(o).div(s).toNumber()),u=l+c+1;return u>n?BV(t,e,n,r,a+1):(u0?c+(n-u):c,l=e>0?l:l+(n-u)),{step:s,tickMin:o.sub(new Mn(l).mul(s)),tickMax:o.add(new Mn(c).mul(s))})}function jve(t){var e=b0(t,2),n=e[0],r=e[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(a,2),l=LV([n,r]),c=b0(l,2),u=c[0],d=c[1];if(u===-1/0||d===1/0){var f=d===1/0?[u].concat(_E(jE(0,a-1).map(function(){return 1/0}))):[].concat(_E(jE(0,a-1).map(function(){return-1/0})),[d]);return n>r?SE(f):f}if(u===d)return kve(u,a,s);var h=BV(u,d,o,s),p=h.step,m=h.tickMin,x=h.tickMax,y=Pj.rangeStep(m,x.add(new Mn(.1).mul(p)),p);return n>r?SE(y):y}function Sve(t,e){var n=b0(t,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=LV([r,a]),l=b0(o,2),c=l[0],u=l[1];if(c===-1/0||u===1/0)return[r,a];if(c===u)return[c];var d=Math.max(e,2),f=FV(new Mn(u).sub(c).div(d-1),s,0),h=[].concat(_E(Pj.rangeStep(new Mn(c),new Mn(u).sub(new Mn(.99).mul(f)),f)),[u]);return r>a?SE(h):h}var _ve=IV(jve),Nve=IV(Sve),Cve="Invariant failed";function sf(t,e){throw new Error(Cve)}var Eve=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Cp(t){"@babel/helpers - typeof";return Cp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Cp(t)}function ww(){return ww=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Dve(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ive(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function $ve(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,o=-1,l=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(l<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var c=s.range,u=0;u0?a[u-1].coordinate:a[l-1].coordinate,f=a[u].coordinate,h=u>=l-1?a[0].coordinate:a[u+1].coordinate,p=void 0;if(wo(f-d)!==wo(h-f)){var m=[];if(wo(h-f)===wo(c[1]-c[0])){p=h;var x=f+c[1]-c[0];m[0]=Math.min(x,(x+d)/2),m[1]=Math.max(x,(x+d)/2)}else{p=d;var y=h+c[1]-c[0];m[0]=Math.min(f,(y+f)/2),m[1]=Math.max(f,(y+f)/2)}var b=[Math.min(f,(p+f)/2),Math.max(f,(p+f)/2)];if(e>b[0]&&e<=b[1]||e>=m[0]&&e<=m[1]){o=a[u].index;break}}else{var v=Math.min(d,h),w=Math.max(d,h);if(e>(v+f)/2&&e<=(w+f)/2){o=a[u].index;break}}}else for(var j=0;j0&&j(r[j].coordinate+r[j-1].coordinate)/2&&e<=(r[j].coordinate+r[j+1].coordinate)/2||j===l-1&&e>(r[j].coordinate+r[j-1].coordinate)/2){o=r[j].index;break}return o},nT=function(e){var n,r=e,a=r.type.displayName,s=(n=e.type)!==null&&n!==void 0&&n.defaultProps?Nr(Nr({},e.type.defaultProps),e.props):e.props,o=s.stroke,l=s.fill,c;switch(a){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:l;break;default:c=l;break}return c},ebe=function(e){var n=e.barSize,r=e.totalSize,a=e.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var o={},l=Object.keys(s),c=0,u=l.length;c=0});if(b&&b.length){var v=b[0].type.defaultProps,w=v!==void 0?Nr(Nr({},v),b[0].props):b[0].props,j=w.barSize,k=w[y];o[k]||(o[k]=[]);var _=Pt(j)?n:j;o[k].push({item:b[0],stackList:b.slice(1),barSize:Pt(_)?void 0:nf(_,r,0)})}}return o},tbe=function(e){var n=e.barGap,r=e.barCategoryGap,a=e.bandSize,s=e.sizeList,o=s===void 0?[]:s,l=e.maxBarSize,c=o.length;if(c<1)return null;var u=nf(n,a,0,!0),d,f=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=a/c,m=o.reduce(function(j,k){return j+k.barSize||0},0);m+=(c-1)*u,m>=a&&(m-=(c-1)*u,u=0),m>=a&&p>0&&(h=!0,p*=.9,m=c*p);var x=(a-m)/2>>0,y={offset:x-u,size:0};d=o.reduce(function(j,k){var _={item:k.item,position:{offset:y.offset+y.size+u,size:h?p:k.barSize}},S=[].concat(CI(j),[_]);return y=S[S.length-1].position,k.stackList&&k.stackList.length&&k.stackList.forEach(function(N){S.push({item:N,position:y})}),S},f)}else{var b=nf(r,a,0,!0);a-2*b-(c-1)*u<=0&&(u=0);var v=(a-2*b-(c-1)*u)/c;v>1&&(v>>=0);var w=l===+l?Math.min(v,l):v;d=o.reduce(function(j,k,_){var S=[].concat(CI(j),[{item:k.item,position:{offset:b+(v+u)*_+(v-w)/2,size:w}}]);return k.stackList&&k.stackList.length&&k.stackList.forEach(function(N){S.push({item:N,position:S[S.length-1].position})}),S},f)}return d},nbe=function(e,n,r,a){var s=r.children,o=r.width,l=r.margin,c=o-(l.left||0)-(l.right||0),u=WV({children:s,legendWidth:c});if(u){var d=a||{},f=d.width,h=d.height,p=u.align,m=u.verticalAlign,x=u.layout;if((x==="vertical"||x==="horizontal"&&m==="middle")&&p!=="center"&&Ue(e[p]))return Nr(Nr({},e),{},Kh({},p,e[p]+(f||0)));if((x==="horizontal"||x==="vertical"&&p==="center")&&m!=="middle"&&Ue(e[m]))return Nr(Nr({},e),{},Kh({},m,e[m]+(h||0)))}return e},rbe=function(e,n,r){return Pt(n)?!0:e==="horizontal"?n==="yAxis":e==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},HV=function(e,n,r,a,s){var o=n.props.children,l=Gs(o,Am).filter(function(u){return rbe(a,s,u.props.direction)});if(l&&l.length){var c=l.map(function(u){return u.props.dataKey});return e.reduce(function(u,d){var f=oa(d,r);if(Pt(f))return u;var h=Array.isArray(f)?[Oj(f),tu(f)]:[f,f],p=c.reduce(function(m,x){var y=oa(d,x,0),b=h[0]-Math.abs(Array.isArray(y)?y[0]:y),v=h[1]+Math.abs(Array.isArray(y)?y[1]:y);return[Math.min(b,m[0]),Math.max(v,m[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},abe=function(e,n,r,a,s){var o=n.map(function(l){return HV(e,l,r,s,a)}).filter(function(l){return!Pt(l)});return o&&o.length?o.reduce(function(l,c){return[Math.min(l[0],c[0]),Math.max(l[1],c[1])]},[1/0,-1/0]):null},GV=function(e,n,r,a,s){var o=n.map(function(c){var u=c.props.dataKey;return r==="number"&&u&&HV(e,c,u,a)||kx(e,u,r,s)});if(r==="number")return o.reduce(function(c,u){return[Math.min(c[0],u[0]),Math.max(c[1],u[1])]},[1/0,-1/0]);var l={};return o.reduce(function(c,u){for(var d=0,f=u.length;d=2?wo(l[0]-l[1])*2*u:u,n&&(e.ticks||e.niceTicks)){var d=(e.ticks||e.niceTicks).map(function(f){var h=s?s.indexOf(f):f;return{coordinate:a(h)+u,value:f,offset:u}});return d.filter(function(f){return!km(f.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(f,h){return{coordinate:a(f)+u,value:f,index:h,offset:u}}):a.ticks&&!r?a.ticks(e.tickCount).map(function(f){return{coordinate:a(f)+u,value:f,offset:u}}):a.domain().map(function(f,h){return{coordinate:a(f)+u,value:s?s[f]:f,index:h,offset:u}})},DS=new WeakMap,qv=function(e,n){if(typeof n!="function")return e;DS.has(e)||DS.set(e,new WeakMap);var r=DS.get(e);if(r.has(n))return r.get(n);var a=function(){e.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},sbe=function(e,n,r){var a=e.scale,s=e.type,o=e.layout,l=e.axisType;if(a==="auto")return o==="radial"&&l==="radiusAxis"?{scale:p0(),realScaleType:"band"}:o==="radial"&&l==="angleAxis"?{scale:gw(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:wx(),realScaleType:"point"}:s==="category"?{scale:p0(),realScaleType:"band"}:{scale:gw(),realScaleType:"linear"};if(tf(a)){var c="scale".concat(gj(a));return{scale:(wI[c]||wx)(),realScaleType:wI[c]?c:"point"}}return Rt(a)?{scale:a}:{scale:wx(),realScaleType:"point"}},AI=1e-4,ibe=function(e){var n=e.domain();if(!(!n||n.length<=2)){var r=n.length,a=e.range(),s=Math.min(a[0],a[1])-AI,o=Math.max(a[0],a[1])+AI,l=e(n[0]),c=e(n[r-1]);(lo||co)&&e.domain([n[0],n[r-1]])}},obe=function(e,n){if(!e)return null;for(var r=0,a=e.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(e[l][r][0]=s,e[l][r][1]=s+c,s=e[l][r][1]):(e[l][r][0]=o,e[l][r][1]=o+c,o=e[l][r][1])}},ube=function(e){var n=e.length;if(!(n<=0))for(var r=0,a=e[0].length;r=0?(e[o][r][0]=s,e[o][r][1]=s+l,s=e[o][r][1]):(e[o][r][0]=0,e[o][r][1]=0)}},dbe={sign:cbe,expand:Noe,none:vp,silhouette:Coe,wiggle:Eoe,positive:ube},fbe=function(e,n,r){var a=n.map(function(l){return l.props.dataKey}),s=dbe[r],o=_oe().keys(a).value(function(l,c){return+oa(l,c,0)}).order(QC).offset(s);return o(e)},hbe=function(e,n,r,a,s,o){if(!e)return null;var l=o?n.reverse():n,c={},u=l.reduce(function(f,h){var p,m=(p=h.type)!==null&&p!==void 0&&p.defaultProps?Nr(Nr({},h.type.defaultProps),h.props):h.props,x=m.stackId,y=m.hide;if(y)return f;var b=m[r],v=f[b]||{hasStack:!1,stackGroups:{}};if(sa(x)){var w=v.stackGroups[x]||{numericAxisId:r,cateAxisId:a,items:[]};w.items.push(h),v.hasStack=!0,v.stackGroups[x]=w}else v.stackGroups[Sf("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[h]};return Nr(Nr({},f),{},Kh({},b,v))},c),d={};return Object.keys(u).reduce(function(f,h){var p=u[h];if(p.hasStack){var m={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(x,y){var b=p.stackGroups[y];return Nr(Nr({},x),{},Kh({},y,{numericAxisId:r,cateAxisId:a,items:b.items,stackedData:fbe(e,b.items,s)}))},m)}return Nr(Nr({},f),{},Kh({},h,p))},d)},pbe=function(e,n){var r=n.realScaleType,a=n.type,s=n.tickCount,o=n.originalDomain,l=n.allowDecimals,c=r||n.scale;if(c!=="auto"&&c!=="linear")return null;if(s&&a==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=e.domain();if(!u.length)return null;var d=_ve(u,s,l);return e.domain([Oj(d),tu(d)]),{niceTicks:d}}if(s&&a==="number"){var f=e.domain(),h=Nve(f,s,l);return{niceTicks:h}}return null};function Ep(t){var e=t.axis,n=t.ticks,r=t.bandSize,a=t.entry,s=t.index,o=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!Pt(a[e.dataKey])){var l=q1(n,"value",a[e.dataKey]);if(l)return l.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var c=oa(a,Pt(o)?e.dataKey:o);return Pt(c)?null:e.scale(c)}var OI=function(e){var n=e.axis,r=e.ticks,a=e.offset,s=e.bandSize,o=e.entry,l=e.index;if(n.type==="category")return r[l]?r[l].coordinate+a:null;var c=oa(o,n.dataKey,n.domain[l]);return Pt(c)?null:n.scale(c)-s/2+a},mbe=function(e){var n=e.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},gbe=function(e,n){var r,a=(r=e.type)!==null&&r!==void 0&&r.defaultProps?Nr(Nr({},e.type.defaultProps),e.props):e.props,s=a.stackId;if(sa(s)){var o=n[s];if(o){var l=o.items.indexOf(e);return l>=0?o.stackedData[l]:null}}return null},xbe=function(e){return e.reduce(function(n,r){return[Oj(r.concat([n[0]]).filter(Ue)),tu(r.concat([n[1]]).filter(Ue))]},[1/0,-1/0])},YV=function(e,n,r){return Object.keys(e).reduce(function(a,s){var o=e[s],l=o.stackedData,c=l.reduce(function(u,d){var f=xbe(d.slice(n,r+1));return[Math.min(u[0],f[0]),Math.max(u[1],f[1])]},[1/0,-1/0]);return[Math.min(c[0],a[0]),Math.max(c[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},TI=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,PI=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,AE=function(e,n,r){if(Rt(e))return e(n,r);if(!Array.isArray(e))return n;var a=[];if(Ue(e[0]))a[0]=r?e[0]:Math.min(e[0],n[0]);else if(TI.test(e[0])){var s=+TI.exec(e[0])[1];a[0]=n[0]-s}else Rt(e[0])?a[0]=e[0](n[0]):a[0]=n[0];if(Ue(e[1]))a[1]=r?e[1]:Math.max(e[1],n[1]);else if(PI.test(e[1])){var o=+PI.exec(e[1])[1];a[1]=n[1]+o}else Rt(e[1])?a[1]=e[1](n[1]):a[1]=n[1];return a},jw=function(e,n,r){if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!r||a>0)return a}if(e&&n&&n.length>=2){for(var s=O3(n,function(f){return f.coordinate}),o=1/0,l=1,c=s.length;lo&&(u=2*Math.PI-u),{radius:l,angle:wbe(u),angleInRadian:u}},Sbe=function(e){var n=e.startAngle,r=e.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),o=Math.min(a,s);return{startAngle:n-o*360,endAngle:r-o*360}},_be=function(e,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),o=Math.floor(a/360),l=Math.min(s,o);return e+l*360},II=function(e,n){var r=e.x,a=e.y,s=jbe({x:r,y:a},n),o=s.radius,l=s.angle,c=n.innerRadius,u=n.outerRadius;if(ou)return!1;if(o===0)return!0;var d=Sbe(n),f=d.startAngle,h=d.endAngle,p=l,m;if(f<=h){for(;p>h;)p-=360;for(;p=f&&p<=h}else{for(;p>f;)p-=360;for(;p=h&&p<=f}return m?DI(DI({},n),{},{radius:o,angle:_be(p,n)}):null};function S0(t){"@babel/helpers - typeof";return S0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S0(t)}var Nbe=["offset"];function Cbe(t){return Tbe(t)||Obe(t)||Abe(t)||Ebe()}function Ebe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Abe(t,e){if(t){if(typeof t=="string")return OE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return OE(t,e)}}function Obe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Tbe(t){if(Array.isArray(t))return OE(t)}function OE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Mbe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function $I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function ea(t){for(var e=1;e=0?1:-1,w,j;a==="insideStart"?(w=p+v*o,j=x):a==="insideEnd"?(w=m-v*o,j=!x):a==="end"&&(w=m+v*o,j=x),j=b<=0?j:!j;var k=Da(u,d,y,w),_=Da(u,d,y,w+(j?1:-1)*359),S="M".concat(k.x,",").concat(k.y,` + A`).concat(y,",").concat(y,",0,1,").concat(j?0:1,`, + `).concat(_.x,",").concat(_.y),N=Pt(e.id)?Sf("recharts-radial-line-"):e.id;return J.createElement("text",_0({},r,{dominantBaseline:"central",className:Zt("recharts-radial-bar-label",l)}),J.createElement("defs",null,J.createElement("path",{id:N,d:S})),J.createElement("textPath",{xlinkHref:"#".concat(N)},n))},Bbe=function(e){var n=e.viewBox,r=e.offset,a=e.position,s=n,o=s.cx,l=s.cy,c=s.innerRadius,u=s.outerRadius,d=s.startAngle,f=s.endAngle,h=(d+f)/2;if(a==="outside"){var p=Da(o,l,u+r,h),m=p.x,x=p.y;return{x:m,y:x,textAnchor:m>=o?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"end"};var y=(c+u)/2,b=Da(o,l,y,h),v=b.x,w=b.y;return{x:v,y:w,textAnchor:"middle",verticalAnchor:"middle"}},zbe=function(e){var n=e.viewBox,r=e.parentViewBox,a=e.offset,s=e.position,o=n,l=o.x,c=o.y,u=o.width,d=o.height,f=d>=0?1:-1,h=f*a,p=f>0?"end":"start",m=f>0?"start":"end",x=u>=0?1:-1,y=x*a,b=x>0?"end":"start",v=x>0?"start":"end";if(s==="top"){var w={x:l+u/2,y:c-f*a,textAnchor:"middle",verticalAnchor:p};return ea(ea({},w),r?{height:Math.max(c-r.y,0),width:u}:{})}if(s==="bottom"){var j={x:l+u/2,y:c+d+h,textAnchor:"middle",verticalAnchor:m};return ea(ea({},j),r?{height:Math.max(r.y+r.height-(c+d),0),width:u}:{})}if(s==="left"){var k={x:l-y,y:c+d/2,textAnchor:b,verticalAnchor:"middle"};return ea(ea({},k),r?{width:Math.max(k.x-r.x,0),height:d}:{})}if(s==="right"){var _={x:l+u+y,y:c+d/2,textAnchor:v,verticalAnchor:"middle"};return ea(ea({},_),r?{width:Math.max(r.x+r.width-_.x,0),height:d}:{})}var S=r?{width:u,height:d}:{};return s==="insideLeft"?ea({x:l+y,y:c+d/2,textAnchor:v,verticalAnchor:"middle"},S):s==="insideRight"?ea({x:l+u-y,y:c+d/2,textAnchor:b,verticalAnchor:"middle"},S):s==="insideTop"?ea({x:l+u/2,y:c+h,textAnchor:"middle",verticalAnchor:m},S):s==="insideBottom"?ea({x:l+u/2,y:c+d-h,textAnchor:"middle",verticalAnchor:p},S):s==="insideTopLeft"?ea({x:l+y,y:c+h,textAnchor:v,verticalAnchor:m},S):s==="insideTopRight"?ea({x:l+u-y,y:c+h,textAnchor:b,verticalAnchor:m},S):s==="insideBottomLeft"?ea({x:l+y,y:c+d-h,textAnchor:v,verticalAnchor:p},S):s==="insideBottomRight"?ea({x:l+u-y,y:c+d-h,textAnchor:b,verticalAnchor:p},S):ym(s)&&(Ue(s.x)||Sd(s.x))&&(Ue(s.y)||Sd(s.y))?ea({x:l+nf(s.x,u),y:c+nf(s.y,d),textAnchor:"end",verticalAnchor:"end"},S):ea({x:l+u/2,y:c+d/2,textAnchor:"middle",verticalAnchor:"middle"},S)},Ube=function(e){return"cx"in e&&Ue(e.cx)};function Ja(t){var e=t.offset,n=e===void 0?5:e,r=Pbe(t,Nbe),a=ea({offset:n},r),s=a.viewBox,o=a.position,l=a.value,c=a.children,u=a.content,d=a.className,f=d===void 0?"":d,h=a.textBreakAll;if(!s||Pt(l)&&Pt(c)&&!g.isValidElement(u)&&!Rt(u))return null;if(g.isValidElement(u))return g.cloneElement(u,a);var p;if(Rt(u)){if(p=g.createElement(u,a),g.isValidElement(p))return p}else p=$be(a);var m=Ube(s),x=It(a,!0);if(m&&(o==="insideStart"||o==="insideEnd"||o==="end"))return Fbe(a,p,x);var y=m?Bbe(a):zbe(a);return J.createElement(lw,_0({className:Zt("recharts-label",f)},x,y,{breakAll:h}),p)}Ja.displayName="Label";var JV=function(e){var n=e.cx,r=e.cy,a=e.angle,s=e.startAngle,o=e.endAngle,l=e.r,c=e.radius,u=e.innerRadius,d=e.outerRadius,f=e.x,h=e.y,p=e.top,m=e.left,x=e.width,y=e.height,b=e.clockWise,v=e.labelViewBox;if(v)return v;if(Ue(x)&&Ue(y)){if(Ue(f)&&Ue(h))return{x:f,y:h,width:x,height:y};if(Ue(p)&&Ue(m))return{x:p,y:m,width:x,height:y}}return Ue(f)&&Ue(h)?{x:f,y:h,width:0,height:0}:Ue(n)&&Ue(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:o||a||0,innerRadius:u||0,outerRadius:d||c||l||0,clockWise:b}:e.viewBox?e.viewBox:{}},Vbe=function(e,n){return e?e===!0?J.createElement(Ja,{key:"label-implicit",viewBox:n}):sa(e)?J.createElement(Ja,{key:"label-implicit",viewBox:n,value:e}):g.isValidElement(e)?e.type===Ja?g.cloneElement(e,{key:"label-implicit",viewBox:n}):J.createElement(Ja,{key:"label-implicit",content:e,viewBox:n}):Rt(e)?J.createElement(Ja,{key:"label-implicit",content:e,viewBox:n}):ym(e)?J.createElement(Ja,_0({viewBox:n},e,{key:"label-implicit"})):null:null},Wbe=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var a=e.children,s=JV(e),o=Gs(a,Ja).map(function(c,u){return g.cloneElement(c,{viewBox:n||s,key:"label-".concat(u)})});if(!r)return o;var l=Vbe(e.label,n||s);return[l].concat(Cbe(o))};Ja.parseViewBox=JV;Ja.renderCallByParent=Wbe;function Hbe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var Gbe=Hbe;const qbe=Rn(Gbe);function N0(t){"@babel/helpers - typeof";return N0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N0(t)}var Kbe=["valueAccessor"],Ybe=["data","dataKey","clockWise","id","textBreakAll"];function Xbe(t){return e1e(t)||Qbe(t)||Zbe(t)||Jbe()}function Jbe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zbe(t,e){if(t){if(typeof t=="string")return TE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return TE(t,e)}}function Qbe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function e1e(t){if(Array.isArray(t))return TE(t)}function TE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function a1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var s1e=function(e){return Array.isArray(e.value)?qbe(e.value):e.value};function xl(t){var e=t.valueAccessor,n=e===void 0?s1e:e,r=BI(t,Kbe),a=r.data,s=r.dataKey,o=r.clockWise,l=r.id,c=r.textBreakAll,u=BI(r,Ybe);return!a||!a.length?null:J.createElement(pn,{className:"recharts-label-list"},a.map(function(d,f){var h=Pt(s)?n(d,f):oa(d&&d.payload,s),p=Pt(l)?{}:{id:"".concat(l,"-").concat(f)};return J.createElement(Ja,_w({},It(d,!0),u,p,{parentViewBox:d.parentViewBox,value:h,textBreakAll:c,viewBox:Ja.parseViewBox(Pt(o)?d:FI(FI({},d),{},{clockWise:o})),key:"label-".concat(f),index:f}))}))}xl.displayName="LabelList";function i1e(t,e){return t?t===!0?J.createElement(xl,{key:"labelList-implicit",data:e}):J.isValidElement(t)||Rt(t)?J.createElement(xl,{key:"labelList-implicit",data:e,content:t}):ym(t)?J.createElement(xl,_w({data:e},t,{key:"labelList-implicit"})):null:null}function o1e(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var r=t.children,a=Gs(r,xl).map(function(o,l){return g.cloneElement(o,{data:e,key:"labelList-".concat(l)})});if(!n)return a;var s=i1e(t.label,e);return[s].concat(Xbe(a))}xl.renderCallByParent=o1e;var l1e=["component"];function PE(t){"@babel/helpers - typeof";return PE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},PE(t)}function c1e(t,e){if(t==null)return{};var n=u1e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function u1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Nw(t){var e=t.component,n=c1e(t,l1e),r;return g.isValidElement(e)?r=g.cloneElement(e,n):Rt(e)?r=g.createElement(e,n):pl(!1,"Customized's props `component` must be React.element or Function, but got %s.",PE(e)),J.createElement(pn,{className:"recharts-customized-wrapper"},r)}Nw.displayName="Customized";function C0(t){"@babel/helpers - typeof";return C0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C0(t)}function ME(){return ME=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(o>u),`, + `).concat(f.x,",").concat(f.y,` + `);if(a>0){var p=Da(n,r,a,o),m=Da(n,r,a,u);h+="L ".concat(m.x,",").concat(m.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(c)>180),",").concat(+(o<=u),`, + `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(n,",").concat(r," Z");return h},m1e=function(e){var n=e.cx,r=e.cy,a=e.innerRadius,s=e.outerRadius,o=e.cornerRadius,l=e.forceCornerRadius,c=e.cornerIsExternal,u=e.startAngle,d=e.endAngle,f=wo(d-u),h=Kv({cx:n,cy:r,radius:s,angle:u,sign:f,cornerRadius:o,cornerIsExternal:c}),p=h.circleTangency,m=h.lineTangency,x=h.theta,y=Kv({cx:n,cy:r,radius:s,angle:d,sign:-f,cornerRadius:o,cornerIsExternal:c}),b=y.circleTangency,v=y.lineTangency,w=y.theta,j=c?Math.abs(u-d):Math.abs(u-d)-x-w;if(j<0)return l?"M ".concat(m.x,",").concat(m.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):ZV({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:u,endAngle:d});var k="M ".concat(m.x,",").concat(m.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,` + A`).concat(s,",").concat(s,",0,").concat(+(j>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(v.x,",").concat(v.y,` + `);if(a>0){var _=Kv({cx:n,cy:r,radius:a,angle:u,sign:f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),S=_.circleTangency,N=_.lineTangency,E=_.theta,P=Kv({cx:n,cy:r,radius:a,angle:d,sign:-f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),M=P.circleTangency,A=P.lineTangency,O=P.theta,D=c?Math.abs(u-d):Math.abs(u-d)-E-O;if(D<0&&o===0)return"".concat(k,"L").concat(n,",").concat(r,"Z");k+="L".concat(A.x,",").concat(A.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(M.x,",").concat(M.y,` + A`).concat(a,",").concat(a,",0,").concat(+(D>180),",").concat(+(f>0),",").concat(S.x,",").concat(S.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(N.x,",").concat(N.y,"Z")}else k+="L".concat(n,",").concat(r,"Z");return k},g1e={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},QV=function(e){var n=UI(UI({},g1e),e),r=n.cx,a=n.cy,s=n.innerRadius,o=n.outerRadius,l=n.cornerRadius,c=n.forceCornerRadius,u=n.cornerIsExternal,d=n.startAngle,f=n.endAngle,h=n.className;if(o0&&Math.abs(d-f)<360?y=m1e({cx:r,cy:a,innerRadius:s,outerRadius:o,cornerRadius:Math.min(x,m/2),forceCornerRadius:c,cornerIsExternal:u,startAngle:d,endAngle:f}):y=ZV({cx:r,cy:a,innerRadius:s,outerRadius:o,startAngle:d,endAngle:f}),J.createElement("path",ME({},It(n,!0),{className:p,d:y,role:"img"}))};function E0(t){"@babel/helpers - typeof";return E0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E0(t)}function RE(){return RE=Object.assign?Object.assign.bind():function(t){for(var e=1;eA1e.call(t,e));function Cf(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const P1e="__v",M1e="__o",R1e="_owner",{getOwnPropertyDescriptor:qI,keys:KI}=Object;function D1e(t,e){return t.byteLength===e.byteLength&&Cw(new Uint8Array(t),new Uint8Array(e))}function I1e(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function $1e(t,e){return t.byteLength===e.byteLength&&Cw(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function L1e(t,e){return Cf(t.getTime(),e.getTime())}function F1e(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function B1e(t,e){return t===e}function YI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.entries();let o,l,c=0;for(;(o=s.next())&&!o.done;){const u=e.entries();let d=!1,f=0;for(;(l=u.next())&&!l.done;){if(a[f]){f++;continue}const h=o.value,p=l.value;if(n.equals(h[0],p[0],c,f,t,e,n)&&n.equals(h[1],p[1],h[0],p[0],t,e,n)){d=a[f]=!0;break}f++}if(!d)return!1;c++}return!0}const z1e=Cf;function U1e(t,e,n){const r=KI(t);let a=r.length;if(KI(e).length!==a)return!1;for(;a-- >0;)if(!rW(t,e,n,r[a]))return!1;return!0}function vg(t,e,n){const r=GI(t);let a=r.length;if(GI(e).length!==a)return!1;let s,o,l;for(;a-- >0;)if(s=r[a],!rW(t,e,n,s)||(o=qI(t,s),l=qI(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function V1e(t,e){return Cf(t.valueOf(),e.valueOf())}function W1e(t,e){return t.source===e.source&&t.flags===e.flags}function XI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const c=e.values();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(!a[d]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function Cw(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function H1e(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function rW(t,e,n,r){return(r===R1e||r===M1e||r===P1e)&&(t.$$typeof||e.$$typeof)?!0:T1e(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const G1e="[object ArrayBuffer]",q1e="[object Arguments]",K1e="[object Boolean]",Y1e="[object DataView]",X1e="[object Date]",J1e="[object Error]",Z1e="[object Map]",Q1e="[object Number]",ewe="[object Object]",twe="[object RegExp]",nwe="[object Set]",rwe="[object String]",awe={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},swe="[object URL]",iwe=Object.prototype.toString;function owe({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:a,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:c,arePrimitiveWrappersEqual:u,areRegExpsEqual:d,areSetsEqual:f,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:m}){return function(y,b,v){if(y===b)return!0;if(y==null||b==null)return!1;const w=typeof y;if(w!==typeof b)return!1;if(w!=="object")return w==="number"?l(y,b,v):w==="function"?s(y,b,v):!1;const j=y.constructor;if(j!==b.constructor)return!1;if(j===Object)return c(y,b,v);if(Array.isArray(y))return e(y,b,v);if(j===Date)return r(y,b,v);if(j===RegExp)return d(y,b,v);if(j===Map)return o(y,b,v);if(j===Set)return f(y,b,v);const k=iwe.call(y);if(k===X1e)return r(y,b,v);if(k===twe)return d(y,b,v);if(k===Z1e)return o(y,b,v);if(k===nwe)return f(y,b,v);if(k===ewe)return typeof y.then!="function"&&typeof b.then!="function"&&c(y,b,v);if(k===swe)return p(y,b,v);if(k===J1e)return a(y,b,v);if(k===q1e)return c(y,b,v);if(awe[k])return h(y,b,v);if(k===G1e)return t(y,b,v);if(k===Y1e)return n(y,b,v);if(k===K1e||k===Q1e||k===rwe)return u(y,b,v);if(m){let _=m[k];if(!_){const S=O1e(y);S&&(_=m[S])}if(_)return _(y,b,v)}return!1}}function lwe({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:D1e,areArraysEqual:n?vg:I1e,areDataViewsEqual:$1e,areDatesEqual:L1e,areErrorsEqual:F1e,areFunctionsEqual:B1e,areMapsEqual:n?IS(YI,vg):YI,areNumbersEqual:z1e,areObjectsEqual:n?vg:U1e,arePrimitiveWrappersEqual:V1e,areRegExpsEqual:W1e,areSetsEqual:n?IS(XI,vg):XI,areTypedArraysEqual:n?IS(Cw,vg):Cw,areUrlsEqual:H1e,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const a=Xv(r.areArraysEqual),s=Xv(r.areMapsEqual),o=Xv(r.areObjectsEqual),l=Xv(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:a,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function cwe(t){return function(e,n,r,a,s,o,l){return t(e,n,l)}}function uwe({circular:t,comparator:e,createState:n,equals:r,strict:a}){if(n)return function(l,c){const{cache:u=t?new WeakMap:void 0,meta:d}=n();return e(l,c,{cache:u,equals:r,meta:d,strict:a})};if(t)return function(l,c){return e(l,c,{cache:new WeakMap,equals:r,meta:void 0,strict:a})};const s={cache:void 0,equals:r,meta:void 0,strict:a};return function(l,c){return e(l,c,s)}}const dwe=Ju();Ju({strict:!0});Ju({circular:!0});Ju({circular:!0,strict:!0});Ju({createInternalComparator:()=>Cf});Ju({strict:!0,createInternalComparator:()=>Cf});Ju({circular:!0,createInternalComparator:()=>Cf});Ju({circular:!0,createInternalComparator:()=>Cf,strict:!0});function Ju(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:a=!1}=t,s=lwe(t),o=owe(s),l=n?n(o):cwe(o);return uwe({circular:e,comparator:o,createState:r,equals:l,strict:a})}function fwe(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function JI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>e?(t(s),n=-1):fwe(a)};requestAnimationFrame(r)}function DE(t){"@babel/helpers - typeof";return DE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},DE(t)}function hwe(t){return xwe(t)||gwe(t)||mwe(t)||pwe()}function pwe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mwe(t,e){if(t){if(typeof t=="string")return ZI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ZI(t,e)}}function ZI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?1:b<0?0:b},x=function(b){for(var v=b>1?1:b,w=v,j=0;j<8;++j){var k=f(w)-v,_=p(w);if(Math.abs(k-v)0&&arguments[0]!==void 0?arguments[0]:{},n=e.stiff,r=n===void 0?100:n,a=e.damping,s=a===void 0?8:a,o=e.dt,l=o===void 0?17:o,c=function(d,f,h){var p=-(d-f)*r,m=h*s,x=h+(p-m)*l/1e3,y=h*l/1e3+d;return Math.abs(y-f)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Kwe(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,s;for(s=0;s=0)&&(n[a]=t[a]);return n}function $S(t){return Zwe(t)||Jwe(t)||Xwe(t)||Ywe()}function Ywe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xwe(t,e){if(t){if(typeof t=="string")return BE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return BE(t,e)}}function Jwe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Zwe(t){if(Array.isArray(t))return BE(t)}function BE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ow(t){return Ow=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ow(t)}var Ao=function(t){rke(n,t);var e=ake(n);function n(r,a){var s;Qwe(this,n),s=e.call(this,r,a);var o=s.props,l=o.isActive,c=o.attributeName,u=o.from,d=o.to,f=o.steps,h=o.children,p=o.duration;if(s.handleStyleChange=s.handleStyleChange.bind(VE(s)),s.changeStyle=s.changeStyle.bind(VE(s)),!l||p<=0)return s.state={style:{}},typeof h=="function"&&(s.state={style:d}),UE(s);if(f&&f.length)s.state={style:f[0].style};else if(u){if(typeof h=="function")return s.state={style:u},UE(s);s.state={style:c?Hg({},c,u):u}}else s.state={style:{}};return s}return tke(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,o=a.canBegin;this.mounted=!0,!(!s||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,o=s.isActive,l=s.canBegin,c=s.attributeName,u=s.shouldReAnimate,d=s.to,f=s.from,h=this.state.style;if(l){if(!o){var p={style:c?Hg({},c,d):d};this.state&&h&&(c&&h[c]!==d||!c&&h!==d)&&this.setState(p);return}if(!(dwe(a.to,d)&&a.canBegin&&a.isActive)){var m=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var x=m||u?f:a.to;if(this.state&&h){var y={style:c?Hg({},c,x):x};(c&&h[c]!==x||!c&&h!==x)&&this.setState(y)}this.runAnimation(lo(lo({},this.props),{},{from:x,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,o=a.from,l=a.to,c=a.duration,u=a.easing,d=a.begin,f=a.onAnimationEnd,h=a.onAnimationStart,p=Hwe(o,l,Rwe(u),c,this.changeStyle),m=function(){s.stopJSAnimation=p()};this.manager.start([h,d,m,c,f])}},{key:"runStepAnimation",value:function(a){var s=this,o=a.steps,l=a.begin,c=a.onAnimationStart,u=o[0],d=u.style,f=u.duration,h=f===void 0?0:f,p=function(x,y,b){if(b===0)return x;var v=y.duration,w=y.easing,j=w===void 0?"ease":w,k=y.style,_=y.properties,S=y.onAnimationEnd,N=b>0?o[b-1]:y,E=_||Object.keys(k);if(typeof j=="function"||j==="spring")return[].concat($S(x),[s.runJSAnimation.bind(s,{from:N.style,to:k,duration:v,easing:j}),v]);var P=t$(E,v,j),M=lo(lo(lo({},N.style),k),{},{transition:P});return[].concat($S(x),[M,v,S]).filter(kwe)};return this.manager.start([c].concat($S(o.reduce(p,[d,Math.max(h,l)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=ywe());var s=a.begin,o=a.duration,l=a.attributeName,c=a.to,u=a.easing,d=a.onAnimationStart,f=a.onAnimationEnd,h=a.steps,p=a.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(a);return}if(h.length>1){this.runStepAnimation(a);return}var x=l?Hg({},l,c):c,y=t$(Object.keys(x),o,u);m.start([d,s,lo(lo({},x),{},{transition:y}),o,f])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var o=a.duration;a.attributeName,a.easing;var l=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var c=qwe(a,Gwe),u=g.Children.count(s),d=this.state.style;if(typeof s=="function")return s(d);if(!l||u===0||o<=0)return s;var f=function(p){var m=p.props,x=m.style,y=x===void 0?{}:x,b=m.className,v=g.cloneElement(p,lo(lo({},c),{},{style:lo(lo({},y),d),className:b}));return v};return u===1?f(g.Children.only(s)):J.createElement("div",null,g.Children.map(s,function(h){return f(h)}))}}]),n}(g.PureComponent);Ao.displayName="Animate";Ao.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Ao.propTypes={from:kn.oneOfType([kn.object,kn.string]),to:kn.oneOfType([kn.object,kn.string]),attributeName:kn.string,duration:kn.number,begin:kn.number,easing:kn.oneOfType([kn.string,kn.func]),steps:kn.arrayOf(kn.shape({duration:kn.number.isRequired,style:kn.object.isRequired,easing:kn.oneOfType([kn.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),kn.func]),properties:kn.arrayOf("string"),onAnimationEnd:kn.func})),children:kn.oneOfType([kn.node,kn.func]),isActive:kn.bool,canBegin:kn.bool,onAnimationEnd:kn.func,shouldReAnimate:kn.bool,onAnimationStart:kn.func,onAnimationReStart:kn.func};function T0(){return T0=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1,c=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,d;if(o>0&&s instanceof Array){for(var f=[0,0,0,0],h=0,p=4;ho?o:s[h];d="M".concat(e,",").concat(n+l*f[0]),f[0]>0&&(d+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(u,",").concat(e+c*f[0],",").concat(n)),d+="L ".concat(e+r-c*f[1],",").concat(n),f[1]>0&&(d+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(u,`, + `).concat(e+r,",").concat(n+l*f[1])),d+="L ".concat(e+r,",").concat(n+a-l*f[2]),f[2]>0&&(d+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(u,`, + `).concat(e+r-c*f[2],",").concat(n+a)),d+="L ".concat(e+c*f[3],",").concat(n+a),f[3]>0&&(d+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(u,`, + `).concat(e,",").concat(n+a-l*f[3])),d+="Z"}else if(o>0&&s===+s&&s>0){var m=Math.min(o,s);d="M ".concat(e,",").concat(n+l*m,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+c*m,",").concat(n,` + L `).concat(e+r-c*m,",").concat(n,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r,",").concat(n+l*m,` + L `).concat(e+r,",").concat(n+a-l*m,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r-c*m,",").concat(n+a,` + L `).concat(e+c*m,",").concat(n+a,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e,",").concat(n+a-l*m," Z")}else d="M ".concat(e,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return d},mke=function(e,n){if(!e||!n)return!1;var r=e.x,a=e.y,s=n.x,o=n.y,l=n.width,c=n.height;if(Math.abs(l)>0&&Math.abs(c)>0){var u=Math.min(s,s+l),d=Math.max(s,s+l),f=Math.min(o,o+c),h=Math.max(o,o+c);return r>=u&&r<=d&&a>=f&&a<=h}return!1},gke={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},rT=function(e){var n=c$(c$({},gke),e),r=g.useRef(),a=g.useState(-1),s=oke(a,2),o=s[0],l=s[1];g.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var j=r.current.getTotalLength();j&&l(j)}catch{}},[]);var c=n.x,u=n.y,d=n.width,f=n.height,h=n.radius,p=n.className,m=n.animationEasing,x=n.animationDuration,y=n.animationBegin,b=n.isAnimationActive,v=n.isUpdateAnimationActive;if(c!==+c||u!==+u||d!==+d||f!==+f||d===0||f===0)return null;var w=Zt("recharts-rectangle",p);return v?J.createElement(Ao,{canBegin:o>0,from:{width:d,height:f,x:c,y:u},to:{width:d,height:f,x:c,y:u},duration:x,animationEasing:m,isActive:v},function(j){var k=j.width,_=j.height,S=j.x,N=j.y;return J.createElement(Ao,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:x,isActive:b,easing:m},J.createElement("path",Tw({},It(n,!0),{className:w,d:u$(S,N,k,_,h),ref:r})))}):J.createElement("path",Tw({},It(n,!0),{className:w,d:u$(c,u,d,f,h)}))};function WE(){return WE=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function jke(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var Ske=function(e,n,r,a,s,o){return"M".concat(e,",").concat(s,"v").concat(a,"M").concat(o,",").concat(n,"h").concat(r)},_ke=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.top,l=o===void 0?0:o,c=e.left,u=c===void 0?0:c,d=e.width,f=d===void 0?0:d,h=e.height,p=h===void 0?0:h,m=e.className,x=kke(e,xke),y=yke({x:r,y:s,top:l,left:u,width:f,height:p},x);return!Ue(r)||!Ue(s)||!Ue(f)||!Ue(p)||!Ue(l)||!Ue(u)?null:J.createElement("path",HE({},It(y,!0),{className:Zt("recharts-cross",m),d:Ske(r,s,f,p,l,u)}))},Nke=_U,Cke=Nke(Object.getPrototypeOf,Object),Eke=Cke,Ake=jc,Oke=Eke,Tke=Sc,Pke="[object Object]",Mke=Function.prototype,Rke=Object.prototype,uW=Mke.toString,Dke=Rke.hasOwnProperty,Ike=uW.call(Object);function $ke(t){if(!Tke(t)||Ake(t)!=Pke)return!1;var e=Oke(t);if(e===null)return!0;var n=Dke.call(e,"constructor")&&e.constructor;return typeof n=="function"&&n instanceof n&&uW.call(n)==Ike}var Lke=$ke;const Fke=Rn(Lke);var Bke=jc,zke=Sc,Uke="[object Boolean]";function Vke(t){return t===!0||t===!1||zke(t)&&Bke(t)==Uke}var Wke=Vke;const Hke=Rn(Wke);function R0(t){"@babel/helpers - typeof";return R0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R0(t)}function Pw(){return Pw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0,from:{upperWidth:0,lowerWidth:0,height:h,x:c,y:u},to:{upperWidth:d,lowerWidth:f,height:h,x:c,y:u},duration:x,animationEasing:m,isActive:b},function(w){var j=w.upperWidth,k=w.lowerWidth,_=w.height,S=w.x,N=w.y;return J.createElement(Ao,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:x,easing:m},J.createElement("path",Pw({},It(n,!0),{className:v,d:m$(S,N,j,k,_),ref:r})))}):J.createElement("g",null,J.createElement("path",Pw({},It(n,!0),{className:v,d:m$(c,u,d,f,h)})))},nje=["option","shapeType","propTransformer","activeClassName","isActive"];function D0(t){"@babel/helpers - typeof";return D0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D0(t)}function rje(t,e){if(t==null)return{};var n=aje(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function aje(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function g$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Mw(t){for(var e=1;e0&&r.handleDrag(a.changedTouches[0])}),si(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,o=a.onDragEnd,l=a.startIndex;o==null||o({endIndex:s,startIndex:l})}),r.detachDragEndListener()}),si(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),si(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),si(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),si(r,"handleSlideDragStart",function(a){var s=j$(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return zje(e,t),$je(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,o=this.state.scaleValues,l=this.props,c=l.gap,u=l.data,d=u.length-1,f=Math.min(a,s),h=Math.max(a,s),p=e.getIndexInRange(o,f),m=e.getIndexInRange(o,h);return{startIndex:p-p%c,endIndex:m===d?d:m-m%c}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,o=a.tickFormatter,l=a.dataKey,c=oa(s[r],l,r);return Rt(o)?o(c,r):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,o=a.startX,l=a.endX,c=this.props,u=c.x,d=c.width,f=c.travellerWidth,h=c.startIndex,p=c.endIndex,m=c.onChange,x=r.pageX-s;x>0?x=Math.min(x,u+d-f-l,u+d-f-o):x<0&&(x=Math.max(x,u-o,u-l));var y=this.getIndex({startX:o+x,endX:l+x});(y.startIndex!==h||y.endIndex!==p)&&m&&m(y),this.setState({startX:o+x,endX:l+x,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=j$(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,o=a.movingTravellerId,l=a.endX,c=a.startX,u=this.state[o],d=this.props,f=d.x,h=d.width,p=d.travellerWidth,m=d.onChange,x=d.gap,y=d.data,b={startX:this.state.startX,endX:this.state.endX},v=r.pageX-s;v>0?v=Math.min(v,f+h-p-u):v<0&&(v=Math.max(v,f-u)),b[o]=u+v;var w=this.getIndex(b),j=w.startIndex,k=w.endIndex,_=function(){var N=y.length-1;return o==="startX"&&(l>c?j%x===0:k%x===0)||lc?k%x===0:j%x===0)||l>c&&k===N};this.setState(si(si({},o,u+v),"brushMoveStartX",r.pageX),function(){m&&_()&&m(w)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,o=this.state,l=o.scaleValues,c=o.startX,u=o.endX,d=this.state[a],f=l.indexOf(d);if(f!==-1){var h=f+r;if(!(h===-1||h>=l.length)){var p=l[h];a==="startX"&&p>=u||a==="endX"&&p<=c||this.setState(si({},a,p),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.fill,u=r.stroke;return J.createElement("rect",{stroke:u,fill:c,x:a,y:s,width:o,height:l})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.data,u=r.children,d=r.padding,f=g.Children.only(u);return f?J.cloneElement(f,{x:a,y:s,width:o,height:l,margin:d,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,o,l=this,c=this.props,u=c.y,d=c.travellerWidth,f=c.height,h=c.traveller,p=c.ariaLabel,m=c.data,x=c.startIndex,y=c.endIndex,b=Math.max(r,this.props.x),v=FS(FS({},It(this.props,!1)),{},{x:b,y:u,width:d,height:f}),w=p||"Min value: ".concat((s=m[x])===null||s===void 0?void 0:s.name,", Max value: ").concat((o=m[y])===null||o===void 0?void 0:o.name);return J.createElement(pn,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(k){["ArrowLeft","ArrowRight"].includes(k.key)&&(k.preventDefault(),k.stopPropagation(),l.handleTravellerMoveKeyboard(k.key==="ArrowRight"?1:-1,a))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(h,v))}},{key:"renderSlide",value:function(r,a){var s=this.props,o=s.y,l=s.height,c=s.stroke,u=s.travellerWidth,d=Math.min(r,a)+u,f=Math.max(Math.abs(a-r)-u,0);return J.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:d,y:o,width:f,height:l})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,o=r.y,l=r.height,c=r.travellerWidth,u=r.stroke,d=this.state,f=d.startX,h=d.endX,p=5,m={pointerEvents:"none",fill:u};return J.createElement(pn,{className:"recharts-brush-texts"},J.createElement(lw,Dw({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,h)-p,y:o+l/2},m),this.getTextOfTick(a)),J.createElement(lw,Dw({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,h)+c+p,y:o+l/2},m),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,o=r.children,l=r.x,c=r.y,u=r.width,d=r.height,f=r.alwaysShowText,h=this.state,p=h.startX,m=h.endX,x=h.isTextActive,y=h.isSlideMoving,b=h.isTravellerMoving,v=h.isTravellerFocused;if(!a||!a.length||!Ue(l)||!Ue(c)||!Ue(u)||!Ue(d)||u<=0||d<=0)return null;var w=Zt("recharts-brush",s),j=J.Children.count(o)===1,k=Dje("userSelect","none");return J.createElement(pn,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:k},this.renderBackground(),j&&this.renderPanorama(),this.renderSlide(p,m),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(m,"endX"),(x||y||b||v||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,o=r.width,l=r.height,c=r.stroke,u=Math.floor(s+l/2)-1;return J.createElement(J.Fragment,null,J.createElement("rect",{x:a,y:s,width:o,height:l,fill:c,stroke:"none"}),J.createElement("line",{x1:a+1,y1:u,x2:a+o-1,y2:u,fill:"none",stroke:"#fff"}),J.createElement("line",{x1:a+1,y1:u+2,x2:a+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return J.isValidElement(r)?s=J.cloneElement(r,a):Rt(r)?s=r(a):s=e.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,o=r.width,l=r.x,c=r.travellerWidth,u=r.updateId,d=r.startIndex,f=r.endIndex;if(s!==a.prevData||u!==a.prevUpdateId)return FS({prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o},s&&s.length?Vje({data:s,width:o,x:l,travellerWidth:c,startIndex:d,endIndex:f}):{scale:null,scaleValues:null});if(a.scale&&(o!==a.prevWidth||l!==a.prevX||c!==a.prevTravellerWidth)){a.scale.range([l,l+o-c]);var h=a.scale.domain().map(function(p){return a.scale(p)});return{prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,o=0,l=s-1;l-o>1;){var c=Math.floor((o+l)/2);r[c]>a?l=c:o=c}return a>=r[l]?l:o}}])}(g.PureComponent);si(Tp,"displayName","Brush");si(Tp,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Wje=A3;function Hje(t,e){var n;return Wje(t,function(r,a,s){return n=e(r,a,s),!n}),!!n}var Gje=Hje,qje=xU,Kje=qu,Yje=Gje,Xje=Xs,Jje=jj;function Zje(t,e,n){var r=Xje(t)?qje:Yje;return n&&Jje(t,e,n)&&(e=void 0),r(t,Kje(e))}var Qje=Zje;const e2e=Rn(Qje);var yl=function(e,n){var r=e.alwaysShow,a=e.ifOverflow;return r&&(a="extendDomain"),a===n},S$=FU;function t2e(t,e,n){e=="__proto__"&&S$?S$(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var n2e=t2e,r2e=n2e,a2e=$U,s2e=qu;function i2e(t,e){var n={};return e=s2e(e),a2e(t,function(r,a,s){r2e(n,a,e(r,a,s))}),n}var o2e=i2e;const l2e=Rn(o2e);function c2e(t,e){for(var n=-1,r=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function N2e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function C2e(t,e){var n=t.x,r=t.y,a=_2e(t,w2e),s="".concat(n),o=parseInt(s,10),l="".concat(r),c=parseInt(l,10),u="".concat(e.height||a.height),d=parseInt(u,10),f="".concat(e.width||a.width),h=parseInt(f,10);return bg(bg(bg(bg(bg({},e),a),o?{x:o}:{}),c?{y:c}:{}),{},{height:d,width:h,name:e.name,radius:e.radius})}function N$(t){return J.createElement(GE,KE({shapeType:"rectangle",propTransformer:C2e,activeClassName:"recharts-active-bar"},t))}var E2e=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof e=="number")return e;var s=Ue(r)||Lse(r);return s?e(r,a):(s||sf(),n)}},A2e=["value","background"],gW;function Pp(t){"@babel/helpers - typeof";return Pp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pp(t)}function O2e(t,e){if(t==null)return{};var n=T2e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function T2e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function $w(){return $w=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(I)0&&Math.abs(D)0&&(O=Math.min((R||0)-(D[z-1]||0),O))}),Number.isFinite(O)){var I=O/A,X=x.layout==="vertical"?r.height:r.width;if(x.padding==="gap"&&(S=I*X/2),x.padding==="no-gap"){var Q=nf(e.barCategoryGap,I*X),V=I*X/2;S=V-Q-(V-Q)/X*Q}}}a==="xAxis"?N=[r.left+(w.left||0)+(S||0),r.left+r.width-(w.right||0)-(S||0)]:a==="yAxis"?N=c==="horizontal"?[r.top+r.height-(w.bottom||0),r.top+(w.top||0)]:[r.top+(w.top||0)+(S||0),r.top+r.height-(w.bottom||0)-(S||0)]:N=x.range,k&&(N=[N[1],N[0]]);var Y=sbe(x,s,h),H=Y.scale,G=Y.realScaleType;H.domain(b).range(N),ibe(H);var $=pbe(H,mo(mo({},x),{},{realScaleType:G}));a==="xAxis"?(M=y==="top"&&!j||y==="bottom"&&j,E=r.left,P=f[_]-M*x.height):a==="yAxis"&&(M=y==="left"&&!j||y==="right"&&j,E=f[_]-M*x.width,P=r.top);var F=mo(mo(mo({},x),$),{},{realScaleType:G,x:E,y:P,scale:H,width:a==="xAxis"?r.width:x.width,height:a==="yAxis"?r.height:x.height});return F.bandSize=jw(F,$),!x.hide&&a==="xAxis"?f[_]+=(M?-1:1)*F.height:x.hide||(f[_]+=(M?-1:1)*F.width),mo(mo({},p),{},Ij({},m,F))},{})},bW=function(e,n){var r=e.x,a=e.y,s=n.x,o=n.y;return{x:Math.min(r,s),y:Math.min(a,o),width:Math.abs(s-r),height:Math.abs(o-a)}},U2e=function(e){var n=e.x1,r=e.y1,a=e.x2,s=e.y2;return bW({x:n,y:r},{x:a,y:s})},wW=function(){function t(e){F2e(this,t),this.scale=e}return B2e(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+o}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(n)+l}default:return this.scale(n)}if(a){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+c}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new t(n)}}])}();Ij(wW,"EPS",1e-4);var sT=function(e){var n=Object.keys(e).reduce(function(r,a){return mo(mo({},r),{},Ij({},a,wW.create(e[a])))},{});return mo(mo({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=s.bandAware,l=s.position;return l2e(a,function(c,u){return n[u].apply(c,{bandAware:o,position:l})})},isInRange:function(a){return mW(a,function(s,o){return n[o].isInRange(s)})}})};function V2e(t){return(t%180+180)%180}var W2e=function(e){var n=e.width,r=e.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=V2e(a),o=s*Math.PI/180,l=Math.atan(r/n),c=o>l&&o-1?a[s?e[o]:o]:void 0}}var Y2e=K2e,X2e=dW;function J2e(t){var e=X2e(t),n=e%1;return e===e?n?e-n:e:0}var Z2e=J2e,Q2e=TU,eSe=qu,tSe=Z2e,nSe=Math.max;function rSe(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var a=n==null?0:tSe(n);return a<0&&(a=nSe(r+a,0)),Q2e(t,eSe(e),a)}var aSe=rSe,sSe=Y2e,iSe=aSe,oSe=sSe(iSe),lSe=oSe;const cSe=Rn(lSe);var uSe=Wae(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),iT=g.createContext(void 0),oT=g.createContext(void 0),kW=g.createContext(void 0),jW=g.createContext({}),SW=g.createContext(void 0),_W=g.createContext(0),NW=g.createContext(0),T$=function(e){var n=e.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,o=e.clipPathId,l=e.children,c=e.width,u=e.height,d=uSe(s);return J.createElement(iT.Provider,{value:r},J.createElement(oT.Provider,{value:a},J.createElement(jW.Provider,{value:s},J.createElement(kW.Provider,{value:d},J.createElement(SW.Provider,{value:o},J.createElement(_W.Provider,{value:u},J.createElement(NW.Provider,{value:c},l)))))))},dSe=function(){return g.useContext(SW)},CW=function(e){var n=g.useContext(iT);n==null&&sf();var r=n[e];return r==null&&sf(),r},fSe=function(){var e=g.useContext(iT);return Yc(e)},hSe=function(){var e=g.useContext(oT),n=cSe(e,function(r){return mW(r.domain,Number.isFinite)});return n||Yc(e)},EW=function(e){var n=g.useContext(oT);n==null&&sf();var r=n[e];return r==null&&sf(),r},pSe=function(){var e=g.useContext(kW);return e},mSe=function(){return g.useContext(jW)},lT=function(){return g.useContext(NW)},cT=function(){return g.useContext(_W)};function Mp(t){"@babel/helpers - typeof";return Mp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mp(t)}function gSe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function xSe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt*a)return!1;var s=n();return t*(e-t*s/2-r)>=0&&t*(e+t*s/2-a)<=0}function ZSe(t,e){return DW(t,e+1)}function QSe(t,e,n,r,a){for(var s=(r||[]).slice(),o=e.start,l=e.end,c=0,u=1,d=o,f=function(){var m=r==null?void 0:r[c];if(m===void 0)return{v:DW(r,u)};var x=c,y,b=function(){return y===void 0&&(y=n(m,x)),y},v=m.coordinate,w=c===0||Uw(t,v,b,d,l);w||(c=0,d=o,u+=1),w&&(d=v+t*(b()/2+a),c+=u)},h;u<=s.length;)if(h=f(),h)return h.v;return[]}function B0(t){"@babel/helpers - typeof";return B0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B0(t)}function F$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function qa(t){for(var e=1;e0?p.coordinate-y*t:p.coordinate})}else s[h]=p=qa(qa({},p),{},{tickCoord:p.coordinate});var b=Uw(t,p.tickCoord,x,l,c);b&&(c=p.tickCoord-t*(x()/2+a),s[h]=qa(qa({},p),{},{isShow:!0}))},d=o-1;d>=0;d--)u(d);return s}function a_e(t,e,n,r,a,s){var o=(r||[]).slice(),l=o.length,c=e.start,u=e.end;if(s){var d=r[l-1],f=n(d,l-1),h=t*(d.coordinate+t*f/2-u);o[l-1]=d=qa(qa({},d),{},{tickCoord:h>0?d.coordinate-h*t:d.coordinate});var p=Uw(t,d.tickCoord,function(){return f},c,u);p&&(u=d.tickCoord-t*(f/2+a),o[l-1]=qa(qa({},d),{},{isShow:!0}))}for(var m=s?l-1:l,x=function(v){var w=o[v],j,k=function(){return j===void 0&&(j=n(w,v)),j};if(v===0){var _=t*(w.coordinate-t*k()/2-c);o[v]=w=qa(qa({},w),{},{tickCoord:_<0?w.coordinate-_*t:w.coordinate})}else o[v]=w=qa(qa({},w),{},{tickCoord:w.coordinate});var S=Uw(t,w.tickCoord,k,c,u);S&&(c=w.tickCoord+t*(k()/2+a),o[v]=qa(qa({},w),{},{isShow:!0}))},y=0;y=2?wo(a[1].coordinate-a[0].coordinate):1,b=JSe(s,y,p);return c==="equidistantPreserveStart"?QSe(y,b,x,a,o):(c==="preserveStart"||c==="preserveStartEnd"?h=a_e(y,b,x,a,o,c==="preserveStartEnd"):h=r_e(y,b,x,a,o),h.filter(function(v){return v.isShow}))}var s_e=["viewBox"],i_e=["viewBox"],o_e=["ticks"];function Ip(t){"@babel/helpers - typeof";return Ip=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ip(t)}function Eh(){return Eh=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function l_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function c_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function z$(t,e){for(var n=0;n0?c(this.props):c(p)),o<=0||l<=0||!m||!m.length?null:J.createElement(pn,{className:Zt("recharts-cartesian-axis",u),ref:function(y){r.layerReference=y}},s&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),Ja.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var o,l=Zt(a.className,"recharts-cartesian-axis-tick-value");return J.isValidElement(r)?o=J.cloneElement(r,Qr(Qr({},a),{},{className:l})):Rt(r)?o=r(Qr(Qr({},a),{},{className:l})):o=J.createElement(lw,Eh({},a,{className:"recharts-cartesian-axis-tick-value"}),s),o}}])}(g.Component);fT(Om,"displayName","CartesianAxis");fT(Om,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var g_e=["x1","y1","x2","y2","key"],x_e=["offset"];function of(t){"@babel/helpers - typeof";return of=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},of(t)}function U$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Za(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function w_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var k_e=function(e){var n=e.fill;if(!n||n==="none")return null;var r=e.fillOpacity,a=e.x,s=e.y,o=e.width,l=e.height,c=e.ry;return J.createElement("rect",{x:a,y:s,ry:c,width:o,height:l,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function LW(t,e){var n;if(J.isValidElement(t))n=J.cloneElement(t,e);else if(Rt(t))n=t(e);else{var r=e.x1,a=e.y1,s=e.x2,o=e.y2,l=e.key,c=V$(e,g_e),u=It(c,!1);u.offset;var d=V$(u,x_e);n=J.createElement("line",Cd({},d,{x1:r,y1:a,x2:s,y2:o,fill:"none",key:l}))}return n}function j_e(t){var e=t.x,n=t.width,r=t.horizontal,a=r===void 0?!0:r,s=t.horizontalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Za(Za({},t),{},{x1:e,y1:l,x2:e+n,y2:l,key:"line-".concat(c),index:c});return LW(a,u)});return J.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function S_e(t){var e=t.y,n=t.height,r=t.vertical,a=r===void 0?!0:r,s=t.verticalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Za(Za({},t),{},{x1:l,y1:e,x2:l,y2:e+n,key:"line-".concat(c),index:c});return LW(a,u)});return J.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function __e(t){var e=t.horizontalFill,n=t.fillOpacity,r=t.x,a=t.y,s=t.width,o=t.height,l=t.horizontalPoints,c=t.horizontal,u=c===void 0?!0:c;if(!u||!e||!e.length)return null;var d=l.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?a+o-h:d[p+1]-h;if(x<=0)return null;var y=p%e.length;return J.createElement("rect",{key:"react-".concat(p),y:h,x:r,height:x,width:s,stroke:"none",fill:e[y],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return J.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function N_e(t){var e=t.vertical,n=e===void 0?!0:e,r=t.verticalFill,a=t.fillOpacity,s=t.x,o=t.y,l=t.width,c=t.height,u=t.verticalPoints;if(!n||!r||!r.length)return null;var d=u.map(function(h){return Math.round(h+s-s)}).sort(function(h,p){return h-p});s!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?s+l-h:d[p+1]-h;if(x<=0)return null;var y=p%r.length;return J.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:x,height:c,stroke:"none",fill:r[y],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return J.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var C_e=function(e,n){var r=e.xAxis,a=e.width,s=e.height,o=e.offset;return KV(dT(Za(Za(Za({},Om.defaultProps),r),{},{ticks:tc(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.left,o.left+o.width,n)},E_e=function(e,n){var r=e.yAxis,a=e.width,s=e.height,o=e.offset;return KV(dT(Za(Za(Za({},Om.defaultProps),r),{},{ticks:tc(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.top,o.top+o.height,n)},Gf={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function ko(t){var e,n,r,a,s,o,l=lT(),c=cT(),u=mSe(),d=Za(Za({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:Gf.stroke,fill:(n=t.fill)!==null&&n!==void 0?n:Gf.fill,horizontal:(r=t.horizontal)!==null&&r!==void 0?r:Gf.horizontal,horizontalFill:(a=t.horizontalFill)!==null&&a!==void 0?a:Gf.horizontalFill,vertical:(s=t.vertical)!==null&&s!==void 0?s:Gf.vertical,verticalFill:(o=t.verticalFill)!==null&&o!==void 0?o:Gf.verticalFill,x:Ue(t.x)?t.x:u.left,y:Ue(t.y)?t.y:u.top,width:Ue(t.width)?t.width:u.width,height:Ue(t.height)?t.height:u.height}),f=d.x,h=d.y,p=d.width,m=d.height,x=d.syncWithTicks,y=d.horizontalValues,b=d.verticalValues,v=fSe(),w=hSe();if(!Ue(p)||p<=0||!Ue(m)||m<=0||!Ue(f)||f!==+f||!Ue(h)||h!==+h)return null;var j=d.verticalCoordinatesGenerator||C_e,k=d.horizontalCoordinatesGenerator||E_e,_=d.horizontalPoints,S=d.verticalPoints;if((!_||!_.length)&&Rt(k)){var N=y&&y.length,E=k({yAxis:w?Za(Za({},w),{},{ticks:N?y:w.ticks}):void 0,width:l,height:c,offset:u},N?!0:x);pl(Array.isArray(E),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(of(E),"]")),Array.isArray(E)&&(_=E)}if((!S||!S.length)&&Rt(j)){var P=b&&b.length,M=j({xAxis:v?Za(Za({},v),{},{ticks:P?b:v.ticks}):void 0,width:l,height:c,offset:u},P?!0:x);pl(Array.isArray(M),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(of(M),"]")),Array.isArray(M)&&(S=M)}return J.createElement("g",{className:"recharts-cartesian-grid"},J.createElement(k_e,{fill:d.fill,fillOpacity:d.fillOpacity,x:d.x,y:d.y,width:d.width,height:d.height,ry:d.ry}),J.createElement(j_e,Cd({},d,{offset:u,horizontalPoints:_,xAxis:v,yAxis:w})),J.createElement(S_e,Cd({},d,{offset:u,verticalPoints:S,xAxis:v,yAxis:w})),J.createElement(__e,Cd({},d,{horizontalPoints:_})),J.createElement(N_e,Cd({},d,{verticalPoints:S})))}ko.displayName="CartesianGrid";var A_e=["type","layout","connectNulls","ref"],O_e=["key"];function $p(t){"@babel/helpers - typeof";return $p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$p(t)}function W$(t,e){if(t==null)return{};var n=T_e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function T_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Sx(){return Sx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nf){p=[].concat(qf(c.slice(0,m)),[f-x]);break}var y=p.length%2===0?[0,h]:[h];return[].concat(qf(e.repeat(c,d)),qf(p),y).map(function(b){return"".concat(b,"px")}).join(", ")}),go(n,"id",Sf("recharts-line-")),go(n,"pathRef",function(o){n.mainCurve=o}),go(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),go(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return z_e(e,t),$_e(e,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,o=s.points,l=s.xAxis,c=s.yAxis,u=s.layout,d=s.children,f=Gs(d,Am);if(!f)return null;var h=function(x,y){return{x:x.x,y:x.y,value:x.value,errorVal:oa(x.payload,y)}},p={clipPath:r?"url(#clipPath-".concat(a,")"):null};return J.createElement(pn,p,f.map(function(m){return J.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:o,xAxis:l,yAxis:c,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(r,a,s){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var l=this.props,c=l.dot,u=l.points,d=l.dataKey,f=It(this.props,!1),h=It(c,!0),p=u.map(function(x,y){var b=ai(ai(ai({key:"dot-".concat(y),r:3},f),h),{},{index:y,cx:x.x,cy:x.y,value:x.value,dataKey:d,payload:x.payload,points:u});return e.renderDotItem(c,b)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return J.createElement(pn,Sx({className:"recharts-line-dots",key:"dots"},m),p)}},{key:"renderCurveStatically",value:function(r,a,s,o){var l=this.props,c=l.type,u=l.layout,d=l.connectNulls;l.ref;var f=W$(l,A_e),h=ai(ai(ai({},It(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},o),{},{type:c,layout:u,connectNulls:d});return J.createElement(Ud,Sx({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,o=this.props,l=o.points,c=o.strokeDasharray,u=o.isAnimationActive,d=o.animationBegin,f=o.animationDuration,h=o.animationEasing,p=o.animationId,m=o.animateNewValues,x=o.width,y=o.height,b=this.state,v=b.prevPoints,w=b.totalLength;return J.createElement(Ao,{begin:d,duration:f,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var k=j.t;if(v){var _=v.length/l.length,S=l.map(function(A,O){var D=Math.floor(O*_);if(v[D]){var I=v[D],X=Ir(I.x,A.x),Q=Ir(I.y,A.y);return ai(ai({},A),{},{x:X(k),y:Q(k)})}if(m){var V=Ir(x*2,A.x),Y=Ir(y/2,A.y);return ai(ai({},A),{},{x:V(k),y:Y(k)})}return ai(ai({},A),{},{x:A.x,y:A.y})});return s.renderCurveStatically(S,r,a)}var N=Ir(0,w),E=N(k),P;if(c){var M="".concat(c).split(/[,\s]+/gim).map(function(A){return parseFloat(A)});P=s.getStrokeDasharray(E,w,M)}else P=s.generateSimpleStrokeDasharray(w,E);return s.renderCurveStatically(l,r,a,{strokeDasharray:P})})}},{key:"renderCurve",value:function(r,a){var s=this.props,o=s.points,l=s.isAnimationActive,c=this.state,u=c.prevPoints,d=c.totalLength;return l&&o&&o.length&&(!u&&d>0||!rf(u,o))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(o,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.xAxis,d=a.yAxis,f=a.top,h=a.left,p=a.width,m=a.height,x=a.isAnimationActive,y=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,v=l.length===1,w=Zt("recharts-line",c),j=u&&u.allowDataOverflow,k=d&&d.allowDataOverflow,_=j||k,S=Pt(y)?this.id:y,N=(r=It(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=N.r,P=E===void 0?3:E,M=N.strokeWidth,A=M===void 0?2:M,O=U7(o)?o:{},D=O.clipDot,I=D===void 0?!0:D,X=P*2+A;return J.createElement(pn,{className:w},j||k?J.createElement("defs",null,J.createElement("clipPath",{id:"clipPath-".concat(S)},J.createElement("rect",{x:j?h:h-p/2,y:k?f:f-m/2,width:j?p:p*2,height:k?m:m*2})),!I&&J.createElement("clipPath",{id:"clipPath-dots-".concat(S)},J.createElement("rect",{x:h-X/2,y:f-X/2,width:p+X,height:m+X}))):null,!v&&this.renderCurve(_,S),this.renderErrorBar(_,S),(v||o)&&this.renderDots(_,I,S),(!x||b)&&xl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(qf(r),[0]):r,o=[],l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function H_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ed(){return Ed=Object.assign?Object.assign.bind():function(t){for(var e=1;e0||!rf(d,o)||!rf(f,l))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(o,l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.top,d=a.left,f=a.xAxis,h=a.yAxis,p=a.width,m=a.height,x=a.isAnimationActive,y=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,v=l.length===1,w=Zt("recharts-area",c),j=f&&f.allowDataOverflow,k=h&&h.allowDataOverflow,_=j||k,S=Pt(y)?this.id:y,N=(r=It(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=N.r,P=E===void 0?3:E,M=N.strokeWidth,A=M===void 0?2:M,O=U7(o)?o:{},D=O.clipDot,I=D===void 0?!0:D,X=P*2+A;return J.createElement(pn,{className:w},j||k?J.createElement("defs",null,J.createElement("clipPath",{id:"clipPath-".concat(S)},J.createElement("rect",{x:j?d:d-p/2,y:k?u:u-m/2,width:j?p:p*2,height:k?m:m*2})),!I&&J.createElement("clipPath",{id:"clipPath-dots-".concat(S)},J.createElement("rect",{x:d-X/2,y:u-X/2,width:p+X,height:m+X}))):null,v?null:this.renderArea(_,S),(o||v)&&this.renderDots(_,I,S),(!x||b)&&xl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(g.PureComponent);zW=Zu;sl(Zu,"displayName","Area");sl(Zu,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Ku.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});sl(Zu,"getBaseValue",function(t,e,n,r){var a=t.layout,s=t.baseValue,o=e.props.baseValue,l=o??s;if(Ue(l)&&typeof l=="number")return l;var c=a==="horizontal"?r:n,u=c.scale.domain();if(c.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return l==="dataMin"?f:l==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return l==="dataMin"?u[0]:l==="dataMax"?u[1]:u[0]});sl(Zu,"getComposedData",function(t){var e=t.props,n=t.item,r=t.xAxis,a=t.yAxis,s=t.xAxisTicks,o=t.yAxisTicks,l=t.bandSize,c=t.dataKey,u=t.stackedData,d=t.dataStartIndex,f=t.displayedData,h=t.offset,p=e.layout,m=u&&u.length,x=zW.getBaseValue(e,n,r,a),y=p==="horizontal",b=!1,v=f.map(function(j,k){var _;m?_=u[d+k]:(_=oa(j,c),Array.isArray(_)?b=!0:_=[x,_]);var S=_[1]==null||m&&oa(j,c)==null;return y?{x:Ep({axis:r,ticks:s,bandSize:l,entry:j,index:k}),y:S?null:a.scale(_[1]),value:_,payload:j}:{x:S?null:r.scale(_[1]),y:Ep({axis:a,ticks:o,bandSize:l,entry:j,index:k}),value:_,payload:j}}),w;return m||b?w=v.map(function(j){var k=Array.isArray(j.value)?j.value[0]:null;return y?{x:j.x,y:k!=null&&j.y!=null?a.scale(k):null}:{x:k!=null?r.scale(k):null,y:j.y}}):w=y?a.scale(x):r.scale(x),Lc({points:v,baseLine:w,layout:p,isRange:b},h)});sl(Zu,"renderDotItem",function(t,e){var n;if(J.isValidElement(t))n=J.cloneElement(t,e);else if(Rt(t))n=t(e);else{var r=Zt("recharts-area-dot",typeof t!="boolean"?t.className:""),a=e.key,s=UW(e,W_e);n=J.createElement(Mj,Ed({},s,{key:a,className:r}))}return n});function Fp(t){"@babel/helpers - typeof";return Fp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fp(t)}function Q_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function eNe(t,e){for(var n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function cNe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function uNe(t){var e=t.option,n=t.isActive,r=lNe(t,oNe);return typeof e=="string"?g.createElement(GE,_x({option:g.createElement(bj,_x({type:e},r)),isActive:n,shapeType:"symbols"},r)):g.createElement(GE,_x({option:e,isActive:n,shapeType:"symbols"},r))}function Bp(t){"@babel/helpers - typeof";return Bp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bp(t)}function Nx(){return Nx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function sCe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function iCe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function oCe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?o:e&&e.length&&Ue(a)&&Ue(s)?e.slice(a,s+1):[]};function cH(t){return t==="number"?[0,"auto"]:void 0}var gA=function(e,n,r,a){var s=e.graphicalItems,o=e.tooltipAxis,l=Vj(n,e);return r<0||!s||!s.length||r>=l.length?null:s.reduce(function(c,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:n;f&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=r&&(f=f.slice(e.dataStartIndex,e.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=f===void 0?l:f;h=q1(p,o.dataKey,a)}else h=f&&f[r]||l[r];return h?[].concat(Wp(c),[XV(u,h)]):c},[])},nL=function(e,n,r,a){var s=a||{x:e.chartX,y:e.chartY},o=vCe(s,r),l=e.orderedTooltipTicks,c=e.tooltipAxis,u=e.tooltipTicks,d=Qve(o,l,u,c);if(d>=0&&u){var f=u[d]&&u[d].value,h=gA(e,n,d,f),p=bCe(r,l,d,s);return{activeTooltipIndex:d,activeLabel:f,activePayload:h,activeCoordinate:p}}return null},wCe=function(e,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=e.stackOffset,p=qV(d,s);return r.reduce(function(m,x){var y,b=x.type.defaultProps!==void 0?_e(_e({},x.type.defaultProps),x.props):x.props,v=b.type,w=b.dataKey,j=b.allowDataOverflow,k=b.allowDuplicatedCategory,_=b.scale,S=b.ticks,N=b.includeHidden,E=b[o];if(m[E])return m;var P=Vj(e.data,{graphicalItems:a.filter(function($){var F,R=o in $.props?$.props[o]:(F=$.type.defaultProps)===null||F===void 0?void 0:F[o];return R===E}),dataStartIndex:c,dataEndIndex:u}),M=P.length,A,O,D;qNe(b.domain,j,v)&&(A=AE(b.domain,null,j),p&&(v==="number"||_!=="auto")&&(D=kx(P,w,"category")));var I=cH(v);if(!A||A.length===0){var X,Q=(X=b.domain)!==null&&X!==void 0?X:I;if(w){if(A=kx(P,w,v),v==="category"&&p){var V=Bse(A);k&&V?(O=A,A=Rw(0,M)):k||(A=MI(Q,A,x).reduce(function($,F){return $.indexOf(F)>=0?$:[].concat(Wp($),[F])},[]))}else if(v==="category")k?A=A.filter(function($){return $!==""&&!Pt($)}):A=MI(Q,A,x).reduce(function($,F){return $.indexOf(F)>=0||F===""||Pt(F)?$:[].concat(Wp($),[F])},[]);else if(v==="number"){var Y=abe(P,a.filter(function($){var F,R,z=o in $.props?$.props[o]:(F=$.type.defaultProps)===null||F===void 0?void 0:F[o],U="hide"in $.props?$.props.hide:(R=$.type.defaultProps)===null||R===void 0?void 0:R.hide;return z===E&&(N||!U)}),w,s,d);Y&&(A=Y)}p&&(v==="number"||_!=="auto")&&(D=kx(P,w,"category"))}else p?A=Rw(0,M):l&&l[E]&&l[E].hasStack&&v==="number"?A=h==="expand"?[0,1]:YV(l[E].stackGroups,c,u):A=GV(P,a.filter(function($){var F=o in $.props?$.props[o]:$.type.defaultProps[o],R="hide"in $.props?$.props.hide:$.type.defaultProps.hide;return F===E&&(N||!R)}),v,d,!0);if(v==="number")A=hA(f,A,E,s,S),Q&&(A=AE(Q,A,j));else if(v==="category"&&Q){var H=Q,G=A.every(function($){return H.indexOf($)>=0});G&&(A=H)}}return _e(_e({},m),{},Ct({},E,_e(_e({},b),{},{axisType:s,domain:A,categoricalDomain:D,duplicateDomain:O,originalDomain:(y=b.domain)!==null&&y!==void 0?y:I,isCategorical:p,layout:d})))},{})},kCe=function(e,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=Vj(e.data,{graphicalItems:r,dataStartIndex:c,dataEndIndex:u}),p=h.length,m=qV(d,s),x=-1;return r.reduce(function(y,b){var v=b.type.defaultProps!==void 0?_e(_e({},b.type.defaultProps),b.props):b.props,w=v[o],j=cH("number");if(!y[w]){x++;var k;return m?k=Rw(0,p):l&&l[w]&&l[w].hasStack?(k=YV(l[w].stackGroups,c,u),k=hA(f,k,w,s)):(k=AE(j,GV(h,r.filter(function(_){var S,N,E=o in _.props?_.props[o]:(S=_.type.defaultProps)===null||S===void 0?void 0:S[o],P="hide"in _.props?_.props.hide:(N=_.type.defaultProps)===null||N===void 0?void 0:N.hide;return E===w&&!P}),"number",d),a.defaultProps.allowDataOverflow),k=hA(f,k,w,s)),_e(_e({},y),{},Ct({},w,_e(_e({axisType:s},a.defaultProps),{},{hide:!0,orientation:Wi(xCe,"".concat(s,".").concat(x%2),null),domain:k,originalDomain:j,isCategorical:m,layout:d})))}return y},{})},jCe=function(e,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.children,f="".concat(a,"Id"),h=Gs(d,s),p={};return h&&h.length?p=wCe(e,{axes:h,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u}):o&&o.length&&(p=kCe(e,{Axis:s,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u})),p},SCe=function(e){var n=Yc(e),r=tc(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:O3(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:jw(n,r)}},rL=function(e){var n=e.children,r=e.defaultShowTooltip,a=oi(n,Tp),s=0,o=0;return e.data&&e.data.length!==0&&(o=e.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(o=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},_Ce=function(e){return!e||!e.length?!1:e.some(function(n){var r=ac(n&&n.type);return r&&r.indexOf("Bar")>=0})},aL=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},NCe=function(e,n){var r=e.props,a=e.graphicalItems,s=e.xAxisMap,o=s===void 0?{}:s,l=e.yAxisMap,c=l===void 0?{}:l,u=r.width,d=r.height,f=r.children,h=r.margin||{},p=oi(f,Tp),m=oi(f,ml),x=Object.keys(c).reduce(function(k,_){var S=c[_],N=S.orientation;return!S.mirror&&!S.hide?_e(_e({},k),{},Ct({},N,k[N]+S.width)):k},{left:h.left||0,right:h.right||0}),y=Object.keys(o).reduce(function(k,_){var S=o[_],N=S.orientation;return!S.mirror&&!S.hide?_e(_e({},k),{},Ct({},N,Wi(k,"".concat(N))+S.height)):k},{top:h.top||0,bottom:h.bottom||0}),b=_e(_e({},y),x),v=b.bottom;p&&(b.bottom+=p.props.height||Tp.defaultProps.height),m&&n&&(b=nbe(b,a,r,n));var w=u-b.left-b.right,j=d-b.top-b.bottom;return _e(_e({brushBottom:v},b),{},{width:Math.max(w,0),height:Math.max(j,0)})},CCe=function(e,n){if(n==="xAxis")return e[n].width;if(n==="yAxis")return e[n].height},hT=function(e){var n=e.chartName,r=e.GraphicalChild,a=e.defaultTooltipEventType,s=a===void 0?"axis":a,o=e.validateTooltipEventTypes,l=o===void 0?["axis"]:o,c=e.axisComponents,u=e.legendContent,d=e.formatAxisMap,f=e.defaultProps,h=function(b,v){var w=v.graphicalItems,j=v.stackGroups,k=v.offset,_=v.updateId,S=v.dataStartIndex,N=v.dataEndIndex,E=b.barSize,P=b.layout,M=b.barGap,A=b.barCategoryGap,O=b.maxBarSize,D=aL(P),I=D.numericAxisName,X=D.cateAxisName,Q=_Ce(w),V=[];return w.forEach(function(Y,H){var G=Vj(b.data,{graphicalItems:[Y],dataStartIndex:S,dataEndIndex:N}),$=Y.type.defaultProps!==void 0?_e(_e({},Y.type.defaultProps),Y.props):Y.props,F=$.dataKey,R=$.maxBarSize,z=$["".concat(I,"Id")],U=$["".concat(X,"Id")],ee={},pe=c.reduce(function(Be,tt){var B=v["".concat(tt.axisType,"Map")],se=$["".concat(tt.axisType,"Id")];B&&B[se]||tt.axisType==="zAxis"||sf();var de=B[se];return _e(_e({},Be),{},Ct(Ct({},tt.axisType,de),"".concat(tt.axisType,"Ticks"),tc(de)))},ee),re=pe[X],he=pe["".concat(X,"Ticks")],q=j&&j[z]&&j[z].hasStack&&gbe(Y,j[z].stackGroups),W=ac(Y.type).indexOf("Bar")>=0,ue=jw(re,he),te=[],ie=Q&&ebe({barSize:E,stackGroups:j,totalSize:CCe(pe,X)});if(W){var me,ve,Ne=Pt(R)?O:R,je=(me=(ve=jw(re,he,!0))!==null&&ve!==void 0?ve:Ne)!==null&&me!==void 0?me:0;te=tbe({barGap:M,barCategoryGap:A,bandSize:je!==ue?je:ue,sizeList:ie[U],maxBarSize:Ne}),je!==ue&&(te=te.map(function(Be){return _e(_e({},Be),{},{position:_e(_e({},Be.position),{},{offset:Be.position.offset-je/2})})}))}var Me=Y&&Y.type&&Y.type.getComposedData;Me&&V.push({props:_e(_e({},Me(_e(_e({},pe),{},{displayedData:G,props:b,dataKey:F,item:Y,bandSize:ue,barPosition:te,offset:k,stackedData:q,layout:P,dataStartIndex:S,dataEndIndex:N}))),{},Ct(Ct(Ct({key:Y.key||"item-".concat(H)},I,pe[I]),X,pe[X]),"animationId",_)),childIndex:Qse(Y,b.children),item:Y})}),V},p=function(b,v){var w=b.props,j=b.dataStartIndex,k=b.dataEndIndex,_=b.updateId;if(!C4({props:w}))return null;var S=w.children,N=w.layout,E=w.stackOffset,P=w.data,M=w.reverseStackOrder,A=aL(N),O=A.numericAxisName,D=A.cateAxisName,I=Gs(S,r),X=hbe(P,I,"".concat(O,"Id"),"".concat(D,"Id"),E,M),Q=c.reduce(function($,F){var R="".concat(F.axisType,"Map");return _e(_e({},$),{},Ct({},R,jCe(w,_e(_e({},F),{},{graphicalItems:I,stackGroups:F.axisType===O&&X,dataStartIndex:j,dataEndIndex:k}))))},{}),V=NCe(_e(_e({},Q),{},{props:w,graphicalItems:I}),v==null?void 0:v.legendBBox);Object.keys(Q).forEach(function($){Q[$]=d(w,Q[$],V,$.replace("Map",""),n)});var Y=Q["".concat(D,"Map")],H=SCe(Y),G=h(w,_e(_e({},Q),{},{dataStartIndex:j,dataEndIndex:k,updateId:_,graphicalItems:I,stackGroups:X,offset:V}));return _e(_e({formattedGraphicalItems:G,graphicalItems:I,offset:V,stackGroups:X},H),Q)},m=function(y){function b(v){var w,j,k;return iCe(this,b),k=cCe(this,b,[v]),Ct(k,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Ct(k,"accessibilityManager",new GNe),Ct(k,"handleLegendBBoxUpdate",function(_){if(_){var S=k.state,N=S.dataStartIndex,E=S.dataEndIndex,P=S.updateId;k.setState(_e({legendBBox:_},p({props:k.props,dataStartIndex:N,dataEndIndex:E,updateId:P},_e(_e({},k.state),{},{legendBBox:_}))))}}),Ct(k,"handleReceiveSyncEvent",function(_,S,N){if(k.props.syncId===_){if(N===k.eventEmitterSymbol&&typeof k.props.syncMethod!="function")return;k.applySyncEvent(S)}}),Ct(k,"handleBrushChange",function(_){var S=_.startIndex,N=_.endIndex;if(S!==k.state.dataStartIndex||N!==k.state.dataEndIndex){var E=k.state.updateId;k.setState(function(){return _e({dataStartIndex:S,dataEndIndex:N},p({props:k.props,dataStartIndex:S,dataEndIndex:N,updateId:E},k.state))}),k.triggerSyncEvent({dataStartIndex:S,dataEndIndex:N})}}),Ct(k,"handleMouseEnter",function(_){var S=k.getMouseInfo(_);if(S){var N=_e(_e({},S),{},{isTooltipActive:!0});k.setState(N),k.triggerSyncEvent(N);var E=k.props.onMouseEnter;Rt(E)&&E(N,_)}}),Ct(k,"triggeredAfterMouseMove",function(_){var S=k.getMouseInfo(_),N=S?_e(_e({},S),{},{isTooltipActive:!0}):{isTooltipActive:!1};k.setState(N),k.triggerSyncEvent(N);var E=k.props.onMouseMove;Rt(E)&&E(N,_)}),Ct(k,"handleItemMouseEnter",function(_){k.setState(function(){return{isTooltipActive:!0,activeItem:_,activePayload:_.tooltipPayload,activeCoordinate:_.tooltipPosition||{x:_.cx,y:_.cy}}})}),Ct(k,"handleItemMouseLeave",function(){k.setState(function(){return{isTooltipActive:!1}})}),Ct(k,"handleMouseMove",function(_){_.persist(),k.throttleTriggeredAfterMouseMove(_)}),Ct(k,"handleMouseLeave",function(_){k.throttleTriggeredAfterMouseMove.cancel();var S={isTooltipActive:!1};k.setState(S),k.triggerSyncEvent(S);var N=k.props.onMouseLeave;Rt(N)&&N(S,_)}),Ct(k,"handleOuterEvent",function(_){var S=Zse(_),N=Wi(k.props,"".concat(S));if(S&&Rt(N)){var E,P;/.*touch.*/i.test(S)?P=k.getMouseInfo(_.changedTouches[0]):P=k.getMouseInfo(_),N((E=P)!==null&&E!==void 0?E:{},_)}}),Ct(k,"handleClick",function(_){var S=k.getMouseInfo(_);if(S){var N=_e(_e({},S),{},{isTooltipActive:!0});k.setState(N),k.triggerSyncEvent(N);var E=k.props.onClick;Rt(E)&&E(N,_)}}),Ct(k,"handleMouseDown",function(_){var S=k.props.onMouseDown;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleMouseUp",function(_){var S=k.props.onMouseUp;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleTouchMove",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.throttleTriggeredAfterMouseMove(_.changedTouches[0])}),Ct(k,"handleTouchStart",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.handleMouseDown(_.changedTouches[0])}),Ct(k,"handleTouchEnd",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.handleMouseUp(_.changedTouches[0])}),Ct(k,"handleDoubleClick",function(_){var S=k.props.onDoubleClick;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleContextMenu",function(_){var S=k.props.onContextMenu;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"triggerSyncEvent",function(_){k.props.syncId!==void 0&&zS.emit(US,k.props.syncId,_,k.eventEmitterSymbol)}),Ct(k,"applySyncEvent",function(_){var S=k.props,N=S.layout,E=S.syncMethod,P=k.state.updateId,M=_.dataStartIndex,A=_.dataEndIndex;if(_.dataStartIndex!==void 0||_.dataEndIndex!==void 0)k.setState(_e({dataStartIndex:M,dataEndIndex:A},p({props:k.props,dataStartIndex:M,dataEndIndex:A,updateId:P},k.state)));else if(_.activeTooltipIndex!==void 0){var O=_.chartX,D=_.chartY,I=_.activeTooltipIndex,X=k.state,Q=X.offset,V=X.tooltipTicks;if(!Q)return;if(typeof E=="function")I=E(V,_);else if(E==="value"){I=-1;for(var Y=0;Y=0){var q,W;if(O.dataKey&&!O.allowDuplicatedCategory){var ue=typeof O.dataKey=="function"?he:"payload.".concat(O.dataKey.toString());q=q1(Y,ue,I),W=H&&G&&q1(G,ue,I)}else q=Y==null?void 0:Y[D],W=H&&G&&G[D];if(U||z){var te=_.props.activeIndex!==void 0?_.props.activeIndex:D;return[g.cloneElement(_,_e(_e(_e({},E.props),pe),{},{activeIndex:te})),null,null]}if(!Pt(q))return[re].concat(Wp(k.renderActivePoints({item:E,activePoint:q,basePoint:W,childIndex:D,isRange:H})))}else{var ie,me=(ie=k.getItemByXY(k.state.activeCoordinate))!==null&&ie!==void 0?ie:{graphicalItem:re},ve=me.graphicalItem,Ne=ve.item,je=Ne===void 0?_:Ne,Me=ve.childIndex,Be=_e(_e(_e({},E.props),pe),{},{activeIndex:Me});return[g.cloneElement(je,Be),null,null]}return H?[re,null,null]:[re,null]}),Ct(k,"renderCustomized",function(_,S,N){return g.cloneElement(_,_e(_e({key:"recharts-customized-".concat(N)},k.props),k.state))}),Ct(k,"renderMap",{CartesianGrid:{handler:Zv,once:!0},ReferenceArea:{handler:k.renderReferenceElement},ReferenceLine:{handler:Zv},ReferenceDot:{handler:k.renderReferenceElement},XAxis:{handler:Zv},YAxis:{handler:Zv},Brush:{handler:k.renderBrush,once:!0},Bar:{handler:k.renderGraphicChild},Line:{handler:k.renderGraphicChild},Area:{handler:k.renderGraphicChild},Radar:{handler:k.renderGraphicChild},RadialBar:{handler:k.renderGraphicChild},Scatter:{handler:k.renderGraphicChild},Pie:{handler:k.renderGraphicChild},Funnel:{handler:k.renderGraphicChild},Tooltip:{handler:k.renderCursor,once:!0},PolarGrid:{handler:k.renderPolarGrid,once:!0},PolarAngleAxis:{handler:k.renderPolarAxis},PolarRadiusAxis:{handler:k.renderPolarAxis},Customized:{handler:k.renderCustomized}}),k.clipPathId="".concat((w=v.id)!==null&&w!==void 0?w:Sf("recharts"),"-clip"),k.throttleTriggeredAfterMouseMove=HU(k.triggeredAfterMouseMove,(j=v.throttleDelay)!==null&&j!==void 0?j:1e3/60),k.state={},k}return fCe(b,y),lCe(b,[{key:"componentDidMount",value:function(){var w,j;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,j=w.children,k=w.data,_=w.height,S=w.layout,N=oi(j,Vr);if(N){var E=N.props.defaultIndex;if(!(typeof E!="number"||E<0||E>this.state.tooltipTicks.length-1)){var P=this.state.tooltipTicks[E]&&this.state.tooltipTicks[E].value,M=gA(this.state,k,E,P),A=this.state.tooltipTicks[E].coordinate,O=(this.state.offset.top+_)/2,D=S==="horizontal",I=D?{x:A,y:O}:{y:A,x:O},X=this.state.formattedGraphicalItems.find(function(V){var Y=V.item;return Y.type.name==="Scatter"});X&&(I=_e(_e({},I),X.props.points[E].tooltipPosition),M=X.props.points[E].tooltipPayload);var Q={activeTooltipIndex:E,isTooltipActive:!0,activeLabel:P,activePayload:M,activeCoordinate:I};this.setState(Q),this.renderCursor(N),this.accessibilityManager.setIndex(E)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,j){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==j.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var k,_;this.accessibilityManager.setDetails({offset:{left:(k=this.props.margin.left)!==null&&k!==void 0?k:0,top:(_=this.props.margin.top)!==null&&_!==void 0?_:0}})}return null}},{key:"componentDidUpdate",value:function(w){WC([oi(w.children,Vr)],[oi(this.props.children,Vr)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=oi(this.props.children,Vr);if(w&&typeof w.props.shared=="boolean"){var j=w.props.shared?"axis":"item";return l.indexOf(j)>=0?j:s}return s}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var j=this.container,k=j.getBoundingClientRect(),_=_ge(k),S={chartX:Math.round(w.pageX-_.left),chartY:Math.round(w.pageY-_.top)},N=k.width/j.offsetWidth||1,E=this.inRange(S.chartX,S.chartY,N);if(!E)return null;var P=this.state,M=P.xAxisMap,A=P.yAxisMap,O=this.getTooltipEventType(),D=nL(this.state,this.props.data,this.props.layout,E);if(O!=="axis"&&M&&A){var I=Yc(M).scale,X=Yc(A).scale,Q=I&&I.invert?I.invert(S.chartX):null,V=X&&X.invert?X.invert(S.chartY):null;return _e(_e({},S),{},{xValue:Q,yValue:V},D)}return D?_e(_e({},S),D):null}},{key:"inRange",value:function(w,j){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,_=this.props.layout,S=w/k,N=j/k;if(_==="horizontal"||_==="vertical"){var E=this.state.offset,P=S>=E.left&&S<=E.left+E.width&&N>=E.top&&N<=E.top+E.height;return P?{x:S,y:N}:null}var M=this.state,A=M.angleAxisMap,O=M.radiusAxisMap;if(A&&O){var D=Yc(A);return II({x:S,y:N},D)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,j=this.getTooltipEventType(),k=oi(w,Vr),_={};k&&j==="axis"&&(k.props.trigger==="click"?_={onClick:this.handleClick}:_={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var S=K1(this.props,this.handleOuterEvent);return _e(_e({},S),_)}},{key:"addListener",value:function(){zS.on(US,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){zS.removeListener(US,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,j,k){for(var _=this.state.formattedGraphicalItems,S=0,N=_.length;St.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xe=(t,e)=>{const n=g.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:c,...u},d)=>g.createElement("svg",{ref:d,...ECe,width:a,height:a,stroke:r,strokeWidth:o?Number(s)*24/Number(a):s,className:["lucide",`lucide-${ACe(t)}`,l].join(" "),...u},[...e.map(([f,h])=>g.createElement(f,h)),...Array.isArray(c)?c:[c]]));return n.displayName=`${t}`,n};/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xh=Xe("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hp=Xe("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const V0=Xe("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Au=Xe("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dH=Xe("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const a1=Xe("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zw=Xe("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const OCe=Xe("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wj=Xe("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Oh=Xe("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gi=Xe("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wn=Xe("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const TCe=Xe("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xi=Xe("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ds=Xe("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const PCe=Xe("CircleAlert",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fH=Xe("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gp=Xe("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hj=Xe("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hH=Xe("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vd=Xe("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pH=Xe("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lf=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sL=Xe("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const MCe=Xe("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xA=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const RCe=Xe("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gj=Xe("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ef=Xe("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mH=Xe("FileText",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const DCe=Xe("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qp=Xe("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ICe=Xe("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qj=Xe("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $Ce=Xe("GitCompare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const LCe=Xe("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pT=Xe("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const FCe=Xe("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qu=Xe("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mT=Xe("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gT=Xe("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xT=Xe("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gH=Xe("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xH=Xe("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ou=Xe("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yA=Xe("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yH=Xe("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vH=Xe("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ry=Xe("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Oo=Xe("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const BCe=Xe("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const El=Xe("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cf=Xe("PieChart",[["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}],["path",{d:"M22 12A10 10 0 0 0 12 2v10z",key:"1rfc4y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ts=Xe("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qn=Xe("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Tm=Xe("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const As=Xe("RefreshCw",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bH=Xe("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Kp=Xe("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wH=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zCe=Xe("ShieldAlert",[["path",{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",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yT=Xe("ShieldCheck",[["path",{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",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hi=Xe("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kH=Xe("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WS=Xe("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7",key:"jon5kx"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Dy=Xe("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jH=Xe("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UCe=Xe("ToggleRight",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Cn=Xe("Trash2",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const SH=Xe("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Kj=Xe("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pm=Xe("TriangleAlert",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _H=Xe("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iL=Xe("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vT=Xe("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hr=Xe("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bT=Xe("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"}]]),VCe="modulepreload",WCe=function(t){return"/decision-engine/"+t},oL={},HCe=function(e,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(n.map(c=>{if(c=WCe(c),c in oL)return;oL[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":VCe,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&s(l.reason);return e().catch(s)})};let lL=null;const Ad={get:()=>lL,set:t=>{lL=t}},NH="public",GCe="/decision-engine/api",HS=GCe.replace(/\/$/,""),CH="decision-engine";function wT(t){if(/^https?:\/\//.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return e.startsWith(`${HS}/`)||e===HS?e:`${HS}${e}`}function qCe(t){return`${window.location.origin}${wT(t)}`}function cL(t){return typeof t=="string"&&t.trim()?t.trim():typeof t=="number"||typeof t=="boolean"?String(t):null}function EH(t){if(!t||typeof t!="object")return cL(t);const e=t,n=["message","error_message","user_message","developer_message","error","detail","details"];for(const r of n){const a=cL(e[r]);if(a)return a}for(const r of["data","error_info","context"]){const a=EH(e[r]);if(a)return a}return null}const KCe=200,vA="Something went wrong. Please try again.";function AH(t,e,n){const r=n.trim();r&&console.error(`[api] ${t} ${e||""}`.trim(),r.slice(0,2e3));const a=/^\s*({const{useAuthStore:c}=await Promise.resolve().then(()=>_Ae);return{useAuthStore:c}},void 0).then(({useAuthStore:c})=>{c.getState().clearAuth()}),window.location.href="/decision-engine/login",new Error("Session expired")}if(!s.ok){const l=new Error(AH(s.status,s.statusText,o));throw l.status=s.status,l.responseText=o,l}if(!o.trim())return;try{return JSON.parse(o)}catch(l){const c=new Error(vA);throw c.status=s.status,c.responseText=o,c.cause=l,console.error(`[api] ${s.status} non-JSON response`,o.slice(0,2e3)),c}}catch(r){throw r}}async function Ve(t,e){return la(t,{method:"POST",body:e!==void 0?JSON.stringify(e):void 0})}async function Yj(t,e){return la(t,{method:"PUT",body:e!==void 0?JSON.stringify(e):void 0})}async function Mm(t){return la(t,{method:"DELETE"})}function kT(t,e,n){const r=wT(t),a=Ad.get();return new Promise((s,o)=>{const l=new XMLHttpRequest;l.open("POST",r),l.setRequestHeader("Content-Type","application/octet-stream"),l.setRequestHeader("x-tenant-id",NH),l.setRequestHeader("x-feature",CH),a&&l.setRequestHeader("Authorization",`Bearer ${a}`),l.upload.onprogress=c=>{c.lengthComputable&&(n==null||n({loaded:c.loaded,total:c.total,phase:"uploading"}))},l.upload.onload=()=>{n==null||n({loaded:e.size,total:e.size,phase:"processing"})},l.onload=()=>{const c=l.responseText??"";if(l.status>=200&&l.status<300){if(!c.trim()){s(void 0);return}try{s(JSON.parse(c))}catch{o(new Error("Invalid JSON in upload response"))}return}const u=new Error(AH(l.status,l.statusText,c));u.status=l.status,u.responseText=c,o(u)},l.timeout=30*60*1e3,l.onerror=()=>o(new Error("Could not reach the server. Check your connection and try again.")),l.ontimeout=()=>o(new Error("Upload timed out. Please try again.")),l.onabort=()=>o(new Error("Upload cancelled.")),l.send(e)})}async function Lt(t){return la(t)}const Th={GSM_RETRY_IN_SIMULATION:!1,SMART_RETRY_IN_ANALYTICS:!1,SMART_RETRY_IN_SIMULATION:!1},il={backgroundColor:"var(--chart-tooltip-bg)",border:"1px solid var(--chart-tooltip-border)",borderRadius:"14px",color:"var(--chart-tooltip-text)",boxShadow:"var(--chart-tooltip-shadow)",padding:"10px 12px"},ol={color:"var(--chart-tooltip-label)",fontWeight:600,marginBottom:8},Ph={color:"var(--chart-tooltip-text)"},YCe={primary:"bg-brand-600 text-white hover:bg-brand-700 disabled:opacity-50 shadow-sm border border-transparent dark:bg-white dark:text-black dark:hover:bg-slate-200",secondary:"bg-white text-slate-700 border border-slate-200 hover:bg-slate-50 hover:text-slate-900 disabled:opacity-40 shadow-sm dark:bg-[#121214] dark:text-[#a1a1aa] dark:border-[#27272a] dark:hover:bg-[#18181b] dark:hover:text-white",ghost:"text-slate-500 hover:text-slate-900 hover:bg-slate-100 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:text-white dark:hover:bg-[#121214]",danger:"bg-red-50 text-red-600 hover:bg-red-100 border border-red-200 disabled:opacity-40 dark:bg-[#2a0505] dark:text-red-500 dark:hover:bg-[#380808] dark:border-[#5c1c1c]"},XCe={sm:"px-4 py-1.5 text-xs font-semibold",md:"px-5 py-2.5 text-sm font-semibold"};function ke({variant:t="primary",size:e="md",className:n="",...r}){return i.jsx("button",{className:`relative inline-flex items-center justify-center gap-2 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-brand-500/50 focus:ring-offset-1 focus:ring-offset-transparent focus:border-transparent ${YCe[t]} ${XCe[e]} ${n}`,...r,children:r.children})}function Te({children:t,className:e="",onClick:n}){const r=`relative min-w-0 overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-[0_18px_60px_-42px_rgba(15,23,42,0.15)] dark:border-[#2a303a] dark:bg-[#11151d] dark:shadow-[0_18px_60px_-42px_rgba(0,0,0,0.7)] ${n?"cursor-pointer text-left transition duration-300 hover:-translate-y-0.5 hover:border-[#3b82f6]/35 hover:bg-slate-50 dark:hover:bg-[#141923]":""} ${e}`,a=i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-[#3b82f6]/25 to-transparent dark:via-[#3b82f6]/30"}),i.jsx("div",{className:"absolute inset-0 bg-[linear-gradient(180deg,rgba(255,255,255,0.55),transparent_26%)] dark:bg-[linear-gradient(180deg,rgba(255,255,255,0.02),transparent_26%)]"}),i.jsx("div",{className:"relative min-w-0 flex flex-col h-full",children:t})]});return n?i.jsx("button",{type:"button",onClick:n,className:r,children:a}):i.jsx("div",{className:r,children:a})}function jt({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 border-b border-slate-200 px-6 py-5 dark:border-[#2a303a] ${e}`,children:t})}function ze({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 px-6 py-5 ${e}`,children:t})}function an({children:t,className:e=""}){return i.jsx("p",{className:`block max-w-full truncate text-[12px] font-medium leading-4 text-slate-500 dark:text-[#8d96aa] ${e}`,children:t})}function bA({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 overflow-hidden rounded-[22px] border border-slate-200 bg-white/80 px-4 py-4 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none ${e}`,children:t})}const JCe={green:"bg-emerald-500/10 text-emerald-600 ring-1 ring-inset ring-emerald-500/20 dark:text-emerald-300",gray:"bg-slate-900/[0.04] text-slate-700 ring-1 ring-inset ring-slate-900/8 dark:bg-white/[0.05] dark:text-slate-300 dark:ring-white/8",blue:"bg-sky-500/12 text-sky-700 ring-1 ring-inset ring-sky-500/22 dark:bg-sky-400/14 dark:text-sky-200 dark:ring-sky-400/28",red:"bg-red-500/10 text-red-600 ring-1 ring-inset ring-red-500/20 dark:text-red-300",orange:"bg-orange-500/10 text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300",purple:"bg-purple-500/10 text-purple-600 ring-1 ring-inset ring-purple-500/20 dark:text-purple-300"};function Pe({variant:t="gray",children:e}){return i.jsx("span",{className:`inline-flex max-w-full min-w-0 items-center gap-1 overflow-hidden rounded-md px-2 py-0.5 text-xs font-medium tracking-wide ${JCe[t]}`,children:i.jsx("span",{className:"min-w-0 truncate",children:e})})}function mt({size:t=20}){return i.jsxs("svg",{className:"animate-spin text-brand-600",width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:[i.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),i.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]})}function _t({error:t}){return t?i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-4 py-3 text-sm text-red-400 font-mono",children:t}):null}const ZCe={},uL=t=>{let e;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(e):d;if(!Object.is(h,e)){const p=e;e=f??(typeof h!="object"||h===null)?h:Object.assign({},e,h),n.forEach(m=>m(e,p))}},a=()=>e,c={setState:r,getState:a,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(ZCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=e=t(r,a,c);return c},QCe=t=>t?uL(t):uL;var TH={exports:{}},PH={};/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xj=g,eEe=MC;function tEe(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var nEe=typeof Object.is=="function"?Object.is:tEe,rEe=eEe.useSyncExternalStore,aEe=Xj.useRef,sEe=Xj.useEffect,iEe=Xj.useMemo,oEe=Xj.useDebugValue;PH.useSyncExternalStoreWithSelector=function(t,e,n,r,a){var s=aEe(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=iEe(function(){function c(p){if(!u){if(u=!0,d=p,p=r(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return f=m}return f=p}if(m=f,nEe(d,p))return m;var x=r(p);return a!==void 0&&a(m,x)?(d=p,m):(d=p,f=x)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return c(e())},h===null?void 0:function(){return c(h())}]},[e,n,r,a]);var l=rEe(t,s[0],s[1]);return sEe(function(){o.hasValue=!0,o.value=l},[l]),oEe(l),l};TH.exports=PH;var lEe=TH.exports;const cEe=Rn(lEe),MH={},{useDebugValue:uEe}=J,{useSyncExternalStoreWithSelector:dEe}=cEe;let dL=!1;const fEe=t=>t;function hEe(t,e=fEe,n){(MH?"production":void 0)!=="production"&&n&&!dL&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),dL=!0);const r=dEe(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return uEe(r),r}const pEe=t=>{(MH?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?QCe(t):t,n=(r,a)=>hEe(e,r,a);return Object.assign(n,e),n},RH=t=>pEe,mEe={};function gEe(t,e){let n;try{n=t()}catch{return}return{getItem:a=>{var s;const o=c=>c===null?null:JSON.parse(c,void 0),l=(s=n.getItem(a))!=null?s:null;return l instanceof Promise?l.then(o):o(l)},setItem:(a,s)=>n.setItem(a,JSON.stringify(s,void 0)),removeItem:a=>n.removeItem(a)}}const W0=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return W0(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return W0(r)(n)}}}},xEe=(t,e)=>(n,r,a)=>{let s={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:y=>y,version:0,merge:(y,b)=>({...b,...y}),...e},o=!1;const l=new Set,c=new Set;let u;try{u=s.getStorage()}catch{}if(!u)return t((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...y)},r,a);const d=W0(s.serialize),f=()=>{const y=s.partialize({...r()});let b;const v=d({state:y,version:s.version}).then(w=>u.setItem(s.name,w)).catch(w=>{b=w});if(b)throw b;return v},h=a.setState;a.setState=(y,b)=>{h(y,b),f()};const p=t((...y)=>{n(...y),f()},r,a);let m;const x=()=>{var y;if(!u)return;o=!1,l.forEach(v=>v(r()));const b=((y=s.onRehydrateStorage)==null?void 0:y.call(s,r()))||void 0;return W0(u.getItem.bind(u))(s.name).then(v=>{if(v)return s.deserialize(v)}).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==s.version){if(s.migrate)return s.migrate(v.state,v.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return v.state}).then(v=>{var w;return m=s.merge(v,(w=r())!=null?w:p),n(m,!0),f()}).then(()=>{b==null||b(m,void 0),o=!0,c.forEach(v=>v(m))}).catch(v=>{b==null||b(void 0,v)})};return a.persist={setOptions:y=>{s={...s,...y},y.getStorage&&(u=y.getStorage())},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>x(),hasHydrated:()=>o,onHydrate:y=>(l.add(y),()=>{l.delete(y)}),onFinishHydration:y=>(c.add(y),()=>{c.delete(y)})},x(),m||p},yEe=(t,e)=>(n,r,a)=>{let s={storage:gEe(()=>localStorage),partialize:x=>x,version:0,merge:(x,y)=>({...y,...x}),...e},o=!1;const l=new Set,c=new Set;let u=s.storage;if(!u)return t((...x)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...x)},r,a);const d=()=>{const x=s.partialize({...r()});return u.setItem(s.name,{state:x,version:s.version})},f=a.setState;a.setState=(x,y)=>{f(x,y),d()};const h=t((...x)=>{n(...x),d()},r,a);a.getInitialState=()=>h;let p;const m=()=>{var x,y;if(!u)return;o=!1,l.forEach(v=>{var w;return v((w=r())!=null?w:h)});const b=((y=s.onRehydrateStorage)==null?void 0:y.call(s,(x=r())!=null?x:h))||void 0;return W0(u.getItem.bind(u))(s.name).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==s.version){if(s.migrate)return[!0,s.migrate(v.state,v.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,v.state];return[!1,void 0]}).then(v=>{var w;const[j,k]=v;if(p=s.merge(k,(w=r())!=null?w:h),n(p,!0),j)return d()}).then(()=>{b==null||b(p,void 0),p=r(),o=!0,c.forEach(v=>v(p))}).catch(v=>{b==null||b(void 0,v)})};return a.persist={setOptions:x=>{s={...s,...x},x.storage&&(u=x.storage)},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:x=>(l.add(x),()=>{l.delete(x)}),onFinishHydration:x=>(c.add(x),()=>{c.delete(x)})},s.skipHydration||m(),p||h},vEe=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((mEe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),xEe(t,e)):yEe(t,e),DH=vEe,Er=RH()(DH(t=>({merchantId:"",setMerchantId:e=>{console.log(` +[STORE] Merchant ID changed: "${e}"`),t({merchantId:e})}}),{name:"merchant-store"})),IH=15e3,$H=1e4;function Jj(t,e="",n={}){if(!t)return null;const r=new URLSearchParams;for(const[s,o]of Object.entries(n))o&&r.set(s,o);const a=r.toString();return`/merchant-account/${t}/volume-commitment${e}${a?`?${a}`:""}`}function jT(t,e=IH){const{data:n,error:r,isLoading:a,mutate:s}=ut(Jj(t),Lt,{revalidateOnFocus:!1,refreshInterval:e});return{data:n,error:r,isLoading:a,isActive:!!(n!=null&&n.active),mutate:s}}function ST(t,e,n={}){const r=Jj(t,"/series",{run_id:e,per_day:n.perDay&&n.perDay>1?String(n.perDay):void 0}),{data:a,error:s,isLoading:o,mutate:l}=ut(r,Lt,{revalidateOnFocus:!1,refreshInterval:n.refreshInterval??IH,keepPreviousData:!0});return{data:a,error:s,isLoading:o,mutate:l}}function LH(t,e){const n=Jj(t,"/audit",{run_id:e}),{data:r,error:a,isLoading:s}=ut(n,Lt,{revalidateOnFocus:!1,refreshInterval:$H});return{events:(r==null?void 0:r.events)??[],runs:(r==null?void 0:r.runs)??[],error:a,isLoading:s}}function bEe(t,e){const n=Jj(t,"/impact",{run_id:e}),{data:r,error:a,isLoading:s,mutate:o}=ut(n,Lt,{revalidateOnFocus:!1,refreshInterval:$H,shouldRetryOnError:!1,keepPreviousData:!0});return{data:r,error:a,isLoading:s,mutate:o}}const wA=["#0069ED","#0d9488","#ea580c","#8b5cf6"],wEe="#94a3b8",H0=86400;function FH(t){return(t??H0)0))return"0";if(t>=e)return"100";const n=Math.max(0,t/e*100);return Math.round(n)>=100?Math.min(99.9,Math.floor(n*10)/10).toFixed(1):Math.round(n).toString()}function zH(t,e,n){const r=es(t,n);if(t>=e||r!==es(e,n))return r;if(!n)return t.toLocaleString();const a=CT(t,n);try{return new Intl.NumberFormat("en",{style:"currency",currency:n,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(a)}catch{return`${n} ${a.toLocaleString()}`}}function wu(t){return Number.isFinite(t)?Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(0)}k`:t.toFixed(0):"0"}function UH(t,e){return`vc-hatch-${t}-${e.replace(/[^a-zA-Z0-9_-]/g,"_")}`}function kEe({entries:t}){return i.jsx("defs",{children:t.map(({id:e,color:n})=>i.jsxs("pattern",{id:e,patternUnits:"userSpaceOnUse",width:6,height:6,patternTransform:"rotate(45)",children:[i.jsx("rect",{width:6,height:6,fill:n,opacity:.22}),i.jsx("line",{x1:0,y1:0,x2:0,y2:6,stroke:n,strokeWidth:2})]},e))})}function jA({color:t}){return i.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-[3px]",style:{backgroundColor:t}})}function jEe({color:t}){return i.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-[3px]",style:{backgroundColor:`${t}38`,backgroundImage:`repeating-linear-gradient(45deg, ${t} 0 1.5px, transparent 1.5px 4px)`}})}function SEe(){return i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dashed border-slate-600 dark:border-slate-300"})}const _Ee=new Set(["JPY","KRW","VND","CLP","ISK","HUF","UGX","XAF","XOF"]);function CT(t,e){return _Ee.has(e)?t:t/100}function NEe(t){var e;try{return((e=new Intl.NumberFormat("en",{style:"currency",currency:t,currencyDisplay:"narrowSymbol"}).formatToParts(0).find(r=>r.type==="currency"))==null?void 0:e.value)??t}catch{return t}}function es(t,e){if(Number.isFinite(t)||(t=0),!e)return wu(t);const n=CT(t,e),r=Math.abs(n),a=NEe(e),s=n<0?"-":"";return r>=1e6?`${s}${a}${(r/1e6).toFixed(1)}M`:r>=1e4?`${s}${a}${(r/1e3).toFixed(0)}k`:r>=1e3?`${s}${a}${(r/1e3).toFixed(1)}k`:`${s}${a}${r.toFixed(0)}`}function VH(t,e){if(Number.isFinite(t)||(t=0),!e)return Math.round(t).toLocaleString();const n=CT(t,e);try{return new Intl.NumberFormat("en",{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:0}).format(n)}catch{return`${e} ${Math.round(n).toLocaleString()}`}}function s1(t,e,n){return t*Math.min(n,Math.floor(e+1e-9)+1)/n}const Jh="#dc2626",SA="#d97706",CEe="#059669";function EEe(t){const{metas:e,steers:n,drops:r,currency:a,daysTotal:s,dayLabel:o,xLo:l,xHi:c,xAxisMap:u,yAxisMap:d,offset:f}=t,h=u?Object.values(u)[0]:void 0,p=d?Object.values(d)[0]:void 0;if(!h||!p||!f)return null;const m=S=>h.scale(S),x=S=>p.scale(S),y=m(c);if(y==null)return null;const b=S=>S>=l-1e-9&&S<=c+1e-9,v=30,w=e.map(S=>({m:S,y:x(s1(S.goal,c,s))??f.top})).sort((S,N)=>S.y-N.y);for(let S=1;S=0;S-=1)w[S].y>j&&(w[S].y=j),SS&&S.amount>=N.amount?S:N,null),_=Math.max(1,Math.ceil(s/30));return i.jsxs("g",{style:{fontFamily:"inherit"},children:[e.map(S=>Array.from({length:s},(N,E)=>E+1).filter(N=>N%_===0&&N>=l-1e-9&&N<=c+1e-9).map(N=>{const E=m(N),P=x(S.goal*N/s);return E==null||P==null?null:i.jsx("circle",{cx:E,cy:P,r:2.5,fill:"none",stroke:S.color,strokeWidth:1.5,opacity:.8},`target-${S.name}-${N}`)})),r.map(S=>{if(!b(S.day))return null;const N=m(S.day);if(N==null)return null;const E=`${o} ${Math.round(S.day)} · ${S.names.join(", ")} dropped`,P=E.length*6+10,M=N+P>f.left+f.width;return i.jsxs("g",{children:[i.jsx("rect",{x:M?N-P-4:N+4,y:f.top-2,width:P,height:16,rx:3,fill:Jh,opacity:.1}),i.jsx("text",{x:M?N-8:N+9,y:f.top+10,fontSize:10.5,fontWeight:600,fill:Jh,textAnchor:M?"end":"start",children:E})]},`drop-${S.day}`)}),n.map((S,N)=>{if(!b(S.day))return null;const E=m(S.day),P=x(S.total);if(E==null||P==null)return null;const M=k===S;return i.jsxs("g",{children:[i.jsx("path",{d:`M${E},${P-11} l4.5,7 h-9 z`,fill:SA}),M&&i.jsxs("text",{x:E+7,y:P-6,fontSize:10.5,fontWeight:600,fill:SA,children:["steer +",es(S.amount,a)]})]},`steer-${S.name}-${N}`)}),e.filter(S=>S.status==="eliminated"||S.status==="missed").map(S=>{if(S.endDay(c-l)*.12&&i.jsx("text",{x:O,y:E-8,fontSize:10,fill:wEe,textAnchor:"middle",children:"dropped — natural traffic only"}),S.status==="missed"&&S.endDay<=c+1e-9&&i.jsx("text",{x:N,y:E-7,fontSize:10.5,fontWeight:600,fill:Jh,textAnchor:"end",children:"× missed"})]},`tail-${S.name}`)}),w.map(({m:S,y:N})=>{const E=S.color,P=S.status==="met"?"✓ ":S.status==="steering"?"↗ ":"";return i.jsxs("g",{children:[S.status==="met"&&i.jsx("text",{x:y+4,y:N+4,fontSize:11,fill:CEe,fontWeight:700,children:"✓"}),i.jsxs("text",{x:y+(S.status==="met"?16:8),y:N+4,fontSize:10.5,fontWeight:600,fill:E,children:[S.status==="met"?"":P,S.name," promise · ",es(S.goal,a)]}),i.jsxs("text",{x:y+(S.status==="met"?16:8),y:N+17,fontSize:10.5,fill:E,opacity:.85,children:["→ ",VH(S.reward,a),S.status==="steering"?" · steering":""]})]},`label-${S.name}`)})]})}function AEe({width:t,height:e,children:n}){return t?g.cloneElement(n,{width:t,height:e}):i.jsx(Li,{children:n})}function OEe({active:t,payload:e,label:n,metas:r,currency:a,dayLabel:s}){var l;if(!t||!(e!=null&&e.length))return null;const o=(l=e[0])==null?void 0:l.payload;return o?i.jsxs("div",{style:{...il,fontSize:12,lineHeight:1.5,minWidth:220},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:[s," ",typeof n=="number"?n.toFixed(n%1===0?0:1):n]}),r.map(c=>{const u=o[c.name]??o[`${c.name}__after`],d=u==null?o[`${c.name}__pending`]:void 0,f=u??d,h=o[`${c.name}__promise`];return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:c.color,flexShrink:0}}),i.jsx("span",{style:{fontWeight:600},children:c.name}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[f!=null?`${d!=null?"~":""}${es(f,a)}`:"—",i.jsxs("span",{style:{opacity:.6},children:[" ","/ ",h!=null?es(h,a):"—"," by ",s.toLowerCase(),"'s end"]})]})]},c.name)})]}):null}function WH({connectors:t,currency:e,daySecs:n,colorFor:r,statusFor:a,eliminatedAtMs:s,eliminationReasons:o,isPastRun:l,height:c=460,showLegend:u=!0,fixedWidth:d,perDay:f}){const h=Math.max(1,(n??H0)*1e3),p=1/Math.max(1,f??_T(n)),[,m]=g.useState(0);g.useEffect(()=>{if(l)return;const F=window.setInterval(()=>m(R=>R+1),500);return()=>window.clearInterval(F)},[l]);const x=kA().short,y=Math.max(1,...t.map(F=>F.daysTotal)),b=Math.min(...t.map(F=>Date.parse(F.cycleStart)||Number.POSITIVE_INFINITY)),v=Number.isFinite(b)?Math.min(y,Math.max(0,(Date.now()-b)/h)):y,{rows:w,metas:j,steers:k,drops:_,yMax:S,yTicks:N}=g.useMemo(()=>{var Ce;const F=fe=>Math.min(y,fe),R=fe=>F(Math.max(0,(fe-b)/h)),z=l?y:v,U=fe=>{const be=[...fe.points].sort((wt,zt)=>wt.day-zt.day),we=[];let Le=0,Oe=null;for(const wt of be){const zt=F(wt.day);Oe!=null&&zt-Oe>p*1.5&&we.push({at:Math.min(zt,z),total:Le,steered:0}),Le+=wt.total,we.push({at:Math.min(zt+p,z),total:Le,steered:wt.steered}),Oe=zt}const vt=be.filter(wt=>F(wt.day)+p<=z+1e-9).slice(-3),bt=vt.length?F(vt[vt.length-1].day)+p-F(vt[0].day):0,Bt=bt>0?vt.reduce((wt,zt)=>wt+zt.total,0)/bt:0;return{nodes:we,pace:Bt}},ee=new Map(t.map(fe=>[fe.connector,U(fe)])),pe=t.map((fe,be)=>{const we=a(fe.connector),Le=s==null?void 0:s.get(fe.connector),Oe=(we==="eliminated"||we==="missed")&&Le!=null&&Number.isFinite(b)?R(Le):void 0,{nodes:He,pace:vt}=ee.get(fe.connector)??{nodes:[],pace:0};return{name:fe.connector,color:r(fe.connector,be),goal:fe.goal,reward:fe.reward,status:we,dropDay:Oe,endDay:l?y:He.length?He[He.length-1].at:0,endTotal:0,pace:vt}}),re=new Set([0,y,...l?[]:[v]]);for(const{nodes:fe}of ee.values())for(const be of fe)re.add(be.at);for(const fe of pe)fe.dropDay!=null&&re.add(fe.dropDay);for(let fe=1;fe<=y;fe+=1)re.add(fe);const he=[...re].sort((fe,be)=>fe-be),q=[],W={},ue={},te=[];for(const fe of he){const be={day:fe};for(const we of pe){const Le=((Ce=ee.get(we.name))==null?void 0:Ce.nodes)??[];let Oe=ue[we.name]??0;for(;Oe0&&te.push({name:we.name,day:Le[Oe].at,endDay:Le[Oe].at,amount:Le[Oe].steered,total:Le[Oe].total,startTotal:vt,color:we.color}),Oe+=1}ue[we.name]=Oe;const He=W[we.name]??0;fe<=we.endDay+1e-9&&(we.dropDay!=null&&fe>=we.dropDay?(be[`${we.name}__after`]=He,fe===we.dropDay&&(be[we.name]=He)):be[we.name]=He,we.endTotal=He),!l&&v>we.endDay+1e-9&&(fe===v||Math.abs(fe-we.endDay)<1e-9)&&(be[`${we.name}__pending`]=we.endTotal+we.pace*(fe-we.endDay)),be[`${we.name}__promise`]=s1(we.goal,F(fe),y)}q.push(be)}const ie=6,me=pe.flatMap(fe=>te.filter(be=>be.name===fe.name).sort((be,we)=>we.amount-be.amount).slice(0,ie)),ve=new Map;for(const fe of pe){if(fe.dropDay==null)continue;const be=Math.round(fe.dropDay*100)/100,we=ve.get(be)??{day:fe.dropDay,names:[],reason:o==null?void 0:o.get(fe.name)};we.names.push(fe.name),ve.set(be,we)}const Ne=[...ve.values()].sort((fe,be)=>fe.day-be.day),je=fe=>l?fe.endTotal:fe.endTotal+fe.pace*Math.max(0,v-fe.endDay),Me=Math.max(1,...pe.map(fe=>Math.max(fe.goal,fe.endTotal,je(fe))))*1.05,Be=10**Math.floor(Math.log10(Me)),tt=Me/Be,B=(tt<=2?.5:tt<=5?1:2.5)*Be,se=Math.ceil(Me/B)*B,de=[];for(let fe=0;fe<=se+1e-9;fe+=B)de.push(fe);return{rows:q,metas:pe,steers:me,drops:Ne,yMax:se,yTicks:de}},[t,r,a,s,o,l,y,v,b,h,p]),E=g.useMemo(()=>(y<=8?[1,2]:[7,14]).filter(F=>F{const F=D-I,R=[.25,.5,1,2,5,10,15,30],z=A!=null?[...R].reverse().find(pe=>pe<=F/4)??.25:y<=8?1:y<=16?2:y<=40?6:Math.ceil(y/6),U=[],ee=A!=null?Math.ceil(I/z)*z:I;for(let pe=ee;pe{if(A==null)return{yLo:0,yHi:S,yTicksInView:N};const F=[];for(const ue of j)F.push(s1(ue.goal,I,y),s1(ue.goal,D,y));for(const ue of w){const te=Number(ue.day??0);if(!(teD+1e-9))for(const ie of j)for(const me of[ie.name,`${ie.name}__after`,`${ie.name}__pending`]){const ve=ue[me];typeof ve=="number"&&F.push(ve)}}const R=Math.max(0,Math.min(...F,Number.POSITIVE_INFINITY)),z=Math.max(...F,1),U=Math.max(z-R,z*.1,1),ee=10**Math.floor(Math.log10(U)),pe=U/ee,re=(pe<=2?.5:pe<=5?1:2.5)*ee,he=Math.max(0,Math.floor((R-U*.05)/re)*re),q=Math.ceil((z+U*.08)/re)*re,W=[];for(let ue=he;ue<=q+1e-9;ue+=re)W.push(ue);return{yLo:he,yHi:q,yTicksInView:W}},[A,w,j,I,D,y,S,N]),H=_.length>0,G=k.length>0,$=F=>`Last ${F} ${F===1?"day":"days"}`;return i.jsxs("div",{className:"w-full",children:[E.length>0&&i.jsx("div",{className:"mb-2 flex justify-end",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:[...E,"all"].map(F=>{const R=F==="all"?A==null:A===F;return i.jsx("button",{type:"button",onClick:()=>M(F),className:`rounded px-2.5 py-1 text-[11px] font-medium transition-colors ${R?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200"}`,children:F==="all"?"All":$(F)},String(F))})})}),i.jsx("div",{className:"w-full",style:{height:c},children:i.jsx(AEe,{width:d,height:c,children:i.jsxs(Jw,{data:w,margin:{top:20,right:196,bottom:4,left:8},children:[i.jsx(ko,{vertical:!1,stroke:"currentColor",opacity:.08}),i.jsx(Ia,{type:"number",dataKey:"day",domain:[I,D],allowDataOverflow:!0,ticks:X,tickFormatter:F=>`${x} ${Number.isInteger(F)?F:F.toFixed(2).replace(/0+$/,"")}`,tick:{fontSize:11},stroke:"currentColor",opacity:.5,tickLine:!1}),i.jsx(wa,{domain:[Q,V],allowDataOverflow:!0,ticks:Y,tickFormatter:F=>es(F,e),tick:{fontSize:11},stroke:"currentColor",opacity:.5,width:60,tickLine:!1}),i.jsx(Vr,{content:i.jsx(OEe,{metas:j,currency:e,dayLabel:x}),wrapperStyle:{zIndex:30,outline:"none"},cursor:{stroke:"currentColor",opacity:.2}}),_.filter(F=>F.day<=D).map(F=>i.jsx(My,{x1:Math.max(F.day,I),x2:D,fill:Jh,fillOpacity:.06,strokeOpacity:0},`area-${F.day}`)),_.filter(F=>F.day>=I&&F.day<=D).map(F=>i.jsx($j,{x:F.day,stroke:Jh,strokeDasharray:"2 3",strokeWidth:1.5},`line-${F.day}`)),j.map(F=>i.jsx(fi,{type:"stepAfter",dataKey:`${F.name}__promise`,stroke:F.color,strokeWidth:1.5,strokeDasharray:"6 4",opacity:.55,dot:!1,activeDot:!1,isAnimationActive:!1},`${F.name}-promise`)),!l&&j.map(F=>i.jsx(fi,{type:"linear",dataKey:`${F.name}__pending`,stroke:F.color,strokeWidth:2.25,strokeDasharray:"1 5",strokeLinecap:"round",opacity:.45,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!1},`${F.name}-pending`)),j.map(F=>i.jsx(fi,{type:"linear",dataKey:F.name,stroke:F.color,strokeWidth:2.25,dot:!1,activeDot:{r:3.5,strokeWidth:0},isAnimationActive:!1,connectNulls:!1},F.name)),j.filter(F=>F.dropDay!=null).map(F=>i.jsx(fi,{type:"linear",dataKey:`${F.name}__after`,stroke:F.color,strokeWidth:2,strokeDasharray:"2 3",opacity:.6,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!1},`${F.name}-after`)),i.jsx(Nw,{component:i.jsx(EEe,{metas:j,steers:k,drops:_,currency:e,daysTotal:y,dayLabel:x,xLo:I,xHi:D})})]})})}),u&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-5 gap-y-1.5 text-[11px] text-slate-600 dark:text-slate-300",children:[j.map(F=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"inline-block h-0.5 w-4 rounded",style:{backgroundColor:F.color}}),F.name," — running total"]},F.name)),i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dashed border-slate-500 dark:border-slate-400"}),"dashed steps = target to clear by each ",x.toLowerCase(),"'s end"]}),!l&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-2 border-dotted border-slate-400 dark:border-slate-500"}),"dotted = not yet measured, at recent pace"]}),G&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{style:{color:SA},children:"▲"})," steered chunk"]}),H&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dotted",style:{borderColor:Jh}}),"commitment dropped"]})]})]})}function TEe({connectors:t,currency:e,colorFor:n,statusFor:r,achievedFor:a,reasonFor:s}){return i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:t.map((o,l)=>{const c=r(o.connector),u=n(o.connector,l),d=a(o.connector),f=es(o.goal,e),p=o.rewardNote.includes("%")?o.rewardNote.split(" ")[0]:null,m=c==="met"?{text:"Met",cls:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300"}:c==="steering"?{text:"Steering",cls:"bg-amber-500/10 text-amber-600 dark:text-amber-300"}:c==="eliminated"?{text:"Eliminated",cls:"bg-red-500/10 text-red-600 dark:text-red-300"}:c==="missed"?{text:"Missed",cls:"bg-slate-500/10 text-slate-600 dark:text-slate-300"}:c==="on_pace"?{text:"On pace",cls:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300"}:{text:"Pending",cls:"bg-slate-500/10 text-slate-600 dark:text-slate-300"};return i.jsxs("div",{title:s==null?void 0:s(o.connector),className:"rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm dark:border-[#2a303a] dark:bg-[#11151d]",style:{borderLeft:`4px solid ${u}`},children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("span",{className:"flex items-center gap-2 text-sm font-semibold text-slate-800 dark:text-white",children:[i.jsx("span",{className:"inline-block h-2 w-2 rounded-full",style:{backgroundColor:u}}),o.connector]}),i.jsx("span",{className:`rounded-md px-1.5 py-0.5 text-[10px] font-medium ${m.cls}`,children:m.text})]}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:["Promise ",i.jsx("strong",{className:"text-slate-700 dark:text-slate-200",children:f})," · ",o.rewardNote]}),i.jsx("p",{className:"mt-1.5 text-2xl font-semibold",style:{color:u},children:VH(o.reward,e)}),i.jsx("p",{className:"mt-0.5 text-[11px] text-slate-400 dark:text-slate-500",children:p?`${p} × ${f}`:`flat on hitting ${f}`}),i.jsxs("p",{className:"mt-1 text-[11px] tabular-nums text-slate-500 dark:text-slate-400",children:[zH(d,o.goal,e)," delivered · ",NT(d,o.goal),"%"]})]},o.connector)})})}const PEe=[],MEe=[];function fL(t){return wA[t%wA.length]}function hL(t){return`rounded-full border px-2.5 py-1 text-xs font-medium tabular-nums transition-colors ${t?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-slate-700 dark:text-slate-300 dark:hover:bg-white/5"}`}const REe={forecast:{label:"Forecast",variant:"blue"},steered:{label:"Steered",variant:"orange"},eliminated:{label:"Eliminated",variant:"red"}},DEe=10,IEe=200;function Dc(t){return new Date(t).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function _A(t){return t.toLocaleString()}function pL(t,e){return e>0?`${(t/e*100).toFixed(0)}%`:"—"}function HH(t){return t==="volume"?wu:_A}function $Ee(t){var u,d;const{rows:e,psps:n,xAxisMap:r,yAxisMap:a}=t,s=r?Object.values(r)[0]:void 0,o=a?Object.values(a)[0]:void 0;if(!s||!o)return null;const l=((d=(u=s.scale).bandwidth)==null?void 0:d.call(u))??0;if(l<=0)return null;const c=l*.08;return i.jsx("g",{children:e.flatMap(f=>n.map(h=>{const p=f[`${h.name}__pace`];if(typeof p!="number")return null;const m=s.scale(f.day),x=o.scale(p);return m==null||x==null?null:i.jsx("line",{x1:m+c,x2:m+l-c,y1:x,y2:x,stroke:h.color,strokeWidth:1.5,strokeDasharray:"5 3",opacity:.75},`${f.day}-${h.name}`)}))})}function mL({rows:t,psps:e,metric:n,yMax:r,hatchScope:a}){const s=HH(n),o=l=>UH(a,l);return i.jsx("div",{className:"h-72 w-full",children:i.jsx(Li,{children:i.jsxs(Yh,{data:t,margin:{top:12,right:12,bottom:4,left:4},barCategoryGap:"28%",barGap:3,children:[i.jsx(Nw,{component:i.jsx(kEe,{entries:e.map(l=>({id:o(l.name),color:l.color}))})}),i.jsx(ko,{vertical:!1,stroke:"currentColor",opacity:.08}),i.jsx(Ia,{dataKey:"day",tickFormatter:l=>`Day ${l}`,tick:{fontSize:11},stroke:"currentColor",opacity:.5,tickLine:!1,interval:t.length>16?Math.ceil(t.length/8)-1:0}),i.jsx(wa,{domain:[0,r],tickFormatter:s,tick:{fontSize:11},stroke:"currentColor",opacity:.5,width:56,tickLine:!1}),i.jsx(Vr,{cursor:{fill:"currentColor",opacity:.04},wrapperStyle:{zIndex:30,outline:"none"},content:({active:l,payload:c,label:u})=>{var f;if(!l||!(c!=null&&c.length))return null;const d=(f=c[0])==null?void 0:f.payload;return d?i.jsxs("div",{style:{...il,fontSize:12,lineHeight:1.5,minWidth:230},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Day ",u]}),e.map(h=>{const p=Number(d[`${h.name}__unaided`]??0),m=Number(d[`${h.name}__steered`]??0),x=d[`${h.name}__pace`];return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:h.color,flexShrink:0}}),i.jsx("span",{style:{fontWeight:600},children:h.name}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[s(p+m),m>0&&i.jsxs("span",{style:{opacity:.7},children:[" · ",s(m)," steered"]}),typeof x=="number"&&i.jsxs("span",{style:{opacity:.7},children:[" · needed ",s(x)]})]})]},h.name)})]}):null}}),e.map(l=>i.jsx(xs,{dataKey:`${l.name}__unaided`,stackId:l.name,fill:l.color,barSize:26,isAnimationActive:!1},`${l.name}-unaided`)),e.map(l=>i.jsx(xs,{dataKey:`${l.name}__steered`,stackId:l.name,fill:`url(#${o(l.name)})`,barSize:26,radius:[4,4,0,0],isAnimationActive:!1},`${l.name}-steered`)),n==="volume"&&i.jsx(Nw,{component:i.jsx($Ee,{rows:t,psps:e})})]})})})}function Qv({label:t,value:e,hint:n}){return i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsx(an,{children:t}),i.jsx("p",{className:"mt-2 text-2xl font-semibold text-slate-900 dark:text-white",children:e}),n&&i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:n})]})})}function LEe(){var Y,H,G,$,F,R,z,U,ee,pe,re,he;const{merchantId:t}=Er(),[e,n]=g.useState(void 0),[r,a]=g.useState("volume"),s=jT(t),o=_T((Y=s.data)==null?void 0:Y.daySecs),l=ST(t,e,{perDay:o}),c=LH(t,e),u=bEe(t,e),d=((H=l.data)==null?void 0:H.connectors)??PEe,f=(G=l.data)==null?void 0:G.currency,h=g.useMemo(()=>new Map(d.map((q,W)=>[q.connector,W])),[d]),p=g.useMemo(()=>{var q;return new Map((((q=s.data)==null?void 0:q.psps)??[]).map(W=>[W.connector,W]))},[s.data]),m=g.useMemo(()=>{var q;return new Map((((q=s.data)==null?void 0:q.eliminated)??[]).map(W=>[W.connector,W.reason]))},[s.data]),x=e!==void 0&&!(($=c.runs.find(q=>q.runId===e))!=null&&$.isCurrent),y=g.useMemo(()=>new Set(c.events.filter(q=>q.kind==="eliminated"&&q.connector&&(!e||q.runId===e)).map(q=>q.connector)),[c.events,e]),b=e??((F=c.runs.find(q=>q.isCurrent))==null?void 0:F.runId),v=g.useMemo(()=>BH(c.events,b),[c.events,b]),w=g.useMemo(()=>{const q=new Map;for(const W of d)q.set(W.connector,W.points.reduce((ue,te)=>ue+te.total,0));return q},[d]),j=g.useCallback(q=>{var W;return x?w.get(q)??0:((W=p.get(q))==null?void 0:W.achieved)??w.get(q)??0},[x,w,p]),k=g.useCallback(q=>{const W=d.find(ve=>ve.connector===q),ue=j(q);if(((W==null?void 0:W.goal)??0)>0&&ue>=((W==null?void 0:W.goal)??0))return"met";if(x?y.has(q):(W==null?void 0:W.eliminated)??!1)return x?"missed":"eliminated";if(x)return"missed";const me=p.get(q);return me?me.steering?"steering":"on_pace":"pending"},[d,j,x,y,p]),_=g.useCallback(q=>m.get(q),[m]),S=g.useCallback((q,W)=>fL(h.get(q)??W),[h]),N=((R=u.data)==null?void 0:R.connectors)??MEe,E=g.useMemo(()=>N.map((q,W)=>{const ue=h.get(q.connector)??W,te=x?y.has(q.connector):q.eliminated;return{name:q.connector,color:fL(ue),hatch:UH("analytics",q.connector),eliminated:te,goal:q.goal,before:q.before.volume,unaided:q.unaided.volume,steered:q.steered.volume,ceded:q.ceded.volume,beforePayments:q.before.payments,unaidedPayments:q.unaided.payments,steeredPayments:q.steered.payments,cededPayments:q.ceded.payments}}),[N,h,x,y]),P=kA((z=u.data)==null?void 0:z.daySecs).word,{beforeRows:M,withRows:A,beforeYMax:O,withYMax:D}=g.useMemo(()=>{var Ce,fe,be,we,Le;const q=Math.max(1,((Ce=u.data)==null?void 0:Ce.daysTotal)??1),W=Math.max(1,(((fe=u.data)==null?void 0:fe.daySecs)??H0)*1e3),ue=((be=u.data)==null?void 0:be.baselineDays)??[],te=((we=u.data)==null?void 0:we.cycleDays)??[],ie=u.data?Math.max(1,Math.round((u.data.baseline.endMs-u.data.baseline.startMs)/W)):q,me=Oe=>r==="volume"?{unaided:Math.max(0,Oe.total-Oe.steered),steered:Oe.steered}:{unaided:Math.max(0,Oe.payments-Oe.steeredPayments),steered:Oe.steeredPayments},ve=(Oe,He,vt,bt)=>{const Bt=new Map(Oe.map(Ut=>[`${Ut.connector}:${Ut.dayIndex}`,Ut])),wt=[],zt={};for(let Ut=0;Ut0&&Ie>0&&Ut<=vt&&(le==null||UtOe.dayIndex)),tt=ve(ue,Me,Be),B=new Map;if(Ne!=null)for(const[Oe,He]of v){const vt=E.find(Bt=>Bt.name===Oe);vt!=null&&vt.goal>0&&vt.unaided+vt.steered>=vt.goal||B.set(Oe,Math.max(0,Math.floor((He-Ne)/W)))}const se=ve(te,q,je,B),de=Oe=>{const He=Math.max(0,...Oe.flatMap(vt=>E.flatMap(bt=>[Number(vt[`${bt.name}__unaided`]??0)+Number(vt[`${bt.name}__steered`]??0),Number(vt[`${bt.name}__pace`]??0)])));return He>0?He*1.12:1};return{beforeRows:tt,withRows:se,beforeYMax:de(tt),withYMax:de(se)}},[u.data,E,r,x,v]),I=g.useMemo(()=>{const q=E.reduce((Ne,je)=>Ne+je.steeredPayments,0),W=E.reduce((Ne,je)=>Ne+je.unaidedPayments+je.steeredPayments,0),ue=E.reduce((Ne,je)=>Ne+je.steered,0),te=E.reduce((Ne,je)=>Ne+je.unaided+je.steered,0),ie=E.filter(Ne=>Ne.goal>0&&Ne.unaided+Ne.steered>=Ne.goal),me=N.filter(Ne=>Ne.goal>0&&Ne.withContract.volume>=Ne.goal).reduce((Ne,je)=>Ne+je.reward,0),ve=N.filter(Ne=>!(x?y.has(Ne.connector):Ne.eliminated)).reduce((Ne,je)=>Ne+je.reward,0);return{steeredPayments:q,cyclePayments:W,steeredVolume:ue,cycleVolume:te,met:ie.length,rewardSecured:me,rewardAtStake:ve}},[E,N,x,y]);if(!t)return i.jsx(_t,{error:"Set a merchant ID to view volume commitments."});if(s.error||l.error)return i.jsx(_t,{error:"Could not load volume-commitment analytics."});if(s.isLoading||l.isLoading)return i.jsx("div",{className:"flex justify-center py-10",children:i.jsx(mt,{})});if(d.length===0)return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pT,{size:16,className:"mt-0.5 text-brand-500"}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"No volume contracts are active for this merchant"}),i.jsx("p",{className:"mt-1 text-sm text-slate-500 dark:text-slate-400",children:"Configure commitments on the Multi Objective page's Volume Contracts tab and activate the document, then enable “Volume contracts (meet PSP commitments)” under its Feature Flags. Pick a short test cycle so a full period plays out in minutes, then drive traffic from the Decision Simulator and watch it land here."})]})]})})});const X=(U=u.data)==null?void 0:U.cycle,Q=(ee=u.data)==null?void 0:ee.baseline,V=(q,W)=>r==="volume"?q[W]:q[`${W}Payments`];return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"What the volume contract did"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:u.data?i.jsxs(i.Fragment,{children:["Contract live since ",i.jsx("strong",{children:Dc(u.data.contractSinceMs)}),X&&i.jsxs(i.Fragment,{children:[" ","· this cycle ",Dc(X.startMs)," → ",Dc(X.endMs)," (",u.data.daysTotal," ",kA(u.data.daySecs).short.toLowerCase()," cycle)"]}),Q&&i.jsxs(i.Fragment,{children:[" ","· compared with the previous cycle, ",Dc(Q.startMs)," →"," ",Dc(Q.endMs)]}),b&&i.jsxs(i.Fragment,{children:[" ","· run ",i.jsx("span",{className:"font-mono",children:b})]})]}):"Waiting for the first measurements of this contract."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-slate-700",children:["volume","payments"].map(q=>i.jsx("button",{type:"button",onClick:()=>a(q),className:`rounded px-2.5 py-1 text-[11px] font-medium transition-colors ${r===q?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200"}`,children:q==="volume"?"Volume":"Payments"},q))})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:c.runs.length>0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Run"}),i.jsx("button",{onClick:()=>n(void 0),className:hL(e===void 0),children:"Current"}),c.runs.slice(0,DEe).map(q=>i.jsxs("button",{onClick:()=>n(q.runId),title:`${q.runId} · ${q.forecasts} forecasts · ${q.steers} steers · ${q.eliminations} eliminations`,className:hL(e===q.runId),children:[q.isCurrent?"● ":"",Dc(q.startedAtEpochMs),i.jsx("span",{className:"ml-1.5 font-mono text-[10px] opacity-50",children:q.runId}),i.jsxs("span",{className:"ml-1.5 tabular-nums opacity-60",children:[q.steers,"↗"]})]},q.runId))]})})]})}),i.jsx(TEe,{connectors:d,currency:f,colorFor:S,statusFor:k,achievedFor:j,reasonFor:_}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Qv,{label:"Reward secured",value:es(I.rewardSecured,f),hint:`of ${es(I.rewardAtStake,f)} still reachable · ${I.met}/${E.length} commitments met`}),i.jsx(Qv,{label:"Payments steered",value:_A(I.steeredPayments),hint:`${pL(I.steeredPayments,I.cyclePayments)} of ${_A(I.cyclePayments)} payments this cycle`}),i.jsx(Qv,{label:"Volume steered",value:es(I.steeredVolume,f),hint:`${pL(I.steeredVolume,I.cycleVolume)} of ${es(I.cycleVolume,f)} delivered this cycle`}),i.jsx(Qv,{label:"Approval-rate tolerance",value:((pe=s.data)==null?void 0:pe.tolerance)!=null?`${(s.data.tolerance*100).toFixed(1)} pp`:"—",hint:"the most a steered payment may give up versus the best-approving PSP"})]}),i.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"1 · Previous cycle"}),i.jsxs("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:["What each PSP received per ",P," in the previous cycle"]}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:[Q?`${Dc(Q.startMs)} → ${Dc(Q.endMs)}`:"The cycle before this one",r==="volume"?" · dashed = what each promise needed that "+P+", after what had already landed":""]})]}),i.jsx(ze,{children:i.jsx(mL,{rows:M,psps:E,metric:r,yMax:O,hatchScope:"before"})})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"2 · This cycle"}),i.jsxs("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:["What each PSP received per ",P," in this cycle"]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"Solid is what approval-rate routing sent on its own; hatched is what the engine steered in."})]}),i.jsx(ze,{children:i.jsx(mL,{rows:A,psps:E,metric:r,yMax:D,hatchScope:"with"})})]})]}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-xs text-slate-600 dark:text-slate-300",children:[E.map(q=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(jA,{color:q.color}),q.name]},q.name)),i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(jEe,{color:((re=E[0])==null?void 0:re.color)??wA[0]}),"Steered in"]}),r==="volume"&&i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(SEe,{}),"Pace each promise needs per ",P]})]}),i.jsx("div",{className:"mt-4 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-xs",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-slate-500 dark:text-slate-400",children:[i.jsx("th",{className:"py-1.5 pr-3 font-medium",children:"PSP"}),i.jsx("th",{className:"py-1.5 pr-3 font-medium",children:"Status"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Previous cycle"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Routed by approval"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Steered in"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Ceded"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"This cycle"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Target"}),i.jsx("th",{className:"py-1.5 text-right font-medium",children:"Reward"})]})}),i.jsx("tbody",{className:"tabular-nums text-slate-700 dark:text-slate-200",children:E.map(q=>{const W=N.find(ve=>ve.connector===q.name),ue=q.unaided+q.steered,te=k(q.name),ie=p.get(q.name),me=HH(r);return i.jsxs("tr",{className:"border-t border-slate-100 dark:border-slate-800",children:[i.jsx("td",{className:"py-2 pr-3",children:i.jsxs("span",{className:"inline-flex items-center gap-2 font-medium",children:[i.jsx(jA,{color:q.color}),q.name]})}),i.jsx("td",{className:"py-2 pr-3",children:te==="met"?i.jsx(Pe,{variant:"green",children:"Met"}):te==="eliminated"?i.jsx("span",{title:m.get(q.name),children:i.jsx(Pe,{variant:"red",children:"Eliminated"})}):te==="missed"?i.jsx(Pe,{variant:"gray",children:"Missed"}):te==="steering"?i.jsxs(Pe,{variant:"orange",children:["Steering · ",(((ie==null?void 0:ie.steerRate)??0)*100).toFixed(0),"%"]}):te==="on_pace"?i.jsx(Pe,{variant:"green",children:"On pace"}):i.jsx(Pe,{variant:"gray",children:"Pending forecast"})}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"before"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"unaided"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"steered"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(r==="volume"?q.ceded:q.cededPayments)}),i.jsxs("td",{className:"py-2 pr-3 text-right font-semibold",children:[me(r==="volume"?ue:q.unaidedPayments+q.steeredPayments),r==="volume"&&q.goal>0&&i.jsxs("span",{className:"ml-1 font-normal text-slate-400",children:["· ",NT(ue,q.goal),"%"]})]}),i.jsx("td",{className:"py-2 pr-3 text-right",children:wu(q.goal)}),i.jsx("td",{className:"py-2 text-right",children:wu((W==null?void 0:W.reward)??0)})]},q.name)})})]})}),i.jsx("p",{className:"mt-3 text-xs text-slate-500 dark:text-slate-400",children:"“Ceded” is what approval-rate routing would have sent a PSP but the engine moved to one behind on its commitment — the other side of every steered payment. Steering only happens inside the approval-rate tolerance, so approvals barely move."})]})}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"3 · Cumulative volume vs. each promise"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Solid lines are delivered volume; dashed steps are each PSP's per-day targets"}),x&&i.jsxs("p",{className:"mt-2 text-xs text-amber-600 dark:text-amber-500",children:["Showing the finished run ",e," — its own delivery across its own cycle, not the one currently in flight."]})]}),i.jsxs(ze,{children:[i.jsx(WH,{connectors:d,currency:f,daySecs:(he=l.data)==null?void 0:he.daySecs,colorFor:S,statusFor:k,eliminatedAtMs:v,eliminationReasons:m,isPastRun:x,height:480}),i.jsx("p",{className:"mt-3 text-xs text-slate-500 dark:text-slate-400",children:"Each dashed step is the volume a PSP must clear by that day's end (its promise split across the cycle). A solid line tracking below its ladder is behind pace — the engine steers a little extra volume there (▲), spread through the day. When not enough traffic remains to land a commitment the engine drops it (red marker): from there its line is dotted and carries natural traffic only, so the rest can still be met."})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"4 · Audit trail"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Every forecast, steer and elimination — what happened, when, and why"})]}),i.jsx(ze,{children:c.events.length===0?i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Nothing yet. Entries appear when the scheduler runs a forecast or a payment is steered."}):i.jsx("div",{className:"max-h-96 space-y-2 overflow-y-auto pr-1",children:c.events.slice(0,IEe).map((q,W)=>{const ue=REe[q.kind];return i.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-slate-100 px-3 py-2 dark:border-slate-800",children:[i.jsx(Pe,{variant:ue.variant,children:ue.label}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-700 dark:text-slate-300",children:q.message}),i.jsxs("p",{className:"mt-0.5 text-xs tabular-nums text-slate-400 dark:text-slate-500",children:[new Date(q.atEpochMs).toLocaleString(),q.connector?` · ${q.connector}`:"",q.amount!=null?` · ${wu(q.amount)}`:"",e===void 0&&q.runId?` · ${q.runId}`:""]})]})]},`${q.atEpochMs}-${W}`)})})})]})]})}const FEe=["15m","1h","12h","1d","1w"],BEe=[{value:"15m",label:"Last 15 mins"},{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"},{value:"custom",label:"Custom window"}],zEe={"15m":15*60*1e3,"1h":60*60*1e3,"12h":12*60*60*1e3,"1d":24*60*60*1e3,"1w":7*24*60*60*1e3};function au(t){const e=Date.now();return{start_ms:e-zEe[t],end_ms:e}}function UEe(t){return t==="custom"||FEe.includes(t)?t:"1d"}function Fs(t){const e=new Date(t),n=r=>r.toString().padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`}function G0(t){const e=new Date(t).getTime();return Number.isFinite(e)?e:null}function Yp(t,e){const n=G0(t),r=G0(e),a=Date.now();if(!(n===null||r===null)&&!(r<=n||n>a||r>a))return{start_ms:n,end_ms:r}}function Qw(t){return new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}).format(new Date(t))}function VEe(t,e){return e?`${Qw(e.start_ms)} to ${Qw(e.end_ms)}`:"Custom window"}function GS(t){return t.toString().padStart(2,"0")}function ld(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function Gg(t){return new Date(t.getFullYear(),t.getMonth(),1)}function qg(t){const e=new Date;return t.getTime()>e.getTime()?e:t}function WEe(t){return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(t)}function HEe(t){return new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(t)}function GEe(t){const e=Gg(t),n=new Date(e);n.setDate(n.getDate()-e.getDay());const r=Array.from({length:42},(s,o)=>{const l=new Date(n);return l.setDate(n.getDate()+o),{key:`${l.getFullYear()}-${l.getMonth()}-${l.getDate()}`,date:l,inMonth:l.getMonth()===t.getMonth()}});return r.slice(35).every(s=>!s.inMonth)?r.slice(0,35):r}function qS(t,e){const n=new Date(t);return n.setHours(e.getHours(),e.getMinutes(),0,0),n}function gL(t,e){const n=G0(t);return n===null?e:qg(new Date(n))}function qEe({start:t,end:e,onApply:n,onCancel:r}){const a=new Date,s=g.useMemo(()=>gL(e,new Date),[e]),o=g.useMemo(()=>gL(t,new Date(s.getTime()-24*60*60*1e3)),[t,s]),[l,c]=g.useState({start:o,end:s}),[u,d]=g.useState(null),[f,h]=g.useState(Gg(s));g.useEffect(()=>{c({start:o,end:s}),h(Gg(s))},[o.getTime(),s.getTime()]);const p=g.useMemo(()=>GEe(f),[f]),m=Gg(f).getTime()>=Gg(a).getTime(),x=l.end??u,y=l.end!==null,b=l.end?{start:Fs(l.start.getTime()),end:Fs(l.end.getTime())}:null,v=b?Yp(b.start,b.end):void 0;function w(S){c(N=>N.end===null?ld(S).getTime(){const M=S==="start"?P.start:P.end;if(!M)return P;const A=new Date(M);return N==="hours"?A.setHours(Number(E)):A.setMinutes(Number(E)),{...P,[S]:qg(A)}})}function k(){b&&n(b.start,b.end)}function _(S){const N=ld(S).getTime(),E=ld(l.start).getTime(),P=x?ld(x).getTime():null;return N===E||P!==null&&N===P?"edge":P!==null&&N>E&&Nh(S=>new Date(S.getFullYear(),S.getMonth()-1,1)),"aria-label":"Previous month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white",children:i.jsx(TCe,{size:12})}),i.jsx("button",{type:"button",disabled:m,onClick:()=>h(S=>new Date(S.getFullYear(),S.getMonth()+1,1)),"aria-label":"Next month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-35 disabled:hover:border-slate-200 disabled:hover:text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white dark:disabled:hover:text-[#8a8a93]",children:i.jsx(Xi,{size:12})})]})]}),i.jsx("div",{className:"grid grid-cols-7 text-center text-[11px] font-semibold uppercase leading-4 tracking-[0.1em] text-slate-500 dark:text-[#78849a]",children:["S","M","T","W","T","F","S"].map((S,N)=>i.jsx("span",{className:"py-0.5",children:S},N))}),i.jsx("div",{className:"grid grid-cols-7",onMouseLeave:()=>d(null),children:p.map(S=>{const N=ld(S.date).getTime()>ld(a).getTime(),E=N?"idle":_(S.date);return i.jsx("div",{className:`py-px ${E==="idle"?"":"bg-brand-500/10 dark:bg-brand-500/15"}`,children:i.jsx("button",{type:"button",disabled:N,"aria-label":WEe(S.date),onClick:()=>w(S.date),onMouseEnter:()=>d(y?null:S.date),className:`flex h-7 w-full items-center justify-center rounded-md text-[12px] leading-4 transition ${N?"cursor-not-allowed text-slate-500 opacity-35 dark:text-[#78849a]":E==="edge"?"bg-brand-600 text-white shadow-[0_8px_20px_-14px_rgba(59,130,246,0.7)] dark:bg-brand-500":E==="inside"?"text-brand-700 dark:text-brand-200":S.inMonth?"text-slate-700 hover:bg-slate-100 dark:text-[#e5ecf7] dark:hover:bg-[#1a2130]":"text-slate-500 hover:bg-slate-100 dark:text-[#4b5565] dark:hover:bg-[#161b24]"}`,children:S.date.getDate()})},S.key)})}),i.jsx("div",{className:"mt-2 space-y-1.5 border-t border-slate-100 pt-2 dark:border-[#2a303a]",children:["start","end"].map(S=>{const N=S==="start"?l.start:l.end;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-9 text-[11px] font-medium leading-4 text-slate-500 dark:text-[#8a8a93]",children:S==="start"?"From":"To"}),i.jsx(xL,{unit:"hours",value:N,disabled:!N,onChange:E=>j(S,"hours",E)}),i.jsx("span",{className:"text-[11px] font-semibold leading-4 text-slate-500 dark:text-[#8a8a93]",children:":"}),i.jsx(xL,{unit:"minutes",value:N,disabled:!N,onChange:E=>j(S,"minutes",E)}),i.jsx("span",{className:"ml-auto truncate text-[11px] leading-4 text-slate-500 dark:text-[#8a8a93]",children:N?new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short"}).format(N):"Pick a day"})]},S)})}),b&&!v?i.jsx("p",{className:"mt-2 text-[11px] leading-4 text-red-600 dark:text-red-400",children:"The end must come after the start, and neither may be in the future."}):null,i.jsxs("div",{className:"mt-2.5 flex items-center justify-end gap-1.5",children:[r?i.jsx(ke,{size:"sm",variant:"secondary",onClick:r,children:"Cancel"}):null,i.jsx(ke,{size:"sm",onClick:k,disabled:!v,children:"Apply"})]})]})}function xL({unit:t,value:e,disabled:n,onChange:r}){const a=t==="hours"?24:60,s=e?t==="hours"?e.getHours():e.getMinutes():0;return i.jsx("select",{value:GS(s),disabled:n,onChange:o=>r(o.target.value),"aria-label":t==="hours"?"Hour":"Minute",className:"h-7 w-[52px] rounded-lg border border-slate-200 bg-white/90 px-1.5 text-[12px] leading-4 text-slate-700 disabled:opacity-40 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7]",children:Array.from({length:a},(o,l)=>i.jsx("option",{value:GS(l),children:GS(l)},l))})}function ET({range:t,customStart:e,customEnd:n,onRangeChange:r,onCustomChange:a,align:s="right",className:o=""}){const l=g.useRef(null),[c,u]=g.useState(!1);g.useEffect(()=>{if(!c)return;function h(m){var x;(x=l.current)!=null&&x.contains(m.target)||u(!1)}function p(m){m.key==="Escape"&&u(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[c]),g.useEffect(()=>{t!=="custom"&&u(!1)},[t]);const d=t==="custom"?Yp(e,n):void 0;function f(h){if(h==="custom"){u(p=>t==="custom"?!p:!0),t!=="custom"&&r("custom");return}u(!1),r(h)}return i.jsxs("div",{ref:l,className:`relative ${o}`,children:[i.jsx("div",{className:"flex flex-wrap items-center gap-1 rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d]",children:BEe.map(h=>i.jsx(ke,{size:"sm",variant:"secondary",title:h.label,className:KEe(t===h.value),onClick:()=>f(h.value),children:h.value==="custom"?"Custom":h.value},h.value))}),t==="custom"&&c?i.jsxs("div",{className:`absolute top-[calc(100%+10px)] z-[90] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-[0_24px_70px_-34px_rgba(15,23,42,0.48)] backdrop-blur dark:border-[#2a303a] dark:bg-[#11151d]/95 dark:shadow-[0_24px_70px_-34px_rgba(0,0,0,0.72)] ${s==="left"?"left-0":"right-0"}`,children:[i.jsxs("div",{className:"mb-3",children:[i.jsx("p",{className:"text-[13px] font-semibold leading-[18px] text-slate-900 dark:text-white",children:"Select time range"}),i.jsx("p",{className:"mt-1 text-[12px] leading-[18px] text-slate-500 dark:text-[#8a8a93]",children:d?VEe("custom",d):"Click a start day, then an end day"})]}),i.jsx(qEe,{start:e,end:n,onCancel:()=>u(!1),onApply:(h,p)=>{a(h,p),u(!1)}})]}):null]})}function KEe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}const yL="text-lg font-semibold text-slate-900 dark:text-white",YEe="mt-0.5 text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",La="text-[15px] leading-[22px] font-semibold text-slate-900 dark:text-white",gc="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ts="text-[13px] leading-[18px] font-medium text-slate-700 dark:text-[#c7cfdd]",ku="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96aa]";function qr({title:t,description:e,badge:n,className:r=""}){return i.jsxs("div",{className:r||void 0,children:[n?i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h1",{className:yL,children:t}),n]}):i.jsx("h1",{className:yL,children:t}),e?i.jsx("p",{className:YEe,children:e}):null]})}function vL(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function XEe(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,notation:"compact",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(0)} ${e}`}}const JEe=["transactions","rule_based","volume_commitments"],KS={transactions:"Multi-objective",rule_based:"Rule based / Volume based",volume_commitments:"Volume commitments"},co=["#0069ED","#14b8a6","#f97316","#e11d48","#8b5cf6","#22c55e"],YS={zIndex:30,outline:"none"},bL={dimensions:{},gateways:[]},wg=3,XS=50,ZEe=5,wL=10,QEe=[750,2e3,4e3],i1={share:{title:"Selected gateways over time",purpose:"Use this to see when traffic shifted from one connector to another for the selected merchant and routing slice.",calculation:"Decision events are grouped by time and chosen connector. The chart shows how many filtered decisions each gateway received over time.",source:"Reads ClickHouse-backed domain analytics rows from `analytics_domain_events`."},alignment:{title:"Routing alignment",purpose:"Use this to see whether the best-scoring connector is also leading traffic share.",calculation:"Compares the latest connector success-rate score with the gateways actually selected in the same time window.",source:"Reads the same ClickHouse-backed routing-stats response used by the gateway share and connector success-rate charts."},sr:{title:"Connector success rate over time",purpose:"Use this to explain why a connector won routing at a given time, based on the recorded historical score trail.",calculation:"Stored `score_snapshot` events are grouped over the selected window and averaged per connector. The line values are displayed as percentages.",source:"Reads ClickHouse-backed `score_snapshot` analytics rows from `analytics_domain_events`. The current score state still originates from Redis-backed scoring flows."},preview_activity:{title:"Connector selections over time",purpose:"Use this to see which connectors were selected over the chosen decision window.",calculation:"Returned decision traces are grouped by time using each trace's latest activity timestamp, then grouped by latest selected connector. The chart shows connector counts over time.",source:"Reads rule decision activity through `/analytics/preview-trace`."}};function GH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function eb(t,e,n,r){const a={range:e==="custom"?"1h":e,start_ms:n==null?void 0:n.start_ms,end_ms:n==null?void 0:n.end_ms,gateway:r!=null&&r.gateways.length?r.gateways.join(","):void 0};Object.entries((r==null?void 0:r.dimensions)||{}).forEach(([o,l])=>{l&&(a[o]=l)});const s=GH(a);return s?`${t}?${s}`:t}function NA(t,e,n,r){const a={range:t==="custom"?"1h":t,start_ms:r==null?void 0:r.start_ms,end_ms:r==null?void 0:r.end_ms,page:e,page_size:n},s=GH(a);return s?`/analytics/preview-trace?${s}`:"/analytics/preview-trace"}async function eAe(t,e){const n=await Lt(NA(t,1,XS,e)),r=Math.min(Math.ceil(n.total_results/XS),ZEe);if(r<=1)return n;const a=await Promise.all(Array.from({length:r-1},(s,o)=>Lt(NA(t,o+2,XS,e))));return{...n,results:[n.results,...a.map(s=>s.results)].flat()}}function ci(t,e=2){if(t==null||Number.isNaN(Number(t)))return"0";const n=Number(t);return Number.isInteger(n)?n.toString():n.toFixed(e)}function qH(t){return Number.isFinite(t)?t<=1?t*100:t:0}function Jo(t,e=1){return t==null||Number.isNaN(Number(t))?"0%":`${ci(qH(Number(t)),e)}%`}function tAe(t,e=1){return t===void 0||!Number.isFinite(t)?"No runner-up":`${t>0?"+":t<0?"-":""}${ci(Math.abs(t),e)} pp`}function JS(t,e){const n=t[e];return typeof n=="number"&&Number.isFinite(n)?n:0}function nAe(t,e){const n=Math.max(0,e.end_ms-e.start_ms);return n<=24*60*60*1e3?new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(t)):n<=7*24*60*60*1e3?new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short",hour:"2-digit"}).format(new Date(t)):new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short"}).format(new Date(t))}function Kf(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function rAe(t,e){const n=e?e.end_ms-e.start_ms:t==="15m"?9e5:t==="1h"?36e5:t==="12h"?432e5:t==="1d"?864e5:6048e5;return n<=15*60*1e3?60*1e3:n<=60*60*1e3?5*60*1e3:n<=12*60*60*1e3||n<=24*60*60*1e3?60*60*1e3:24*60*60*1e3}function CA(t,e){return t-t%Math.max(1,e)}function kL(t){return Array.from(new Set(t)).sort((e,n)=>e.localeCompare(n)).slice(0,6)}function ZS(t,e){const n=[],r=Math.max(1,e),a=CA(t.start_ms,r),s=CA(t.end_ms,r);for(let o=a;o<=s;o+=r)n.push(o);return n}function Wl({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-dashed border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function tb({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:20})}),i.jsx("p",{className:"mt-5 text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function aAe(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 shadow-sm outline-none transition focus:border-brand-500 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#e5e7eb]"}function QS(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function o1({content:t}){const[e,n]=g.useState(!1),r=g.useRef(null),[a,s]=g.useState({top:0,left:0,width:320});return g.useEffect(()=>{if(!e)return;function o(l){var c;(c=r.current)!=null&&c.contains(l.target)||n(!1)}return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[e]),g.useLayoutEffect(()=>{if(!e||!r.current)return;const o=320,l=280,c=16,u=12;function d(){if(!r.current)return;const f=r.current.getBoundingClientRect(),h=Math.min(o,window.innerWidth-c*2),p=Math.min(Math.max(f.right-h,c),window.innerWidth-h-c),x=f.bottom+u+l>window.innerHeight-c?Math.max(f.top-l-u,c):f.bottom+u;s({top:x,left:p,width:h})}return d(),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),()=>{window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0)}},[e]),i.jsxs("div",{ref:r,className:"relative shrink-0",children:[i.jsx("button",{type:"button","aria-label":`About ${t.title}`,onClick:()=>n(o=>!o),className:`flex h-7 w-7 items-center justify-center rounded-full border text-[13px] font-semibold transition ${e?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-500 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#8a8a93] dark:hover:text-white"} leading-[18px]`,children:"i"}),e?i.jsxs("div",{style:{position:"fixed",top:a.top,left:a.left,width:a.width},className:"z-[120] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-2xl backdrop-blur dark:border-[#1d1d23] dark:bg-[#09090d]/95",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.title}),i.jsxs("div",{className:"mt-3 space-y-3 text-[13px] leading-6 text-slate-600 dark:text-[#b3b3bd]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Why it matters"}),i.jsx("p",{className:"mt-2",children:t.purpose})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"How it is calculated"}),i.jsx("p",{className:"mt-2",children:t.calculation})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Data source"}),i.jsx("p",{className:"mt-2",children:t.source})]})]})]}):null]})}function sAe({summary:t,comparisonRows:e,expanded:n,onToggle:r}){var p,m,x,y;const a=t.srLeader&&t.srRunnerUp?t.srLeader.value-t.srRunnerUp.value:void 0,s=t.srLeaderVolume?`${ci(t.srLeaderVolume.count,0)} payments for ${t.srLeaderVolume.gateway}`:"No traffic share",o=t.comparableDecisionCount?`${ci(t.leaderDecisionCount,0)} of ${ci(t.comparableDecisionCount,0)} payments matched the best score`:s,l=t.alignmentPercent===null?"Not enough data":`${Jo(t.alignmentPercent)} traffic share`,c=((p=t.srLeader)==null?void 0:p.gateway)||"--",u=((m=t.volumeLeader)==null?void 0:m.gateway)||"--",d=!!(t.srLeader&&t.volumeLeader)&&((x=t.srLeader)==null?void 0:x.gateway)!==((y=t.volumeLeader)==null?void 0:y.gateway),f=t.volumeLeader?d?"orange":"green":"gray",h=[t.srLeader?`Best score: ${c}`:"No score",t.volumeLeader?`Traffic leader: ${u}`:"No traffic",l].join(" · ");return i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{className:n?"px-5 py-3":"px-5 py-3 !border-b-0",children:i.jsxs("div",{className:`flex flex-wrap justify-between gap-3 ${n?"items-start":"items-center"}`,children:[n?i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Routing alignment"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Traffic share: checks if the best-scoring connector is also getting the largest share."})]}):i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Gp,{size:18,className:"shrink-0 text-emerald-700"}),i.jsxs("span",{className:"min-w-0 text-[13px] text-slate-600 dark:text-[#9aa7bb] leading-[18px]",children:[i.jsx("span",{className:"font-semibold text-slate-800 dark:text-white",children:"Routing alignment"})," — ",h]})]}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:n?i.jsxs(i.Fragment,{children:[i.jsx(o1,{content:i1.alignment}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:r,children:"Hide details"})]}):i.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 text-[13px] font-semibold text-brand-600 transition hover:text-brand-700 dark:text-brand-300 dark:hover:text-brand-200 leading-[18px]",children:["Show details",i.jsx(Xi,{size:16})]})})]})}),n?i.jsxs(ze,{className:"space-y-5 px-5 py-3",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(Pe,{variant:"gray",children:["Best score: ",c]}),i.jsxs(Pe,{variant:f,children:["Traffic leader: ",u]})]}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.headline}),i.jsx("p",{className:"text-[13px] leading-[21px] text-slate-500 dark:text-[#8a8a93]",children:t.detail})]}),i.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-2 rounded-2xl border border-slate-200 bg-slate-50/80 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("span",{className:"text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:t.alignmentPercent===null?"Not enough data":Jo(t.alignmentPercent)}),i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:o})]}),e.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("div",{className:"min-w-[640px]",children:[i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] font-medium text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] leading-[18px]",children:[i.jsx("span",{children:"Connector"}),i.jsx("span",{children:"Success rate"}),i.jsx("span",{children:"Traffic"}),i.jsx("span",{children:"Share"}),i.jsx("span",{children:"Role"})]}),e.map(b=>i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] last:border-b-0 dark:border-[#2a303a] leading-[18px]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:b.color}}),i.jsx("span",{className:"truncate font-medium text-slate-900 dark:text-white",children:b.gateway})]}),i.jsxs("span",{className:"flex flex-wrap items-baseline gap-2 text-slate-600 dark:text-[#cbd5e1]",children:[b.srValue===null?"--":Jo(b.srValue),b.isSrLeader&&a!==void 0?i.jsxs("span",{className:"text-slate-500 dark:text-[#78849a]",children:[tAe(a)," vs next"]}):null]}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:ci(b.count,0)}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:Jo(b.share)}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[b.isSrLeader?i.jsx(Pe,{variant:"blue",children:"Best score"}):null,b.isVolumeLeader?i.jsx(Pe,{variant:"green",children:"Traffic leader"}):null,!b.isSrLeader&&!b.isVolumeLeader?i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Secondary"}):null]})]},b.gateway))]})}):i.jsx(Wl,{title:"No connector comparison yet",body:"This view needs both payment traffic and connector scores in the selected time window."})]}):null]})}function iAe(t){return t==="/decide_gateway"?"Decide Gateway":t==="/update_gateway"?"Update Gateway":t==="/rule_evaluate"?"Rule Evaluate":t}function jL(t){return t>=.85?"text-emerald-700 dark:text-emerald-400":t>=.7?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}function oAe(t){return t>=85?"green":t>=70?"orange":"red"}function lAe(){var xn,_a,Dn,ua,or,da,bi,is,fa,no,wr,Cc,Ua,kr,td,Pf,$o,Mt,nd,Ar,dn,In,Yr,Or,Ec;const t=_l(),[e,n]=g.useState("1d"),[r,a]=Nl(),s=r.get("view"),o=JEe.includes(s)?s:"transactions",l=ae=>{a(Se=>{const Ae=new URLSearchParams(Se);return ae==="transactions"?Ae.delete("view"):Ae.set("view",ae),Ae},{replace:!0})};g.useEffect(()=>{s!==(o==="transactions"?null:o)&&l(o)},[o,s]);const[c,u]=g.useState(bL),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),[y,b]=g.useState(1),[v,w]=g.useState(()=>Fs(Date.now()-24*60*60*1e3)),[j,k]=g.useState(()=>Fs(Date.now())),[_,S]=g.useState(()=>au("1d")),N=g.useMemo(()=>e==="custom"?Yp(v,j):void 0,[j,v,e]),E=e==="custom"?N:_,P="USD",M=E?eb("/analytics/overview",e,E):null,A=E?eb("/analytics/routing-stats",e,E):null,O=(()=>{if(!E)return null;const ae=eb("/analytics/cost-savings",e,E),Se=ae.includes("?")?"&":"?";return`${ae}${Se}currency=${encodeURIComponent(P)}`})(),D=E?eb("/analytics/routing-stats",e,E,c):null,I=E?["preview-trace-analytics",e,E.start_ms,E.end_ms]:null,X=E?NA(e,y,wL,E):null,Q={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},V={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},Y={...V,keepPreviousData:!0},H={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0,keepPreviousData:!0},G=ut(M,Lt,Q),$=ut(A,Lt,V),F=ut(O,Lt,V),R=ut(D,Lt,Y),z=ut(I,async ae=>{const[,Se,Ae,qe]=ae;return eAe(Se,Ae!==null&&qe!==null?{start_ms:Number(Ae),end_ms:Number(qe)}:void 0)},{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0}),U=ut(X,Lt,H);g.useEffect(()=>{const ae=()=>{if(G.mutate(),o==="transactions"){$.mutate(),R.mutate();return}z.mutate(),U.mutate()};ae();const Se=QEe.map(Ae=>window.setTimeout(ae,Ae));return()=>{Se.forEach(Ae=>window.clearTimeout(Ae))}},[t.key,o]);const ee=!G.data&&G.isLoading||!$.data&&$.isLoading||!R.data&&R.isLoading,pe=!G.data&&G.isLoading||!z.data&&z.isLoading,re=((xn=G.error)==null?void 0:xn.message)||((_a=$.error)==null?void 0:_a.message)||((Dn=R.error)==null?void 0:Dn.message)||null,he=((ua=G.error)==null?void 0:ua.message)||((or=z.error)==null?void 0:or.message)||((da=U.error)==null?void 0:da.message)||null,q=o==="transactions"?ee:pe,W=o==="transactions"?re:he,ue={dimensions:((is=(bi=$.data)==null?void 0:bi.available_filters)==null?void 0:is.dimensions)||((no=(fa=R.data)==null?void 0:fa.available_filters)==null?void 0:no.dimensions)||[],missing_dimensions:((Cc=(wr=$.data)==null?void 0:wr.available_filters)==null?void 0:Cc.missing_dimensions)||((kr=(Ua=R.data)==null?void 0:Ua.available_filters)==null?void 0:kr.missing_dimensions)||[],gateways:((Pf=(td=$.data)==null?void 0:td.available_filters)==null?void 0:Pf.gateways)||((Mt=($o=R.data)==null?void 0:$o.available_filters)==null?void 0:Mt.gateways)||[]},te=g.useMemo(()=>new Map(ue.dimensions.map(ae=>[ae.key,ae])),[ue.dimensions]);g.useEffect(()=>{u(ae=>{const Se=Object.fromEntries(Object.entries(ae.dimensions).filter(([qe,rt])=>{if(!rt)return!1;const at=te.get(qe);return at?at.values.includes(rt):!1})),Ae=ae.gateways.filter(qe=>ue.gateways.includes(qe));return Object.keys(Se).length===Object.keys(ae.dimensions).length&&Object.entries(Se).every(([qe,rt])=>ae.dimensions[qe]===rt)&&Ae.length===ae.gateways.length&&Ae.every((qe,rt)=>qe===ae.gateways[rt])?ae:{dimensions:Se,gateways:Ae}})},[te,ue.gateways]),g.useEffect(()=>{ue.dimensions.length<=wg&&m&&x(!1)},[ue.dimensions.length,m]),g.useEffect(()=>{b(1)},[e,E==null?void 0:E.start_ms,E==null?void 0:E.end_ms]);const ie=g.useMemo(()=>E||au(e),[E,e]),me=g.useMemo(()=>{var Se,Ae;const ae=[{route:"/decide_gateway",count:0},{route:"/update_gateway",count:0},{route:"/rule_evaluate",count:0}];return(Ae=(Se=G.data)==null?void 0:Se.route_hits)!=null&&Ae.length?ae.map(qe=>{var rt,at;return{...qe,count:((at=(rt=G.data)==null?void 0:rt.route_hits.find(Et=>Et.route===qe.route))==null?void 0:at.count)||0}}):ae},[G.data]),ve=g.useMemo(()=>me.filter(ae=>ae.route!=="/rule_evaluate"),[me]),Ne=g.useMemo(()=>{var qe;const ae=((qe=G.data)==null?void 0:qe.top_scores)??[],Se=ae.reduce((rt,at)=>rt+at.transaction_count,0);return Se?ae.reduce((rt,at)=>rt+at.score_value*at.transaction_count,0)/Se:null},[G.data]),je=g.useMemo(()=>{var ae;return((ae=me.find(Se=>Se.route==="/rule_evaluate"))==null?void 0:ae.count)||0},[me]),Me=((nd=z.data)==null?void 0:nd.results)||[],Be=((Ar=U.data)==null?void 0:Ar.results)||[],tt=g.useMemo(()=>{const ae=new Map;for(const Se of Me){const Ae=Se.latest_gateway||"No gateway selected";ae.set(Ae,(ae.get(Ae)||0)+1)}return Array.from(ae.entries()).map(([Se,Ae])=>({gateway:Se,count:Ae})).sort((Se,Ae)=>Ae.count-Se.count).slice(0,6)},[Me]),B=g.useMemo(()=>{const ae=new Map;for(const Se of Me){const Ae=Se.latest_status||"unknown";ae.set(Ae,(ae.get(Ae)||0)+1)}return Array.from(ae.entries()).map(([Se,Ae])=>({status:Se,count:Ae})).sort((Se,Ae)=>Ae.count-Se.count)},[Me]),se=g.useMemo(()=>B.reduce((ae,Se)=>ae+Se.count,0),[B]),de=g.useMemo(()=>{var Se;return se?(((Se=B.find(Ae=>Ae.status==="success"))==null?void 0:Se.count)??0)/se:null},[B,se]),Ce=g.useMemo(()=>rAe(e,E),[E,e]),fe=g.useMemo(()=>ae=>nAe(Number(ae),ie),[ie]),be=g.useMemo(()=>{const ae=tt.map(Ae=>Ae.gateway).slice(0,6),Se=new Map;for(const Ae of ZS(ie,Ce))Se.set(Ae,ae.reduce((qe,rt)=>(qe[rt]=0,qe),{bucket_ms:Ae}));for(const Ae of Me){const qe=Ae.latest_gateway||"No gateway selected";if(!ae.includes(qe))continue;const rt=CA(Ae.last_seen_ms,Ce),at=Se.get(rt)||ae.reduce((Et,yn)=>(Et[yn]=0,Et),{bucket_ms:rt});at[qe]=(at[qe]||0)+1,Se.set(rt,at)}return{gateways:ae,rows:Array.from(Se.values()).sort((Ae,qe)=>Ae.bucket_ms-qe.bucket_ms)}},[Ce,ie,Me,tt]),we=(dn=Me[0])==null?void 0:dn.last_seen_ms,Le=((In=U.data)==null?void 0:In.total_results)||0,Oe=Math.max(1,Math.ceil(Le/wL)),He=tt.filter(ae=>ae.gateway!=="No gateway selected").length,vt=((Yr=tt[0])==null?void 0:Yr.count)||1,bt=je>0&&!z.error&&!U.error&&Me.length===0&&Be.length===0;g.useEffect(()=>{if(!Le&&y!==1){b(1);return}y>Oe&&b(Oe)},[y,Oe,Le]);const Bt=g.useMemo(()=>{var qe;const ae=((qe=R.data)==null?void 0:qe.gateway_share)||[],Se=kL(ae.map(rt=>rt.gateway||"No gateway selected"));if(!Se.length)return{gateways:Se,rows:[]};const Ae=new Map;for(const rt of ZS(ie,Ce))Ae.set(rt,Se.reduce((at,Et)=>(at[Et]=0,at),{bucket_ms:rt}));for(const rt of ae){const at=rt.gateway||"No gateway selected";if(!Se.includes(at))continue;const Et=Ae.get(rt.bucket_ms)||Se.reduce((yn,$n)=>(yn[$n]=0,yn),{bucket_ms:rt.bucket_ms});Et[at]=rt.count,Ae.set(rt.bucket_ms,Et)}return{gateways:Se,rows:Array.from(Ae.values()).sort((rt,at)=>rt.bucket_ms-at.bucket_ms)}},[Ce,ie,R.data]),wt=g.useMemo(()=>{var qe,rt;const ae=kL((((qe=R.data)==null?void 0:qe.sr_trend)||[]).map(at=>at.gateway));if(!ae.length)return{gateways:ae,rows:[]};const Se=new Map;for(const at of ZS(ie,Ce))Se.set(at,ae.reduce((Et,yn)=>(Et[yn]=null,Et),{bucket_ms:at}));for(const at of((rt=R.data)==null?void 0:rt.sr_trend)||[]){if(!ae.includes(at.gateway))continue;const Et=Se.get(at.bucket_ms)||ae.reduce((yn,$n)=>(yn[$n]=null,yn),{bucket_ms:at.bucket_ms});Et[at.gateway]=qH(at.score_value),Se.set(at.bucket_ms,Et)}const Ae=Array.from(Se.values()).sort((at,Et)=>Number(at.bucket_ms)-Number(Et.bucket_ms));for(const at of ae){let Et=null,yn=!1;for(const $n of Ae){if(typeof $n[at]=="number"){Et=$n[at],yn=!0;continue}yn&&($n[at]=Et)}}return{gateways:ae,rows:Ae}},[Ce,ie,R.data]),zt=g.useMemo(()=>{if(!wt.rows.length)return[];const ae=[...wt.rows].reverse().find(Se=>wt.gateways.some(Ae=>typeof Se[Ae]=="number"));return ae?wt.gateways.map(Se=>({gateway:Se,value:typeof ae[Se]=="number"?ae[Se]:null})).filter(Se=>Se.value!==null):[]},[wt]),Ut=g.useMemo(()=>[...zt].sort((ae,Se)=>Se.value-ae.value),[zt]),Un=g.useMemo(()=>wt.gateways.reduce((ae,Se)=>(ae[Se]=wt.rows.filter(Ae=>typeof Ae[Se]=="number").length,ae),{}),[wt]),Vt=g.useMemo(()=>{const ae=wt.rows.flatMap(rt=>wt.gateways.map(at=>rt[at]).filter(at=>typeof at=="number"));if(!ae.length)return[0,100];const Se=Math.min(...ae),Ae=Math.max(...ae),qe=Se===Ae?5:Math.max(2,(Ae-Se)*.35);return[Math.max(0,Math.floor(Se-qe)),Math.min(100,Math.ceil(Ae+qe))]},[wt]),Kt=g.useMemo(()=>{const ae=new Map;for(const Ae of Bt.rows)for(const qe of Bt.gateways)ae.set(qe,(ae.get(qe)||0)+JS(Ae,qe));const Se=Array.from(ae.values()).reduce((Ae,qe)=>Ae+qe,0);return Bt.gateways.map(Ae=>{const qe=ae.get(Ae)||0;return{gateway:Ae,count:qe,share:Se?qe/Se*100:0}}).filter(Ae=>Ae.count>0).sort((Ae,qe)=>qe.count-Ae.count)},[Bt]),dt=g.useMemo(()=>{const ae=Ut[0]||null,Se=Ut[1]||null,Ae=Kt[0]||null,qe=ae?Kt.find(ha=>ha.gateway===ae.gateway)||{gateway:ae.gateway,count:0,share:0}:null,rt=new Map(wt.rows.map(ha=>[Number(ha.bucket_ms),ha]));let at=0,Et=0;for(const ha of Bt.rows){const lr=Bt.gateways.reduce((cr,Zs)=>cr+JS(ha,Zs),0);if(lr<=0)continue;const Na=rt.get(Number(ha.bucket_ms));if(!Na)continue;const ws=wt.gateways.map(cr=>{const Zs=Na[cr];return typeof Zs=="number"&&Number.isFinite(Zs)?{gateway:cr,value:Zs}:null}).filter(cr=>cr!==null).sort((cr,Zs)=>Zs.value-cr.value);if(!ws.length)continue;const Mf=ws[0].value,Lo=ws.filter(cr=>Math.abs(cr.value-Mf)<1e-4).reduce((cr,Zs)=>cr+JS(ha,Zs.gateway),0);Et+=lr,at+=Lo}const yn=Et?at/Et*100:null;let $n="Waiting for traffic share and connector scores.",Sn="Run payments and send score updates in this time window to compare routing traffic.";if(ae&&Ae){const ha=ae.gateway!==Ae.gateway,lr=Et>0?`${ae.gateway} handled ${ci((qe==null?void 0:qe.count)||0,0)} of ${ci(Et,0)} payments (${Jo((qe==null?void 0:qe.share)||0)} traffic share).`:"Traffic and score updates did not happen close enough together to compare.";ha?($n=`${ae.gateway} has the better success rate; ${Ae.gateway} still leads traffic share.`,Sn=`${lr} Traffic share is cumulative for this window, so earlier ${Ae.gateway} selections can keep it ahead even after failures reduce its score.`):($n=`${ae.gateway} has the better success rate and leads traffic share.`,Sn=lr)}else ae?($n=`${ae.gateway} has the better success rate, but no traffic share is available.`,Sn="Run decide-gateway traffic in this time window to compare scores against actual selections."):Ae&&($n=`${Ae.gateway} leads traffic share, but connector success rate is not available.`,Sn="Send update-gateway-score traffic in this time window to compare selections against success rates.");return{srLeader:ae,srRunnerUp:Se,volumeLeader:Ae,srLeaderVolume:qe,alignmentPercent:yn,leaderDecisionCount:at,comparableDecisionCount:Et,headline:$n,detail:Sn}},[wt,Bt,Kt,Ut]),le=g.useMemo(()=>{const ae=new Map(Ut.map(rt=>[rt.gateway,rt.value])),Se=new Map(Kt.map(rt=>[rt.gateway,rt])),Ae=Array.from(new Set([...wt.gateways,...Bt.gateways])),qe=new Map(Ae.map((rt,at)=>[rt,co[at%co.length]]));return Ae.map(rt=>{var Et,yn;const at=Se.get(rt);return{gateway:rt,srValue:ae.get(rt)??null,count:(at==null?void 0:at.count)||0,share:(at==null?void 0:at.share)||0,color:qe.get(rt)||co[0],isSrLeader:((Et=dt.srLeader)==null?void 0:Et.gateway)===rt,isVolumeLeader:((yn=dt.volumeLeader)==null?void 0:yn.gateway)===rt}}).filter(rt=>rt.srValue!==null||rt.count>0).sort((rt,at)=>{const Et=rt.srValue??-1,yn=at.srValue??-1;return yn!==Et?yn-Et:at.count-rt.count}).slice(0,6)},[wt.gateways,Bt.gateways,Kt,Ut,(Or=dt.srLeader)==null?void 0:Or.gateway,(Ec=dt.volumeLeader)==null?void 0:Ec.gateway]),Ie=g.useMemo(()=>m||ue.dimensions.length<=wg?ue.dimensions:ue.dimensions.slice(0,wg),[ue.dimensions,m]),Ge=ue.dimensions.length>wg,nt=Ge?ue.dimensions.length-wg:0,Nt=g.useMemo(()=>{const ae=ue.dimensions.flatMap(Ae=>{const qe=c.dimensions[Ae.key];return qe?[{key:`dimension:${Ae.key}`,label:`${Ae.label}: ${qe}`}]:[]}),Se=c.gateways.map(Ae=>({key:`gateway:${Ae}`,label:`Connector: ${Ae}`}));return[...ae,...Se]},[ue.dimensions,c]);function ge(ae){if(n(ae),ae==="custom")return;const Se=au(ae);S(Se),w(Fs(Se.start_ms)),k(Fs(Se.end_ms))}function st(){if(e!=="custom"){S(au(e));return}G.mutate(),$.mutate(),R.mutate(),z.mutate(),U.mutate()}function pt(ae){u(Se=>{const Ae=Se.gateways.includes(ae);return{...Se,gateways:Ae?Se.gateways.filter(qe=>qe!==ae):[...Se.gateways,ae]}})}function Ht(){u(bL)}function gn(ae){if(ae.startsWith("dimension:")){sn(ae.replace("dimension:",""),"");return}ae.startsWith("gateway:")&&pt(ae.replace("gateway:",""))}function sn(ae,Se){u(Ae=>{const qe={...Ae.dimensions};return Se?qe[ae]=Se:delete qe[ae],{...Ae,dimensions:qe}})}return i.jsxs("div",{className:"space-y-8 px-5 sm:px-5 lg:px-8 xl:px-8",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx("div",{className:"space-y-2",children:i.jsx(qr,{title:"Analytics",description:"Real-time multi-gateway routing performance overview."})}),i.jsxs("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:[i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="transactions"),onClick:()=>l("transactions"),children:KS.transactions}),i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="rule_based"),onClick:()=>l("rule_based"),children:KS.rule_based}),i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="volume_commitments"),onClick:()=>l("volume_commitments"),children:KS.volume_commitments})]}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(ET,{range:e,customStart:v,customEnd:j,onRangeChange:ge,onCustomChange:(ae,Se)=>{w(ae),k(Se)}}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:st,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(As,{className:"h-4 w-4"})})]})]}),i.jsx(_t,{error:W}),q?i.jsxs("div",{className:"flex items-center gap-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[i.jsx(mt,{size:16}),"Loading analytics…"]}):null,i.jsx("div",{className:"relative",children:o==="transactions"?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Overall auth rate"}),Ne!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${jL(Ne)} leading-[42px]`,children:Jo(Ne)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Weighted across all gateways"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No score data yet"})]})]})}),ve.map(ae=>i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:iAe(ae.route)}),i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-slate-950 dark:text-white leading-[42px]",children:ci(ae.count,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.route==="/decide_gateway"?"routing decisions":"score feedback calls"})]})},ae.route)),i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Total cost saved"}),F.data&&F.data.currency&&F.data.totals.saved_value>0?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-emerald-700 dark:text-emerald-400 leading-[42px]",children:vL(F.data.totals.saved_value,F.data.currency)}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:[ci(F.data.totals.cost_won_count,0)," of ",ci(F.data.totals.total_decisions,0)," cost decisions"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:F.data?"No multi-objective wins yet":"Loading…"})]})]})})]}),i.jsx(sAe,{summary:dt,comparisonRows:le,expanded:h,onToggle:()=>p(ae=>!ae)}),Th.SMART_RETRY_IN_ANALYTICS,i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Selected gateways over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector decision counts for the same active filters used by the success-rate chart."})]}),i.jsx(o1,{content:i1.share})]})}),i.jsx(ze,{children:Bt.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:Bt.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11}}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),Bt.gateways.map((ae,Se)=>i.jsx(xs,{dataKey:ae,fill:co[Se%co.length],name:ae,radius:[3,3,0,0]},ae))]})})}):i.jsx(Wl,{title:"No gateway share history yet",body:"Gateway traffic will appear here after payments are routed in this window."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsx("div",{className:"flex items-start justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Cost saved over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Savings from multi-objective routing promoting the higher-EV PSP within the derived auth band."})]})})}),i.jsx(ze,{children:F.data&&F.data.currency&&F.data.trend.length>0?i.jsx("div",{className:"h-72",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:F.data.trend,barCategoryGap:"35%",children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11},tickFormatter:ae=>XEe(ae,F.data.currency),width:70}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),formatter:ae=>[vL(ae,F.data.currency),"Saved"],contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"saved_value",fill:"#10b981",name:"Saved",radius:[3,3,0,0]})]})})}):i.jsx(Wl,{title:"No cost savings yet",body:"Cost savings appear once multi-objective routing promotes a higher-EV PSP within the derived auth band."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector success rate over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Historical connector success rate for the active filters; compare it with selected volume above."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>f(ae=>!ae),children:d?"Hide filters":"Show filters"}),i.jsx(o1,{content:i1.sr})]})]})}),i.jsxs(ze,{className:"space-y-5",children:[d?i.jsxs("div",{className:"space-y-3 border-b border-slate-200 pb-5 dark:border-[#1d1d23]",children:[ue.dimensions.length?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:Ie.map(ae=>i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.label}),i.jsxs("select",{value:c.dimensions[ae.key]||"",onChange:Se=>sn(ae.key,Se.target.value),className:aAe(),disabled:!ae.values.length,children:[i.jsxs("option",{value:"",children:["Any ",ae.label.toLowerCase()]}),ae.values.map(Se=>i.jsx("option",{value:Se,children:Se},Se))]})]},ae.key))}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connectors"}),ue.gateways.length?ue.gateways.map(ae=>{const Se=c.gateways.includes(ae);return i.jsx("button",{type:"button","aria-pressed":Se,onClick:()=>pt(ae),className:`rounded-full border px-3 py-2 text-[13px] font-medium transition ${Se?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#a1a1aa] dark:hover:text-white"} leading-[18px]`,children:ae},ae)}):i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No connector history yet for the selected window."})]})]}):ue.missing_dimensions.length?i.jsx(Wl,{title:"No routing dimension values in this window",body:"Score history exists, but no routing dimensions have values recorded in the selected time window yet."}):null,i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[Ge?i.jsx("button",{type:"button",onClick:()=>x(ae=>!ae),className:"text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:m?"Fewer dimensions":`${nt} more dimension${nt===1?"":"s"}`}):null,ue.missing_dimensions.length?i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["No values yet: ",ue.missing_dimensions.map(ae=>ae.label).join(", ")]}):null,Nt.map(ae=>i.jsxs("button",{type:"button",onClick:()=>gn(ae.key),className:"inline-flex items-center gap-2 rounded-full border border-brand-500/30 bg-brand-500/10 px-3 py-2 text-[13px] font-medium text-brand-700 transition hover:bg-brand-500/15 dark:text-brand-200 leading-[18px]",children:[i.jsx("span",{children:ae.label}),i.jsx("span",{"aria-hidden":"true",children:"×"})]},ae.key)),Nt.length?i.jsx("button",{type:"button",onClick:Ht,className:"ml-auto text-[13px] font-medium text-slate-500 transition hover:text-slate-900 dark:text-[#8a8a93] dark:hover:text-white leading-[18px]",children:"Clear filters"}):null]})]}):null,zt.length?i.jsx("div",{className:"flex flex-wrap gap-2",children:zt.map(ae=>i.jsxs(Pe,{variant:oAe(ae.value),children:[ae.gateway,": ",Jo(ae.value)]},ae.gateway))}):null,wt.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(uH,{data:wt.rows,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0"}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{domain:Vt,tick:{fontSize:11},tickFormatter:ae=>`${ci(Number(ae),0)}%`}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),formatter:(ae,Se)=>[Jo(ae),String(Se)],contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),wt.gateways.map((ae,Se)=>i.jsx(fi,{type:"monotone",dataKey:ae,stroke:co[Se%co.length],strokeWidth:3,dot:Un[ae]<=1?{r:4,strokeWidth:2}:!1,activeDot:{r:5},connectNulls:!0,name:ae},ae))]})})}):i.jsx(Wl,{title:"No connector score history yet",body:"Connector history will appear after decide-gateway and update-gateway-score activity in this window."})]})]})]}):o==="volume_commitments"?i.jsx(LEe,{}):i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsx(ze,{children:i.jsxs("div",{className:"grid gap-5 sm:grid-cols-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule match rate"}),de!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${jL(de)} leading-[42px]`,children:Jo(de)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Decisions matched to a configured rule"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No decision data yet"})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule Evaluate"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:ci(je,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"routing decisions"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Gateways active"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:He}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"unique connectors selected"})]})]})})}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector selections over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector counts over time for selected rule decisions."})]}),i.jsx(o1,{content:i1.preview_activity})]})}),i.jsx(ze,{children:be.gateways.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:be.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11}}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),be.gateways.map((ae,Se)=>i.jsx(xs,{dataKey:ae,fill:ae==="No gateway selected"?"#64748b":co[Se%co.length],radius:[6,6,0,0],name:ae},ae))]})})}):bt?i.jsx(tb,{title:"Processing recent rule decisions",body:"Rule evaluate calls were received. Recent decisions are still being processed, and this view will update automatically."}):i.jsx(Wl,{title:"No connector selections yet",body:"Rule decision traffic will appear here after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid items-stretch gap-5 xl:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Recent decisions"}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:["Latest decisions from ",i.jsx("code",{children:"/routing/evaluate"}),"."]})]}),i.jsx(Pe,{variant:"purple",children:we?`Latest ${Kf(we)}`:"No activity"})]})}),i.jsx(ze,{children:Me.length?i.jsx("div",{className:"space-y-2",children:Me.slice(0,10).map(ae=>{var Ae,qe;const Se=(qe=(Ae=ae.latest_status)==null?void 0:Ae.toLowerCase())!=null&&qe.includes("fail")?"red":ae.latest_status==="default_selection"?"orange":"green";return i.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-slate-100 bg-slate-50/60 px-3 py-2.5 dark:border-[#1d1d23] dark:bg-[#0c0c0e]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Pe,{variant:Se,children:ae.latest_status||"decision"}),ae.latest_gateway?i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-700 dark:text-[#c8d3e6] leading-[18px]",children:ae.latest_gateway}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:Kf(ae.last_seen_ms)})]},ae.lookup_key)})}):bt?i.jsx(tb,{title:"Processing recent decisions",body:"Rule evaluate calls were received. Decision rows will appear as soon as they are ready."}):i.jsx(Wl,{title:"No decisions yet",body:"Recent rule decisions will appear after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid h-full gap-5 xl:grid-rows-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Gateway activity"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Recent decisions grouped by latest chosen gateway."})]})}),i.jsx(ze,{children:tt.length?i.jsx("div",{className:"space-y-3",children:tt.map((ae,Se)=>i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:ae.gateway}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.count})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${ae.count/vt*100}%`,backgroundColor:co[Se%co.length]}})})]},ae.gateway))}):bt?i.jsx(tb,{title:"Waiting for gateway activity",body:"Recent rule decisions are still being processed. Gateway activity will appear automatically once rows are available."}):i.jsx(Wl,{title:"No gateway activity yet",body:"Once rule decisions are captured, this panel will show which connectors are being selected."})})]}),i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Decision outcomes"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"How decisions resolved — rule match vs. default fallback."})]})}),i.jsx(ze,{children:B.length?i.jsx("div",{className:"space-y-5",children:B.map(ae=>{const Se=se?ae.count/se*100:0,Ae=ae.status.toLowerCase().includes("fail")?"red":ae.status==="default_selection"?"orange":"green",qe=Ae==="green"?"#22c55e":Ae==="orange"?"#f97316":"#ef4444";return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx(Pe,{variant:Ae,children:ae.status}),i.jsxs("span",{className:"text-[13px] font-semibold tabular-nums text-slate-900 dark:text-white leading-[18px]",children:[ae.count," ",i.jsxs("span",{className:"font-normal text-slate-500 dark:text-[#8a8a93]",children:["(",Jo(Se),")"]})]})]}),i.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${Se}%`,backgroundColor:qe}})})]},ae.status)})}):bt?i.jsx(tb,{title:"Waiting for decision outcomes",body:"Recent decision traffic is still being ingested. Outcome summaries will appear here automatically once the decision rows land."}):i.jsx(Wl,{title:"No decision outcomes yet",body:"Recent rule decision results will appear here once decision traffic is recorded."})})]})]})]})]})})]})}const cAe={info:{box:"border-slate-200 bg-slate-50 text-slate-700 dark:border-[#2a303a] dark:bg-[#111820] dark:text-[#c7cfdd]",icon:"text-slate-500 dark:text-[#8d96aa]",Glyph:Qu},success:{box:"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300",icon:"text-emerald-700 dark:text-emerald-400",Glyph:Gp},warning:{box:"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300",icon:"text-amber-700 dark:text-amber-400",Glyph:Pm},danger:{box:"border-red-200 bg-red-50 text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",icon:"text-red-700 dark:text-red-400",Glyph:Hj}};function Fa({tone:t="info",children:e,className:n=""}){const{box:r,icon:a,Glyph:s}=cAe[t];return i.jsxs("div",{role:"status",className:`flex items-start gap-2.5 rounded-lg border px-4 py-3 text-[13px] leading-[18px] ${r} ${n}`,children:[i.jsx(s,{size:16,"aria-hidden":!0,className:`mt-px shrink-0 ${a}`}),i.jsx("div",{className:"min-w-0 flex-1",children:e})]})}const e_=[{key:"payment_method",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],SL=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function _L(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function KH(t,e,n){for(const r of t.condition??[]){if(!r.lhs||e.has(r.lhs))continue;const a=r.value;if(!a)continue;let s="enum_variant",o="";a.type==="enum_variant"&&typeof a.value=="string"?(s="enum_variant",o=a.value):a.type==="enum_variant_array"&&Array.isArray(a.value)?(s="enum_variant",o=a.value[0]??""):a.type==="number"&&typeof a.value=="number"?(s="number",o=String(a.value)):a.type==="str_value"&&typeof a.value=="string"?(s="str_value",o=a.value):a.type==="number_array"&&Array.isArray(a.value)?(s="number",o=String(a.value[0]??0)):a.type==="metadata_variant"&&(s="metadata_variant",o=typeof a.value=="string"?a.value:"");const l=n[r.lhs];if((l==null?void 0:l.type)==="enum"){const c=l.values??[];c.length>0&&!c.includes(o)&&(o=c[0])}e.set(r.lhs,{key:r.lhs,type:s,value:o,metadataKey:""})}for(const r of t.nested??[])KH(r,e,n)}function t_(t,e){const n=t.algorithm_data||t.algorithm;if(!n||n.type!=="advanced")return[];const r=n.data;if(!(r!=null&&r.rules))return[];const a=new Map;for(const s of r.rules)for(const o of s.statements??[])KH(o,a,e);return Array.from(a.values())}function uAe(t){return t.toLowerCase().includes("no active routing algorithm")||t.toLowerCase().includes("active routing algorithm is not a volume split")}function YH({merchantId:t,routingKeysConfig:e,routingConfigUnavailable:n,routingKeysLoading:r,resetSignal:a,onRunComplete:s,onOpenTrace:o}){const l=Kr(),c=g.useMemo(()=>Object.keys(e).sort(),[e]),{data:u}=ut(t?["active-routing",t]:null,()=>Ve(`/routing/list/active/${t}`),{revalidateOnFocus:!1}),{data:d}=ut(t?["routing-list",t]:null,()=>Ve(`/routing/list/${t}`),{revalidateOnFocus:!1}),f=(u==null?void 0:u.find(G=>{var $;return(($=G.algorithm_data||G.algorithm)==null?void 0:$.type)==="ab_test"}))??null,[h,p]=g.useState(e_),[m,x]=g.useState(SL),[y,b]=g.useState(null),[v,w]=g.useState(null),[j,k]=g.useState(!1),[_,S]=g.useState(null),[N,E]=g.useState(!1),[P,M]=g.useState(!1);g.useEffect(()=>{if(a===0)return;const G=e_.map($=>{var F,R;return $.type==="enum_variant"&&$.value===""?{...$,value:((R=(F=e[$.key])==null?void 0:F.values)==null?void 0:R[0])??""}:$});p(G),x(SL),b(null),w(null),S(null),E(!1)},[a]),g.useEffect(()=>{var z;if(!u||!d||r||n)return;let $=u.find(U=>{var pe;const ee=(pe=U.algorithm_data||U.algorithm)==null?void 0:pe.type;return ee==="advanced"||ee==="priority"||ee==="single"}),F="";if(!$&&f){const U=(z=f.algorithm_data||f.algorithm)==null?void 0:z.data,ee=U!=null&&U.control_algorithm_id?d.find(re=>re.id===U.control_algorithm_id):void 0,pe=U!=null&&U.variant_algorithm_id?d.find(re=>re.id===U.variant_algorithm_id):void 0;ee&&t_(ee,e).length>0?($=ee,F=" (control arm)"):pe&&t_(pe,e).length>0&&($=pe,F=" (variant arm)")}if(!$)return;const R=t_($,e);R.length!==0&&(p(U=>U.every(pe=>pe.value===""||e_.some(re=>re.key===pe.key))?R:U),w($.name+F))},[u,d,r,n,e]);function A(){var z;const G=c[0]??"",$=e[G],F=_L($==null?void 0:$.type),R=F==="enum_variant"?((z=$==null?void 0:$.values)==null?void 0:z[0])??"":"";p(U=>[...U,{key:G,type:F,value:R,metadataKey:""}])}function O(G){w(null),p($=>$.filter((F,R)=>R!==G))}function D(G,$,F){w(null),p(R=>R.map((z,U)=>U===G?{...z,[$]:F}:z))}function I(G,$){var U;w(null);const F=e[$],R=_L(F==null?void 0:F.type),z=R==="enum_variant"?((U=F==null?void 0:F.values)==null?void 0:U[0])??"":"";p(ee=>ee.map((pe,re)=>re===G?{...pe,key:$,type:R,value:z,metadataKey:""}:pe))}function X(G,$){w(null),p(F=>F.map((R,z)=>z===G?{...R,metadataKey:$}:R))}function Q(){x(G=>[...G,{gateway_name:"",gateway_id:""}])}function V(G){x($=>$.filter((F,R)=>R!==G))}function Y(G,$,F){x(R=>R.map((z,U)=>U===G?{...z,[$]:F}:z))}async function H(){if(n){S("Routing key config unavailable. Fix /config/routing-keys and retry.");return}k(!0),S(null),E(!1),b(null);const G=`rule_decision_${Date.now()}`;try{const $={};h.forEach(R=>{R.key&&(R.type==="metadata_variant"?$[R.key]={type:R.type,value:{key:R.metadataKey||R.key,value:R.value}}:R.type==="number"?$[R.key]={type:R.type,value:parseFloat(R.value)||0}:R.value!==""&&($[R.key]={type:R.type,value:R.value}))});const F=await Ve("/routing/evaluate",{created_by:t||"test_user",payment_id:G,fallback_output:m.filter(R=>R.gateway_name),parameters:$});b(F),s()}catch($){const F=$ instanceof Error?$.message:"Request failed";uAe(F)?E(!0):S(F)}finally{k(!1)}}return i.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:"Rule Evaluation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:"Rule Evaluation Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!t&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),r&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),n&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),f&&i.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg bg-amber-50 border border-amber-200 dark:bg-amber-900/20 dark:border-amber-700/40",children:[i.jsx("span",{className:"text-amber-700 mt-0.5 shrink-0",children:"⚠"}),i.jsxs("p",{className:"text-xs text-amber-700 dark:text-amber-300 leading-relaxed",children:[i.jsxs("span",{className:"font-semibold",children:['A/B experiment "',f.name,'" is active.']})," ","Results reflect whichever arm is assigned to the simulated payment ID — this mirrors real traffic. Stop the experiment to see baseline routing."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"}),v&&i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300 leading-4",children:["⚗ Prefilled from: ",v]})]}),i.jsx("div",{className:"space-y-1.5",children:h.map((G,$)=>{var F;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:G.key,onChange:R=>I($,R.target.value),disabled:n||r,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:c.length===0?i.jsx("option",{value:"",children:"No keys available"}):c.map(R=>i.jsx("option",{value:R,children:R},R))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),G.type==="enum_variant"?i.jsx("select",{value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((F=e[G.key])==null?void 0:F.values)||[]).map(R=>i.jsx("option",{value:R,children:R},R))}):G.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):G.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>O($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),G.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:G.metadataKey||"",onChange:R=>X($,R.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},$)})}),i.jsxs("button",{onClick:A,disabled:n||r||c.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:m.map((G,$)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:$+1}),i.jsx("input",{placeholder:"gateway name",value:G.gateway_name,onChange:F=>Y($,"gateway_name",F.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:G.gateway_id||"",onChange:F=>Y($,"gateway_id",F.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>V($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},$))}),i.jsxs("button",{onClick:Q,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:_}),N&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("p",{className:"font-semibold mb-1",children:"Configure rule-based routing first"}),i.jsx("p",{className:"mb-2 max-w-[57ch]",children:"Rule evaluation needs an active rule-based strategy before it can return a policy decision."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>l("/routing/rules"),children:"Configure routing"})]}),i.jsx(ke,{onClick:H,disabled:j||n||!t,className:"w-full justify-center",children:j?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})})]})]}),i.jsx("div",{className:"space-y-4",children:y?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:y.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",y.output.type]})]}),y.payment_id&&i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>o(y.payment_id,"Rule Evaluation Decision"),children:"View decision trace"})]}),y.output.type==="single"&&y.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:y.output.connector.gateway_name}),y.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",y.output.connector.gateway_id]})]}),y.output.type==="priority"&&y.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:y.output.connectors.map((G,$)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:$+1}),i.jsx("span",{className:"font-medium",children:G.gateway_name}),G.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",G.gateway_id,")"]})]},$))})]}),y.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>M(G=>!G),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),P?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),P&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(y,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})})})]})}function Cx({value:t,onChange:e,options:n,placeholder:r,className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(-1),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useMemo(()=>t?n.filter(b=>b.toLowerCase().includes(t.toLowerCase())):n,[n,t]),m=g.useCallback(()=>{o(!1),c(-1)},[]);function x(){var v;const b=(v=f.current)==null?void 0:v.getBoundingClientRect();b&&(d({position:"fixed",top:b.bottom+4,left:b.left,width:b.width,zIndex:9999}),c(-1),o(!0))}g.useEffect(()=>{if(!s)return;function b(v){var j,k;const w=v.target;!((j=f.current)!=null&&j.contains(w))&&!((k=h.current)!=null&&k.contains(w))&&m()}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s,m]),g.useEffect(()=>{c(-1)},[p.length]);function y(b){if(!s&&b.key!=="Escape"&&b.key!=="Tab"){x();return}switch(b.key){case"ArrowDown":b.preventDefault(),c(v=>vv>0?v-1:p.length-1);break;case"Enter":l>=0&&p[l]!==void 0&&(b.preventDefault(),e(p[l]),m());break;case"Escape":m();break}}return i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:f,type:"text",value:t,placeholder:r,className:a,onChange:b=>{e(b.target.value),x()},onFocus:x,onKeyDown:y,autoComplete:"off"}),s&&p.length>0&&fs.createPortal(i.jsx("div",{ref:h,style:u,className:"rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg overflow-hidden",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(p.length*32+8,240)}px`},children:p.map((b,v)=>i.jsx("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{e(b),m()},className:`w-full text-left px-3 py-2 text-xs transition-colors ${v===l?"bg-brand-500 text-white":b===t?"bg-brand-50/50 dark:bg-brand-900/10 text-brand-600 dark:text-brand-400 font-medium":"hover:bg-slate-50 dark:hover:bg-[#1c1c24] text-slate-700 dark:text-slate-200"}`,children:b},b))})}),document.body)]})}function l1({text:t,children:e}){const[n,r]=g.useState(!1),[a,s]=g.useState({}),o=g.useRef(null);function l(){var u;const c=(u=o.current)==null?void 0:u.getBoundingClientRect();c&&(s({position:"fixed",top:c.top-6,left:c.left+c.width/2,transform:"translate(-50%, -100%)",zIndex:9999}),r(!0))}return g.useEffect(()=>{if(!n)return;function c(){r(!1)}return document.addEventListener("scroll",c,!0),()=>document.removeEventListener("scroll",c,!0)},[n]),i.jsxs("span",{ref:o,onMouseEnter:l,onMouseLeave:()=>r(!1),className:"inline-flex",children:[e,n&&fs.createPortal(i.jsx("span",{style:a,className:"pointer-events-none rounded-md bg-slate-800 dark:bg-slate-700 px-2 py-1 text-[11px] text-white shadow-md whitespace-nowrap leading-4",children:t}),document.body)]})}const Tu={error_code:"",error_message:"",issuer_error_code:"",card_network:""},nb="w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs focus:outline-none focus:border-brand-500 text-slate-800 dark:text-slate-100 placeholder-slate-500",rb="block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1";function AT(t){switch(t){case"Issue with Payment Method details":return!1;case"Issue with Integration":case"Issue with Configurations":case"Technical issue with PSP":case"Something went wrong":return!0;default:return null}}function dAe(t){switch(t.toLowerCase()){case"decline":return"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400";case"retry":return"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400";case"step_up":case"challenge":return"bg-blue-50 text-blue-600 dark:bg-blue-950/40 dark:text-blue-400";case"success":case"force_2ds_pass":return"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300";default:return"bg-slate-100 text-slate-500 dark:bg-[#1a1a24] dark:text-slate-400"}}function EA({info:t,onChange:e,rules:n,connector:r,showClassification:a=!0}){const[s,o]=g.useState(!1),l=g.useMemo(()=>[...new Set(n.filter(f=>!r||f.connector===r).map(f=>f.errorCode).filter(Boolean))].sort(),[n,r]),c=g.useMemo(()=>[...new Set(n.filter(f=>(!r||f.connector===r)&&(!t.error_code||f.errorCode===t.error_code)).map(f=>f.errorMessage).filter(Boolean))].sort(),[n,r,t.error_code]),u=g.useMemo(()=>{if(!t.error_code)return null;const f=n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.subFlow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.flow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code);return f?{unifiedMessage:f.unifiedMessage??null,decision:f.decision||null,penalized:AT(f.unifiedMessage)}:null},[n,r,t.error_code]),d=Object.values(t).some(Boolean);return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("button",{type:"button",onClick:()=>o(f=>!f),className:"w-full flex items-center justify-between gap-2 px-2.5 py-2 bg-slate-50 dark:bg-[#0d0d13] hover:bg-slate-100 dark:hover:bg-[#111118] transition-colors",children:[i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 shrink-0 leading-4",children:"Decline Error"}),t.error_code?i.jsx("span",{className:"font-mono text-[11px] text-brand-600 dark:text-brand-400 bg-brand-50 dark:bg-brand-900/30 px-1.5 py-0.5 rounded shrink-0 leading-4",children:t.error_code}):i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:"not set"}),a&&(u==null?void 0:u.decision)&&i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${dAe(u.decision)} leading-4`,children:u.decision}),a&&(u==null?void 0:u.penalized)!=null&&i.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${u.penalized?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300"} leading-4`,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${u.penalized?"bg-red-500":"bg-emerald-500"}`}),u.penalized?"Penalized":"Penalty skipped"]})]}),i.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[d&&i.jsx(l1,{text:"Clear error info",children:i.jsx("span",{role:"button",onClick:f=>{f.stopPropagation(),e({error_code:"",error_message:"",issuer_error_code:"",card_network:""})},className:"rounded p-0.5 text-slate-500 hover:text-red-600 transition-colors",children:i.jsx(bH,{size:11})})}),i.jsx(wn,{size:13,className:`text-slate-500 transition-transform duration-200 ${s?"rotate-180":""}`})]})]}),s&&i.jsxs("div",{className:"px-2.5 py-2.5 space-y-2 border-t border-slate-200 dark:border-[#222226]",children:[(u==null?void 0:u.unifiedMessage)&&i.jsx("div",{className:`flex items-center gap-2 px-2.5 py-1.5 rounded-lg border-l-2 text-[11px] ${u.penalized===!0?"bg-red-50 border-red-400 text-red-700 dark:bg-red-950/20 dark:border-red-600 dark:text-red-400":u.penalized===!1?"bg-emerald-50 border-emerald-400 text-emerald-700 dark:bg-emerald-950/20 dark:border-emerald-600 dark:text-emerald-300":"bg-slate-50 border-slate-300 text-slate-500 dark:bg-[#111118] dark:border-slate-600 dark:text-slate-400"} leading-4`,children:i.jsx("span",{children:u.unifiedMessage})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Error Code"}),i.jsx(Cx,{value:t.error_code,onChange:f=>e({error_code:f,error_message:""}),options:l,placeholder:"e.g. declined",className:nb})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Issuer Code"}),i.jsx("input",{value:t.issuer_error_code,onChange:f=>e({issuer_error_code:f.target.value}),placeholder:"e.g. 51",className:nb})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Error Message"}),i.jsx(Cx,{value:t.error_message,onChange:f=>e({error_message:f}),options:c,placeholder:"e.g. Insufficient funds",className:nb})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Card Network"}),i.jsx("input",{value:t.card_network,onChange:f=>e({card_network:f.target.value}),placeholder:"e.g. Visa",className:nb})]})]})]})}function XH({merchantId:t,gsmRules:e,decideParams:n}){const[r,a]=g.useState(null),[s,o]=g.useState({}),[l,c]=g.useState({}),u=g.useMemo(()=>{const f=e.filter(p=>p.subFlow==="Authorize"||p.flow==="Authorize");return[...new Set(f.map(p=>p.unifiedMessage).filter(Boolean))].map(p=>{const m=AT(p)!==!1,x=f.filter(b=>b.unifiedMessage===p),y=[...new Set(x.map(b=>b.connector))];return{key:p,label:p,penalized:m,connectors:y,rulesForMsg:x}}).sort((p,m)=>Number(p.penalized)-Number(m.penalized))},[e]);async function d(f,h,p,m,x,y){var b,v;if(t){c(w=>({...w,[f]:{scoreBefore:null,scoreAfter:null,loading:!0,error:null}}));try{const k=n.eligibleGateways.split(",").map(I=>I.trim()).filter(Boolean).filter(I=>I!==h)[0]??(h==="stripe"?"adyen":"stripe"),_=[h,k],S={merchantId:t,paymentInfo:{paymentId:"",amount:parseFloat(n.amount)||1e3,currency:n.currency||"USD",paymentType:"ORDER_PAYMENT",paymentMethodType:n.paymentMethodType||"CARD",paymentMethod:n.paymentMethod||"CREDIT",authType:n.authType||"NO_THREE_DS",cardBrand:n.cardBrand||"VISA"},eligibleGatewayList:_,rankingAlgorithm:n.rankingAlgorithm,eliminationEnabled:!1},N=Date.now(),E=`scenario_test_${N}_0`,M=((b=(await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:E}})).gateway_priority_map)==null?void 0:b[h])??null;for(let I=1;I<=5;I++){const X=`scenario_test_${N}_${I}`;await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:X}}),await Ve("/update-gateway-score",{merchantId:t,gateway:h,gatewayReferenceId:null,status:"FAILURE",paymentId:X,errorInfo:{connector:h,flow:x,subFlow:y,errorCode:p,errorMessage:m}})}const A=`scenario_test_${N}_after`,D=((v=(await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:A}})).gateway_priority_map)==null?void 0:v[h])??null;c(I=>({...I,[f]:{scoreBefore:M,scoreAfter:D,loading:!1,error:null}}))}catch(w){const j=w instanceof Error?w.message:"Test failed";c(k=>({...k,[f]:{scoreBefore:null,scoreAfter:null,loading:!1,error:j}}))}}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Penalty Classification Guide"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"How the routing engine decides whether a failed payment penalises the gateway score."})]})}),i.jsx(ze,{className:"space-y-4",children:e.length===0?i.jsx("p",{className:"text-xs text-slate-500",children:"Loading GSM rules…"}):i.jsxs(i.Fragment,{children:[["protected","penalized"].map(f=>{const h=u.filter(m=>(m.penalized?"penalized":"protected")===f);if(!h.length)return null;const p=f==="protected";return i.jsxs("div",{children:[i.jsx("p",{className:`text-[11px] font-semibold uppercase tracking-wider mb-2 ${p?"text-emerald-700 dark:text-emerald-400":"text-red-600 dark:text-red-400"} max-w-[68ch] leading-4`,children:p?"✓ Protected — gateway score unchanged":"✗ Penalised — gateway score decremented"}),i.jsx("div",{className:"space-y-2",children:h.map(m=>{var N,E;const x=m.rulesForMsg.slice(0,20),y=m.connectors,b=r===m.key,v=s[m.key]??y[0]??"",w=x.find(P=>P.connector===v&&P.subFlow==="Authorize")??x.find(P=>P.connector===v),j=l[m.key],k=(j==null?void 0:j.scoreBefore)!=null&&(j==null?void 0:j.scoreAfter)!=null?j.scoreAfter-j.scoreBefore:null,_=k!=null&&Math.abs(k)>.001,S=p?k!=null&&k<-.001:_;return i.jsxs("div",{className:`rounded-lg border overflow-hidden transition-all ${p?"border-emerald-200 dark:border-emerald-800/40":"border-red-200 dark:border-red-800/40"}`,children:[i.jsxs("button",{type:"button",onClick:()=>a(b?null:m.key),className:`w-full flex items-center justify-between px-3 py-2.5 text-left transition-colors ${p?"bg-emerald-50/50 dark:bg-emerald-900/10 hover:bg-emerald-50 dark:hover:bg-emerald-900/20":"bg-red-50/50 dark:bg-red-900/10 hover:bg-red-50 dark:hover:bg-red-900/20"}`,children:[i.jsx("div",{className:"flex items-center gap-2 min-w-0",children:i.jsx("span",{className:"text-xs font-semibold text-slate-800 dark:text-slate-100",children:m.label})}),i.jsxs("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[i.jsxs("span",{className:"text-[11px] text-slate-500 leading-4",children:[y.length," connector",y.length!==1?"s":""]}),i.jsx(wn,{size:12,className:`text-slate-500 transition-transform ${b?"rotate-180":""}`})]})]}),b&&i.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24] bg-white dark:bg-[#0d1117]",children:[i.jsxs("div",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:"Unified message: "}),i.jsx("span",{className:"font-mono",children:m.key})]}),y.length>0&&i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Select connector to test:"}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:y.map(P=>i.jsx("button",{type:"button",onClick:()=>o(M=>({...M,[m.key]:P})),className:`rounded-full px-2.5 py-1 text-[11px] font-medium ring-1 ring-inset transition-colors ${v===P?p?"bg-emerald-50 text-emerald-700 ring-emerald-300 dark:bg-emerald-900/30 dark:text-emerald-300 dark:ring-emerald-700":"bg-red-50 text-red-700 ring-red-300 dark:bg-red-900/30 dark:text-red-300 dark:ring-red-700":"bg-slate-50 text-slate-600 ring-slate-200 hover:bg-slate-100 dark:bg-[#1c1c24] dark:text-slate-400 dark:ring-[#2a2a35]"} leading-4`,children:P},P))})]}),w&&i.jsxs("div",{className:"rounded-lg bg-slate-50 dark:bg-[#10131c] px-3 py-2 text-[11px] space-y-0.5 leading-4",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Error code: "}),i.jsx("span",{className:"font-mono font-medium text-slate-700 dark:text-slate-200",children:w.errorCode})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Message: "}),i.jsx("span",{className:"text-slate-600 dark:text-slate-300",children:w.errorMessage})]})]}),v&&w&&i.jsx("button",{type:"button",disabled:!t||(j==null?void 0:j.loading),onClick:()=>d(m.key,v,w.errorCode,w.errorMessage,w.flow,w.subFlow),className:`flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${p?"bg-emerald-600 text-white hover:bg-emerald-700":"bg-red-500 text-white hover:bg-red-600"}`,children:j!=null&&j.loading?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:12})," Injecting 5 failures…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:12})," Test with ",v]})}),!t&&i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-400 leading-4",children:"Set a merchant ID in the top bar to run tests."}),j&&!j.loading&&i.jsx("div",{className:`rounded-lg border px-3 py-2.5 space-y-1.5 ${j.error||S?"border-amber-200 bg-amber-50 dark:border-amber-800/40 dark:bg-amber-900/10":p?"border-emerald-200 bg-emerald-50 dark:border-emerald-800/40 dark:bg-emerald-900/10":"border-red-200 bg-red-50 dark:border-red-800/40 dark:bg-red-900/10"}`,children:j.error?i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-300 leading-4",children:j.error}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 text-[11px] leading-4",children:[i.jsx("span",{className:"text-slate-500",children:"Score:"}),i.jsx("span",{className:"font-mono font-semibold text-slate-700 dark:text-slate-200",children:((N=j.scoreBefore)==null?void 0:N.toFixed(3))??"—"}),i.jsx("span",{className:"text-slate-500",children:"→"}),i.jsx("span",{className:`font-mono font-semibold ${_?"text-red-600 dark:text-red-400":"text-emerald-700 dark:text-emerald-400"}`,children:((E=j.scoreAfter)==null?void 0:E.toFixed(3))??"—"}),k!=null&&i.jsxs("span",{className:`text-[11px] font-medium ${_?"text-red-600":"text-emerald-700"} leading-4`,children:["(",k>0?"+":"",k.toFixed(3),")"]})]}),i.jsx("p",{className:`text-[11px] font-medium ${S?"text-amber-700 dark:text-amber-300":p?"text-emerald-700 dark:text-emerald-300":"text-red-600 dark:text-red-400"} leading-4`,children:p?S?`⚠ Score decreased — gateway was penalised (${k.toFixed(3)})`:k!=null&&k>.001?`✓ Score increased (+${k.toFixed(3)}) — no penalty applied (hedging)`:"✓ Score unchanged — gateway not penalised as expected":_?`✗ Gateway penalised (score dropped ${Math.abs(k).toFixed(3)})`:"⚠ Score unchanged — penalty may not have applied yet"})]})})]})]},m.key)})})]},f)}),i.jsxs("p",{className:"text-[11px] text-slate-500 dark:text-slate-400 pt-1 border-t border-slate-100 dark:border-[#1c1c24] leading-4",children:["Errors with no matching GSM rule, or calls made without ",i.jsx("span",{className:"font-mono",children:"error_info"}),", are always penalised. The GSM scoring filter must be enabled under SR Routing settings for skip-penalty logic to apply. Configure simulation parameters on the left and run to observe score changes live."]})]})})]})}function Al(t){const e=t?`/merchant-account/${t}/features`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:3e5});function o(c){var u;return((u=n==null?void 0:n.features.find(d=>d.feature===c))==null?void 0:u.enabled)??!1}async function l(c,u){if(!t)throw new Error("Set a merchant ID first");const d=await Ve(`/merchant-account/${t}/features/${c}`,{enabled:u});return await s(d,!1),d}return{data:n,error:r,isLoading:a,isEnabled:o,setFeatureEnabled:l}}const OT="hs-dashboard-handoff",fAe="connectors",hAe="rule_id",pAe=["/routing/rules","/routing/volume"];function JH(t){if(!Array.isArray(t))return null;const e=t.filter(n=>!!n&&typeof n=="object"&&typeof n.merchant_connector_id=="string"&&typeof n.connector_name=="string");return e.length>0?e:null}function mAe(t){try{return JH(JSON.parse(t))}catch{return null}}function gAe(){const t=window.location.hash.replace(/^#/,"");if(!t)return null;const e=new URLSearchParams(t),n=e.get(fAe),r=e.get(hAe);return!n&&!r?null:{connectors:n?mAe(n):null,ruleId:r||null}}function xAe(){const t="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/",e=window.location.pathname;return t&&e.startsWith(t)?e.slice(t.length)||"/":e}function yAe(t){return/^\/(?![/\\])/.test(t)}function vAe(t){if(!new URLSearchParams(window.location.search).has("code"))return null;const e=xAe().replace(/\/+$/,"")||"/";return yAe(e)?t&&pAe.includes(e)?`${e}/${encodeURIComponent(t)}/edit`:e:null}function TT(t){try{sessionStorage.setItem(OT,JSON.stringify(t))}catch{}}function bAe(){try{const t=sessionStorage.getItem(OT);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const{connectors:n,ruleId:r,route:a,merchantId:s}=e;return{connectors:JH(n),ruleId:typeof r=="string"&&r?r:null,route:typeof a=="string"&&a?a:null,merchantId:typeof s=="string"&&s?s:null}}catch{return null}}function wAe(){const t=bAe(),e=gAe(),n=(e==null?void 0:e.connectors)??(t==null?void 0:t.connectors)??null,r=(e==null?void 0:e.ruleId)??(t==null?void 0:t.ruleId)??null,a=vAe(r)??(t==null?void 0:t.route)??null;if(!n&&!r&&!a)return null;const s={connectors:n,ruleId:r,route:a,merchantId:(t==null?void 0:t.merchantId)??null};return TT(s),s}let Qa=wAe();function ZH(){return Qa?Qa.merchantId?Qa.merchantId===Er.getState().merchantId:!0:!1}function kAe(){return ZH()?(Qa==null?void 0:Qa.connectors)??null:null}function jAe(t){!Qa||!t||(Qa.merchantId=t,TT(Qa))}function SAe(){Qa=null;try{sessionStorage.removeItem(OT)}catch{}}function QH(){if(!ZH()||!(Qa!=null&&Qa.route))return null;const{route:t}=Qa;return Qa.route=null,TT(Qa),t}function PT(t,e){return t!=null&&t.permissions?t.permissions.includes(e):!0}function Ro(){return xr(t=>PT(t.user,"routing:write"))}const xr=RH()(DH(t=>({token:null,user:null,merchants:[],hasHydrated:!1,setAuth:(e,n,r=[])=>{Ad.set(e),t({token:e,user:n,merchants:r})},updateMerchant:(e,n,r)=>{Ad.set(e),t(a=>({token:e,merchants:r,user:a.user?{...a.user,merchantId:n}:null}))},clearAuth:()=>{Ad.set(null),t({token:null,user:null,merchants:[]}),SAe()},setHasHydrated:e=>t({hasHydrated:e})}),{name:"auth-store",onRehydrateStorage:()=>t=>{t!=null&&t.token&&Ad.set(t.token),t==null||t.setHasHydrated(!0)}})),_Ae=Object.freeze(Object.defineProperty({__proto__:null,sessionAllows:PT,useAuthStore:xr,useCanEditRouting:Ro},Symbol.toStringTag,{value:"Module"})),eG={SR_SELECTION_V3_ROUTING:"bg-blue-100 text-blue-800",SR_SELECTION_MULTI_OBJECTIVE:"bg-cyan-100 text-cyan-800",PRIORITY_LOGIC:"bg-purple-100 text-purple-800",NTW_BASED_ROUTING:"bg-green-100 text-green-800",SR_SELECTION_V3_ROUTING_WITH_HEDGING:"bg-orange-100 text-orange-800",HEDGING:"bg-orange-100 text-orange-800"},NAe=["card","card_redirect","pay_later","wallet","bank_redirect","bank_transfer","crypto","bank_debit","reward","real_time_payment","upi","voucher","gift_card","open_banking","mobile_payment","network_token"],CAe={card:["credit","debit","card"],bank_debit:["ach","sepa","bacs","becs","eft_debit_order","sepa_guarenteed_debit"],bank_transfer:["ach","sepa","sepa_bank_transfer","bacs","multibanco","pix","pse","permata_bank_transfer","bca_bank_transfer","bni_va","bri_va","cimb_va","danamon_va","mandiri_va","local_bank_transfer","instant_bank_transfer","pix_key","pix_emv","pix_qr","pix_automatico_push","pix_automatico_qr","payshap","payshap_proxy","instant_bank_transfer_finland","instant_bank_transfer_poland","indonesian_bank_transfer"],wallet:["amazon_pay","apple_pay","google_pay","paypal","ali_pay","ali_pay_hk","dana","mb_way","mobile_pay","samsung_pay","twint","vipps","touch_n_go","swish","we_chat_pay","go_pay","gcash","momo","kakao_pay","cashapp","mifinity","paze","bluecode","skrill","paysera","venmo","revolut_pay"],pay_later:["affirm","alma","afterpay_clearpay","klarna","pay_bright","atome","walley","flexiti","breadpay","payjustnow"],upi:["upi_collect","upi_intent","upi_qr"],voucher:["boleto","efecty","pago_efectivo","red_compra","red_pagos","indomaret","alfamart","oxxo","seven_eleven","lawson","mini_stop","family_mart","seicomart","pay_easy"],bank_redirect:["giropay","ideal","sofort","eft","eps","bancontact_card","blik","local_bank_redirect","online_banking_thailand","online_banking_czech_republic","online_banking_finland","online_banking_fpx","online_banking_poland","online_banking_slovakia","przelewy24","trustly","bizum","interac","open_banking_uk","open_banking_pis","open_banking"],gift_card:["givex","pay_safe_card","bhn_card_network"],card_redirect:["knet","benefit","momo_atm","card_redirect"],real_time_payment:["fps","duit_now","prompt_pay","viet_qr","qris"],crypto:["crypto_currency"],reward:["evoucher","classic_reward"],open_banking:["open_banking_pis"],mobile_payment:["direct_carrier_billing"]};function EAe(t){var r;if(!t)return[];const e=a=>{if(!a||typeof a!="object")return{};const s=a.keys;return s&&typeof s=="object"?s:a},n={...e(t.keys),...e((r=t.routing_config)==null?void 0:r.keys)};return Object.keys(n).length===0?[]:Object.entries(n).map(([a,s])=>{const o=(s.type||s.data_type||"str_value").toString().toLowerCase(),l={key:a,type:o};return s.values&&(l.values=Array.isArray(s.values)?s.values.map(c=>c.trim()):s.values.split(",").map(c=>c.trim())),s.min_value!==void 0&&(l.min_value=s.min_value),s.max_value!==void 0&&(l.max_value=s.max_value),s.min_length!==void 0&&(l.min_length=s.min_length),s.max_length!==void 0&&(l.max_length=s.max_length),s.exact_length!==void 0&&(l.exact_length=s.exact_length),s.regex&&(l.regex=s.regex),l})}function MT(){const{data:t,error:e,isLoading:n}=ut("/config/routing-keys",Lt,{refreshInterval:0,revalidateOnFocus:!1}),r=g.useMemo(()=>EAe(t||null),[t]),a=g.useMemo(()=>r.reduce((o,l)=>(o[l.key]=l,o),{}),[r]),s=g.useMemo(()=>{const o={};return r.forEach(l=>{o[l.key]={type:l.type,values:l.values||[]}}),o},[r]);return{config:t,keys:r,keysByName:a,routingKeysConfig:s,isLoading:n,error:e,getKeyValues:o=>{var l;return((l=a[o])==null?void 0:l.values)||[]},isIntegerKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="integer"},isEnumKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="enum"}}}function Iy(t){const e=t?`/merchant-account/${t}/debit-routing`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:3e5});async function o(l){if(!t||!e)throw new Error("Set a merchant ID first");const c=await Ve(e,{enabled:l});return await s(c,!1),c}return{data:n,error:r,isLoading:a,isEnabled:!!(n!=null&&n.debit_routing_enabled),mutate:s,setDebitRoutingEnabled:o}}const tG=["SR_BASED_ROUTING","SR_MULTI_OBJECTIVE"],AAe={SR_BASED_ROUTING:"Success Rate Based",SR_MULTI_OBJECTIVE:"Success Rate Based + Multi-Objective"},n_="USD",NL=["CREDIT"],CL=["STANDARD","PREMIUM"],EL=["VISA","MASTERCARD"],AL=[{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"PREMIUM"}],OL={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{...Tu}},OAe={stripe:94,adyen:93};function r_(t){return{...OL,successRate:OAe[t.trim().toLowerCase()]??OL.successRate,errorInfo:{...Tu}}}function nG(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function TAe(t,e,n){return nG(t/1e4*e,n)}function PAe(t){for(const[e,n]of Object.entries(eG))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Yf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],Xf=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],rG="decision-explorer-state-v2",aG=10*60*1e3,sG={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_BASED_ROUTING"},MAe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},RAe={totalPayments:"10"},DAe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],IAe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function iG(t){return t.map(e=>({...e}))}function oG(t){return t.map(e=>({...e}))}function $Ae(t){return tG.includes(t)?t:sG.ranking_algorithm}function lG(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function Mh(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...sG},simulationConfig:{...RAe},gatewaySimConfigs:{},errorInfo:{...Tu},debitForm:{...MAe},ruleParams:iG(DAe),fallbackConnectors:oG(IAe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1}}function LAe(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function RT(t){return`${rG}:${encodeURIComponent(t)}`}function FAe(t){return!!(t&&Date.now()-t>aG)}function AA(t){typeof window>"u"||window.localStorage.removeItem(RT(t))}function BAe(t,e){typeof window>"u"||window.localStorage.setItem(RT(t),JSON.stringify(e))}function TL(t){var e,n,r,a;if(typeof window>"u")return Mh();try{const s=window.localStorage.getItem(RT(t))||window.localStorage.getItem(rG);if(!s)return{...Mh(),scopeKey:t};const o=JSON.parse(s),l=Mh();return o.scopeKey!==t||FAe(o.resultDataUpdatedAtMs)?(AA(t),{...l,scopeKey:t}):{...l,...o,scopeKey:t,resultDataUpdatedAtMs:o.resultDataUpdatedAtMs||null,activeTab:o.activeTab&&o.activeTab!=="single"?o.activeTab:l.activeTab,form:{...l.form,...o.form||{},ranking_algorithm:$Ae((e=o.form)==null?void 0:e.ranking_algorithm)},simulationConfig:{...l.simulationConfig,...o.simulationConfig||{}},gatewaySimConfigs:o.gatewaySimConfigs||l.gatewaySimConfigs,errorInfo:{...l.errorInfo,...o.errorInfo||{}},debitForm:{...l.debitForm,...o.debitForm||{},card_type:lG((n=o.debitForm)==null?void 0:n.card_type)},ruleParams:(r=o.ruleParams)!=null&&r.length?iG(o.ruleParams):l.ruleParams,fallbackConnectors:(a=o.fallbackConnectors)!=null&&a.length?oG(o.fallbackConnectors):l.fallbackConnectors,volumeDistribution:o.volumeDistribution||l.volumeDistribution,volumeEvaluationLog:o.volumeEvaluationLog||l.volumeEvaluationLog,simulationResults:o.simulationResults||l.simulationResults}}catch{return{...Mh(),scopeKey:t}}}function Kg(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function a_(t=[]){return Array.from(new Set(Kg(t)))}function kg(t){return t.replace(/_/g," ").toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function zAe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function s_(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function cG(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Yg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Oi(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function Xg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Oi(t):"Unknown route"}function PL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Oi(t):"Unknown event"}function DT(t){return t.flow_type||""}function Jg(t){const e=DT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Oi(t.event_stage||e)}function OA(t){const e=DT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function ab(t){const e=DT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function ML(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function RL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function UAe(t){return OH(t)===404}function jg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function i_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function uG(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function VAe(t){return`/analytics/payment-audit?${cG({range:"1d",page:1,page_size:25,payment_id:t})}`}function WAe(t){return`/analytics/preview-trace?${cG({range:"1d",page:1,page_size:25,payment_id:t})}`}function DL(t){if(!t)return null;const e=jg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??i_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??i_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=jg(n)?n:null,o=jg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:OA(t)},{label:"Stage",value:Jg(t)},{label:"Route",value:Xg(t.route)},{label:"Timestamp",value:Yg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Oi(t.status)}]:[]],d=i_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:jg(r)&&!Object.keys(r).length?null:r,responsePayload:jg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function IL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function sb(t){return t?"border-slate-300 bg-white text-slate-950 shadow-sm dark:border-[#3b82f6]/45 dark:bg-[#182131] dark:text-white":"border-transparent text-slate-500 hover:border-slate-200 hover:bg-white/70 hover:text-slate-900 dark:text-[#8d9ab2] dark:hover:border-[#2a303a] dark:hover:bg-[#151b24] dark:hover:text-white"}function HAe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function GAe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Zg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function o_({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function $L({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function zl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:uG(e)}):i.jsx(Zg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function qAe(){var sd,lv,cv,uv,dv,Xm,Jm,fv,hv,pv,Zm,mv,gv;const t=Kr(),{merchantId:e}=Er(),n=xr(T=>T.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=LAe((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Al(a||void 0).isEnabled("gsm-scoring-filter"),c=Iy(a),{routingKeysConfig:u,isLoading:d,error:f}=MT(),h=Object.keys(u).length>0,p=!d&&(!h||!!f),m=g.useMemo(()=>TL(s),[s]),[x,y]=g.useState(m.activeTab),[b,v]=g.useState(m.scopeKey||s),[w,j]=g.useState(m.resultDataUpdatedAtMs),[k,_]=g.useState(m.form),[S,N]=g.useState(m.simulationConfig),[E,P]=g.useState(m.errorInfo),[M,A]=g.useState(m.gatewaySimConfigs),O=g.useRef(M);g.useEffect(()=>{O.current=M},[M]);const D=Object.values(M).some(T=>T.failureMode==="timeout"),I=g.useRef(!1);g.useEffect(()=>()=>{I.current=!0},[]);const[X,Q]=g.useState(m.debitForm),[V,Y]=g.useState(0),[H,G]=g.useState(m.ruleParams),[$,F]=g.useState(m.fallbackConnectors),[R,z]=g.useState(m.volumePayments),[U,ee]=g.useState(m.result),[pe,re]=g.useState(m.debitResult),[he,q]=g.useState(m.debitPaymentId),[W,ue]=g.useState(m.singleRunPaymentId),[te,ie]=g.useState(m.singleRunOutcome),[me,ve]=g.useState(m.ruleResult),[Ne,je]=g.useState(m.volumeDistribution),[Me,Be]=g.useState(m.volumeEvaluationLog),[tt,B]=g.useState(m.volumeProgress),[se,de]=g.useState(m.simulationResults),[Ce,fe]=g.useState(!1),[be,we]=g.useState(m.smartRetryEnabled),[Le,Oe]=g.useState(null),[He,vt]=g.useState(""),[bt,Bt]=g.useState(!1),[wt,zt]=g.useState(new Set),Ut=T=>zt(K=>{const ce=new Set(K);return ce.has(T)?ce.delete(T):ce.add(T),ce}),Un=g.useRef(null),Vt=g.useRef(null),[Kt,dt]=g.useState(null),[le,Ie]=g.useState(!1),[Ge,nt]=g.useState(!1),[Nt,ge]=g.useState(m.responseOpen),[st,pt]=g.useState(m.debitResponseOpen),[Ht,gn]=g.useState(m.volumeResponseOpen),[sn,xn]=g.useState(null),[_a,Dn]=g.useState(null),[ua,or]=g.useState("summary"),[da,bi]=g.useState(null),[is,fa]=g.useState(null),[no,wr]=g.useState("summary"),[Cc,Ua]=g.useState("Rule Evaluation Decision"),kr=g.useDeferredValue(se),[td,Pf]=g.useState(!1),$o=g.useMemo(()=>Object.keys(u).sort(),[u]),Mt=g.useMemo(()=>{var T;return Kg(((T=u.payment_method)==null?void 0:T.values)||[])},[u]),nd=g.useMemo(()=>{var K;const T=k.payment_method_type.toLowerCase();return Kg(((K=u[T])==null?void 0:K.values)||[])},[k.payment_method_type,u]),Ar=g.useMemo(()=>{var T;return a_(((T=u.currency)==null?void 0:T.values)||[])},[u]),dn=g.useMemo(()=>{var T;return a_(((T=u.card_network)==null?void 0:T.values)||[])},[u]),In=g.useMemo(()=>{var T;return a_(((T=u.authentication_type)==null?void 0:T.values)||[])},[u]),Yr=sn?VAe(sn):null,Or=ut(Yr,Lt,{revalidateOnFocus:!1}),Ec=da?WAe(da):null,ae=ut(Ec,Lt,{revalidateOnFocus:!1}),{data:Se}=ut("/gsm/options",Lt,{revalidateOnFocus:!1,dedupingInterval:3e5}),Ae=(Se==null?void 0:Se.rules)??[],{data:qe}=ut(a?["rule-elimination",a]:null,()=>Ve("/rule/get",{merchant_id:a,algorithm:"elimination"}).catch(()=>null),{revalidateOnFocus:!1,dedupingInterval:6e4}),rt=((lv=(sd=qe==null?void 0:qe.config)==null?void 0:sd.data)==null?void 0:lv.threshold)!=null;g.useEffect(()=>{p||d||(_(T=>{var Ke;const K={...T};let ce=!1;Ar.length>0&&!Ar.includes(K.currency)&&(K.currency=Ar[0],ce=!0),Mt.length>0&&!Mt.includes(K.payment_method_type)&&(K.payment_method_type=Mt[0],ce=!0);const ye=Kg(((Ke=u[K.payment_method_type.toLowerCase()])==null?void 0:Ke.values)||[]);return ye.length>0&&!ye.includes(K.payment_method)&&(K.payment_method=ye[0],ce=!0),In.length>0&&!In.includes(K.auth_type)&&(K.auth_type=In[0],ce=!0),dn.length>0&&!dn.includes(K.card_brand)&&(K.card_brand=dn[0],ce=!0),ce?K:T}),G(T=>{let K=!1;const ce=T.map(ye=>{if(!ye.key||!u[ye.key])return ye;const Ke=u[ye.key],yt=s_(Ke.type),De=Ke.values||[],At=yt==="enum_variant"?De.includes(ye.value)?ye.value:De[0]||"":ye.value;return ye.type!==yt||ye.value!==At?(K=!0,{...ye,type:yt,value:At}):ye});return K?ce:T}))},[p,d,u,Ar,Mt,In,dn]),g.useEffect(()=>{k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&_(T=>{if(T.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return T;const K={...T};let ce=!1;K.currency!==n_&&(K.currency=n_,ce=!0);const ye=Mt.find(Ke=>Ke==="CARD")||"CARD";if(K.payment_method_type!==ye&&(K.payment_method_type=ye,ce=!0),NL.includes(K.payment_method)||(K.payment_method="CREDIT",ce=!0),!EL.includes(K.card_brand)){const Ke=dn.find(yt=>yt==="VISA")||dn.find(yt=>yt==="MASTERCARD")||dn[0]||"VISA";K.card_brand=Ke,ce=!0}return CL.includes(K.card_program)||(K.card_program="STANDARD",ce=!0),ce?K:T})},[k.ranking_algorithm,Mt,dn]),g.useEffect(()=>{if(!sn&&!da&&!Kt)return;const T=document.body.style.overflow,K=ce=>{ce.key==="Escape"&&(xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),dt(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",K),()=>{document.body.style.overflow=T,window.removeEventListener("keydown",K)}},[sn,da,Kt]);function at(){const T=Mh();ee(T.result),re(T.debitResult),q(T.debitPaymentId),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),de(T.simulationResults),ge(T.responseOpen),pt(T.debitResponseOpen),gn(T.volumeResponseOpen),xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),Ua("Rule Evaluation Decision"),j(null),Oe(null),dt(null),Ie(!1),I.current=!0,fe(!1)}function Et(){j(Date.now())}function yn(T,K){y(T.activeTab),v(T.scopeKey||K),j(T.resultDataUpdatedAtMs),_(T.form),N(T.simulationConfig),A(T.gatewaySimConfigs),P(T.errorInfo),Q(T.debitForm),G(T.ruleParams),F(T.fallbackConnectors),z(T.volumePayments),ee(T.result),re(T.debitResult),q(T.debitPaymentId),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),de(T.simulationResults),ge(T.responseOpen),pt(T.debitResponseOpen),gn(T.volumeResponseOpen),xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),Ua("Rule Evaluation Decision"),nt(!1),Oe(null),dt(null),Ie(!1),I.current=!0,fe(!1)}g.useEffect(()=>{b!==s&&yn(TL(s),s)},[s,b]),g.useEffect(()=>{if(!w)return;const T=b||s,K=aG-(Date.now()-w);if(K<=0){at(),AA(T);return}const ce=window.setTimeout(()=>{at(),AA(T)},K);return()=>window.clearTimeout(ce)},[s,w,b]),g.useEffect(()=>{if(b!==s||Ce||le)return;BAe(s,{scopeKey:s,resultDataUpdatedAtMs:w,activeTab:x,form:k,simulationConfig:S,gatewaySimConfigs:M,errorInfo:E,debitForm:X,ruleParams:H,fallbackConnectors:$,volumePayments:R,result:U,debitResult:pe,debitPaymentId:he,singleRunPaymentId:W,singleRunOutcome:te,ruleResult:me,volumeDistribution:Ne,volumeEvaluationLog:Me,volumeProgress:tt,simulationResults:se,responseOpen:Nt,debitResponseOpen:st,volumeResponseOpen:Ht,smartRetryEnabled:be})},[s,b,Ce,le,w,x,k,S,M,E,X,H,$,R,U,pe,he,W,te,me,Ne,Me,tt,se,Nt,st,Ht,be]);function $n(T,K){_(ce=>({...ce,[T]:K}))}function Sn(T,K){Q(ce=>({...ce,[T]:K}))}function ha(T){P(K=>({...K,...T}))}function lr(T){return O.current[T]??r_(T)}function Na(T){return lr(T).successRate}function ws(T){return lr(T).failureMode}function Mf(T,K){A(ce=>({...ce,[T]:{...lr(T),...ce[T],successRate:K}}))}function ks(T,K){A(ce=>({...ce,[T]:{...lr(T),...ce[T],failureMode:K}}))}function Lo(T,K,ce){const yt=ce?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return Ae.find(De=>De.connector===T&&(De.subFlow==="Authorize"||De.flow==="Authorize")&&De.decision===K&&De.unifiedMessage!=null&&yt.has(De.unifiedMessage)&&!!De.errorCode&&De.errorCode.toLowerCase()!=="no error code")}function cr(T,K,ce){const ye=Lo(T,K,ce);return ye?{error_code:ye.errorCode,error_message:ye.errorMessage,issuer_error_code:"",card_network:""}:{...Tu}}function Zs(T,K){A(ce=>{const ye=lr(T);return{...ce,[T]:{...ye,...ce[T],penalized:K,errorInfo:cr(T,(ce[T]??ye).gsmDecision,K)}}})}function Rf(T,K){A(ce=>{const ye=lr(T),Ke=ce[T]??ye,yt={...Ke.errorInfo,...K};let De=Ke.gsmDecision,At=Ke.penalized;if(K.error_code){const Tt=Ae.find(Yt=>Yt.connector===T&&Yt.errorCode===K.error_code&&(Yt.subFlow==="Authorize"||Yt.flow==="Authorize"))??Ae.find(Yt=>Yt.connector===T&&Yt.errorCode===K.error_code);((Tt==null?void 0:Tt.decision)==="retry"||(Tt==null?void 0:Tt.decision)==="do_default")&&(De=Tt.decision);const vn=AT(Tt==null?void 0:Tt.unifiedMessage);vn!==null&&(At=vn)}return{...ce,[T]:{...ye,...Ke,errorInfo:yt,gsmDecision:De,penalized:At}}})}function An(T,K){return Ae.find(ce=>ce.connector===T&&ce.errorCode===K&&ce.subFlow==="Authorize")??Ae.find(ce=>ce.connector===T&&ce.errorCode===K&&ce.flow==="Authorize")??Ae.find(ce=>ce.connector===T&&ce.errorCode===K)}function Fo(T){if(!T)return;const K=lr(T).errorInfo;if(!K.error_code)return;const ce=An(T,K.error_code);return{connector:T,...(ce==null?void 0:ce.flow)&&{flow:ce.flow},...(ce==null?void 0:ce.subFlow)&&{subFlow:ce.subFlow},errorCode:K.error_code,...K.error_message&&{errorMessage:K.error_message},...K.issuer_error_code&&{issuerErrorCode:K.issuer_error_code},...K.card_network&&{cardNetwork:K.card_network}}}function Df(T,K=E){if(!T||!K.error_code)return;const ce=An(T,K.error_code);return{connector:T,...(ce==null?void 0:ce.flow)&&{flow:ce.flow},...(ce==null?void 0:ce.subFlow)&&{subFlow:ce.subFlow},errorCode:K.error_code,...K.error_message&&{errorMessage:K.error_message},...K.issuer_error_code&&{issuerErrorCode:K.issuer_error_code},...K.card_network&&{cardNetwork:K.card_network}}}function Ml(T,K){Oe(null),dt(GAe(T,K))}function Rl(T,K,ce="Request failed"){const ye=T instanceof Error?T.message:ce;if(HAe(ye)){Ml(K,ye);return}Oe(ye)}function Ac(){const T=X.co_badged_networks.split(",").map(K=>K.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:X.merchant_category_code.trim(),acquirer_country:X.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:T,issuer_country:X.issuer_country.trim().toUpperCase(),is_regulated:X.is_regulated,regulated_name:X.is_regulated&&X.regulated_name.trim()?X.regulated_name.trim():null,card_type:lG(X.card_type)}})}function ev(){var Ke;if($o.length===0)return;const T=$o[0],K=u[T],ce=s_(K==null?void 0:K.type),ye=ce==="enum_variant"&&((Ke=K==null?void 0:K.values)==null?void 0:Ke[0])||"";G([...H,{key:T,type:ce,value:ye,metadataKey:""}])}function Vm(T){G(H.filter((K,ce)=>ce!==T))}function Oc(T,K,ce){G(H.map((ye,Ke)=>Ke===T?{...ye,[K]:ce}:ye))}function tv(T,K){G(H.map((ce,ye)=>ye===T?{...ce,metadataKey:K}:ce))}function Wm(T,K){var yt;const ce=u[K],ye=s_(ce==null?void 0:ce.type),Ke=ye==="enum_variant"&&((yt=ce==null?void 0:ce.values)==null?void 0:yt[0])||"";G(H.map((De,At)=>At===T?{...De,key:K,type:ye,value:Ke,metadataKey:""}:De))}function nv(){F([...$,{gateway_name:"",gateway_id:""}])}function rv(T){F($.filter((K,ce)=>ce!==T))}function av(T,K,ce){F($.map((ye,Ke)=>Ke===T?{...ye,[K]:ce}:ye))}async function Hm(){var ce;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");Ie(!0),Oe(null),dt(null),ue(null);const T=k.eligible_gateways.split(",").map(ye=>ye.trim()).filter(Boolean),K=`explorer_${Date.now()}`;try{const ye=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:K,amount:parseFloat(k.amount)||1e3,currency:k.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,cardSwitchProvider:k.card_brand,cardType:k.payment_method,...k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:k.card_program}},eligibleGatewayList:T,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:D}),Ke=await Ve("/update-gateway-score",{merchantId:a,gateway:ye.decided_gateway,gatewayReferenceId:null,status:te,paymentId:K,enforceDynamicRoutingFailure:null,...te==="FAILURE"&&{errorInfo:Df(ye.decided_gateway)}});if(be&&l&&te==="FAILURE"&&((ce=Ke.gsm_info)==null?void 0:ce.decision)==="retry"&&ye.fallback_gateways.length>0){const yt=ye.fallback_gateways[0];await Ve("/update-gateway-score",{merchantId:a,gateway:yt,gatewayReferenceId:null,status:"CHARGED",paymentId:K,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),ee({...ye,decided_gateway:yt}),ue(K)}else ee(ye),ue(K);Et()}catch(ye){Rl(ye,"single")}finally{Ie(!1)}}async function N2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");Ie(!0),Oe(null),dt(null);try{await c.setDebitRoutingEnabled(!0)}catch(T){Rl(T,"debit","Failed to enable debit routing")}finally{Ie(!1)}}async function Qs(){if(!a)return Oe("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ml("debit","Debit routing is disabled.");const T=X.eligible_gateways.split(",").map(ce=>ce.trim()).filter(Boolean);if(T.length===0)return Oe("Add at least one eligible gateway");Ie(!0),Oe(null),dt(null),re(null);const K=`debit_${Date.now()}`;try{const ce=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:K,amount:parseFloat(X.amount)||1e3,currency:X.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:X.auth_type,metadata:Ac()},eligibleGatewayList:T,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});re(ce),q(K),Et()}catch(ce){Rl(ce,"debit")}finally{Ie(!1)}}async function C2(){var At;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");const T=parseInt(S.totalPayments)||0;if(T<=0)return Oe("Total Payments must be greater than 0");fe(!0),Oe(null),dt(null),de([]),I.current=!1;const K=k.eligible_gateways.split(",").map(Tt=>Tt.trim()).filter(Boolean),ce=[],ye=3;let Ke=0,yt=0;const De=k.ranking_algorithm==="SR_MULTI_OBJECTIVE";try{for(let Tt=0;Tt0){_s=ur.fallback_gateways[0];const Ns=Na(_s),jr=Math.random()*100150||Tt===T-1)&&(de([...ce]),Et(),yt=fn)}catch(ur){if(Ke++,Ke>=ye){Rl(ur,"batch",`Simulation stopped after ${ye} consecutive backend errors. Check that the server is running.`);return}await new Promise(Ea=>setTimeout(Ea,1e3));continue}}}finally{de([...ce]),fe(!1)}}async function E2(){if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");Ie(!0),Oe(null),dt(null),ve(null),je([]),Be([]),B(0);const T=`rule_decision_${Date.now()}`;try{const K={};H.forEach(ye=>{ye.key&&(ye.type==="metadata_variant"?K[ye.key]={type:ye.type,value:{key:ye.metadataKey||ye.key,value:ye.value}}:ye.type==="number"?K[ye.key]={type:ye.type,value:parseFloat(ye.value)||0}:ye.value!==""&&(K[ye.key]={type:ye.type,value:ye.value}))});const ce=await Ve("/routing/evaluate",{created_by:a||"test_user",payment_id:T,fallback_output:$.filter(ye=>ye.gateway_name),parameters:K});if(ve(ce),Et(),ce.output.type==="volume_split"&&ce.output.splits){const ye=parseInt(R)||100,Ke=ce.output.splits.map(yt=>({name:yt.connector.gateway_name,count:Math.round(yt.split/100*ye),percentage:yt.split}));je(Ke)}}catch(K){Rl(K,"rule")}finally{Ie(!1)}}async function rd(){if(!a)return Oe("Sign in with a merchant-linked account to continue");Ie(!0),Oe(null),dt(null),ve(null),je([]),Be([]),B(0);const T=parseInt(R)||0;if(T<=0)return Ie(!1),Oe("Total Payments must be greater than 0");try{const ce=`volume_decision_${Date.now()}`,ye=[],Ke=new Map;let yt=null;const De=At=>Array.from(Ke.entries()).map(([Tt,vn])=>({name:Tt,count:vn,percentage:Number((vn/Math.max(1,At)*100).toFixed(1))})).sort((Tt,vn)=>vn.count-Tt.count);for(let At=0;At{const Xt=At+Xr,er=`${ce}_${Xt}`,Tn=await Ve("/routing/evaluate",{created_by:a,payment_id:er,fallback_output:$.filter(Hn=>Hn.gateway_name),parameters:{}});return{paymentId:er,response:Tn}}));for(const{paymentId:Yt,response:Xr}of vn){if(Xr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const Xt=zAe(Xr);if(!Xt)throw new Error("Volume split evaluation did not return a connector.");yt||(yt=Xr,ve(Xr)),Ke.set(Xt,(Ke.get(Xt)||0)+1),ye.push({paymentId:Yt,connector:Xt})}B(ye.length),Be([...ye]),je(De(ye.length)),Et()}}catch(K){Rl(K,"volume")}finally{Ie(!1)}}const js=U!=null&&U.gateway_priority_map?Object.entries(U.gateway_priority_map).sort(([,T],[,K])=>K-T).map(([T,K])=>({name:T,score:Math.round(K*1e3)/10})):[],wi=parseInt(S.totalPayments)||0,Ca=se.length,Dl=wi>0?Math.round(Ca/wi*100):0,A2=Ce||Ca>0,Vn=g.useMemo(()=>k.eligible_gateways.split(",").map(T=>T.trim().toLowerCase()).filter(Boolean),[k.eligible_gateways]),If=g.useMemo(()=>Object.fromEntries(Vn.map((T,K)=>[T,Xf[K%Xf.length]])),[Vn]);g.useEffect(()=>{Ae.length===0||Vn.length===0||A(T=>{var ye,Ke;let K=!1;const ce={...T};for(const yt of Vn){if((Ke=(ye=T[yt])==null?void 0:ye.errorInfo)!=null&&Ke.error_code)continue;const De=T[yt]??r_(yt),At=Lo(yt,De.gsmDecision,De.penalized);At&&(ce[yt]={...De,errorInfo:{error_code:At.errorCode,error_message:At.errorMessage,issuer_error_code:"",card_network:""}},K=!0)}return K?ce:T})},[Ae,Vn]);const Wn=g.useMemo(()=>kr.reduce((T,K)=>(T[K.decidedGateway]||(T[K.decidedGateway]={total:0,success:0,failure:0}),T[K.decidedGateway].total++,K.status==="CHARGED"?T[K.decidedGateway].success++:T[K.decidedGateway].failure++,T),{}),[kr]),ad=g.useMemo(()=>{var Xt;const T=kr,K={series:{},paymentNums:[],yMin:0,yMax:100};if(T.length<2)return K;const ye=Math.max(1,Math.floor(T.length/200)),Ke=Object.keys(Wn),yt={},De={};Ke.forEach(er=>{De[er]=[]});const At=[];for(let er=0;er0&&(Tnvn&&(vn=Tn));Tt>vn&&(Tt=0,vn=100);const Yt=Math.max(0,Tt-5),Xr=Math.min(100,vn+5);return{series:De,paymentNums:At,yMin:Yt,yMax:Xr}},[kr,Wn]),ro=g.useMemo(()=>kr.filter(T=>{var K;return(K=T.routingApproach)==null?void 0:K.includes("HEDGING")}).length,[kr]),Il=g.useMemo(()=>{const T=kr.filter(ce=>ce.retryGateway!==void 0).length,K=kr.filter(ce=>ce.retryStatus==="CHARGED").length;return{triggered:T,recovered:K}},[kr]),ao=g.useMemo(()=>{let T=0,K="";for(const ce of kr)ce.costWon&&ce.costSavedBps!=null&&ce.costSavedBps>0&&ce.status==="CHARGED"&&(T+=ce.costSavedBps/1e4*ce.amount,K=ce.currency);return{value:T,currency:K}},[kr]),O2=((cv=pe==null?void 0:pe.debit_routing_output)==null?void 0:cv.co_badged_card_networks_info)||[],Gm=g.useMemo(()=>new Map(Ne.map((T,K)=>[T.name,K])),[Ne]),sv=g.useMemo(()=>Object.entries(Wn).sort((T,K)=>K[1].total-T[1].total),[Wn]),ei=g.useMemo(()=>Object.values(Wn).reduce((T,K)=>T+K.total,0),[Wn]),$f=g.useMemo(()=>[...Ne].sort((T,K)=>K.count-T.count),[Ne]),$l=$f[0],Lf=Me.length,Tc=Number.parseInt(R,10)||0,qm=Tc>0?Math.min(100,Math.round(tt/Tc*100)):0,Va=g.useMemo(()=>{var K;const T=((K=Or.data)==null?void 0:K.results)||[];return T.find(ce=>ce.payment_id===sn)||T[0]||null},[(uv=Or.data)==null?void 0:uv.results,sn]),On=g.useMemo(()=>{var K;const T=((K=Or.data)==null?void 0:K.timeline)||[];return T.find(ce=>ce.id===_a)||T[0]||null},[(dv=Or.data)==null?void 0:dv.timeline,_a]);g.useEffect(()=>{var K,ce;if(On!=null&&On.id){Dn(On.id);return}const T=(ce=(K=Or.data)==null?void 0:K.timeline)==null?void 0:ce[0];T!=null&&T.id&&Dn(T.id)},[(Xm=Or.data)==null?void 0:Xm.timeline,On==null?void 0:On.id]);const Ff=g.useMemo(()=>{var K;const T=[];for(const ce of((K=Or.data)==null?void 0:K.timeline)||[]){const ye=OA(ce),Ke=T[T.length-1];!Ke||Ke.phase!==ye?T.push({phase:ye,events:[ce]}):Ke.events.push(ce)}return T},[(Jm=Or.data)==null?void 0:Jm.timeline]),ki=g.useMemo(()=>DL(On),[On]),Fr=g.useMemo(()=>{var K;const T=((K=ae.data)==null?void 0:K.results)||[];return T.find(ce=>ce.payment_id===da)||T[0]||null},[(fv=ae.data)==null?void 0:fv.results,da]),_n=g.useMemo(()=>{var K;const T=((K=ae.data)==null?void 0:K.timeline)||[];return T.find(ce=>ce.id===is)||T[0]||null},[(hv=ae.data)==null?void 0:hv.timeline,is]);g.useEffect(()=>{var K,ce;if(_n!=null&&_n.id){fa(_n.id);return}const T=(ce=(K=ae.data)==null?void 0:K.timeline)==null?void 0:ce[0];T!=null&&T.id&&fa(T.id)},[(pv=ae.data)==null?void 0:pv.timeline,_n==null?void 0:_n.id]);const iv=g.useMemo(()=>{var K;const T=[];for(const ce of((K=ae.data)==null?void 0:K.timeline)||[]){const ye=OA(ce),Ke=T[T.length-1];!Ke||Ke.phase!==ye?T.push({phase:ye,events:[ce]}):Ke.events.push(ce)}return T},[(Zm=ae.data)==null?void 0:Zm.timeline]),Ll=g.useMemo(()=>DL(_n),[_n]);g.useEffect(()=>{const T=Vt.current;T&&(T.scrollTop=T.scrollHeight)},[kr.length]);function Km(T){bi(null),fa(null),wr("summary"),xn(T),Dn(null),or("summary")}function Ym(){xn(null),Dn(null),or("summary")}function ji(T,K){xn(null),Dn(null),or("summary"),Ua(K),bi(T),fa(null),wr("summary")}function ov(){bi(null),fa(null),wr("summary")}function T2(){const T=Mh();function K(ce){var yt;const ye={...ce};Ar.length>0&&!Ar.includes(ye.currency)&&(ye.currency=Ar[0]),Mt.length>0&&!Mt.includes(ye.payment_method_type)&&(ye.payment_method_type=Mt[0]);const Ke=Kg(((yt=u[ye.payment_method_type.toLowerCase()])==null?void 0:yt.values)||[]);return Ke.length>0&&!Ke.includes(ye.payment_method)&&(ye.payment_method=Ke[0]),In.length>0&&!In.includes(ye.auth_type)&&(ye.auth_type=In[0]),dn.length>0&&!dn.includes(ye.card_brand)&&(ye.card_brand=dn[0]),ye}x==="single"?(_(K(T.form)),ee(T.result),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ge(T.responseOpen)):x==="batch"?(_(K(T.form)),N(T.simulationConfig),A({}),de(T.simulationResults),fe(!1)):x==="rule"?Y(ce=>ce+1):x==="volume"?(z(T.volumePayments),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),gn(T.volumeResponseOpen),bi(null),fa(null),wr("summary"),Ua("Volume Split Decision")):x==="debit"&&(Q(T.debitForm),re(T.debitResult),q(T.debitPaymentId),pt(T.debitResponseOpen),xn(null),Dn(null),or("summary")),Oe(null),dt(null),Ie(!1),nt(!1),xn(null),Dn(null),or("summary")}const P2=x==="batch"?"Reset Auth-Rate Based Routing":x==="rule"?"Reset Rule Based Routing":x==="volume"?"Reset Volume Based Routing":"Reset Debit Routing";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx(an,{children:"Simulation console"}),i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[i.jsx(qr,{title:"Decision Explorer"}),i.jsx(Pe,{variant:"blue",children:a||"No merchant"})]})]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:T2,children:[i.jsx(As,{size:14}),P2]})]}),i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50/80 p-1 dark:border-[#242b36] dark:bg-[#0c1118]",children:i.jsxs("div",{className:"grid gap-1 sm:grid-cols-2 xl:grid-cols-4",children:[i.jsxs("button",{onClick:()=>{I.current=!0,y("batch")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="batch")}`,children:[i.jsx("span",{className:"block",children:"Auth-rate"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Score simulation"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("rule")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="rule")}`,children:[i.jsx("span",{className:"block",children:"Rule based"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Policy evaluator"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("volume")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="volume")}`,children:[i.jsx("span",{className:"block",children:"Volume split"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Distribution run"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("debit")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="debit")}`,children:[i.jsx("span",{className:"block",children:"Debit routing"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Network decision"})]})]})}),x==="rule"&&i.jsx(YH,{merchantId:a,routingKeysConfig:u,routingConfigUnavailable:p,routingKeysLoading:d,resetSignal:V,onRunComplete:Et,onOpenTrace:ji}),i.jsxs("div",{className:x==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:x==="rule"?{display:"none"}:void 0,children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:x==="rule"?"Rule Evaluation":x==="volume"?"Volume Split":x==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:x==="rule"?"Rule Evaluation Parameters":x==="volume"?"Volume Split Configuration":x==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),x!=="volume"&&x!=="debit"&&d&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),x!=="volume"&&x!=="debit"&&p&&i.jsx(_t,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),x==="rule"?i.jsxs(i.Fragment,{children:[d&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),p&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:H.map((T,K)=>{var ce;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:T.key,onChange:ye=>Wm(K,ye.target.value),disabled:p||d,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:$o.length===0?i.jsx("option",{value:"",children:"No keys available"}):$o.map(ye=>i.jsx("option",{value:ye,children:ye},ye))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),T.type==="enum_variant"?i.jsx("select",{value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((ce=u[T.key])==null?void 0:ce.values)||[]).map(ye=>i.jsx("option",{value:ye,children:ye},ye))}):T.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):T.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>Vm(K),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),T.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:T.metadataKey||"",onChange:ye=>tv(K,ye.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},K)})}),i.jsxs("button",{onClick:ev,disabled:p||d||$o.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:$.map((T,K)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:K+1}),i.jsx("input",{placeholder:"gateway name",value:T.gateway_name,onChange:ce=>av(K,"gateway_name",ce.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:T.gateway_id||"",onChange:ce=>av(K,"gateway_id",ce.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>rv(K),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},K))}),i.jsxs("button",{onClick:nv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):x==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(mt,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx(Fa,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx(Fa,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:N2,disabled:!a||le,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:X.amount,onChange:T=>Sn("amount",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:X.currency,onChange:T=>Sn("currency",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:X.auth_type,onChange:T=>Sn("auth_type",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:X.card_type,onChange:T=>Sn("card_type",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:X.eligible_gateways,onChange:T=>Sn("eligible_gateways",T.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:X.merchant_category_code,onChange:T=>Sn("merchant_category_code",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:X.acquirer_country,onChange:T=>Sn("acquirer_country",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:X.co_badged_networks,onChange:T=>Sn("co_badged_networks",T.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:X.issuer_country,onChange:T=>Sn("issuer_country",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:X.is_regulated,onChange:T=>Sn("is_regulated",T.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),X.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:X.regulated_name,onChange:T=>Sn("regulated_name",T.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):x==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:R,onChange:T=>z(T.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(ke,{onClick:rd,disabled:le||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(cf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Tc||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:le?tt:Lf||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${le?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${le?qm:Lf&&Tc?Math.min(100,Math.round(Lf/Tc*100)):0}%`}})}),le&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[qm,"%"]})]})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"space-y-2",children:[(()=>{const T=k.ranking_algorithm==="SR_MULTI_OBJECTIVE",K=T?Mt.includes("CARD")?["CARD"]:["CARD",...Mt]:Mt,ce=T?[...NL]:nd,ye=T?[n_]:Ar,Ke=T?[...EL]:dn,yt=[{label:"Amount",content:i.jsx("input",{value:k.amount,onChange:De=>$n("amount",De.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500"})},{label:"Currency",content:i.jsx("select",{value:k.currency,onChange:De=>$n("currency",De.target.value),disabled:p||d||T,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:ye.map(De=>i.jsx("option",{value:De,children:De},De))})},{label:"Method Type",content:i.jsx("select",{value:k.payment_method_type,onChange:De=>$n("payment_method_type",De.target.value),disabled:p||d||T,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:K.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Payment Method",content:i.jsx("select",{value:k.payment_method,onChange:De=>$n("payment_method",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:ce.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Card Brand",content:i.jsx("select",{value:k.card_brand,onChange:De=>$n("card_brand",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Ke.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Auth Type",content:i.jsx("select",{value:k.auth_type,onChange:De=>$n("auth_type",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:In.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})}];return T&&yt.push({label:"Card Type",content:i.jsx("select",{value:k.card_program,onChange:De=>$n("card_program",De.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:CL.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})}),i.jsx("div",{className:"grid grid-cols-3 gap-x-3 gap-y-2.5",children:yt.map(({label:De,content:At})=>i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:De}),At]},De))})})(),i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:"Algorithm"}),i.jsx("select",{value:k.ranking_algorithm,onChange:T=>$n("ranking_algorithm",T.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm font-medium text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 cursor-pointer",children:tG.map(T=>i.jsx("option",{value:T,children:AAe[T]},T))})]})]}),x==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:te,onChange:T=>ie(T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),te==="FAILURE"&&i.jsx(EA,{info:E,onChange:ha,rules:Ae})]}),x==="batch"&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] pt-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Xh,{size:13,className:"text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400",children:"Simulation"})]}),i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("label",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Payments"}),i.jsx("input",{type:"number",min:1,max:5e3,value:S.totalPayments,onChange:T=>N({totalPayments:T.target.value}),onBlur:T=>{const K=Math.max(1,Math.min(5e3,parseInt(T.target.value)||1));N({totalPayments:String(K)})},className:"w-24 bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-2 text-sm font-semibold text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"})]})]}),i.jsxs("div",{className:"space-y-2",children:[Vn.map(T=>{var At,Tt,vn,Yt,Xr;const K=((At=M[T])==null?void 0:At.successRate)??r_(T).successRate,ce=((Tt=M[T])==null?void 0:Tt.failureMode)??"decline";(vn=M[T])==null||vn.gsmDecision;const ye=((Yt=M[T])==null?void 0:Yt.penalized)??!0,Ke=wt.has(T),yt=K>=80?"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300":K>=50?"bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300":"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300",De=K>=80?"#10b981":K>=50?"#f59e0b":"#ef4444";return i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0a0a10] overflow-hidden",children:[i.jsxs("div",{role:"button",tabIndex:0,onClick:()=>Ut(T),onKeyDown:Xt=>{(Xt.key==="Enter"||Xt.key===" ")&&(Xt.preventDefault(),Ut(T))},className:"flex items-center gap-2.5 px-3 pt-3 pb-5 cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f18] transition-colors select-none",children:[i.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-lg text-xs font-bold uppercase shrink-0",style:{backgroundColor:`${If[T]??Xf[0]}22`,color:If[T]??Xf[0]},children:T.charAt(0)}),i.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100 capitalize shrink-0 w-16 truncate",children:T}),i.jsxs("div",{className:"relative flex-1 min-w-0 mr-2",children:[i.jsx("input",{type:"range",min:0,max:100,value:K,onChange:Xt=>Mf(T,parseInt(Xt.target.value)),onClick:Xt=>Xt.stopPropagation(),onMouseDown:Xt=>Xt.stopPropagation(),style:{accentColor:De},className:"w-full h-2 cursor-pointer"}),i.jsxs("div",{className:"absolute top-full left-0 right-2 flex justify-between pointer-events-none",children:[i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"0"}),i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"100%"})]})]}),i.jsx(l1,{text:"Simulated success rate for this gateway",children:i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-bold tabular-nums shrink-0 ${yt}`,children:[K,"%"]})}),Th.GSM_RETRY_IN_SIMULATION,i.jsx("button",{type:"button",disabled:Ce,onClick:Xt=>{Xt.stopPropagation();const er=Vn.filter(Tn=>Tn!==T);$n("eligible_gateways",er.join(", ")),zt(Tn=>{const Hn=new Set(Tn);return Hn.delete(T),Hn})},className:"text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400 disabled:opacity-30 disabled:cursor-not-allowed transition-colors shrink-0",children:i.jsx(Hr,{size:13})}),i.jsx(wn,{size:13,className:`text-slate-500 dark:text-slate-400 transition-transform duration-200 shrink-0 ${Ke?"rotate-180":""}`})]}),i.jsx("div",{className:`grid transition-all duration-200 ease-in-out ${Ke?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:i.jsx("div",{className:"overflow-hidden min-h-0",children:i.jsxs("div",{className:"px-4 pb-4 pt-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24]",children:[i.jsxs("div",{className:`grid grid-cols-2 rounded-lg overflow-hidden border text-xs font-semibold ${Ce?"opacity-50 pointer-events-none border-slate-100 dark:border-[#1c1c24]":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsx("button",{type:"button",disabled:Ce,onClick:()=>ks(T,"decline"),className:`py-2 transition-colors ${ce==="decline"?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Decline"}),i.jsx("button",{type:"button",disabled:Ce,onClick:()=>ks(T,"timeout"),className:`py-2 border-l border-slate-200 dark:border-[#222226] transition-colors ${ce==="timeout"?"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Timeout"})]}),ce==="timeout"&&i.jsx("p",{className:`text-xs px-3 py-2 rounded-lg ${rt?"bg-amber-50 text-amber-700 dark:bg-amber-950/30 dark:text-amber-400":"bg-red-50 text-red-600 dark:bg-red-950/30 dark:text-red-400"} max-w-[68ch]`,children:rt?`Removed from routing below ${qe.config.data.threshold} threshold.`:"Elimination not configured. Set it up in SR Routing settings."}),ce==="decline"&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid gap-2 grid-cols-1",children:[Th.GSM_RETRY_IN_SIMULATION,i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Score Impact"}),i.jsxs("select",{value:ye?"penalized":"skipped",onChange:Xt=>Zs(T,Xt.target.value==="penalized"),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"penalized",children:"Penalized"}),i.jsx("option",{value:"skipped",children:"Penalty skipped"})]})]})]}),i.jsx(EA,{info:((Xr=M[T])==null?void 0:Xr.errorInfo)??Tu,onChange:Xt=>Rf(T,Xt),rules:Ae,connector:T,showClassification:!1})]})]})})})]},T)}),bt?i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:Un,type:"text",value:He,onChange:T=>vt(T.target.value),onKeyDown:T=>{if(T.key==="Enter"){const K=He.trim().toLowerCase();K&&!Vn.includes(K)&&($n("eligible_gateways",[...Vn,K].join(", ")),zt(ce=>new Set(ce).add(K))),vt(""),Bt(!1)}T.key==="Escape"&&(vt(""),Bt(!1))},onBlur:()=>{vt(""),Bt(!1)},placeholder:"e.g. stripe",autoFocus:!0,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-brand-300 dark:border-brand-700 rounded-lg px-3 py-2 pr-16 text-sm text-slate-800 dark:text-slate-100 placeholder-slate-500 focus:outline-none focus:border-brand-500"}),i.jsx("kbd",{className:"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-xs text-slate-500 dark:text-slate-500 bg-slate-100 dark:bg-[#1c1c24] border border-slate-200 dark:border-[#2a2a35] px-1.5 py-0.5 rounded font-mono",children:"Enter ↵"})]}),i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Press Enter to add · Esc to cancel"})]}):i.jsxs("button",{type:"button",disabled:Ce,onClick:()=>{Bt(!0),setTimeout(()=>{var T;return(T=Un.current)==null?void 0:T.focus()},0)},className:"w-full rounded-xl border border-dashed border-slate-200 dark:border-[#2a2a3a] flex items-center justify-center gap-2 h-11 text-slate-500 hover:text-brand-600 hover:border-brand-400 dark:hover:text-brand-400 dark:hover:border-brand-600 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",children:[i.jsx(Qn,{size:14}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider",children:"Add connector"})]})]})]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:Le}),x==="rule"?i.jsx(ke,{onClick:E2,disabled:le||p,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})}):x==="debit"?i.jsx(ke,{onClick:Qs,disabled:le||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Oo,{size:14})," Run Debit Routing"]})}):x==="volume"?null:x==="batch"?i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Ce?()=>{I.current=!0}:C2,disabled:!a||p,variant:Ce?"secondary":"primary",className:"w-full justify-center",children:Ce?i.jsxs(i.Fragment,{children:[i.jsx(Hr,{size:14}),"Stop (",se.length,"/",S.totalPayments||0,")"]}):i.jsxs(i.Fragment,{children:[i.jsx(Xh,{size:14})," Run Auth-Rate Simulation"]})})]}):i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Hm,disabled:le||!a||p,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Run Single Transaction"]})})]})]})]}),i.jsx("div",{className:"min-w-0 flex flex-col gap-4",children:x==="debit"?pe?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),he?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Km(he),children:"View audit"}):null]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:pe.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:he})]})]}),pe.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(ze,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:O2.map((T,K)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",K+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:T.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[T.saving_percentage.toFixed(2),"%"]})]},`${T.network}-${K}`))})]})})]})]}):i.jsx(_t,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>pt(!st),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[st?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14}),"Raw response"]}),st&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(pe,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-12 text-center",children:[i.jsx(Oo,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):x==="volume"?Ne.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Lf})," evaluations"]}),$l&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:$l.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[$l.percentage,"%"]})]})]})]})]}),me!=null&&me.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>ji(me.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[$f.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:$f.map(T=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${T.percentage}%`,backgroundColor:Yf[(Gm.get(T.name)??0)%Yf.length]},title:`${T.name}: ${T.percentage}%`},T.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:$f.map(T=>{const K=Yf[(Gm.get(T.name)??0)%Yf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:K}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:T.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[T.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[T.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${T.percentage}%`,backgroundColor:K}})})]},T.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:Me.slice(-200).map((T,K)=>{const ce=Math.max(0,Me.length-200)+K;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>ji(T.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:ce+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:T.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Yf[(Gm.get(T.connector)??0)%Yf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:T.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ye=>{ye.stopPropagation(),ji(T.paymentId,"Volume Split Decision")},children:"Open"})})]},T.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>gn(T=>!T),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API response"]}),Ht?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]}),Ht&&me&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(me,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(cf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):x==="rule"?me?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:me.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",me.output.type]})]}),me.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>ji(me.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),me.output.type==="single"&&me.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:me.output.connector.gateway_name}),me.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",me.output.connector.gateway_id]})]}),me.output.type==="priority"&&me.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:me.output.connectors.map((T,K)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:K+1}),i.jsx("span",{className:"font-medium",children:T.gateway_name}),T.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",T.gateway_id,")"]})]},K))})]}),me.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>ge(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),Nt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Nt&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(me,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):x==="batch"?A2?i.jsxs(i.Fragment,{children:[i.jsxs(Te,{className:"shrink-0",children:[i.jsx(jt,{className:"!py-3",children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Gateway Selection Summary"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[wi>0&&(()=>{const K=2*Math.PI*6,ce=K*(1-Dl/100);return i.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",className:"-rotate-90",children:[i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",className:"stroke-slate-200 dark:stroke-slate-700"}),i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:K,strokeDashoffset:ce,className:"stroke-brand-500 transition-[stroke-dashoffset] duration-300"})]})})(),i.jsxs("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[Ca," / ",wi||0]}),Ca>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),ro>0?i.jsxs("span",{className:"text-[11px] font-medium text-brand-600 dark:text-sky-400 leading-4",children:[Math.round(ro/Ca*100),"% hedged"]}):i.jsx(l1,{text:"Enable ENABLE_EXPLORE_AND_EXPLOIT_ON_SRV3_{PMT} or ENABLE_MERCHANT_ON_VOLUME_DISTRIBUTION_FEATURE_SR_V3 in Redis",children:i.jsx("span",{className:"text-[11px] text-amber-700 dark:text-amber-400 cursor-help leading-4",children:"0 hedged"})}),be&&Il.triggered>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsx(l1,{text:`${Il.triggered} retries triggered · ${Il.recovered} recovered`,children:i.jsxs("span",{className:"text-[11px] font-medium text-orange-700 dark:text-orange-400 cursor-help leading-4",children:[Il.triggered," retried · ",Il.recovered," recovered"]})})]}),ao.value>0&&ao.currency&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-[11px] font-medium text-emerald-700 dark:text-emerald-400 leading-4",children:["saved ",nG(ao.value,ao.currency)]})]})]})]})]})}),i.jsxs(ze,{className:"!pt-3",children:[sv.length>0&&(()=>{const T=ei,K=sv,ce=K.some(([ye])=>{var Ke;return(((Ke=ad.series[ye])==null?void 0:Ke.length)??0)>=2});return i.jsxs("div",{className:"flex flex-wrap gap-3 items-start",children:[i.jsx("div",{className:"flex-1 space-y-2 min-w-[320px]",children:K.map(([ye,Ke])=>{const yt=T>0?Math.round(Ke.total/T*100):0,De=Ke.total>0?Math.round(Ke.success/Ke.total*100):0,At=If[ye]??Xf[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:At}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 w-20 truncate shrink-0",children:ye}),i.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-slate-100 dark:bg-[#1c1c24] overflow-hidden min-w-0",children:i.jsx("div",{className:"h-full rounded-full transition-[width] duration-300",style:{width:`${yt}%`,backgroundColor:At}})}),i.jsxs("div",{className:"flex items-center gap-2.5 text-[11px] shrink-0 leading-4",children:[i.jsxs("span",{className:`font-bold tabular-nums ${De>=80?"text-emerald-700 dark:text-emerald-400":De>=50?"text-amber-700":"text-red-600"}`,children:[De,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums",children:[yt,"% routed"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"tabular-nums text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ke.success}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 mx-0.5",children:"/"}),i.jsx("span",{className:"text-red-600",children:Ke.failure})]})]})]})},ye)})}),ce&&(()=>{const{series:ye,paymentNums:Ke}=ad,yt=Ke.length,De=7,At=Math.max(64,K.length*28),Tt=14,vn=28,Yt=Math.max(200,yt*De),Xr=At+Tt,Xt=6,er=Ot=>Ot/Math.max(yt-1,1)*Yt,{yMin:Tn,yMax:Hn}=ad,ur=Hn-Tn||1,Ea=Ot=>Xt+(Hn-Ot)/ur*(At-Xt*2),Pc=ur<=10?2:ur<=30?5:10,Bf=Math.ceil(Tn/Pc)*Pc,id=[];for(let Ot=Bf;Ot<=Hn;Ot+=Pc)id.push(Ot);const Ss=Ot=>{if(Ot.length<2)return"";const fn=Ot.map((jr,Cs)=>[er(Cs),Ea(jr)]);let Ns=`M ${fn[0][0]},${fn[0][1]}`;for(let jr=1;jr({n:Ot,i:fn})).filter(({i:Ot})=>Ot%Fl===0||Ot===yt-1),so=_s.filter((Ot,fn)=>fn===_s.length-2?_s[_s.length-1].i-_s[fn].i>=Math.ceil(Fl*.5):!0);return i.jsxs("div",{className:"relative self-start flex-1",style:{minWidth:200+vn},children:[i.jsx("div",{className:"overflow-x-auto",style:{width:`calc(100% - ${vn}px)`,scrollbarWidth:"none"},ref:Ot=>{Ot&&(Ot.scrollLeft=Ot.scrollWidth)},children:i.jsxs("svg",{width:Yt,height:Xr,viewBox:`0 0 ${Yt} ${Xr}`,style:{display:"block"},children:[id.map(Ot=>i.jsx("line",{x1:0,y1:Ea(Ot),x2:Yt,y2:Ea(Ot),stroke:"#e2e8f0",strokeWidth:"0.5",strokeDasharray:"2,2"},Ot)),K.map(([Ot])=>{const fn=ye[Ot];if(!fn||fn.length<2)return null;const Ns=If[Ot]??Xf[0],jr=Ss(fn),Cs=`${jr} L ${er(fn.length-1)},${At} L 0,${At} Z`;return i.jsxs("g",{children:[i.jsx("path",{d:Cs,fill:Ns,fillOpacity:.07}),i.jsx("path",{d:jr,fill:"none",stroke:Ns,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]},Ot)}),i.jsx("line",{x1:0,y1:At,x2:Yt,y2:At,stroke:"#e2e8f0",strokeWidth:"0.5"}),so.map(({n:Ot,i:fn},Ns)=>i.jsx("text",{x:er(fn),y:At+10,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",textAnchor:Ns===0?"start":Ns===so.length-1?"end":"middle",children:Ot},fn))]})}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:vn},children:i.jsxs("svg",{width:vn,height:At,viewBox:`0 0 ${vn} ${At}`,style:{display:"block"},children:[i.jsx("line",{x1:2,y1:Xt,x2:2,y2:At-Xt,stroke:"#cbd5e1",strokeWidth:"0.5"}),id.map(Ot=>i.jsxs("g",{children:[i.jsx("line",{x1:0,y1:Ea(Ot),x2:4,y2:Ea(Ot),stroke:"#cbd5e1",strokeWidth:"0.5"}),i.jsxs("text",{x:6,y:Ea(Ot)+3,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",children:[Ot,"%"]})]},Ot))]})})]})})(),!ce&&null]})})(),Object.keys(Wn).length===1&&Vn.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),kr.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[kr.length," transactions"]})]}),i.jsx(ze,{className:"p-0",children:kr.length>0?i.jsx("div",{ref:Vt,className:"max-h-[480px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-10",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Payment ID"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),be&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),be&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"}),i.jsx("th",{className:"w-8"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:kr.map((T,K)=>{var ye;const ce=K;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>Km(T.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:ce+1}),i.jsx("td",{className:"px-3 py-2 max-w-[180px]",children:i.jsx("span",{className:"block truncate font-mono text-xs text-slate-700 dark:text-slate-300 group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:T.paymentId})}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:T.decidedGateway}),i.jsx("td",{className:"px-3 py-2",children:(ye=T.routingApproach)!=null&&ye.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Hedging"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:T.routingApproach==="SR_SELECTION_V3_ROUTING"?"SR V3":T.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?"Multi-Obj":T.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(Pe,{variant:T.status==="CHARGED"?"green":T.status==="PENDING_VBV"?"orange":"red",children:T.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:T.costWon&&T.costSavedBps!=null&&T.costSavedBps>0&&T.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:TAe(T.costSavedBps,T.amount,T.currency)}):null}),be&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:T.retryGateway??"—"}),be&&i.jsx("td",{className:"px-3 py-2",children:T.retryStatus?i.jsx(Pe,{variant:T.retryStatus==="CHARGED"?"green":T.retryStatus==="PENDING_VBV"?"orange":"red",children:T.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})}),i.jsx("td",{className:"pr-3 py-2",children:i.jsx("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity text-slate-500 dark:text-slate-400",children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",className:"w-3.5 h-3.5",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})})})]},T.paymentId)})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Waiting for the first simulated payment result…"]})})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("button",{type:"button",onClick:()=>Pf(T=>!T),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${td?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),td&&i.jsx(XH,{merchantId:a,gsmRules:Ae,decideParams:{amount:k.amount,currency:k.currency,paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:k.eligible_gateways}})]}):U?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:U.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${PAe(U.routing_approach)}`,children:U.routing_approach})}),W?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Km(W),children:"View audit"}):null,U.is_scheduled_outage&&i.jsx(Pe,{variant:"red",children:"Scheduled Outage"}),W?i.jsx(Pe,{variant:te==="CHARGED"?"green":"red",children:te}):null,U.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[U.latency,"ms"]})]})]}),W?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:W}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",te,". Open audit to inspect the full decide and update flow."]})]}):null,U.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:U.routing_dimension})]}),U.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:U.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:U.reset_approach})]})]})]})}),U.multi_objective_info&&i.jsx(KAe,{info:U.multi_objective_info}),js.length>0&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Hm,className:"text-xs",children:[i.jsx(As,{size:12})," Refresh"]})]})}),i.jsx(ze,{children:i.jsx(Li,{width:"100%",height:js.length*40+20,children:i.jsxs(Yh,{data:js,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(Ia,{type:"number",domain:[0,100],tickFormatter:T=>`${T}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(wa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(Vr,{formatter:T=>`${T}%`,contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"score",radius:[0,4,4,0],children:js.map((T,K)=>i.jsx(Ey,{fill:T.name===U.decided_gateway?"#0069ED":T.score<30?"#ef4444":T.score<60?"#f59e0b":"#10b981"},K))})]})})})]}),U.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>nt(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Ge?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Ge&&i.jsx(ze,{className:"space-y-2",children:Object.entries(U.filter_wise_gateways).map(([T,K])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:T}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(K)?K.map(ce=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:ce},ce)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},T))})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>ge(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),Nt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Nt&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(U,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})})]}),Kt&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>dt(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(wH,{size:22})}),i.jsxs("div",{children:[i.jsx(an,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Kt.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>dt(null),children:i.jsx(Hr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Kt.body}),Kt.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Kt.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",onClick:()=>dt(null),children:"Dismiss"}),Kt.configurePath&&i.jsx(ke,{onClick:()=>{dt(null),t(Kt.configurePath)},children:"Configure"})]})]})]})]}),sn&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Ym}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:sn}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Va!=null&&Va.latest_gateway?i.jsx(Pe,{variant:"green",children:Va.latest_gateway}):null,Va!=null&&Va.latest_status?i.jsx(Pe,{variant:ML(Va.latest_status),children:Oi(Va.latest_status)}):null,Va!=null&&Va.event_count?i.jsxs(Pe,{variant:"gray",children:[Va.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Or.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Ym,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Or.isLoading&&!Or.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading payment audit…"]}):Or.error?i.jsx(_t,{error:Or.error.message}):Ff.length?i.jsx("div",{className:"space-y-4",children:Ff.map(T=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:RL(T.phase),children:T.phase})}),i.jsx("div",{className:"space-y-2",children:T.events.map(K=>i.jsxs("button",{type:"button",onClick:()=>{Dn(K.id),or("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(On==null?void 0:On.id)===K.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Jg(K)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Yg(K.created_at_ms)})]}),i.jsx(Pe,{variant:ab(K),children:Oi(K.status)||PL(K.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:Xg(K.route)}),K.gateway?i.jsx(Pe,{variant:"green",children:K.gateway}):null,K.request_id?i.jsx(Pe,{variant:"blue",children:"Request"}):null]})]},K.id))})]},T.phase))}):i.jsx(Zg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:On?Jg(On):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:On?`${Xg(On.route)} · ${Yg(On.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[On!=null&&On.gateway?i.jsx(Pe,{variant:"green",children:On.gateway}):null,On!=null&&On.status?i.jsx(Pe,{variant:ab(On),children:Oi(On.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(T=>i.jsx("button",{type:"button",onClick:()=>or(T),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${IL(ua===T)}`,children:T==="raw"?"Raw JSON":Oi(T)},T))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Or.isLoading&&!Or.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading inspector…"]}):ki?i.jsxs("div",{className:"space-y-5",children:[ua==="summary"?i.jsxs(i.Fragment,{children:[i.jsx($L,{rows:ki.summaryRows}),ki.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:uG(ki.selectionReason)})]}):null,i.jsx(zl,{title:"Score Context",value:ki.scoreContext,emptyMessage:"No scoring context was captured for this event."}),ki.signalRecord?i.jsx(zl,{title:"Additional Signals",value:ki.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ua==="input"?i.jsx(zl,{title:"Request Payload",value:ki.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ua==="response"?i.jsx(zl,{title:"Response Payload",value:ki.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ua==="raw"?i.jsx(zl,{title:"Raw Event JSON",value:ki.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Zg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),da&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:ov}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:da}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Cc,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Fr!=null&&Fr.latest_gateway?i.jsx(Pe,{variant:"green",children:Fr.latest_gateway}):null,Fr!=null&&Fr.latest_status?i.jsx(Pe,{variant:ML(Fr.latest_status),children:Oi(Fr.latest_status)}):null,Fr!=null&&Fr.event_count?i.jsxs(Pe,{variant:"gray",children:[Fr.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>ae.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:ov,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:ae.isLoading&&!ae.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision trace…"]}):ae.error&&UAe(ae.error)&&da?i.jsx(o_,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):ae.error?i.jsx(_t,{error:ae.error.message}):iv.length?i.jsx("div",{className:"space-y-4",children:iv.map(T=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:RL(T.phase),children:T.phase})}),i.jsx("div",{className:"space-y-2",children:T.events.map(K=>i.jsxs("button",{type:"button",onClick:()=>{fa(K.id),wr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(_n==null?void 0:_n.id)===K.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Jg(K)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Yg(K.created_at_ms)})]}),i.jsx(Pe,{variant:ab(K),children:Oi(K.status)||PL(K.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:Xg(K.route)}),K.gateway?i.jsx(Pe,{variant:"green",children:K.gateway}):null]})]},K.id))})]},T.phase))}):da?i.jsx(o_,{title:Fr?"Decision summary available":"Decision trace still arriving",body:Fr?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Zg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:_n?Jg(_n):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:_n?`${Xg(_n.route)} · ${Yg(_n.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[_n!=null&&_n.gateway?i.jsx(Pe,{variant:"green",children:_n.gateway}):null,_n!=null&&_n.status?i.jsx(Pe,{variant:ab(_n),children:Oi(_n.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(T=>i.jsx("button",{type:"button",onClick:()=>wr(T),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${IL(no===T)}`,children:T==="raw"?"Raw JSON":Oi(T)},T))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:ae.isLoading&&!ae.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision inspector…"]}):Ll?i.jsxs("div",{className:"space-y-5",children:[no==="summary"?i.jsxs(i.Fragment,{children:[i.jsx($L,{rows:Ll.summaryRows}),i.jsx(zl,{title:"Decision Signals",value:Ll.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,no==="input"?i.jsx(zl,{title:"Request Payload",value:Ll.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,no==="response"?i.jsx(zl,{title:"Response Payload",value:Ll.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,no==="raw"?i.jsx(zl,{title:"Raw Event JSON",value:Ll.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):da&&!((gv=(mv=ae.data)==null?void 0:mv.timeline)!=null&&gv.length)?i.jsx(o_,{title:Fr?"Waiting for detailed decision step":"Waiting for decision step",body:Fr?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Zg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function KAe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(YAe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function YAe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function qs({open:t,title:e,description:n,confirmLabel:r="Confirm",cancelLabel:a="Cancel",variant:s="primary",onConfirm:o,onCancel:l}){const c=g.useRef(null);return g.useEffect(()=>{var u;t&&((u=c.current)==null||u.focus())},[t]),g.useEffect(()=>{if(!t)return;function u(d){d.key==="Escape"&&l()}return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[t,l]),t?i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:l}),i.jsxs("div",{ref:c,tabIndex:-1,className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e}),i.jsx("p",{className:"mt-2 max-w-[57ch] text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:n}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:l,children:a}),i.jsx(ke,{variant:s==="danger"?"danger":"primary",size:"sm",onClick:o,children:r})]})]})]}):null}const XAe=3;function JAe({merchantId:t,isSimulating:e,tps:n,onContractGone:r,onCycleEnded:a,onLoad:s}){var P;const{data:o,mutate:l}=jT(t??void 0),c=ST(t??void 0),u=c.mutate,d=((P=c.data)==null?void 0:P.connectors)??[],f=!!(o!=null&&o.active)&&d.length>0,h=g.useRef({onContractGone:r,onCycleEnded:a});h.current={onContractGone:r,onCycleEnded:a};const[,p]=g.useState(Date.now());g.useEffect(()=>{const M=setInterval(()=>p(Date.now()),1e3);return()=>clearInterval(M)},[]),g.useEffect(()=>{f||h.current.onContractGone()},[f]);const m=d[0]?Date.parse(d[0].cycleEnd):0,x=m?Math.max(0,Math.round((m-Date.now())/1e3)):0,y=!!m&&x===0;if(g.useEffect(()=>{y&&e&&h.current.onCycleEnded()},[y,e]),g.useEffect(()=>{y&&(u(),l())},[y,u,l]),!f||!o)return null;const b=o.daySecs??H0,v=o.expectedDailyTraffic??0,w=FH(b),j=Math.max(...d.map(M=>M.daysTotal),1),k=Math.max(1,Math.round(n*b)),_=v>0?Math.max(1,Math.round(v/k)):1e3,S=Math.max(1,Math.round(b*1e3/k)),N=Math.max(1,Math.round(n*x*XAe));async function E(){!(o!=null&&o.ruleId)||!t||(await Ve("/routing/deactivate",{created_by:t,routing_algorithm_id:o.ruleId}),l())}return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(pT,{size:15,className:"text-brand-500"}),i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Active volume contract"}),y?i.jsx(Pe,{variant:"red",children:"Cycle over"}):o.psps.length===0&&o.eliminated.length===0?i.jsx(Pe,{variant:"gray",children:"Forecast pending"}):w?i.jsxs(Pe,{variant:"orange",children:["Test cycle · ",x,"s left of ",j," min"]}):i.jsxs(Pe,{variant:"blue",children:[j,"-day cycle"]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ke,{size:"sm",variant:"ghost",onClick:E,disabled:!o.ruleId,children:"Deactivate contract"}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>s({gateways:d.map(M=>M.connector),amount:_,totalPayments:N,paceMs:S}),disabled:e||y,children:"Load contract into simulator"})]})]}),i.jsx("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs text-slate-600 dark:text-slate-300",children:d.map(M=>{const A=o.psps.find(X=>X.connector===M.connector),O=o.eliminated.find(X=>X.connector===M.connector),D=(A==null?void 0:A.achieved)??(O==null?void 0:O.achieved)??0,I=M.eliminated;return i.jsxs("span",{className:"tabular-nums",children:[i.jsx("strong",{children:M.connector})," ",wu(D),"/",wu(M.goal),I?i.jsx("span",{className:"ml-1 text-red-500",children:"· eliminated"}):A!=null&&A.steering?i.jsx("span",{className:"ml-1 text-amber-600 dark:text-amber-500",children:"· steering"}):null]},M.connector)})}),y?i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"This cycle has closed — its goals are settled and a new one has begun, with delivery back at zero. Any run still going was stopped, because volume sent now counts toward the next period. Reload the contract to drive the fresh cycle, or deactivate it to stop."}):i.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Every payment ",i.jsx("strong",{className:"tabular-nums",children:_.toLocaleString()})," at ",n,"/sec — ",wu(v)," per day",w?" (a minute on this test cycle)":"",", the contract's rate — until the cycle closes. More TPS means smaller payments, not more volume; pausing is a real traffic drop."]})]})})}const LL=5e3;function ZAe({row:t}){switch(t.status){case"met":return i.jsx(Pe,{variant:"green",children:"Met"});case"eliminated":return i.jsx("span",{title:t.reason,children:i.jsx(Pe,{variant:"red",children:"Eliminated"})});case"steering":return i.jsxs(Pe,{variant:"orange",children:["Steering · ",(t.steerRate*100).toFixed(0),"% of eligible"]});case"on_pace":return i.jsx(Pe,{variant:"green",children:"On pace"});case"missed":return i.jsx(Pe,{variant:"gray",children:"Missed"});default:return i.jsx(Pe,{variant:"gray",children:"Pending forecast"})}}function QAe({merchantId:t,results:e,colorFor:n}){var b,v,w,j,k;const r=jT(t??void 0,LL),a=(b=r.data)==null?void 0:b.daySecs,s=ST(t??void 0,void 0,{perDay:_T(a),refreshInterval:LL}),o=LH(t??void 0),l=!!((v=r.data)!=null&&v.active),c=g.useMemo(()=>{var _;return((_=s.data)==null?void 0:_.connectors)??[]},[s.data]),u=(w=s.data)==null?void 0:w.currency,d=g.useMemo(()=>e.filter(_=>_.steerOutcome==="STEERED").length,[e]),f=(j=o.runs.find(_=>_.isCurrent))==null?void 0:j.runId,h=g.useMemo(()=>f?BH(o.events,f):new Map,[o.events,f]),p=g.useMemo(()=>{var E,P;const _=((E=r.data)==null?void 0:E.psps)??[],S=((P=r.data)==null?void 0:P.eliminated)??[];return[...new Set([...c.map(M=>M.connector),..._.map(M=>M.connector),...S.map(M=>M.connector)])].map(M=>{let A=0,O=0,D=0;for(const G of e){const $=G.steerOutcome==="STEERED";G.decidedGateway===M&&($?O+=1:A+=1),$&&G.steerSrHead===M&&(D+=1)}const I=_.find(G=>G.connector===M),X=S.find(G=>G.connector===M),Q=c.find(G=>G.connector===M),V=(I==null?void 0:I.goal)??(Q==null?void 0:Q.goal)??0,Y=(I==null?void 0:I.achieved)??(X==null?void 0:X.achieved)??(Q==null?void 0:Q.points.reduce((G,$)=>G+$.total,0))??0,H=V>0&&Y>=V?"met":X?"eliminated":I?I.steering?"steering":"on_pace":"pending";return{name:M,color:n(M),auth:A,steered:O,ceded:D,status:H,steerRate:(I==null?void 0:I.steerRate)??0,achieved:Y,goal:V,reason:X==null?void 0:X.reason}})},[r.data,c,e,n]),m=g.useCallback(_=>{var S;return((S=p.find(N=>N.name===_))==null?void 0:S.status)??"pending"},[p]),x=g.useMemo(()=>{var _;return new Map((((_=r.data)==null?void 0:_.eliminated)??[]).map(S=>[S.connector,S.reason]))},[r.data]);if(!l&&d===0||p.length===0)return null;const y=e.length;return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(pT,{size:15,className:"text-brand-500"}),i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Cumulative volume vs. each promise"})]}),i.jsxs("span",{className:"text-xs tabular-nums text-slate-500 dark:text-slate-400",children:[d.toLocaleString()," of ",y.toLocaleString()," payments steered",y>0?` · ${(d/y*100).toFixed(1)}%`:"",f&&i.jsx("span",{className:"ml-2 font-mono text-[10px] opacity-60",children:f})]})]}),c.length>0?i.jsx(WH,{connectors:c,currency:u,daySecs:((k=s.data)==null?void 0:k.daySecs)??a,colorFor:n,statusFor:m,eliminatedAtMs:h,eliminationReasons:x,height:460}):i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Waiting for the contract's first measurements."}),i.jsx("div",{className:"grid gap-x-6 gap-y-1.5 sm:grid-cols-2",children:p.map(_=>i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs",children:[i.jsx(jA,{color:_.color}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-800 dark:text-white",children:_.name}),i.jsx(ZAe,{row:_}),i.jsxs("span",{className:"ml-auto whitespace-nowrap tabular-nums text-slate-500 dark:text-slate-400",children:[_.goal>0&&i.jsxs(i.Fragment,{children:[zH(_.achieved,_.goal,u),"/",es(_.goal,u),_.status!=="eliminated"&&` · ${NT(_.achieved,_.goal)}%`," · "]}),_.auth," by approval · ",_.steered," steered in",_.ceded>0?` · ${_.ceded} ceded`:""]})]},_.name))})]})})}function Zj(t){const e=t?`/merchant-account/${t}/cost-coverage`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:6e4});return{coverage:n,error:r,isLoading:a,mutate:s}}function dG(t){const e=t?`/merchant-account/${t}/connector-fees`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{fees:n??[],error:r,isLoading:a,mutate:s}}async function e5e(t,e,n){return Yj(`/merchant-account/${t}/connectors/${e}/fee-override`,n)}async function t5e(t,e){return Mm(`/merchant-account/${t}/connectors/${e}/fee-override`)}function IT(t){var n;let e=(n=t.q)!=null&&n.trim()?1:0;for(const[r,a]of Object.entries(t))r!=="q"&&Array.isArray(a)&&(e+=a.length);return e}function $T(t,e={}){const{limit:n=10,order:r,connector:a,account:s,reportDate:o,ingestionId:l,filters:c}=e;let u=null;if(t){const m=new URLSearchParams({limit:String(n)});for(const[x,y]of Object.entries(c??{}))if(Array.isArray(y))for(const b of y)b!=null&&b.trim()&&m.append(x,b.trim());else typeof y=="string"&&y.trim()&&m.set(x,y.trim());a&&m.set("connector",a),s&&m.set("account",s),o&&m.set("report_date",o),l&&m.set("ingestion_id",l),r==="n"&&m.set("order","txns"),u=`/merchant-account/${t}/cost-clusters?${m.toString()}`}const{data:d,error:f,isLoading:h,mutate:p}=ut(u,Lt,{revalidateOnFocus:!1});return{clusters:d??[],error:f,isLoading:h,mutate:p}}function fG(t,e={}){const{connector:n,account:r,reportDate:a,ingestionId:s}=e;let o=null;if(t){const f=new URLSearchParams;n&&f.set("connector",n),r&&f.set("account",r),a&&f.set("report_date",a),s&&f.set("ingestion_id",s);const h=f.toString();o=`/merchant-account/${t}/cost-cluster-facets${h?`?${h}`:""}`}const{data:l,error:c,isLoading:u}=ut(o,Lt,{revalidateOnFocus:!1});return{facets:g.useMemo(()=>{var h;const f={};for(const p of l??[])(f[h=p.dim]??(f[h]=[])).push(p);return f},[l]),error:c,isLoading:u}}async function hG(t,e,n){return Yj(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`,n)}async function n5e(t,e){return Mm(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`)}function pG(t){const e=t?`/merchant-account/${t}/seed-costs`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{rows:n??[],error:r,isLoading:a,mutate:s}}async function r5e(t,e){return Yj(`/merchant-account/${t}/seed-costs`,{rows:e})}async function a5e(t){return Mm(`/merchant-account/${t}/seed-costs`)}function s5e(t){const e=t?`/merchant-account/${t}/connectors`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{sources:n??[],error:r,isLoading:a,mutate:s}}function LT(t){const e=t?`/merchant-account/${t}/cost-ingestions`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,refreshInterval:o=>o!=null&&o.some(l=>l.status==="processing"||l.status==="pending")?2e3:0});return{ingestions:n??[],error:r,isLoading:a,mutate:s}}async function i5e(t,e,n){return Ve(`/merchant-account/${t}/connectors/${e}/credentials`,n)}async function o5e(t,e,n){return Mm(`/merchant-account/${t}/connectors/${e}/credentials/${encodeURIComponent(n)}`)}async function l5e(t,e,n,r,a){return kT(`/merchant-account/${t}/connectors/${e}/report?account=${encodeURIComponent(n)}`,r,a)}const FL=64*1024;async function c5e(t,e,n,r){const a=r?`?account=${encodeURIComponent(r)}`:"";return kT(`/merchant-account/${t}/connectors/${e}/report/validate-headers${a}`,n)}async function u5e(t,e,n,r,a){return Ve(`/merchant-account/${t}/connectors/${e}/report/preview`,{columns:n,sample:r,truncated:a})}function d5e(){const{data:t,error:e,isLoading:n}=ut("/cost-ingestion/connectors",Lt,{revalidateOnFocus:!1});return{connectors:t??[],error:e,isLoading:n}}async function f5e(t,e,n,r,a,s){return Yj(`/merchant-account/${t}/connectors/${e}/report/column-mapping?account=${encodeURIComponent(n)}`,{columns:r,sample:a,truncated:s})}async function h5e(t,e){return Ve(`/merchant-account/${t}/connectors/${e}/report/sample`)}async function p5e(t,e){return Mm(`/merchant-account/${t}/cost-ingestions/${e}`)}function m5e(t){const e=t?`/merchant-account/${t}/invoice-addons`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{addons:n??[],error:r,isLoading:a,mutate:s}}async function g5e(t,e,n,r,a,s){const o=new URLSearchParams({account:n});return a&&o.set("invoice_ref",a),kT(`/merchant-account/${t}/connectors/${e}/invoice?${o.toString()}`,r,s)}async function x5e(t,e){return Mm(`/merchant-account/${t}/connectors/${e}/invoice-addon`)}const TA=1e3,y5e="routing_events_seen",v5e=500,PA="1h";function b5e(t){return t==="15m"||t==="1h"?"1s":"1m"}function mG(t,e){return t?`/analytics/routing-events?range=${e}&bucket=${b5e(e)}`:null}function gG(t){return`${y5e}:${t}`}function BL(t){try{const e=localStorage.getItem(gG(t));if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function w5e(t,e){try{localStorage.setItem(gG(t),JSON.stringify(Array.from(e).slice(-v5e)))}catch{}}const xG=g.createContext(null);function k5e({children:t}){const e=xr(k=>{var _;return(_=k.user)==null?void 0:_.merchantId})??"",[n,r]=g.useState(TA),a=g.useRef(0),[s,o]=g.useState(!1),l=g.useCallback(()=>(a.current+=1,o(!0),()=>{a.current-=1,a.current<=0&&(a.current=0,o(!1))}),[]),{data:c,error:u,isLoading:d,mutate:f}=ut(s?mG(e,PA):null,Lt,{refreshInterval:n,revalidateOnFocus:!1}),[h,p]=g.useState(()=>BL(e));g.useEffect(()=>{p(BL(e))},[e]);const m=g.useCallback(k=>h.has(k),[h]),x=g.useCallback(k=>{p(_=>{const S=new Set(_);for(const N of k)S.add(N.id);return w5e(e,S),S})},[e]),y=g.useCallback(()=>{f()},[f]),b=g.useCallback(k=>{r(k??TA)},[]),v=g.useRef([]);g.useEffect(()=>{c!=null&&c.events&&(v.current=c.events)},[c]);const w=g.useMemo(()=>u?[]:(c==null?void 0:c.events)??v.current,[u,c]),j=g.useMemo(()=>({liveEvents:w,isLoading:d,isUnavailable:!!u,isSeen:m,markSeen:x,refresh:y,requestPollInterval:b,subscribe:l}),[w,d,u,m,x,y,b,l]);return g.createElement(xG.Provider,{value:j},t)}function j5e(){const t=g.useContext(xG);if(!t)throw new Error("useRoutingEvents must be used within a ");return t}function FT(t=PA,e={}){const{refreshInterval:n,enabled:r=!0}=e,a=xr(N=>{var E;return(E=N.user)==null?void 0:E.merchantId})??"",{liveEvents:s,isLoading:o,isUnavailable:l,isSeen:c,markSeen:u,refresh:d,requestPollInterval:f,subscribe:h}=j5e(),p=t===PA;g.useEffect(()=>{if(!(!p||!r))return h()},[p,r,h]),g.useEffect(()=>{if(!(!p||n===void 0))return f(n),()=>f(null)},[p,n,f]);const{data:m,error:x,isLoading:y,mutate:b}=ut(!p&&r?mG(a,t):null,Lt,{refreshInterval:n??TA,revalidateOnFocus:!1}),v=p?s:x?[]:(m==null?void 0:m.events)??[],w=p?o:y,j=p?l:!!x,k=g.useMemo(()=>v.filter(N=>!c(N.id)),[v,c]),_=g.useCallback(()=>{u(v)},[v,u]),S=g.useCallback(()=>{p?d():b()},[p,d,b]);return{events:v,unseenEvents:k,unseenCount:k.length,markAllSeen:_,refresh:S,isLoading:w,isUnavailable:j}}function BT(t){switch(t.event_type){case"leader_changed":return`switching psp to ${t.gateway}`;case"gateway_entered_auth_band":return`${t.gateway} now good enough on success — routing it to save cost`;case"gateway_exited_auth_band":return`${t.gateway} slipped on success — not eligible for cost override anymore`;case"calibration_applied":return S5e(t)}}function S5e(t){const e=[t.payment_method_type,t.payment_method,t.card_network,t.currency,t.country,t.auth_type].filter(s=>!!s),n=e.length?e.join(" · "):"default",r=[];if(t.bucket_size!=null&&r.push(t.previous_bucket_size!=null&&t.previous_bucket_size!==t.bucket_size?`bucket ${t.previous_bucket_size} → ${t.bucket_size}`:`bucket ${t.bucket_size}`),t.hedging_percent!=null){const s=`${t.hedging_percent.toFixed(1)}%`;r.push(t.previous_hedging_percent!=null&&t.previous_hedging_percent!==t.hedging_percent?`hedging ${t.previous_hedging_percent.toFixed(1)}% → ${s}`:`hedging ${s}`)}const a=r.length?r.join(", "):"settings";return`autopilot tuned ${n} — ${a}`}const MA="USD",_5e=["USD","EUR","GBP","AUD","CAD"],N5e=["CREDIT"],C5e=["STANDARD","PREMIUM"],E5e=["VISA","MASTERCARD"],yG=[{label:"US debit",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US standard credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US premium credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"US corporate",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"COMMERCIAL",cardIssuerCountry:"US"},{label:"Amex US consumer",paymentMethod:"CREDIT",cardSwitchProvider:"AMEX",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"FR debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT debit (Mastercard)",paymentMethod:"DEBIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"FR credit (Visa)",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT credit (Mastercard)",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"AU debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"AU"}],A5e=Math.max(0,yG.findIndex(t=>t.label==="US debit"));function l_(t){const e=(t??"").trim().toLowerCase();return e==="mastercard"?"mc":e}function O5e(t,e,n,r){const a=e.toUpperCase(),s=l_(n),o=(r??"").trim().toLowerCase(),l=[c=>l_(c.card_network)===s&&(c.funding??"").toLowerCase()===o,c=>l_(c.card_network)===s,()=>!0];for(const c of l){const u=new Map;for(const h of t){if((h.currency??"").toUpperCase()!==a)continue;const p=(h.issuer_country??"").trim().toUpperCase();!p||!c(h)||u.set(p,(u.get(p)??0)+h.gross_sum)}let d,f=0;for(const[h,p]of u)p>f&&(d=h,f=p);if(d)return d}}function T5e(t,e,n){const r=(t.card_issuing_country??"").trim().toLowerCase();return r.length===2&&r!=="eu"?r.toUpperCase():O5e(n,e,t.card_network??"",t.payment_method_type??"")}function P5e(t,e,n){var o;const r=e.toUpperCase(),a=[],s=new Set;for(const l of t){if(l.is_default||(l.transaction_currency??"").toUpperCase()!==r)continue;const c=[(l.card_network??"").toLowerCase(),(l.payment_method_type??"").toLowerCase(),(l.card_type??"").toLowerCase(),(l.card_issuing_country??"").toLowerCase()].join("|");if(s.has(c))continue;s.add(c);const u=((o=l.label)==null?void 0:o.trim())||`${l.card_network??""} ${l.payment_method_type??""}`.trim()||"Scenario";a.push({label:u,paymentMethod:(l.payment_method_type??"").toUpperCase()==="DEBIT"?"DEBIT":"CREDIT",cardSwitchProvider:(l.card_network??"").toUpperCase()||"VISA",cardProgram:(l.card_type??"").toUpperCase()||"STANDARD",cardIssuerCountry:T5e(l,r,n),exampleAmount:l.example_amount??void 0})}return a}const RA={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{...Tu}},M5e={stripe:94,adyen:93,braintree:92,chase:92};function ib(t){return{...RA,successRate:M5e[t.trim().toLowerCase()]??RA.successRate,errorInfo:{...Tu}}}function Jf({label:t,abbr:e}){return i.jsxs("p",{className:"text-[14px] font-semibold leading-snug text-slate-500 dark:text-slate-400",children:[t,e&&i.jsx("span",{className:"ml-1 text-[11px] font-normal uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:e})]})}function ih(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function R5e(t,e,n){return ih(t/1e4*e,n)}function D5e(t){for(const[e,n]of Object.entries(eG))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Zf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],os=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],c_={stripe:"#8b5cf6",adyen:"#0abf53"},I5e=3e3,$5e={leader_changed:{icon:V0,iconClass:"text-sky-700"},gateway_entered_auth_band:{icon:jH,iconClass:"text-emerald-700"},gateway_exited_auth_band:{icon:SH,iconClass:"text-amber-700"},calibration_applied:{icon:Hi,iconClass:"text-violet-600"}};function ob(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}const vG="decision-explorer-state-v2",bG=10*60*1e3,Ul={current:!1},Sg={current:0},Ic={current:!1},u_={current:0},ma={running:!1,results:[],subscribers:new Set};function zL(){ma.subscribers.forEach(t=>t())}const wG={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_MULTI_OBJECTIVE"},L5e={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},UL=wG.eligible_gateways.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean);function VL(...t){const e=new Set,n=[];for(const r of t)for(const a of r){const s=a.trim().toLowerCase();s&&!e.has(s)&&(e.add(s),n.push(s))}return n}const zT="5000",F5e=1,_g=50,WL=1,HL=1e5,B5e=10,z5e=100,U5e=.5,V5e={totalPayments:zT,tps:F5e,minAmount:B5e,maxAmount:z5e},W5e=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],H5e=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function kG(t){return t.map(e=>({...e}))}function jG(t){return t.map(e=>({...e}))}function SG(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function su(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...wG},simulationConfig:{...V5e},gatewaySimConfigs:{},errorInfo:{...Tu},debitForm:{...L5e},ruleParams:kG(W5e),fallbackConnectors:jG(H5e),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1,multiObjScenario:A5e,moCurrency:MA,extraConnectors:[],removedConnectors:[],resumableRun:null}}function G5e(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function UT(t){return`${vG}:${encodeURIComponent(t)}`}function q5e(t){return!!(t&&Date.now()-t>bG)}function DA(t){typeof window>"u"||window.localStorage.removeItem(UT(t))}function K5e(t,e){typeof window>"u"||window.localStorage.setItem(UT(t),JSON.stringify(e))}function GL(t){var e,n,r;if(typeof window>"u")return su();try{const a=window.localStorage.getItem(UT(t))||window.localStorage.getItem(vG);if(!a)return{...su(),scopeKey:t};const s=JSON.parse(a),o=su();return s.scopeKey!==t||q5e(s.resultDataUpdatedAtMs)?(DA(t),{...o,scopeKey:t}):{...o,...s,scopeKey:t,resultDataUpdatedAtMs:s.resultDataUpdatedAtMs||null,activeTab:o.activeTab,form:{...o.form,...s.form||{},ranking_algorithm:"SR_MULTI_OBJECTIVE"},simulationConfig:{...o.simulationConfig,...s.simulationConfig||{},totalPayments:zT},gatewaySimConfigs:s.gatewaySimConfigs||o.gatewaySimConfigs,errorInfo:{...o.errorInfo,...s.errorInfo||{}},debitForm:{...o.debitForm,...s.debitForm||{},card_type:SG((e=s.debitForm)==null?void 0:e.card_type)},ruleParams:(n=s.ruleParams)!=null&&n.length?kG(s.ruleParams):o.ruleParams,fallbackConnectors:(r=s.fallbackConnectors)!=null&&r.length?jG(s.fallbackConnectors):o.fallbackConnectors,volumeDistribution:s.volumeDistribution||o.volumeDistribution,volumeEvaluationLog:s.volumeEvaluationLog||o.volumeEvaluationLog,simulationResults:s.simulationResults||o.simulationResults,extraConnectors:s.extraConnectors||o.extraConnectors,removedConnectors:s.removedConnectors||o.removedConnectors}}catch{return{...su(),scopeKey:t}}}function c1(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function d_(t=[]){return Array.from(new Set(c1(t)))}function Y5e(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function f_(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function _G(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Qg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ti(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function ex(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ti(t):"Unknown route"}function qL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ti(t):"Unknown event"}function VT(t){return t.flow_type||""}function tx(t){const e=VT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ti(t.event_stage||e)}function IA(t){const e=VT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function lb(t){const e=VT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function KL(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function YL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function X5e(t){return OH(t)===404}function Ng(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function h_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function NG(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function J5e(t){return`/analytics/payment-audit?${_G({range:"1d",page:1,page_size:25,payment_id:t})}`}function Z5e(t){return`/analytics/preview-trace?${_G({range:"1d",page:1,page_size:25,payment_id:t})}`}function XL(t){if(!t)return null;const e=Ng(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??h_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??h_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=Ng(n)?n:null,o=Ng(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:IA(t)},{label:"Stage",value:tx(t)},{label:"Route",value:ex(t.route)},{label:"Timestamp",value:Qg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ti(t.status)}]:[]],d=h_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:Ng(r)&&!Object.keys(r).length?null:r,responsePayload:Ng(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function JL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Q5e(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function eOe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function nx({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function p_({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function ZL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Vl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:NG(e)}):i.jsx(nx,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function QL({value:t,min:e,max:n,ariaLabel:r,className:a,onCommit:s,onSettle:o}){const[l,c]=g.useState(null);return i.jsx("input",{type:"number",min:e,max:n,step:5,"aria-label":r,value:l??String(t),onChange:u=>{const d=u.target.value;c(d);const f=Number(d);d!==""&&Number.isFinite(f)&&s(Math.max(e,Math.min(n,f)))},onBlur:()=>{c(null),o()},className:a})}function tOe(){var SM,_M,NM,CM,EM,AM,OM,TM,PM,MM,RM;const t=Kr(),{merchantId:e}=Er(),n=xr(C=>C.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=G5e((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Al(a||void 0).isEnabled("gsm-scoring-filter"),c=Iy(a),{fees:u}=dG(a||void 0),{rows:d}=pG(a||void 0),{clusters:f}=$T(a||void 0,{limit:2e3}),h=g.useMemo(()=>u.filter(C=>C.model_pct_bps!=null).map(C=>C.connector.toLowerCase()),[u]),{routingKeysConfig:p,isLoading:m,error:x}=MT(),y=Object.keys(p).length>0,b=!m&&(!y||!!x),v=g.useMemo(()=>GL(s),[s]),[w,j]=g.useState(v.activeTab),[k,_]=g.useState(v.scopeKey||s),[S,N]=g.useState(v.resultDataUpdatedAtMs),[E,P]=g.useState(v.form),M=g.useRef(E);g.useEffect(()=>{M.current=E},[E]);const[A,O]=g.useState(v.simulationConfig),D=g.useRef({min:A.minAmount,max:A.maxAmount});g.useEffect(()=>{D.current={min:A.minAmount,max:A.maxAmount}},[A.minAmount,A.maxAmount]);const[I,X]=g.useState(v.errorInfo),[Q,V]=g.useState(0),[Y,H]=g.useState(v.gatewaySimConfigs),G=g.useRef(Y);g.useEffect(()=>{G.current=Y},[Y]);const $=Object.values(Y).some(C=>C.failureMode==="timeout"),[F,R]=g.useState(v.debitForm),[z,U]=g.useState(0),[ee,pe]=g.useState(v.ruleParams),[re,he]=g.useState(v.fallbackConnectors),[q,W]=g.useState(v.volumePayments),[ue,te]=g.useState(v.result),[ie,me]=g.useState(v.debitResult),[ve,Ne]=g.useState(v.debitPaymentId),[je,Me]=g.useState(v.singleRunPaymentId),[Be,tt]=g.useState(v.singleRunOutcome),[B,se]=g.useState(v.ruleResult),[de,Ce]=g.useState(v.volumeDistribution),[fe,be]=g.useState(v.volumeEvaluationLog),[we,Le]=g.useState(v.volumeProgress),[Oe,He]=g.useState(v.simulationResults),vt=g.useRef(Oe);g.useEffect(()=>{vt.current=Oe},[Oe]);const[bt,Bt]=g.useState(!1),[wt,zt]=g.useState(!1),[Ut,Un]=g.useState(v.resumableRun),[Vt,Kt]=g.useState({}),[dt,le]=g.useState(v.smartRetryEnabled),Ie=g.useRef(dt);g.useEffect(()=>{Ie.current=dt},[dt]);const[Ge,nt]=g.useState(!1),[Nt,ge]=g.useState(!1),[st,pt]=g.useState(v.extraConnectors),[Ht,gn]=g.useState(v.removedConnectors),[sn,xn]=g.useState(!1),[_a,Dn]=g.useState(""),[ua,or]=g.useState(null),[da,bi]=g.useState(!1),[is,fa]=g.useState(v.multiObjScenario),no=g.useRef(is);g.useEffect(()=>{no.current=is},[is]);const[wr,Cc]=g.useState(v.moCurrency),Ua=g.useMemo(()=>{const C=P5e(d,wr,f);return C.length?C:yG},[d,wr,f]),kr=g.useRef(Ua);g.useEffect(()=>{kr.current=Ua},[Ua]);const td=g.useMemo(()=>{const C=Array.from(new Set(d.filter(L=>!L.is_default).map(L=>(L.transaction_currency??"").toUpperCase()).filter(Boolean)));return Array.from(new Set([..._5e,...C]))},[d]);g.useEffect(()=>{fa(C=>C==="ALL"||C{var ne;if(is==="ALL")return;const C=(ne=Ua[is])==null?void 0:ne.exampleAmount;if(C==null||C<=0)return;const L=Math.max(WL,Math.round(C*.5)),Z=Math.min(HL,Math.round(C*1.5));O(xe=>xe.minAmount===L&&xe.maxAmount===Z?xe:{...xe,minAmount:L,maxAmount:Z})},[is,Ua]);const Pf="ecom",[$o,Mt]=g.useState(null),nd=g.useRef(null),[Ar,dn]=g.useState(null),[In,Yr]=g.useState(!1),[Or,Ec]=g.useState(!1),[ae,Se]=g.useState(v.responseOpen),[Ae,qe]=g.useState(v.debitResponseOpen),[rt,at]=g.useState(v.volumeResponseOpen),[Et,yn]=g.useState(null),[$n,Sn]=g.useState(null),[ha,lr]=g.useState("summary"),[Na,ws]=g.useState(null),[Mf,ks]=g.useState(null),[Lo,cr]=g.useState("summary"),[Zs,Rf]=g.useState("Rule Evaluation Decision"),An=g.useDeferredValue(Oe),[Fo,Df]=g.useState(null),Ml=FT("1h",{refreshInterval:bt&&!wt?500:15e3}),Rl=g.useMemo(()=>{if(Fo==null)return[];const C=Fo-I5e;return Ml.events.filter(L=>L.bucket_ms>=C)},[Ml.events,Fo]),[Ac,ev]=g.useState([]),Vm=g.useRef(new Set);g.useEffect(()=>{Vm.current=new Set,ev([])},[Fo]),g.useEffect(()=>{const C=Rl.filter(L=>!Vm.current.has(L.id));C.length!==0&&(C.forEach(L=>Vm.current.add(L.id)),ev(L=>L.concat(C).sort((Z,ne)=>ne.bucket_ms-Z.bucket_ms||ne.id.localeCompare(Z.id)).slice(0,200)))},[Rl]);const[Oc,tv]=g.useState(new Set),Wm=g.useRef(new Set),nv=g.useRef(!1),rv=g.useRef([]);g.useEffect(()=>{const C=Ac.map(ne=>ne.id);if(!nv.current){C.forEach(ne=>Wm.current.add(ne)),nv.current=!0;return}const L=C.filter(ne=>!Wm.current.has(ne));if(L.length===0)return;L.forEach(ne=>Wm.current.add(ne)),tv(ne=>{const xe=new Set(ne);return L.forEach(Re=>xe.add(Re)),xe});const Z=window.setTimeout(()=>{tv(ne=>{const xe=new Set(ne);return L.forEach(Re=>xe.delete(Re)),xe})},12e3);rv.current.push(Z)},[Ac]),g.useEffect(()=>()=>{rv.current.forEach(C=>window.clearTimeout(C))},[]);const av=g.useMemo(()=>{const C=xe=>xe==="gateway_entered_auth_band"||xe==="gateway_exited_auth_band",L=Ac.slice(0,50),Z=[];let ne=0;for(;ne1?Z.push({kind:"flap",gateway:xe.gateway,crossings:ct,latest:xe,inBand:xe.event_type==="gateway_entered_auth_band"}):Z.push({kind:"single",event:xe}),ne=Re}else if(xe.event_type==="leader_changed"){let Re=ne;for(;Re1){const gt=Array.from(new Set(L.slice(ne,Re).map(it=>it.gateway))).sort();Z.push({kind:"leaderFlap",gateways:gt,crossings:ct,latest:xe})}else Z.push({kind:"single",event:xe});ne=Re}else Z.push({kind:"single",event:xe}),ne++}return Z},[Ac]),[Hm,N2]=g.useState(!1),[Qs,C2]=g.useState(100),E2=[100,500,"all"],rd=g.useMemo(()=>Object.keys(p).sort(),[p]),js=g.useMemo(()=>{var C;return c1(((C=p.payment_method)==null?void 0:C.values)||[])},[p]),wi=g.useMemo(()=>{var C;return d_(((C=p.currency)==null?void 0:C.values)||[])},[p]),Ca=g.useMemo(()=>{var C;return d_(((C=p.card_network)==null?void 0:C.values)||[])},[p]),Dl=g.useMemo(()=>{var C;return d_(((C=p.authentication_type)==null?void 0:C.values)||[])},[p]),A2=Et?J5e(Et):null,Vn=ut(A2,Lt,{revalidateOnFocus:!1}),If=Na?Z5e(Na):null,Wn=ut(If,Lt,{revalidateOnFocus:!1}),{data:ad}=ut("/gsm/options",Lt,{revalidateOnFocus:!1,dedupingInterval:3e5}),ro=(ad==null?void 0:ad.rules)??[];g.useEffect(()=>{b||m||(P(C=>{var xe;const L={...C};let Z=!1;wi.length>0&&!wi.includes(L.currency)&&(L.currency=wi[0],Z=!0),js.length>0&&!js.includes(L.payment_method_type)&&(L.payment_method_type=js[0],Z=!0);const ne=c1(((xe=p[L.payment_method_type.toLowerCase()])==null?void 0:xe.values)||[]);return ne.length>0&&!ne.includes(L.payment_method)&&(L.payment_method=ne[0],Z=!0),Dl.length>0&&!Dl.includes(L.auth_type)&&(L.auth_type=Dl[0],Z=!0),Ca.length>0&&!Ca.includes(L.card_brand)&&(L.card_brand=Ca[0],Z=!0),Z?L:C}),pe(C=>{let L=!1;const Z=C.map(ne=>{if(!ne.key||!p[ne.key])return ne;const xe=p[ne.key],Re=f_(xe.type),ct=xe.values||[],gt=Re==="enum_variant"?ct.includes(ne.value)?ne.value:ct[0]||"":ne.value;return ne.type!==Re||ne.value!==gt?(L=!0,{...ne,type:Re,value:gt}):ne});return L?Z:C}))},[b,m,p,wi,js,Dl,Ca]),g.useEffect(()=>{E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&P(C=>{if(C.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return C;const L={...C};let Z=!1;L.currency!==wr&&(L.currency=wr,Z=!0);const ne=js.find(xe=>xe==="CARD")||"CARD";if(L.payment_method_type!==ne&&(L.payment_method_type=ne,Z=!0),N5e.includes(L.payment_method)||(L.payment_method="CREDIT",Z=!0),!E5e.includes(L.card_brand)){const xe=Ca.find(Re=>Re==="VISA")||Ca.find(Re=>Re==="MASTERCARD")||Ca[0]||"VISA";L.card_brand=xe,Z=!0}return C5e.includes(L.card_program)||(L.card_program="STANDARD",Z=!0),Z?L:C})},[E.ranking_algorithm,js,Ca,wr]),g.useEffect(()=>{if(bt)return;const C=E.ranking_algorithm==="SR_MULTI_OBJECTIVE"?VL(UL,h,st):VL(UL,st),L=new Set(Ht),Z=C.filter(ne=>!L.has(ne)).join(", ");P(ne=>ne.eligible_gateways===Z?ne:{...ne,eligible_gateways:Z})},[E.ranking_algorithm,h,st,Ht,bt]),g.useEffect(()=>{if(!Et&&!Na&&!Ar)return;const C=document.body.style.overflow,L=Z=>{Z.key==="Escape"&&(yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),dn(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",L),()=>{document.body.style.overflow=C,window.removeEventListener("keydown",L)}},[Et,Na,Ar]);function Il(){const C=su();te(C.result),me(C.debitResult),Ne(C.debitPaymentId),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),ma.results=C.simulationResults,He(C.simulationResults),Df(null),Se(C.responseOpen),qe(C.debitResponseOpen),at(C.volumeResponseOpen),yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),Rf("Rule Evaluation Decision"),N(null),Un(null),Mt(null),dn(null),Yr(!1),Ul.current=!0,Sg.current++,Bt(!1)}function ao(){N(Date.now())}function O2(C,L){j(C.activeTab),_(C.scopeKey||L),N(C.resultDataUpdatedAtMs),P(C.form),O(C.simulationConfig),H(C.gatewaySimConfigs),X(C.errorInfo),R(C.debitForm),pe(C.ruleParams),he(C.fallbackConnectors),W(C.volumePayments),te(C.result),me(C.debitResult),Ne(C.debitPaymentId),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),ma.results=C.simulationResults,ma.running=!1,V(0),He(C.simulationResults),Df(null),Se(C.responseOpen),qe(C.debitResponseOpen),at(C.volumeResponseOpen),fa(C.multiObjScenario),Cc(C.moCurrency),pt(C.extraConnectors),gn(C.removedConnectors),Un(C.resumableRun),yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),Rf("Rule Evaluation Decision"),Ec(!1),Mt(null),dn(null),Yr(!1),Ul.current=!0,Sg.current++,Bt(!1)}g.useEffect(()=>{const C=()=>{He(ma.results),Bt(ma.running),zt(ma.running&&Ic.current)};return ma.subscribers.add(C),(ma.running||ma.results.length>0)&&C(),()=>{ma.subscribers.delete(C)}},[]),g.useEffect(()=>{k!==s&&O2(GL(s),s)},[s,k]),g.useEffect(()=>{if(!S)return;const C=k||s,L=bG-(Date.now()-S);if(L<=0){Il(),DA(C);return}const Z=window.setTimeout(()=>{Il(),DA(C)},L);return()=>window.clearTimeout(Z)},[s,S,k]),g.useEffect(()=>{if(k!==s||In||bt&&!wt)return;const C=wt?{total:parseInt(A.totalPayments)||0,nextIndex:u_.current}:Ut;K5e(s,{scopeKey:s,resultDataUpdatedAtMs:S,activeTab:w,form:E,simulationConfig:A,gatewaySimConfigs:Y,errorInfo:I,debitForm:F,ruleParams:ee,fallbackConnectors:re,volumePayments:q,result:ue,debitResult:ie,debitPaymentId:ve,singleRunPaymentId:je,singleRunOutcome:Be,ruleResult:B,volumeDistribution:de,volumeEvaluationLog:fe,volumeProgress:we,simulationResults:Oe,responseOpen:ae,debitResponseOpen:Ae,volumeResponseOpen:rt,smartRetryEnabled:dt,multiObjScenario:is,moCurrency:wr,extraConnectors:st,removedConnectors:Ht,resumableRun:C})},[s,k,bt,wt,Ut,In,S,w,E,A,Y,I,F,ee,re,q,ue,ie,ve,je,Be,B,de,fe,we,Oe,ae,Ae,rt,dt,is,wr,st,Ht]);function Gm(){Ut&&Zm({resumeFrom:Ut.nextIndex})}function sv(){Un(null),Il()}function ei(C,L){R(Z=>({...Z,[C]:L}))}function $f(C){X(L=>({...L,...C}))}function $l(C){return G.current[C]??ib(C)}function Lf(C){return $l(C).successRate}function Tc(C){return $l(C).failureMode}function qm(C,L){H(Z=>({...Z,[C]:{...$l(C),...Z[C],successRate:L}}))}function Va(C){return Number.isFinite(C)?Math.round(Math.max(0,Math.min(100,C))):0}function On(){Dn(""),or(null),xn(!0)}function Ff(){const C=_a.trim().toLowerCase();if(!C){or("Enter a connector name.");return}if(!/^[a-z0-9_-]+$/.test(C)){or("Use only letters, numbers, hyphens or underscores.");return}if(De.includes(C)){or(`${C.charAt(0).toUpperCase()+C.slice(1)} is already in the comparison.`);return}pt(L=>L.includes(C)?L:[...L,C]),gn(L=>L.filter(Z=>Z!==C)),xn(!1)}function ki(C){const L=C.trim().toLowerCase();pt(Z=>Z.filter(ne=>ne!==L)),gn(Z=>Z.includes(L)?Z:[...Z,L])}function Fr(C,L,Z){const Re=Z?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return ro.find(ct=>ct.connector===C&&(ct.subFlow==="Authorize"||ct.flow==="Authorize")&&ct.decision===L&&ct.unifiedMessage!=null&&Re.has(ct.unifiedMessage)&&!!ct.errorCode&&ct.errorCode.toLowerCase()!=="no error code")}function _n(C,L){return ro.find(Z=>Z.connector===C&&Z.errorCode===L&&Z.subFlow==="Authorize")??ro.find(Z=>Z.connector===C&&Z.errorCode===L&&Z.flow==="Authorize")??ro.find(Z=>Z.connector===C&&Z.errorCode===L)}function iv(C){if(!C)return;const L=$l(C).errorInfo;if(!L.error_code)return;const Z=_n(C,L.error_code);return{connector:C,...(Z==null?void 0:Z.flow)&&{flow:Z.flow},...(Z==null?void 0:Z.subFlow)&&{subFlow:Z.subFlow},errorCode:L.error_code,...L.error_message&&{errorMessage:L.error_message},...L.issuer_error_code&&{issuerErrorCode:L.issuer_error_code},...L.card_network&&{cardNetwork:L.card_network}}}function Ll(C,L){if(!C)return;const Z=Fr(C,L?"retry":"do_default",$l(C).penalized);return Z!=null&&Z.errorCode?{connector:C,...Z.flow&&{flow:Z.flow},...Z.subFlow&&{subFlow:Z.subFlow},errorCode:Z.errorCode,...Z.errorMessage&&{errorMessage:Z.errorMessage}}:iv(C)}function Km(C,L=I){if(!C||!L.error_code)return;const Z=_n(C,L.error_code);return{connector:C,...(Z==null?void 0:Z.flow)&&{flow:Z.flow},...(Z==null?void 0:Z.subFlow)&&{subFlow:Z.subFlow},errorCode:L.error_code,...L.error_message&&{errorMessage:L.error_message},...L.issuer_error_code&&{issuerErrorCode:L.issuer_error_code},...L.card_network&&{cardNetwork:L.card_network}}}function Ym(C,L){Mt(null),dn(eOe(C,L))}function ji(C,L,Z="Request failed"){const ne=C instanceof Error?C.message:Z;if(Q5e(ne)){Ym(L,ne);return}Mt(ne)}function ov(){const C=F.co_badged_networks.split(",").map(L=>L.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:F.merchant_category_code.trim(),acquirer_country:F.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:C,issuer_country:F.issuer_country.trim().toUpperCase(),is_regulated:F.is_regulated,regulated_name:F.is_regulated&&F.regulated_name.trim()?F.regulated_name.trim():null,card_type:SG(F.card_type)}})}function T2(){var xe;if(rd.length===0)return;const C=rd[0],L=p[C],Z=f_(L==null?void 0:L.type),ne=Z==="enum_variant"&&((xe=L==null?void 0:L.values)==null?void 0:xe[0])||"";pe([...ee,{key:C,type:Z,value:ne,metadataKey:""}])}function P2(C){pe(ee.filter((L,Z)=>Z!==C))}function sd(C,L,Z){pe(ee.map((ne,xe)=>xe===C?{...ne,[L]:Z}:ne))}function lv(C,L){pe(ee.map((Z,ne)=>ne===C?{...Z,metadataKey:L}:Z))}function cv(C,L){var Re;const Z=p[L],ne=f_(Z==null?void 0:Z.type),xe=ne==="enum_variant"&&((Re=Z==null?void 0:Z.values)==null?void 0:Re[0])||"";pe(ee.map((ct,gt)=>gt===C?{...ct,key:L,type:ne,value:xe,metadataKey:""}:ct))}function uv(){he([...re,{gateway_name:"",gateway_id:""}])}function dv(C){he(re.filter((L,Z)=>Z!==C))}function Xm(C,L,Z){he(re.map((ne,xe)=>xe===C?{...ne,[L]:Z}:ne))}async function Jm(){var Z;if(!a)return Mt("Sign in with a merchant-linked account to continue");if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");Yr(!0),Mt(null),dn(null),Me(null);const C=E.eligible_gateways.split(",").map(ne=>ne.trim()).filter(Boolean),L=`explorer_${Date.now()}`;try{const ne=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:L,amount:parseFloat(E.amount)||1e3,currency:E.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,cardSwitchProvider:E.card_brand,cardType:E.payment_method,...E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:E.card_program}},eligibleGatewayList:C,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:$}),xe=await Ve("/update-gateway-score",{merchantId:a,gateway:ne.decided_gateway,gatewayReferenceId:null,status:Be,paymentId:L,enforceDynamicRoutingFailure:null,...Be==="FAILURE"&&{errorInfo:Km(ne.decided_gateway)}});if(dt&&l&&Be==="FAILURE"&&((Z=xe.gsm_info)==null?void 0:Z.decision)==="retry"&&ne.fallback_gateways.length>0){const Re=ne.fallback_gateways[0];await Ve("/update-gateway-score",{merchantId:a,gateway:Re,gatewayReferenceId:null,status:"CHARGED",paymentId:L,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),te({...ne,decided_gateway:Re}),Me(L)}else te(ne),Me(L);ao()}catch(ne){ji(ne,"single")}finally{Yr(!1)}}async function fv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");Yr(!0),Mt(null),dn(null);try{await c.setDebitRoutingEnabled(!0)}catch(C){ji(C,"debit","Failed to enable debit routing")}finally{Yr(!1)}}async function hv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ym("debit","Debit routing is disabled.");const C=F.eligible_gateways.split(",").map(Z=>Z.trim()).filter(Boolean);if(C.length===0)return Mt("Add at least one eligible gateway");Yr(!0),Mt(null),dn(null),me(null);const L=`debit_${Date.now()}`;try{const Z=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:L,amount:parseFloat(F.amount)||1e3,currency:F.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:F.auth_type,metadata:ov()},eligibleGatewayList:C,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});me(Z),Ne(L),ao()}catch(Z){ji(Z,"debit")}finally{Yr(!1)}}async function pv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(!bt){nt(!0),Mt(null);try{await Ve("/gateway-score/reset",{merchantId:a}),ma.results=[],He([]),Kt({}),Ml.refresh(),Mt(null)}catch(C){Mt(C instanceof Error?C.message:"Failed to flush gateway scores")}finally{nt(!1)}}}async function Zm(C={}){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");const L=parseInt(A.totalPayments)||0;if(L<=0)return Mt("Total Payments must be greater than 0");const Z=C.resumeFrom&&C.resumeFrom>0&&C.resumeFrom0;Bt(!0),ma.running=!0,zt(!1),Ic.current=!1,Un(null),Df(Date.now()),Mt(null),dn(null),ne||(ma.results=[],He([])),Ul.current=!1;const xe=++Sg.current,Re=()=>Sg.current===xe,ct=E.eligible_gateways.split(",").map(pa=>pa.trim()).filter(Boolean),gt=ne?[...vt.current]:[],it=3;let ft=0,Kn=0,Sr=0;const dr={},Yn=pa=>{const Es=Math.max(0,Math.min(1,Lf(pa)/100));return dr[pa]===void 0&&(dr[pa]=Math.random()),dr[pa]+=Es,dr[pa]>=1?(dr[pa]-=1,!0):!1},Br=E.ranking_algorithm==="SR_MULTI_OBJECTIVE",Jr=Math.max(1,Math.min(_g,Math.round(A.tps)||1)),io=Math.max(0,Math.round(Q)),zo=async pa=>{var $M,LM,FM,BM,zM,UM;const Es=`sim_${Date.now()}_${pa}`,en=no.current,tn=kr.current,St=Br?en==="ALL"?tn[pa%tn.length]:tn[en]??tn[0]:null,on=Br?"CARD":E.payment_method_type,Zr=St?St.paymentMethod:E.payment_method,Si=St?St.cardSwitchProvider:E.card_brand,Oa=St?St.cardProgram:E.card_program,_i=St?St.cardIssuerCountry:void 0,eg=Math.min(D.current.min,D.current.max),R2=Math.max(D.current.min,D.current.max),DM=Br?Math.floor(eg+Math.random()*(R2-eg+1)):parseFloat(E.amount)||1e3,Mc=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:Es,amount:DM,currency:M.current.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:on,paymentMethod:Zr,authType:E.auth_type,cardBrand:Si,cardSwitchProvider:Si,cardType:Zr,cardProgram:Oa,..._i&&{cardIssuerCountry:_i},channel:Pf},eligibleGatewayList:ct,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:$}),tg=Mc.decided_gateway,VJ=Yn(tg),WJ=Tc(tg),xv=VJ?"CHARGED":WJ==="timeout"?"PENDING_VBV":"FAILURE",IM=Ie.current&&xv==="FAILURE"&&Mc.fallback_gateways.length>0&&Math.random()ng.isSrHead))==null?void 0:LM.authRate)??null,chosenAuthRate:((BM=(FM=Tr==null?void 0:Tr.ranked)==null?void 0:FM.find(ng=>ng.isChosen))==null?void 0:BM.authRate)??null,margin:(Tr==null?void 0:Tr.margin)??null,evGapTop2:(Tr==null?void 0:Tr.evGapTop2)??null,amount:DM,currency:M.current.currency,cardNetwork:Si,cardProgram:Oa,cardIssuerRegion:_i,cardScenario:St==null?void 0:St.label,steerOutcome:((zM=Mc.volume_steer_info)==null?void 0:zM.outcome)??null,steerSrHead:((UM=Mc.volume_steer_info)==null?void 0:UM.srHead)??null}};try{let pa=Z,Es=null;const en=St=>{if(!Re())return;const on=Date.now();(St||on-Kn>150)&&(ma.results=[...gt],zL(),ao(),Kn=on),(St||on-Sr>250)&&(Ml.refresh(),Sr=on)},tn=async()=>{for(;;){if(Ul.current||!Re())return;if(Ic.current){for(u_.current=gt.length,en(!0);Ic.current&&!Ul.current&&Re();)await new Promise(on=>setTimeout(on,120));continue}const St=pa;if(St>=L)return;pa++;try{const on=await zo(St);gt.push(on),ft=0}catch(on){if(Es=on,ft++,ft>=it){Ul.current=!0;return}await new Promise(Zr=>setTimeout(Zr,300))}if(!Re())return;u_.current=gt.length,en(!1),io>0&&await new Promise(on=>setTimeout(on,io*Jr))}};if(await Promise.all(Array.from({length:Jr},()=>tn())),ft>=it&&Re()){ji(Es,"batch",`Simulation stopped after ${it} consecutive errors. Check that the server is running.`);return}}finally{Re()&&(ma.running=!1,ma.results=[...gt],Ic.current=!1,zL()),Ml.refresh()}}function mv(){Ic.current=!0,zt(!0)}function gv(){Ic.current=!1,zt(!1)}async function T(){if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");Yr(!0),Mt(null),dn(null),se(null),Ce([]),be([]),Le(0);const C=`rule_decision_${Date.now()}`;try{const L={};ee.forEach(ne=>{ne.key&&(ne.type==="metadata_variant"?L[ne.key]={type:ne.type,value:{key:ne.metadataKey||ne.key,value:ne.value}}:ne.type==="number"?L[ne.key]={type:ne.type,value:parseFloat(ne.value)||0}:ne.value!==""&&(L[ne.key]={type:ne.type,value:ne.value}))});const Z=await Ve("/routing/evaluate",{created_by:a||"test_user",payment_id:C,fallback_output:re.filter(ne=>ne.gateway_name),parameters:L});if(se(Z),ao(),Z.output.type==="volume_split"&&Z.output.splits){const ne=parseInt(q)||100,xe=Z.output.splits.map(Re=>({name:Re.connector.gateway_name,count:Math.round(Re.split/100*ne),percentage:Re.split}));Ce(xe)}}catch(L){ji(L,"rule")}finally{Yr(!1)}}async function K(){if(!a)return Mt("Sign in with a merchant-linked account to continue");Yr(!0),Mt(null),dn(null),se(null),Ce([]),be([]),Le(0);const C=parseInt(q)||0;if(C<=0)return Yr(!1),Mt("Total Payments must be greater than 0");try{const Z=`volume_decision_${Date.now()}`,ne=[],xe=new Map;let Re=null;const ct=gt=>Array.from(xe.entries()).map(([it,ft])=>({name:it,count:ft,percentage:Number((ft/Math.max(1,gt)*100).toFixed(1))})).sort((it,ft)=>ft.count-it.count);for(let gt=0;gt{const dr=gt+Sr,Yn=`${Z}_${dr}`,Br=await Ve("/routing/evaluate",{created_by:a,payment_id:Yn,fallback_output:re.filter(Jr=>Jr.gateway_name),parameters:{}});return{paymentId:Yn,response:Br}}));for(const{paymentId:Kn,response:Sr}of ft){if(Sr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const dr=Y5e(Sr);if(!dr)throw new Error("Volume split evaluation did not return a connector.");Re||(Re=Sr,se(Sr)),xe.set(dr,(xe.get(dr)||0)+1),ne.push({paymentId:Kn,connector:dr})}Le(ne.length),be([...ne]),Ce(ct(ne.length)),ao()}}catch(L){ji(L,"volume")}finally{Yr(!1)}}const ce=ue!=null&&ue.gateway_priority_map?Object.entries(ue.gateway_priority_map).sort(([,C],[,L])=>L-C).map(([C,L])=>({name:C,score:Math.round(L*1e4)/100})):[],ye=parseInt(A.totalPayments)||0,Ke=Oe.length,yt=bt||Ke>0,De=g.useMemo(()=>E.eligible_gateways.split(",").map(C=>C.trim().toLowerCase()).filter(Boolean),[E.eligible_gateways]),At=g.useMemo(()=>{const C=new Set(h),L=new Set(De);return[...new Set([...d.map(ne=>ne.psp.trim().toLowerCase()).filter(Boolean),...C])].filter(ne=>!L.has(ne)).sort().map(ne=>({name:ne,hasCostModel:C.has(ne)}))},[d,h,De]),Tt=g.useMemo(()=>{const C=new Set(De.map(Z=>c_[Z.toLowerCase()]).filter(Boolean)),L=Z=>{for(let ne=0;ne{const xe=c_[Z.toLowerCase()];if(xe)return[Z,xe];const Re=L(ne);return C.add(Re),[Z,Re]}))},[De]),vn=g.useMemo(()=>{const C=Tt;return L=>{if(C[L])return C[L];const Z=c_[L.toLowerCase()];if(Z)return Z;let ne=0;for(const xe of L)ne=ne*31+xe.charCodeAt(0)>>>0;return os[ne%os.length]}},[Tt]);g.useEffect(()=>{ro.length===0||De.length===0||H(C=>{var ne,xe;let L=!1;const Z={...C};for(const Re of De){if((xe=(ne=C[Re])==null?void 0:ne.errorInfo)!=null&&xe.error_code)continue;const ct=C[Re]??ib(Re),gt=Fr(Re,ct.gsmDecision,ct.penalized);gt&&(Z[Re]={...ct,errorInfo:{error_code:gt.errorCode,error_message:gt.errorMessage,issuer_error_code:"",card_network:""}},L=!0)}return L?Z:C})},[ro,De]);const Yt=g.useMemo(()=>An.reduce((C,L)=>(C[L.decidedGateway]||(C[L.decidedGateway]={total:0,success:0,failure:0}),C[L.decidedGateway].total++,L.status==="CHARGED"?C[L.decidedGateway].success++:C[L.decidedGateway].failure++,C),{}),[An]),Xr=g.useMemo(()=>{var en;const C=An,L={series:{},evSeries:[],decidedSeries:[],paymentNums:[],yMin:0,yMax:100};if(C.length<2)return L;const Z=Qs==="all"?0:Math.max(0,C.length-Qs),ne=C.length-Z,xe=Qs==="all"?Math.max(1,ne):Qs,Re=Math.max(1,Math.ceil(ne/xe)),ct=Object.keys(Yt),gt={};ct.forEach(tn=>{gt[tn]={}});const it=tn=>{const St=gt[tn];let on=0,Zr=0;for(const Si in St)on+=St[Si],Zr++;return Zr>0?on/Zr:null},ft={},Kn=()=>{let tn=0,St=0;for(const on in ft)tn+=ft[on],St++;return St>0?tn/St:null},Sr={};ct.forEach(tn=>{Sr[tn]=[]});const dr=[],Yn=[];let Br=null;const Jr=[];for(let tn=0;tn0&&(Stzo&&(zo=St));io>zo&&(io=0,zo=100);const pa=Math.max(0,io-2),Es=Math.min(100,zo+2);return{series:Sr,evSeries:dr,decidedSeries:Yn,paymentNums:Jr,yMin:pa,yMax:Es}},[An,Yt,Qs]),Xt=g.useMemo(()=>{const C=An,L=Object.keys(Yt),Z={data:[],gateways:L,windowSize:1};if(C.length<2)return Z;const ne=50,xe=Qs==="all"?0:Math.max(0,C.length-Qs),Re=C.length-xe,ct=Qs==="all"?Math.max(1,Re):Qs,gt=Math.max(1,Math.ceil(Re/ct)),it=[],ft=[];for(let Kn=0;Knne&&it.shift(),KnC!=null&&C.includes("HEDGING")?"Hedging":C==="SR_SELECTION_MULTI_OBJECTIVE"?"Cost Based":C==="SR_SELECTION_V3_ROUTING"?"Auth Based":C??"—",Tn=g.useMemo(()=>{const C=new Set,L=new Set,Z=new Set,ne=new Set,xe=new Set,Re=new Set,ct=new Set;for(const it of An)C.add(it.decidedGateway),it.cardNetwork&&L.add(it.cardNetwork),it.cardProgram&&Z.add(it.cardProgram),ne.add(er(it.routingApproach)),it.status&&xe.add(it.status),it.retryGateway&&Re.add(it.retryGateway),it.retryStatus&&ct.add(it.retryStatus);const gt=it=>Array.from(it).sort();return{gateways:gt(C),networks:gt(L),programs:gt(Z),routings:gt(ne),outcomes:gt(xe),retryGateways:gt(Re),retryOutcomes:gt(ct)}},[An]),Hn=g.useMemo(()=>{const C=Vt,L=Object.values(C).some(Boolean),Z=An.map((xe,Re)=>({res:xe,idx:Re}));if(!L)return Z;const ne=xe=>{var ct;const Re=(ct=xe.gatewayPriorityMap)==null?void 0:ct[xe.decidedGateway];return typeof Re=="number"?(Re*100).toFixed(1):""};return Z.filter(({res:xe})=>{if(C.gateway&&xe.decidedGateway!==C.gateway||C.network&&(xe.cardNetwork??"")!==C.network||C.program&&(xe.cardProgram??"")!==C.program||C.routing&&er(xe.routingApproach)!==C.routing||C.outcome&&xe.status!==C.outcome||C.retryGateway&&(xe.retryGateway??"")!==C.retryGateway||C.retryOutcome&&(xe.retryStatus??"")!==C.retryOutcome||C.amount&&!ih(xe.amount,xe.currency).toLowerCase().includes(C.amount.toLowerCase())||C.sr&&!ne(xe).includes(C.sr)||C.evGap&&!(xe.evGapTop2!=null?(xe.evGapTop2*100).toFixed(2):"").includes(C.evGap))return!1;if(C.cost){const Re=!!xe.costWon&&xe.costSavedBps!=null&&xe.costSavedBps>0&&xe.status==="CHARGED";if(C.cost==="yes"&&!Re||C.cost==="no"&&Re)return!1}return!0})},[An,Vt]),ur=g.useMemo(()=>{var ct;let C=0,L=0,Z=0,ne=0;for(const{res:gt}of Hn)C+=gt.amount,gt.costWon&>.costSavedBps!=null&>.costSavedBps>0&>.status==="CHARGED"&&(L+=gt.costSavedBps/1e4*gt.amount),gt.evGapTop2!=null&&(Z+=gt.evGapTop2*100,ne+=1);const xe=((ct=Hn[0])==null?void 0:ct.res.currency)||E.currency||"USD",Re=ne>0?Z/ne:null;return{amount:C,savings:L,currency:xe,count:Hn.length,evGapPctAvg:Re}},[Hn,E.currency]),Ea=Object.values(Vt).some(Boolean),Pc=g.useMemo(()=>An.filter(C=>{var L;return(L=C.routingApproach)==null?void 0:L.includes("HEDGING")}).length,[An]),Bf=g.useMemo(()=>{let C=0,L="";for(const Z of An)Z.costWon&&Z.costSavedBps!=null&&Z.costSavedBps>0&&Z.status==="CHARGED"&&(C+=Z.costSavedBps/1e4*Z.amount,L=Z.currency);return{value:C,currency:L}},[An]),id=g.useMemo(()=>{let C=0,L=0,Z=0,ne=0,xe=0,Re=0,ct="";for(const ft of An)if(ft.currency&&(ct=ft.currency),ft.costWon){if(ne++,ft.status==="CHARGED"&&(Z++,ft.costSavedBps!=null&&ft.costSavedBps>0&&(C+=ft.costSavedBps/1e4*ft.amount)),ft.headAuthRate!=null&&ft.chosenAuthRate!=null&&ft.margin!=null){const Kn=Math.max(0,ft.headAuthRate-ft.chosenAuthRate);L+=Kn*ft.amount*ft.margin}}else ft.authWon&&(Re++,ft.status==="CHARGED"&&xe++);const gt=ne>0?Z/ne:null,it=Re>0?xe/Re:null;return{currency:ct,feeSaved:C,authValueRisked:L,netProfit:C-L,overrideSr:gt,authKeptSr:it,overrideTotal:ne,authKeptTotal:Re}},[An]),Ss=g.useMemo(()=>{let C=0,L=0,Z=0,ne=0,xe=0,Re=0,ct=0,gt="";for(const ft of An)Re++,ct+=ft.amount,ft.currency&&(gt=ft.currency),ft.costWon?(C++,ft.status==="CHARGED"?L++:Z++):ft.status==="CHARGED"?ne++:xe++;return{srBased:Re-C,srSuccess:ne,srFailure:xe,costWon:C,costSuccess:L,costFailure:Z,total:Re,tpv:ct,currency:gt}},[An]),Fl=g.useMemo(()=>{let C=0,L=0,Z=0;for(const ne of An){C++;const xe=ne.status==="CHARGED";xe&&L++,(xe||ne.retryStatus==="CHARGED")&&Z++}return{total:C,firstAttemptSuccess:L,finalSuccess:Z,faar:C>0?L/C:null,nar:C>0?Z/C:null}},[An]),_s=((SM=ie==null?void 0:ie.debit_routing_output)==null?void 0:SM.co_badged_card_networks_info)||[],so=g.useMemo(()=>new Map(de.map((C,L)=>[C.name,L])),[de]),Ot=g.useMemo(()=>Object.entries(Yt).sort((C,L)=>L[1].total-C[1].total),[Yt]),fn=g.useMemo(()=>[...de].sort((C,L)=>L.count-C.count),[de]),Ns=fn[0],jr=fe.length,Cs=Number.parseInt(q,10)||0,gM=Cs>0?Math.min(100,Math.round(we/Cs*100)):0,ti=g.useMemo(()=>{var L;const C=((L=Vn.data)==null?void 0:L.results)||[];return C.find(Z=>Z.payment_id===Et)||C[0]||null},[(_M=Vn.data)==null?void 0:_M.results,Et]),Gn=g.useMemo(()=>{var L;const C=((L=Vn.data)==null?void 0:L.timeline)||[];return C.find(Z=>Z.id===$n)||C[0]||null},[(NM=Vn.data)==null?void 0:NM.timeline,$n]);g.useEffect(()=>{var L,Z;if(Gn!=null&&Gn.id){Sn(Gn.id);return}const C=(Z=(L=Vn.data)==null?void 0:L.timeline)==null?void 0:Z[0];C!=null&&C.id&&Sn(C.id)},[(CM=Vn.data)==null?void 0:CM.timeline,Gn==null?void 0:Gn.id]);const xM=g.useMemo(()=>{var L;const C=[];for(const Z of((L=Vn.data)==null?void 0:L.timeline)||[]){const ne=IA(Z),xe=C[C.length-1];!xe||xe.phase!==ne?C.push({phase:ne,events:[Z]}):xe.events.push(Z)}return C},[(EM=Vn.data)==null?void 0:EM.timeline]),Bo=g.useMemo(()=>XL(Gn),[Gn]),Aa=g.useMemo(()=>{var L;const C=((L=Wn.data)==null?void 0:L.results)||[];return C.find(Z=>Z.payment_id===Na)||C[0]||null},[(AM=Wn.data)==null?void 0:AM.results,Na]),qn=g.useMemo(()=>{var L;const C=((L=Wn.data)==null?void 0:L.timeline)||[];return C.find(Z=>Z.id===Mf)||C[0]||null},[(OM=Wn.data)==null?void 0:OM.timeline,Mf]);g.useEffect(()=>{var L,Z;if(qn!=null&&qn.id){ks(qn.id);return}const C=(Z=(L=Wn.data)==null?void 0:L.timeline)==null?void 0:Z[0];C!=null&&C.id&&ks(C.id)},[(TM=Wn.data)==null?void 0:TM.timeline,qn==null?void 0:qn.id]);const yM=g.useMemo(()=>{var L;const C=[];for(const Z of((L=Wn.data)==null?void 0:L.timeline)||[]){const ne=IA(Z),xe=C[C.length-1];!xe||xe.phase!==ne?C.push({phase:ne,events:[Z]}):xe.events.push(Z)}return C},[(PM=Wn.data)==null?void 0:PM.timeline]),zf=g.useMemo(()=>XL(qn),[qn]);g.useEffect(()=>{const C=nd.current;C&&(C.scrollTop=C.scrollHeight)},[An.length]);function M2(C){ws(null),ks(null),cr("summary"),yn(C),Sn(null),lr("summary")}function vM(){yn(null),Sn(null),lr("summary")}function Qm(C,L){yn(null),Sn(null),lr("summary"),Rf(L),ws(C),ks(null),cr("summary")}function bM(){ws(null),ks(null),cr("summary")}function wM(C){var ne;const L={...C};wi.length>0&&!wi.includes(L.currency)&&(L.currency=wi[0]),js.length>0&&!js.includes(L.payment_method_type)&&(L.payment_method_type=js[0]);const Z=c1(((ne=p[L.payment_method_type.toLowerCase()])==null?void 0:ne.values)||[]);return Z.length>0&&!Z.includes(L.payment_method)&&(L.payment_method=Z[0]),Dl.length>0&&!Dl.includes(L.auth_type)&&(L.auth_type=Dl[0]),Ca.length>0&&!Ca.includes(L.card_brand)&&(L.card_brand=Ca[0]),L}function kM(){const C=su();P({...wM(C.form),currency:MA}),Cc(MA),O(C.simulationConfig),fa(C.multiObjScenario),pt(C.extraConnectors),gn(C.removedConnectors),le(C.smartRetryEnabled),H(L=>Object.fromEntries(Object.entries(L).map(([Z,ne])=>[Z,{...RA,successRate:ne.successRate}]))),Mt(null),dn(null)}function jM(){const C=su();ma.results=C.simulationResults,He(C.simulationResults),Un(C.resumableRun),Ul.current=!0,Sg.current++,Df(null),Bt(!1),zt(!1),Ic.current=!1,Kt({}),Mt(null)}function zJ(){const C=su();w==="single"?(P(wM(C.form)),te(C.result),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),Se(C.responseOpen)):w==="batch"?(kM(),jM(),V(0)):w==="rule"?U(L=>L+1):w==="volume"?(W(C.volumePayments),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),at(C.volumeResponseOpen),ws(null),ks(null),cr("summary"),Rf("Volume Split Decision")):w==="debit"&&(R(C.debitForm),me(C.debitResult),Ne(C.debitPaymentId),qe(C.debitResponseOpen),yn(null),Sn(null),lr("summary")),Mt(null),dn(null),Yr(!1),Ec(!1),yn(null),Sn(null),lr("summary")}const UJ=w==="rule"?"Reset Rule Based Routing":w==="volume"?"Reset Volume Based Routing":w==="debit"?"Reset Debit Routing":"Reset";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsx("div",{children:i.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:i.jsx(qr,{title:"Decision Simulator"})})}),i.jsx("button",{type:"button",onClick:()=>ge(!0),disabled:bt||!a||Ge,title:"Hard refresh — flush this merchant's SR scores from Redis so the next run starts fresh. Use sparingly.","aria-label":"Hard refresh gateway scores",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-600 disabled:pointer-events-none disabled:opacity-40 dark:text-slate-400 dark:hover:bg-white/5 dark:hover:text-slate-300",children:i.jsx(As,{size:14,className:Ge?"animate-spin":""})})]}),i.jsx(qs,{open:Nt,variant:"danger",title:"Hard refresh SR scores?",description:"This flushes all of this merchant's accumulated SR scores from Redis. The next run starts from fresh scores — there's no undo.",confirmLabel:"Flush scores",cancelLabel:"Cancel",onConfirm:()=>{ge(!1),pv()},onCancel:()=>ge(!1)}),sn&&i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>xn(!1)}),i.jsxs("div",{className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Add a processor"}),i.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:At.length>0?"Pick a processor we can already price, or type any other connector name. It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs.":"Enter a connector name (e.g. braintree, worldpay). It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs."}),At.length>0&&i.jsxs("div",{className:"mt-4",children:[i.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-500 leading-4",children:"Known processors"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:At.map(({name:C,hasCostModel:L})=>{const Z=_a.trim().toLowerCase()===C;return i.jsxs("button",{type:"button",onClick:()=>{Dn(C),or(null)},onDoubleClick:Ff,"aria-pressed":Z,title:L?`${C} — has a fitted cost model from ingested reports`:`${C} — priced from your contract seed rates`,className:`rounded-full border px-2.5 py-1 text-xs font-medium transition-colors ${Z?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#2a303a] dark:text-[#9ca7ba] dark:hover:bg-white/5"}`,children:[C,L&&i.jsx("span",{className:"ml-1.5 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle","aria-hidden":!0})]},C)})}),i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:[i.jsx("span",{className:"mr-1 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle"}),"has a fitted cost model; the rest use contract seed rates."]})]}),i.jsx("input",{autoFocus:!0,type:"text",value:_a,placeholder:At.length>0?"Or type a connector name":"Connector name",onChange:C=>{Dn(C.target.value.toLowerCase()),ua&&or(null)},onKeyDown:C=>{C.key==="Enter"?Ff():C.key==="Escape"&&xn(!1)},className:"mt-4 w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),ua&&i.jsx("p",{className:"mt-2 text-xs text-red-600",children:ua}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>xn(!1),children:"Cancel"}),i.jsx(ke,{variant:"primary",size:"sm",onClick:Ff,children:"Add processor"})]})]})]}),w==="rule"&&i.jsx(YH,{merchantId:a,routingKeysConfig:p,routingConfigUnavailable:b,routingKeysLoading:m,resetSignal:z,onRunComplete:ao,onOpenTrace:Qm}),w==="batch"&&i.jsxs("div",{className:"flex flex-wrap items-start gap-x-6 gap-y-3 rounded-2xl border border-slate-200 bg-white px-5 py-3 dark:border-[#222226] dark:bg-[#0b0b10]",children:[i.jsx("div",{className:"-mb-1 -mr-2 -mt-2 flex w-full justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:kM,title:"Restore the controls in this panel to their defaults (per-processor success rates are kept). Leaves the results below untouched.",children:[i.jsx(As,{size:14}),"Reset inputs"]})}),De.map(C=>{const L=`${C.charAt(0).toUpperCase()+C.slice(1)} success rate`,Z=Tt[C]??os[0],ne=(Y[C]??ib(C)).successRate;return i.jsxs("div",{className:"flex w-[190px] flex-col gap-1.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:Z}}),i.jsx(an,{children:L}),De.length>1&&!bt&&i.jsx("button",{type:"button",onClick:()=>ki(C),className:"ml-auto text-slate-500 transition-colors hover:text-red-600",title:`Remove ${C} from the comparison`,"aria-label":`Remove ${C}`,children:i.jsx(Hr,{size:13})})]}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:"number",min:0,max:100,step:1,value:ne,onChange:xe=>qm(C,xe.target.value===""?0:Va(parseFloat(xe.target.value))),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 pr-7 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),i.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-slate-500",children:"%"})]}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:ne,onChange:xe=>qm(C,Va(Number(xe.target.value))),className:`mt-1 h-1.5 w-full cursor-pointer appearance-none rounded-full outline-none + [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:bg-[color:var(--thumb)] [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-webkit-slider-thumb]:active:scale-95 + [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-white [&::-moz-range-thumb]:border-solid [&::-moz-range-thumb]:bg-[color:var(--thumb)] [&::-moz-range-thumb]:shadow`,style:{"--thumb":Z,background:`linear-gradient(to right, ${Z} ${ne}%, rgba(148,163,184,0.45) ${ne}%)`}})]},C)}),da&&i.jsxs("div",{className:"flex w-[100px] flex-col gap-1.5",children:[i.jsx(an,{children:"Processor"}),i.jsxs("button",{type:"button",onClick:On,title:"Add another processor to the comparison",className:"flex items-center justify-center gap-1.5 rounded-lg border border-dashed border-slate-300 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-500 transition-colors hover:border-brand-400 hover:text-brand-600 dark:border-[#33333a] dark:bg-[#0d0d13] dark:text-[#8a93a6] dark:hover:border-brand-500 dark:hover:text-brand-400",children:[i.jsx(Qn,{size:14})," Add"]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[175px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:"Pin every multi-objective transaction to one card scenario so the SR Trend shows a single clean per-segment bucket. 'All scenarios' rotates through this currency's scenarios (interleaves dimensions on one chart). Choosing a currency with configured contract rates (e.g. AED) lists those scenarios here. Editable while paused — the rest of the run continues in the new segment on resume.",children:"Card scenario"})}),i.jsxs("select",{value:String(is),disabled:bt&&!wt,onChange:C=>fa(C.target.value==="ALL"?"ALL":Number(C.target.value)),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:[i.jsx("option",{value:"ALL",children:"All scenarios (rotate)"}),Ua.map((C,L)=>i.jsx("option",{value:L,children:C.label},C.label))]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[130px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:"Settlement currency sent on each transaction. USD exercises the seed-cost fallback; EUR/AUD (and others) let a transaction match the in-house fitted cost models, which are keyed by currency.",children:"Currency"})}),i.jsx("select",{value:wr,disabled:bt&&!wt,onChange:C=>Cc(C.target.value),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:td.map(C=>i.jsx("option",{value:C,children:C},C))})]}),da&&(()=>{const C=Math.max(1,Math.min(_g,A.tps||1));return i.jsxs("div",{className:"flex w-[62px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:`Transactions kept in flight at once (1–${_g}). Higher = more decide+feedback round-trips per second, so gateway scores move faster. Applies on the next run.`,children:"TPS"})}),i.jsx("input",{type:"number",min:1,max:_g,step:1,value:C,disabled:bt,onChange:L=>{const Z=Math.round(Number(L.target.value)),ne=Number.isFinite(Z)?Math.max(1,Math.min(_g,Z)):1;O(xe=>({...xe,tps:ne}))},className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"})]})})(),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx("span",{className:"block h-4","aria-hidden":!0}),i.jsxs("label",{className:"flex h-[34px] items-center gap-2 cursor-pointer select-none",title:"When on, ~50% of failed transactions are treated as soft declines (GSM retry) and retried on the next eligible processor (alternate PSP).",children:[i.jsx("input",{type:"checkbox",checked:dt,onChange:C=>le(C.target.checked),className:"cursor-pointer rounded border-slate-300 dark:border-slate-600"}),i.jsx("span",{className:"text-xs font-medium text-slate-600 dark:text-slate-300",children:"Retry Enabled"})]})]}),(()=>{const C=WL,L=HL,Z="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold tabular-nums text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none";return i.jsxs("div",{className:"flex w-[220px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsxs("span",{title:"Per-transaction amount range (multi-objective sim). Each payment's amount is drawn uniformly from this range. Smaller amounts make the flat per-txn fee a bigger share of cost. Applies on the next run.",children:["Amount range (",wr,")"]})}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(QL,{ariaLabel:"Minimum amount",value:A.minAmount,min:C,max:L,onCommit:ne=>O(xe=>({...xe,minAmount:ne})),onSettle:()=>O(ne=>({...ne,minAmount:Math.min(ne.minAmount,ne.maxAmount)})),className:Z}),i.jsx("span",{className:"shrink-0 text-xs text-slate-500",children:"–"}),i.jsx(QL,{ariaLabel:"Maximum amount",value:A.maxAmount,min:C,max:L,onCommit:ne=>O(xe=>({...xe,maxAmount:ne})),onSettle:()=>O(ne=>({...ne,maxAmount:Math.max(ne.minAmount,ne.maxAmount)})),className:Z})]})]})})(),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 self-end lg:ml-auto",children:[i.jsxs(ke,{size:"sm",variant:"ghost",onClick:()=>bi(C=>!C),title:"Show or hide the advanced controls (TPS, Add processor)",children:[i.jsx(Hi,{size:14}),da?"Less":"More"]}),bt?i.jsxs(i.Fragment,{children:[wt?i.jsxs(ke,{onClick:gv,variant:"primary",children:[i.jsx(Ts,{size:14,className:"fill-current"})," Resume"]}):i.jsxs(ke,{onClick:mv,variant:"secondary",children:[i.jsx(BCe,{size:14})," Pause"]}),i.jsxs(ke,{onClick:()=>{Ul.current=!0},variant:"secondary",children:[i.jsx(Hr,{size:14})," Stop"]})]}):Ut?i.jsxs(i.Fragment,{children:[i.jsxs(ke,{onClick:Gm,disabled:!a||b,variant:"primary",title:`Continue the paused run from transaction ${Ut.nextIndex+1} of ${Ut.total}`,children:[i.jsx(Ts,{size:14,className:"fill-current"})," Resume run"]}),i.jsxs(ke,{onClick:sv,variant:"secondary",children:[i.jsx(As,{size:14})," Start over"]})]}):i.jsxs(ke,{onClick:()=>Zm(),disabled:!a||b,variant:"primary",children:[i.jsx(Ts,{size:14,className:"fill-current"})," Run simulation"]})]})]}),i.jsxs("div",{className:w==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":w==="batch"?"grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] lg:items-stretch":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:w==="rule"?{display:"none"}:void 0,children:[i.jsxs("div",{className:`flex flex-col gap-6 min-w-0 ${w==="batch"?"lg:min-h-0":"self-start"}`,children:[w==="batch"&&i.jsx(JAe,{merchantId:a,isSimulating:bt,tps:A.tps,onContractGone:()=>V(0),onCycleEnded:()=>{Ul.current=!0,V(0)},onLoad:({gateways:C,amount:L,totalPayments:Z,paceMs:ne})=>{V(ne),P(xe=>({...xe,eligible_gateways:C.join(", "),amount:String(L)})),O(xe=>({...xe,minAmount:L,maxAmount:L,totalPayments:String(Z)}))}}),w==="batch"&&i.jsx(QAe,{merchantId:a,results:Oe,colorFor:vn}),w==="batch"&&i.jsx(Te,{className:"flex-1",children:i.jsxs(ze,{className:"!pt-4 flex flex-1 flex-col",children:[Ot.length>0?(()=>{const C=Ot,L=C.some(([Z])=>{var ne;return(((ne=Xr.series[Z])==null?void 0:ne.length)??0)>=2});return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[L&&(()=>{const{series:Z,evSeries:ne,decidedSeries:xe,paymentNums:Re}=Xr,ct=Re.map((en,tn)=>{const St={step:en};C.forEach(([Si])=>{var _i;const Oa=(_i=Z[Si])==null?void 0:_i[tn];Oa!=null&&(St[Si]=Oa)});const on=xe[tn];on!=null&&(St.selectedGw=on);const Zr=ne[tn];return Zr!=null&&(St.evLead=Zr),St}),gt=[];ct.forEach(en=>{C.forEach(([tn])=>{const St=en[tn];typeof St=="number"&>.push(St)})});const it=gt.length?Math.min(...gt):0,ft=gt.length?Math.max(...gt):100,Kn=Math.max(ft-it,0),Sr=6,dr=Math.max(Kn,Sr),Yn=dr<=10?2:dr<=30?5:10,Br=(it+ft)/2,Jr=Math.max(Kn/2,Sr/2),io=Math.max(0,Math.floor((Br-Jr)/Yn)*Yn),zo=Math.min(100,Math.ceil((Br+Jr)/Yn)*Yn),pa=zo+Math.min(Yn,2),Es=[];for(let en=io;en<=zo;en+=Yn)Es.push(en);return i.jsxs("div",{className:"w-full flex-1 min-h-[380px] flex flex-col",children:[i.jsxs("div",{className:"mb-2 flex items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Success Rate Trend"})}),i.jsx("div",{className:"flex items-center gap-2 shrink-0",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 dark:border-[#1f1f29] p-0.5",children:E2.map(en=>{const tn=Qs===en;return i.jsx("button",{type:"button",onClick:()=>C2(en),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${tn?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:en==="all"?"All":`Last ${en}`},String(en))})})})]}),i.jsx("div",{className:"min-h-0 flex-1",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:ct,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[io,pa],ticks:Es,allowDataOverflow:!0,tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:en=>`${en}%`}),i.jsx(Vr,{content:en=>{const{active:tn,payload:St}=en;if(!tn||!St||!St.length)return null;const on=St[0].payload;if(!on)return null;const Zr=typeof on.selectedGw=="string"?on.selectedGw:null,Si=typeof on.evLead=="number"?on.evLead:null;return i.jsxs("div",{style:{...il,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:190},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Payment ",on.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:C.map(([Oa])=>{const _i=on[Oa];if(typeof _i!="number")return null;const eg=Tt[Oa]??os[0],R2=Zr===Oa;return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:eg,flexShrink:0}}),i.jsx("span",{style:{color:eg,fontWeight:600},children:Oa}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[_i.toFixed(1),"%"]}),Zr!=null&&i.jsx("span",{style:{fontSize:10,fontWeight:600,width:56,textAlign:"right",color:"#64748b"},children:R2?"★ Selected":""})]},Oa)})}),i.jsxs("div",{style:{marginTop:6,paddingTop:6,borderTop:"1px solid rgba(148,163,184,0.25)",display:"flex",alignItems:"center",gap:6},children:[i.jsxs("span",{style:{color:"#64748b"},children:["EV lead",Zr!=null?` · ${Zr}`:""]}),i.jsx("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums",fontWeight:600},children:Si!=null?`+${(Si*100).toFixed(2)}% of ticket`:"—"})]})]})}}),C.map(([en])=>i.jsx(fi,{type:"natural",dataKey:en,name:en,stroke:Tt[en]??os[0],strokeWidth:2.5,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!0},en))]})})}),i.jsx("div",{className:"mt-3 flex flex-wrap items-center justify-center gap-x-5 gap-y-1.5 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:C.map(([en])=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Tt[en]??os[0]}}),en]},en))})]})})(),Xt.data.length>=2&&(()=>{const{data:Z,gateways:ne}=Xt,xe=Z[Z.length-1]??{},Re=(it,ft)=>Tt[it]??os[ft%os.length],ct=ne.map((it,ft)=>({gw:it,share:xe[it]??0,color:Re(it,ft)})).sort((it,ft)=>ft.share-it.share),gt=ne.map((it,ft)=>({gw:it,idx:ft,share:xe[it]??0})).sort((it,ft)=>ft.share-it.share);return i.jsxs("div",{className:"w-full border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Routing Distribution"})}),i.jsx("div",{className:"flex flex-wrap items-center gap-1.5",children:ct.map(({gw:it,share:ft,color:Kn})=>i.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-slate-50 px-2 py-0.5 text-[11px] font-medium text-slate-600 ring-1 ring-inset ring-slate-200/70 dark:bg-[#12121a] dark:text-slate-300 dark:ring-[#22222c] leading-4",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Kn}}),it,i.jsxs("span",{className:"tabular-nums font-semibold text-slate-900 dark:text-white",children:[Math.round(ft),"%"]})]},it))})]}),i.jsx("div",{className:"h-[200px] w-full",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:Z,margin:{top:8,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[0,100],ticks:[0,25,50,75,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:it=>`${it}%`}),i.jsx(Vr,{cursor:{stroke:"#cbd5e1",strokeWidth:1},content:it=>{const{active:ft,payload:Kn}=it;if(!ft||!Kn||!Kn.length)return null;const Sr=Kn[0].payload;if(!Sr)return null;const dr=ne.map((Yn,Br)=>({gw:Yn,share:Sr[Yn]??0,color:Re(Yn,Br)})).sort((Yn,Br)=>Br.share-Yn.share);return i.jsxs("div",{style:{...il,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:170},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Payment ",Sr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:dr.map(({gw:Yn,share:Br,color:Jr})=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:Jr,flexShrink:0}}),i.jsx("span",{style:{color:Jr,fontWeight:600},children:Yn}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[Br.toFixed(1),"%"]})]},Yn))})]})}}),gt.map(({gw:it,idx:ft})=>i.jsx(Zu,{type:"monotone",dataKey:it,name:it,stroke:Re(it,ft),fill:Re(it,ft),fillOpacity:.18,strokeWidth:2.5,isAnimationActive:!1,legendType:"none",activeDot:{r:3.5,strokeWidth:0}},it))]})})})]})})()]})})():(()=>{const C=De;if(C.length===0)return null;const L=C.map(xe=>({gw:xe,sr:(Y[xe]??ib(xe)).successRate})),Z=ye||Number(zT),ne=[{step:1},{step:Z}];return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[i.jsx("div",{className:"space-y-2",children:L.map(({gw:xe,sr:Re})=>{const ct=Tt[xe]??os[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:ct}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 truncate shrink-0 w-14 text-left",children:xe}),i.jsxs("span",{className:`font-bold tabular-nums text-[11px] w-14 text-right ${Re>=80?"text-emerald-700 dark:text-emerald-400":Re>=50?"text-amber-700":"text-red-600"} leading-4`,children:[Re,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 text-[11px] leading-4",children:"·"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums text-[11px] w-16 text-right leading-4",children:"0% routed"})]})},xe)})}),i.jsx("div",{className:"w-full flex-1 min-h-[300px]",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(uH,{data:ne,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[0,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:xe=>`${xe}%`})]})})}),i.jsx("p",{className:"pt-1 text-center text-[11px] text-slate-500 leading-4",children:"Projected from configured success rates · run a simulation to see live routing."})]})})(),Object.keys(Yt).length===1&&De.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 mx-auto max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})}),w!=="batch"&&i.jsxs(Te,{className:"!rounded-2xl",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:w==="rule"?"Rule Evaluation":w==="volume"?"Volume Split":w==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:w==="rule"?"Rule Evaluation Parameters":w==="volume"?"Volume Split Configuration":w==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),w!=="volume"&&w!=="debit"&&m&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),w!=="volume"&&w!=="debit"&&b&&i.jsx(_t,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),w==="rule"?i.jsxs(i.Fragment,{children:[m&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),b&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:ee.map((C,L)=>{var Z;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:C.key,onChange:ne=>cv(L,ne.target.value),disabled:b||m,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:rd.length===0?i.jsx("option",{value:"",children:"No keys available"}):rd.map(ne=>i.jsx("option",{value:ne,children:ne},ne))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),C.type==="enum_variant"?i.jsx("select",{value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((Z=p[C.key])==null?void 0:Z.values)||[]).map(ne=>i.jsx("option",{value:ne,children:ne},ne))}):C.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):C.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>P2(L),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),C.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:C.metadataKey||"",onChange:ne=>lv(L,ne.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},L)})}),i.jsxs("button",{onClick:T2,disabled:b||m||rd.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:re.map((C,L)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:L+1}),i.jsx("input",{placeholder:"gateway name",value:C.gateway_name,onChange:Z=>Xm(L,"gateway_name",Z.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:C.gateway_id||"",onChange:Z=>Xm(L,"gateway_id",Z.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>dv(L),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},L))}),i.jsxs("button",{onClick:uv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):w==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(mt,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx(Fa,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx(Fa,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:fv,disabled:!a||In,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:F.amount,onChange:C=>ei("amount",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:F.currency,onChange:C=>ei("currency",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:F.auth_type,onChange:C=>ei("auth_type",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:F.card_type,onChange:C=>ei("card_type",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:F.eligible_gateways,onChange:C=>ei("eligible_gateways",C.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:F.merchant_category_code,onChange:C=>ei("merchant_category_code",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:F.acquirer_country,onChange:C=>ei("acquirer_country",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:F.co_badged_networks,onChange:C=>ei("co_badged_networks",C.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:F.issuer_country,onChange:C=>ei("issuer_country",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:F.is_regulated,onChange:C=>ei("is_regulated",C.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),F.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:F.regulated_name,onChange:C=>ei("regulated_name",C.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):w==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:q,onChange:C=>W(C.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(ke,{onClick:K,disabled:In||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(cf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Cs||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:In?we:jr||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${In?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${In?gM:jr&&Cs?Math.min(100,Math.round(jr/Cs*100)):0}%`}})}),In&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[gM,"%"]})]})]}):i.jsx(i.Fragment,{children:w==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:Be,onChange:C=>tt(C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),Be==="FAILURE"&&i.jsx(EA,{info:I,onChange:$f,rules:ro})]})})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:$o}),w==="rule"?i.jsx(ke,{onClick:T,disabled:In||b,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})}):w==="debit"?i.jsx(ke,{onClick:hv,disabled:In||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Oo,{size:14})," Run Debit Routing"]})}):w==="volume"?null:i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Jm,disabled:In||!a||b,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Run Single Transaction"]})})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:zJ,children:[i.jsx(As,{size:14}),UJ]})})]})]})]}),i.jsxs("div",{className:`min-w-0 flex flex-col gap-4 ${w==="batch"?"lg:min-h-0":""}`,children:[w==="batch"&&i.jsxs("div",{className:"flex flex-col justify-center gap-5 rounded-2xl border border-slate-200 bg-white px-5 py-4 dark:border-[#222226] dark:bg-[#0b0b10]",children:[yt&&i.jsx("div",{className:"-mb-3 -mr-2 -mt-2 flex justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:jM,title:"Clear these stats, the charts and the transaction log. Leaves the controls above untouched.",children:[i.jsx(Cn,{size:14}),"Clear"]})}),(()=>{const C=id.currency||E.currency||"USD";return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",title:"First Attempt Auth Rate — share of decisions charged on the first attempt (first-attempt charges ÷ total decisions).",children:[i.jsx(Jf,{label:"First-attempt auth rate",abbr:"FAAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Fl.faar!=null?`${(Fl.faar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Net Auth Rate — share of decisions charged in the end, counting a successful smart retry (final charges ÷ total decisions). NAR ≥ FAAR when retries recover failures.",children:[i.jsx(Jf,{label:"Net auth rate",abbr:"NAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Fl.nar!=null?`${(Fl.nar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Realized fee saved on charged cost-override decisions: Σ (costSavedBps ÷ 10000) × amount.",children:[i.jsx(Jf,{label:"Realized cost savings"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:ih(Bf.value,Bf.currency||C)})]})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"Total decisions"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Ss.total.toLocaleString()})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"SR-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[Ss.srBased.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ss.srSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:Ss.srFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"Cost-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[Ss.costWon.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ss.costSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:Ss.costFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]})]})]})})()]}),w==="debit"?ie?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),ve?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>M2(ve),children:"View audit"}):null]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:ie.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:ve})]})]}),ie.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(ze,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:_s.map((C,L)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",L+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:C.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[C.saving_percentage.toFixed(2),"%"]})]},`${C.network}-${L}`))})]})})]})]}):i.jsx(_t,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>qe(!Ae),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[Ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14}),"Raw response"]}),Ae&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(ie,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-12 text-center",children:[i.jsx(Oo,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):w==="volume"?de.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:jr})," evaluations"]}),Ns&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Ns.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[Ns.percentage,"%"]})]})]})]})]}),B!=null&&B.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Qm(B.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[fn.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:fn.map(C=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${C.percentage}%`,backgroundColor:Zf[(so.get(C.name)??0)%Zf.length]},title:`${C.name}: ${C.percentage}%`},C.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:fn.map(C=>{const L=Zf[(so.get(C.name)??0)%Zf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:L}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:C.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[C.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[C.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${C.percentage}%`,backgroundColor:L}})})]},C.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:fe.slice(-200).map((C,L)=>{const Z=Math.max(0,fe.length-200)+L;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>Qm(C.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:Z+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:C.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Zf[(so.get(C.connector)??0)%Zf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:C.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ne=>{ne.stopPropagation(),Qm(C.paymentId,"Volume Split Decision")},children:"Open"})})]},C.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>at(C=>!C),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API response"]}),rt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]}),rt&&B&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(B,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(cf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):w==="rule"?B?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:B.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",B.output.type]})]}),B.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Qm(B.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),B.output.type==="single"&&B.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:B.output.connector.gateway_name}),B.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",B.output.connector.gateway_id]})]}),B.output.type==="priority"&&B.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:B.output.connectors.map((C,L)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:L+1}),i.jsx("span",{className:"font-medium",children:C.gateway_name}),C.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",C.gateway_id,")"]})]},L))})]}),B.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Se(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),ae&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(B,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):w==="batch"?i.jsxs(i.Fragment,{children:[yt&&i.jsx(Te,{className:"lg:shrink-0",children:i.jsxs(jt,{className:"flex flex-row items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-[14px] font-semibold text-slate-500 dark:text-slate-400 leading-5",children:"Gateway Selection Summary"})}),i.jsxs("span",{className:"text-[13px] tabular-nums flex items-center gap-1.5 shrink-0 leading-[18px]",children:[i.jsxs("span",{className:"text-slate-500",children:[Ke," / ",ye||0]}),Ke>0&&Pc>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"font-medium text-brand-600 dark:text-sky-400",children:[Math.round(Pc/Ke*100),"% hedged"]})]})]})]})}),i.jsxs(Te,{className:"lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3 lg:shrink-0",children:[i.jsx("span",{className:"flex items-center gap-2.5",children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Autopilot Actions"})}),Ac.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[Ac.length," actions"]})]}),i.jsx(ze,{className:"p-0 lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:Fo==null?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No events yet"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400 mx-auto max-w-[57ch]",children:"Start a simulation — leader changes and auth-band crossings appear here as gateway scores shift."})]}):Ml.isUnavailable?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Events unavailable"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"The analytics pipeline (Kafka → ClickHouse) is offline for this environment."})]}):i.jsxs("div",{className:"max-h-[240px] overflow-y-auto lg:max-h-[360px] lg:flex-1 lg:min-h-0 divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[av.map(C=>{if(C.kind==="leaderFlap"){const Re=Oc.has(C.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Re?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(V0,{size:16,className:"text-sky-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[C.latest.gateway,C.latest.score!=null?` (${(C.latest.score*100).toFixed(1)}%)`:""," now leads on success rate",C.latest.previous_gateway?` over ${C.latest.previous_gateway}${C.latest.previous_score!=null?` (${(C.latest.previous_score*100).toFixed(1)}%)`:""}`:"",i.jsxs("span",{className:"ml-1.5 rounded-full bg-sky-100 px-1.5 py-0.5 text-[11px] font-medium text-sky-700 dark:bg-sky-900/30 dark:text-sky-300 leading-4",children:["×",C.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:["now routing to the best PSP · ",ob(C.latest.bucket_ms)]})]})]},C.latest.id)}if(C.kind==="flap"){const Re=Oc.has(C.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Re?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(As,{size:16,className:"text-amber-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[C.gateway," fluctuating at the cost-savings cutoff",i.jsxs("span",{className:"ml-1.5 rounded-full bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-300 leading-4",children:["×",C.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:["now ",C.inBand?"routed to save cost":"using top performer only"," · ",ob(C.latest.bucket_ms)]})]})]},C.latest.id)}const L=C.event,Z=$5e[L.event_type],ne=(Z==null?void 0:Z.icon)??V0,xe=Oc.has(L.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${xe?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(ne,{size:16,className:(Z==null?void 0:Z.iconClass)??"text-slate-500"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:BT(L)}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:ob(L.bucket_ms)})]})]},L.id)}),i.jsxs("div",{className:"flex items-start gap-2.5 px-4 py-2.5 bg-gradient-to-r from-sky-50 via-transparent to-violet-50 dark:from-sky-500/10 dark:to-violet-500/10",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(DCe,{size:16,className:"text-violet-600"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:["Started tracking"," ",i.jsx("span",{className:"font-semibold text-emerald-700 dark:text-emerald-400",children:"SR"})," ","and"," ",i.jsx("span",{className:"font-semibold text-violet-600 dark:text-violet-400",children:"Cost"})," ","for"," ",De.map((C,L)=>i.jsxs("span",{children:[i.jsx("span",{className:"font-semibold capitalize",style:{color:Tt[C]??os[0]},children:C}),LN2(C=>!C),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Hm?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Hm&&i.jsx(XH,{merchantId:a,gsmRules:ro,decideParams:{amount:E.amount,currency:E.currency,paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:E.eligible_gateways}})]})]}):ue?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:ue.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${D5e(ue.routing_approach)}`,children:ue.routing_approach})}),je?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>M2(je),children:"View audit"}):null,ue.is_scheduled_outage&&i.jsx(Pe,{variant:"red",children:"Scheduled Outage"}),je?i.jsx(Pe,{variant:Be==="CHARGED"?"green":"red",children:Be}):null,ue.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[ue.latency,"ms"]})]})]}),je?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:je}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",Be,". Open audit to inspect the full decide and update flow."]})]}):null,ue.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:ue.routing_dimension})]}),ue.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:ue.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:ue.reset_approach})]})]})]})}),ue.multi_objective_info&&i.jsx(nOe,{info:ue.multi_objective_info}),ce.length>0&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Jm,className:"text-xs",children:[i.jsx(As,{size:12})," Refresh"]})]})}),i.jsx(ze,{children:i.jsx(Li,{width:"100%",height:ce.length*40+20,children:i.jsxs(Yh,{data:ce,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(Ia,{type:"number",domain:[0,100],tickFormatter:C=>`${C}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(wa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(Vr,{formatter:C=>`${C}%`,contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"score",radius:[0,4,4,0],children:ce.map((C,L)=>i.jsx(Ey,{fill:C.name===ue.decided_gateway?"#0069ED":C.score<30?"#ef4444":C.score<60?"#f59e0b":"#10b981"},L))})]})})})]}),ue.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Ec(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Or?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Or&&i.jsx(ze,{className:"space-y-2",children:Object.entries(ue.filter_wise_gateways).map(([C,L])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:C}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(L)?L.map(Z=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:Z},Z)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},C))})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Se(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),ae&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(ue,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})]})]}),w==="batch"&&yt&&i.jsxs(Te,{className:"mt-6",children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),An.length>0&&i.jsxs("span",{className:"flex items-center gap-2 text-xs text-slate-500 tabular-nums",children:[Ea&&i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onClick:()=>Kt({}),className:"rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-600 hover:bg-brand-50 dark:text-brand-400 dark:hover:bg-brand-900/20 leading-4",children:"Clear filters"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"})]}),i.jsxs("span",{children:[Ea?`${Hn.length} / ${An.length}`:An.length," ","transactions"]})]})]}),i.jsx(ze,{className:"p-0",children:An.length>0?i.jsx("div",{ref:nd,className:"max-h-[560px] overflow-y-auto overflow-x-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsxs("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:[i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-8",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Amount"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap w-20",children:"Network"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap ",children:"Program"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",children:"SR Score"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",title:"Expected-value gap between the top-two EV-ranked PSPs (% of ticket) — the decision's margin of victory. Small values mean it was a close call.",children:"EV Δ (top 2)"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),dt&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),dt&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"})]}),(()=>{const C="w-full rounded border border-slate-200 bg-white px-1.5 py-1 text-[11px] font-normal text-slate-700 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-200 dark:placeholder:text-slate-600",L=(ne,xe)=>Kt(Re=>({...Re,[ne]:xe})),Z=(ne,xe,Re)=>i.jsxs("select",{value:Vt[ne]??"",onChange:ct=>L(ne,ct.target.value),className:C,children:[i.jsx("option",{value:"",children:Re}),xe.map(ct=>i.jsx("option",{value:ct,children:ct},ct))]});return i.jsxs("tr",{className:"bg-white dark:bg-[#0a0a0f] border-b border-slate-100 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"px-2 py-1.5"}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.amount??"",onChange:ne=>L("amount",ne.target.value),placeholder:"search",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:Z("network",Tn.networks,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("program",Tn.programs,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("gateway",Tn.gateways,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.sr??"",onChange:ne=>L("sr",ne.target.value),placeholder:"e.g. 90",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.evGap??"",onChange:ne=>L("evGap",ne.target.value),placeholder:"e.g. 0.12",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:Z("routing",Tn.routings,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("outcome",Tn.outcomes,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsxs("select",{value:Vt.cost??"",onChange:ne=>L("cost",ne.target.value),className:C,children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"yes",children:"Has savings"}),i.jsx("option",{value:"no",children:"None"})]})}),dt&&i.jsx("th",{className:"px-2 py-1.5",children:Z("retryGateway",Tn.retryGateways,"All")}),dt&&i.jsx("th",{className:"px-2 py-1.5",children:Z("retryOutcome",Tn.retryOutcomes,"All")})]})})()]}),i.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[Hn.map(({res:C,idx:L})=>{var Z;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>M2(C.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:L+1}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap",children:i.jsx("span",{className:"block font-mono text-xs text-slate-700 dark:text-slate-300 tabular-nums group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:ih(C.amount,C.currency)})}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.cardNetwork??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.cardProgram??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.decidedGateway}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:(()=>{var xe;const ne=(xe=C.gatewayPriorityMap)==null?void 0:xe[C.decidedGateway];return typeof ne=="number"?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(ne*100).toFixed(1),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})})()}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:C.evGapTop2!=null?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(C.evGapTop2*100).toFixed(2),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})}),i.jsx("td",{className:"px-3 py-2",children:(Z=C.routingApproach)!=null&&Z.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-amber-50 px-2 py-0.5 text-[11px] font-medium text-amber-700 ring-1 ring-inset ring-amber-200 dark:bg-amber-900/20 dark:text-amber-300 dark:ring-amber-800 leading-4",children:"Hedging"}):C.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-emerald-50 px-2 py-0.5 text-[11px] font-medium text-emerald-700 ring-1 ring-inset ring-emerald-200 dark:bg-emerald-900/20 dark:text-emerald-300 dark:ring-emerald-800 leading-4",children:"Cost Based"}):C.routingApproach==="SR_SELECTION_V3_ROUTING"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Auth Based"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:C.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx("span",{className:`text-xs font-semibold ${C.status==="CHARGED"?"text-emerald-700 dark:text-emerald-400":C.status==="PENDING_VBV"?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}`,children:C.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:C.costWon&&C.costSavedBps!=null&&C.costSavedBps>0&&C.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:R5e(C.costSavedBps,C.amount,C.currency)}):null}),dt&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:C.retryGateway??"—"}),dt&&i.jsx("td",{className:"px-3 py-2",children:C.retryStatus?i.jsx(Pe,{variant:C.retryStatus==="CHARGED"?"green":C.retryStatus==="PENDING_VBV"?"orange":"red",children:C.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},C.paymentId)}),Hn.length===0&&i.jsx("tr",{children:i.jsx("td",{colSpan:dt?12:10,className:"px-3 py-8 text-center text-sm text-slate-500 dark:text-slate-400",children:"No transactions match the current filters."})})]}),Hn.length>0&&i.jsx("tfoot",{className:"sticky bottom-0 z-10 bg-slate-50 dark:bg-[#0a0a0f] border-t border-slate-200 dark:border-[#1c1c24]",children:i.jsxs("tr",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200",children:[i.jsx("td",{className:"px-3 py-2 text-slate-500",children:"Σ"}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap tabular-nums",children:ih(ur.amount,ur.currency)}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsxs("td",{className:"px-3 py-2 whitespace-nowrap font-normal text-slate-500",children:[ur.count.toLocaleString()," rows"]}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums font-normal text-slate-500",title:"Average EV margin of victory across these rows",children:ur.evGapPctAvg!=null?`${ur.evGapPctAvg.toFixed(2)}% avg`:""}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums text-emerald-700 dark:text-emerald-400",children:ih(ur.savings,ur.currency)}),dt&&i.jsx("td",{className:"px-3 py-2"}),dt&&i.jsx("td",{className:"px-3 py-2"})]})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Waiting for the first simulated payment result…"]})})]}),Ar&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>dn(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(wH,{size:22})}),i.jsxs("div",{children:[i.jsx(an,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Ar.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>dn(null),children:i.jsx(Hr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Ar.body}),Ar.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Ar.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",onClick:()=>dn(null),children:"Dismiss"}),Ar.configurePath&&i.jsx(ke,{onClick:()=>{dn(null),t(Ar.configurePath)},children:"Configure"})]})]})]})]}),Et&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:vM}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Et}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[ti!=null&&ti.latest_gateway?i.jsx(Pe,{variant:"green",children:ti.latest_gateway}):null,ti!=null&&ti.latest_status?i.jsx(Pe,{variant:KL(ti.latest_status),children:Ti(ti.latest_status)}):null,ti!=null&&ti.event_count?i.jsxs(Pe,{variant:"gray",children:[ti.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Vn.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:vM,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Vn.isLoading&&!Vn.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading payment audit…"]}):Vn.error?i.jsx(_t,{error:Vn.error.message}):xM.length?i.jsx("div",{className:"space-y-4",children:xM.map(C=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:YL(C.phase),children:C.phase})}),i.jsx("div",{className:"space-y-2",children:C.events.map(L=>i.jsxs("button",{type:"button",onClick:()=>{Sn(L.id),lr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Gn==null?void 0:Gn.id)===L.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:tx(L)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Qg(L.created_at_ms)})]}),i.jsx(Pe,{variant:lb(L),children:Ti(L.status)||qL(L.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:ex(L.route)}),L.gateway?i.jsx(Pe,{variant:"green",children:L.gateway}):null,L.request_id?i.jsx(Pe,{variant:"blue",children:"Request"}):null]})]},L.id))})]},C.phase))}):i.jsx(nx,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Gn?tx(Gn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Gn?`${ex(Gn.route)} · ${Qg(Gn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Gn!=null&&Gn.gateway?i.jsx(Pe,{variant:"green",children:Gn.gateway}):null,Gn!=null&&Gn.status?i.jsx(Pe,{variant:lb(Gn),children:Ti(Gn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(C=>i.jsx("button",{type:"button",onClick:()=>lr(C),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${JL(ha===C)}`,children:C==="raw"?"Raw JSON":Ti(C)},C))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Vn.isLoading&&!Vn.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading inspector…"]}):Bo?i.jsxs("div",{className:"space-y-5",children:[ha==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(ZL,{rows:Bo.summaryRows}),Bo.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:NG(Bo.selectionReason)})]}):null,i.jsx(Vl,{title:"Score Context",value:Bo.scoreContext,emptyMessage:"No scoring context was captured for this event."}),Bo.signalRecord?i.jsx(Vl,{title:"Additional Signals",value:Bo.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ha==="input"?i.jsx(Vl,{title:"Request Payload",value:Bo.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ha==="response"?i.jsx(Vl,{title:"Response Payload",value:Bo.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ha==="raw"?i.jsx(Vl,{title:"Raw Event JSON",value:Bo.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(nx,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),Na&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:bM}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Na}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Zs,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Aa!=null&&Aa.latest_gateway?i.jsx(Pe,{variant:"green",children:Aa.latest_gateway}):null,Aa!=null&&Aa.latest_status?i.jsx(Pe,{variant:KL(Aa.latest_status),children:Ti(Aa.latest_status)}):null,Aa!=null&&Aa.event_count?i.jsxs(Pe,{variant:"gray",children:[Aa.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Wn.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:bM,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Wn.isLoading&&!Wn.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision trace…"]}):Wn.error&&X5e(Wn.error)&&Na?i.jsx(p_,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):Wn.error?i.jsx(_t,{error:Wn.error.message}):yM.length?i.jsx("div",{className:"space-y-4",children:yM.map(C=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:YL(C.phase),children:C.phase})}),i.jsx("div",{className:"space-y-2",children:C.events.map(L=>i.jsxs("button",{type:"button",onClick:()=>{ks(L.id),cr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(qn==null?void 0:qn.id)===L.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:tx(L)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Qg(L.created_at_ms)})]}),i.jsx(Pe,{variant:lb(L),children:Ti(L.status)||qL(L.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:ex(L.route)}),L.gateway?i.jsx(Pe,{variant:"green",children:L.gateway}):null]})]},L.id))})]},C.phase))}):Na?i.jsx(p_,{title:Aa?"Decision summary available":"Decision trace still arriving",body:Aa?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(nx,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:qn?tx(qn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:qn?`${ex(qn.route)} · ${Qg(qn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[qn!=null&&qn.gateway?i.jsx(Pe,{variant:"green",children:qn.gateway}):null,qn!=null&&qn.status?i.jsx(Pe,{variant:lb(qn),children:Ti(qn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(C=>i.jsx("button",{type:"button",onClick:()=>cr(C),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${JL(Lo===C)}`,children:C==="raw"?"Raw JSON":Ti(C)},C))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Wn.isLoading&&!Wn.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision inspector…"]}):zf?i.jsxs("div",{className:"space-y-5",children:[Lo==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(ZL,{rows:zf.summaryRows}),i.jsx(Vl,{title:"Decision Signals",value:zf.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,Lo==="input"?i.jsx(Vl,{title:"Request Payload",value:zf.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,Lo==="response"?i.jsx(Vl,{title:"Response Payload",value:zf.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,Lo==="raw"?i.jsx(Vl,{title:"Raw Event JSON",value:zf.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):Na&&!((RM=(MM=Wn.data)==null?void 0:MM.timeline)!=null&&RM.length)?i.jsx(p_,{title:Aa?"Waiting for detailed decision step":"Waiting for decision step",body:Aa?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(nx,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function nOe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(rOe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function rOe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function aOe(){const{merchantId:t}=Er(),{data:e,error:n,isLoading:r,isEnabled:a,setDebitRoutingEnabled:s}=Iy(t),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(null);async function h(p){if(!t){u("Set a merchant ID first");return}l(!0),u(null),f(null);try{const m=await s(p);f(m.debit_routing_enabled?"Debit routing enabled.":"Debit routing disabled.")}catch(m){u(m instanceof Error?m.message:"Failed to update debit routing")}finally{l(!1)}}return i.jsxs("div",{className:"max-w-3xl space-y-6",children:[i.jsx("div",{children:i.jsx(qr,{title:"Network / Debit Routing"})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Oo,{size:16,className:"text-brand-600"}),i.jsxs("div",{children:[i.jsx(an,{children:"Debit routing access"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Debit Routing Runtime Access"})]})]})}),i.jsxs(ze,{className:"space-y-5",children:[!t&&i.jsx(Fa,{tone:"warning",children:"Set a merchant ID in the top bar to load debit routing access."}),t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Loading debit routing flag..."]}):i.jsx("div",{className:"rounded-[24px] border border-slate-200 bg-slate-50 p-5 dark:border-[#232833] dark:bg-[#0b1017]",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#78849a] leading-4",children:"Current state"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:a?"Enabled":"Disabled"}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:(e==null?void 0:e.merchant_id)||t||"No merchant selected"})]}),i.jsx(ke,{onClick:()=>h(!a),disabled:!t||o||r,variant:a?"secondary":"primary",children:o?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Updating..."]}):a?"Disable Debit Routing":"Enable Debit Routing"})]})}),i.jsx(_t,{error:c||(n instanceof Error?n.message:n?"Failed to load debit routing flag":null)}),d&&i.jsx("p",{className:"text-sm text-emerald-700",children:d})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h2",{className:"font-medium text-slate-800 dark:text-white",children:"What This Controls"})}),i.jsxs(ze,{className:"space-y-3 text-sm text-slate-600 dark:text-[#aab5c8]",children:[i.jsxs("p",{children:["This toggle controls the backend runtime gate for ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"NTW_BASED_ROUTING"})," and hybrid debit routing."]}),i.jsx("p",{children:"Detailed debit fee tables and network cost configuration are still managed outside the dashboard. This toggle enables or disables access to the runtime debit-routing flow."}),i.jsxs("p",{children:["Use Decision Explorer's Debit Routing tab to send a real ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"/decide-gateway"})," request and inspect the ranked debit networks."]})]})]})]})}function q0({label:t,value:e,options:n,onChange:r,ariaLabel:a}){const[s,o]=g.useState(!1),l=e!=="all",c=n.find(u=>u.value===e);return i.jsxs("div",{className:"relative inline-flex",children:[i.jsxs("button",{type:"button","aria-label":a,"aria-expanded":s,onClick:()=>o(u=>!u),className:`inline-flex items-center gap-1 rounded uppercase tracking-wide transition-colors ${l?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]"}`,children:[l?`${t}: ${(c==null?void 0:c.label)??e}`:t,i.jsx(wn,{size:13,className:"shrink-0"})]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>o(!1)}),i.jsx("div",{className:"absolute left-0 top-full z-20 mt-1.5 max-h-64 min-w-[170px] overflow-y-auto rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:n.map(u=>i.jsxs("button",{type:"button",onClick:()=>{r(u.value),o(!1)},className:`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs normal-case tracking-normal transition-colors hover:bg-slate-50 dark:hover:bg-[#1c2030] ${u.value===e?"font-semibold text-brand-600 dark:text-brand-400":"text-slate-600 dark:text-slate-300"}`,children:[i.jsx("span",{className:"truncate",children:u.label}),u.value===e&&i.jsx(gi,{size:12,className:"shrink-0"})]},u.value))})]})]})}function WT({label:t,value:e,onChange:n,ariaLabel:r}){const[a,s]=g.useState(!1);return!a&&!e?i.jsxs("button",{type:"button","aria-label":r,onClick:()=>s(!0),className:"inline-flex items-center gap-1 uppercase tracking-wide text-slate-500 transition-colors hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]",children:[t,i.jsx(Kp,{size:13,className:"shrink-0"})]}):i.jsxs("div",{className:"relative w-[240px] max-w-full",children:[i.jsx(Kp,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{autoFocus:!0,value:e,onChange:o=>n(o.target.value),placeholder:"Filter by name or ID","aria-label":r,className:"w-full rounded-lg border border-slate-200 bg-white py-1.5 pl-8 pr-8 text-sm font-normal normal-case tracking-normal text-slate-800 placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#0d1018] dark:text-slate-100 dark:placeholder:text-[#5b6577]"}),i.jsx("button",{type:"button","aria-label":"Clear name filter",onClick:()=>{n(""),s(!1)},className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200",children:i.jsx(Hr,{size:14})})]})}function HT({items:t}){const[e,n]=g.useState(!1),[r,a]=g.useState({}),s=g.useRef(null),o=g.useRef(null);g.useEffect(()=>{if(!e)return;function u(h){var m,x;const p=h.target;!((m=s.current)!=null&&m.contains(p))&&!((x=o.current)!=null&&x.contains(p))&&n(!1)}function d(h){h.key==="Escape"&&n(!1)}function f(){n(!1)}return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),window.addEventListener("resize",f),window.addEventListener("scroll",f,!0),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d),window.removeEventListener("resize",f),window.removeEventListener("scroll",f,!0)}},[e]);function l(){var p;if(e){n(!1);return}const u=(p=s.current)==null?void 0:p.getBoundingClientRect();if(!u)return;const d=190,f=t.length*38+8,h=u.bottom+f>window.innerHeight-8;a({position:"fixed",top:h?Math.max(8,u.top-f-4):u.bottom+4,left:Math.max(8,u.right-d),width:d,zIndex:9999}),n(!0)}const c={default:"text-slate-700 dark:text-slate-300",positive:"text-emerald-700 dark:text-emerald-400",danger:"text-red-600 dark:text-red-400"};return i.jsxs("div",{className:"flex justify-end",children:[i.jsx("button",{ref:s,type:"button",onClick:l,"aria-label":"Rule actions","aria-haspopup":"menu","aria-expanded":e,className:`rounded-md p-1.5 transition-colors ${e?"bg-slate-100 text-slate-700 dark:bg-[#1c2030] dark:text-white":"text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1c2030] dark:hover:text-white"}`,children:i.jsx(RCe,{size:16})}),e&&fs.createPortal(i.jsx("div",{ref:o,role:"menu",style:r,className:"overflow-hidden rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:t.map(u=>{const d=u.icon;return i.jsxs("button",{type:"button",role:"menuitem",disabled:u.disabled,title:u.disabled?u.hint:void 0,onClick:()=>{n(!1),u.onSelect()},className:`flex w-full items-center gap-2.5 px-3 py-2 text-left text-[13px] font-medium transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent dark:hover:bg-[#1c2030] ${c[u.tone??"default"]} leading-[18px]`,children:[i.jsx(d,{size:14,className:"shrink-0"}),u.label]},u.label)})}),document.body)]})}const sOe=/(Z|[+-]\d{2}:?\d{2})$/i;function CG(t){const e=t.trim();if(!e)return 0;const n=e.replace(/(\.\d{3})\d+/,"$1"),r=new Date(sOe.test(n)?n:`${n}Z`).getTime();return Number.isFinite(r)?r:0}function K0(t){const e=t.modified_at||t.created_at;return e?CG(e):0}function EG(t){const e=K0(t);if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}const m_={"==":"equal","!=":"not_equal",">":"greater_than","<":"less_than",">=":"greater_than_equal","<=":"less_than_equal",in:"equal",not_in:"not_equal"},AG={"==":"equals","!=":"not equals",">":"greater than","<":"less than",">=":"greater than or equal","<=":"less than or equal",in:"is one of",not_in:"is not one of"};function ic(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function OG(t){var r;const e=Object.keys(t)[0]||"payment_method",n=((r=t[e])==null?void 0:r.values)||[];return{id:crypto.randomUUID(),lhs:e,operator:"==",value:n[0]||"",metadataKey:""}}function GT(t){return{id:crypto.randomUUID(),conditions:[OG(t)],nested:[]}}function iOe(t){return{equal:"=",not_equal:"≠",greater_than:">",less_than:"<",greater_than_equal:"≥",less_than_equal:"≤"}[t]??t.replace(/_/g," ")}function oOe(t,e,n){function r(l){return{priority:l.map(c=>({gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}))}}function a(l){return l.outputType==="volume_split"?{volume_split:l.volumeSplitEntries.map(c=>({split:c.split,output:{gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}}))}:l.outputType==="volume_split_priority"?{volume_split_priority:l.volumeSplitPriorityEntries.map(c=>({split:c.split,output:c.gateways.map(u=>({gateway_name:u.gatewayName,gateway_id:u.gatewayId||null}))}))}:r(l.priorityGateways)}function s(l){var f;const c=(f=n[l.lhs])==null?void 0:f.type;if((l.operator==="in"||l.operator==="not_in")&&Array.isArray(l.value))return{lhs:l.lhs,comparison:m_[l.operator],value:{type:"enum_variant_array",value:l.value},metadata:{}};if(c==="udf"||c==="global_ref")return{lhs:l.lhs,comparison:m_[l.operator]||l.operator,value:{type:"metadata_variant",value:{key:l.metadataKey||l.lhs,value:l.value}},metadata:{}};const d=c==="integer"?"number":c==="str_value"?"str_value":"enum_variant";return{lhs:l.lhs,comparison:m_[l.operator]||l.operator,value:{type:d,value:c==="integer"?Number(l.value):l.value},metadata:{}}}function o(l){return{condition:l.conditions.map(s),nested:l.nested.length>0?l.nested.map(o):null}}return{globals:{},default_selection:r(e.priorityGateways),rules:t.map(l=>({name:l.name,routing_type:l.outputType,output:a(l),statements:l.statements.map(o)}))}}const lOe={equal:"==",not_equal:"!=",greater_than:">",less_than:"<",greater_than_equal:">=",less_than_equal:"<="};function cOe(t){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data;if(!n)return{ruleBlocks:[],defaultOutput:{priorityGateways:[]}};function r(u){return u.map(d=>({id:crypto.randomUUID(),gatewayName:d.gateway_name,gatewayId:d.gateway_id??""}))}function a(u){var m,x,y,b,v,w;const d=((m=u.value)==null?void 0:m.type)==="enum_variant_array",f=((x=u.value)==null?void 0:x.type)==="metadata_variant";let h=lOe[u.comparison]??u.comparison;if(d&&u.comparison==="equal"&&(h="in"),d&&u.comparison==="not_equal"&&(h="not_in"),f){const j=(y=u.value)==null?void 0:y.value;return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:String((j==null?void 0:j.value)??""),metadataKey:String((j==null?void 0:j.key)??u.lhs)}}const p=d?Array.isArray((b=u.value)==null?void 0:b.value)?u.value.value:[String((v=u.value)==null?void 0:v.value)]:String(((w=u.value)==null?void 0:w.value)??"");return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:p,metadataKey:""}}function s(u){return{id:crypto.randomUUID(),conditions:(u.condition??[]).map(a),nested:(u.nested??[]).map(s)}}const o=(n.rules??[]).map(u=>{const d=u.output,f=u.routing_type??"priority",h=(d==null?void 0:d.priority)??(d==null?void 0:d.data),p=(d==null?void 0:d.volume_split)??((d==null?void 0:d.type)==="volume_split"?d==null?void 0:d.data:void 0),m=d==null?void 0:d.volume_split_priority;return{id:crypto.randomUUID(),name:u.name||"Cloned Rule",statements:(u.statements??[]).map(s),outputType:f,priorityGateways:f==="priority"?r(Array.isArray(h)?h:[]):[],volumeSplitEntries:f==="volume_split"?(Array.isArray(p)?p:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gatewayName:x.output.gateway_name,gatewayId:x.output.gateway_id??""})):[],volumeSplitPriorityEntries:f==="volume_split_priority"?(Array.isArray(m)?m:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gateways:r(x.output)})):[]}}),l=n.default_selection||n.defaultSelection,c=Array.isArray(l==null?void 0:l.priority)?l.priority:Array.isArray(l==null?void 0:l.data)?l.data:[];return{ruleBlocks:o,defaultOutput:{priorityGateways:r(c)}}}const uOe={equal:"equals",not_equal:"does not equal",greater_than:"greater than",less_than:"less than",greater_than_equal:"at least",less_than_equal:"at most"};function dOe(t,e){return e?t==="not_equal"?"is not one of":"is one of":uOe[t]??AG[t]??t.replace(/_/g," ")}function fOe(t){const e=t.value,n=e==null?void 0:e.value,r=e==null?void 0:e.type;return r==="metadata_variant"&&n&&typeof n=="object"?String(n.value??""):Array.isArray(n)?n.map(a=>ic(String(a))).join(", "):r==="enum_variant"||r==="enum_variant_array"?ic(String(n??"")):String(n??"")}function hOe(t){const e=t.value;if((e==null?void 0:e.type)==="metadata_variant"&&e.value&&typeof e.value=="object"){const n=e.value.key;if(n&&n!==t.lhs)return`${ic(t.lhs)}.${n}`}return ic(t.lhs)}function pOe(t){const e=t.value,n=Array.isArray(e==null?void 0:e.value),r=fOe(t);return`${hOe(t)} ${dOe(t.comparison,n)} ${r||"…"}`.trim()}function mOe(t){var r,a;const e=((r=t.condition)==null?void 0:r.length)??0,n=((a=t.nested)==null?void 0:a.length)??0;return e+(n>0?1:0)>1}function $A(t){let n=(t.condition??[]).map(a=>`(${pOe(a)})`).join(" and ");const r=t.nested??[];if(r.length>0){const a=r.map(s=>mOe(s)?`(${$A(s)})`:$A(s)).filter(Boolean).join(" or ");a&&(n=n?`${n} and (${a})`:`(${a})`)}return n}function gOe(t){const e=(t.statements??[]).map($A).filter(Boolean);return e.length===0?"Always matches":e.length===1?e[0]:e.map(n=>n.includes(" and ")?`(${n})`:n).join(" or ")}function iu(t){const e=t==null?void 0:t.gateway_name;if(e)return t!=null&&t.gateway_id?`${e} (${t.gateway_id})`:e}function qT(t){const e=t.output,n=(e==null?void 0:e.priority)??(e==null?void 0:e.data),r=(e==null?void 0:e.volume_split)??((e==null?void 0:e.type)==="volume_split"?e==null?void 0:e.data:void 0),a=e==null?void 0:e.volume_split_priority,s=Array.isArray(n)?n:[],o=Array.isArray(r)?r:[],l=Array.isArray(a)?a:[];return{priorityGateways:s,volumeSplits:o,volumeSplitPriorityEntries:l,isVolumeSplit:t.routing_type==="volume_split"||o.length>0,isVolumeSplitPriority:t.routing_type==="volume_split_priority"||l.length>0}}function KT(t){const e=t.algorithm_data||t.algorithm;return e==null?void 0:e.data}function xOe(t){var r;const e=((r=KT(t))==null?void 0:r.rules)??[];if(e.length===0)return"No conditions — always matches";const n=gOe(e[0]);return e.length>1?`${n} (+${e.length-1} more)`:n}function yOe(t){var c;const e=KT(t),n=(c=e==null?void 0:e.rules)==null?void 0:c[0];let r="";if(n){const u=qT(n);u.isVolumeSplitPriority?r=u.volumeSplitPriorityEntries.map(d=>{var f;return`${iu((f=d.output)==null?void 0:f[0])??"?"} (${d.split}%)`}).join(" / "):u.isVolumeSplit?r=u.volumeSplits.map(d=>`${iu(d.output)??"?"} (${d.split}%)`).join(" / "):u.priorityGateways.length>0&&(r=`${iu(u.priorityGateways[0])} (Priority 100%)`)}const s=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection),o=Array.isArray(s==null?void 0:s.priority)?s.priority:Array.isArray(s==null?void 0:s.data)?s.data:[],l=iu(o[0]);return r?l?`${r} — fallback ${l}`:r:l?`${l} (fallback only)`:"No destination configured"}function e8(t){const e=KT(t),n=new Set;((e==null?void 0:e.rules)??[]).forEach(o=>{const l=qT(o);l.priorityGateways.forEach(c=>c.gateway_name&&n.add(c.gateway_name)),l.volumeSplits.forEach(c=>{var u;return((u=c.output)==null?void 0:u.gateway_name)&&n.add(c.output.gateway_name)}),l.volumeSplitPriorityEntries.forEach(c=>(c.output??[]).forEach(u=>u.gateway_name&&n.add(u.gateway_name)))});const a=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection);return(Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[]).forEach(o=>o.gateway_name&&n.add(o.gateway_name)),Array.from(n)}function YT({algo:t}){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data,r=(n==null?void 0:n.default_selection)||(n==null?void 0:n.defaultSelection);return i.jsxs("div",{className:"space-y-2.5",children:[((n==null?void 0:n.rules)??[]).map((a,s)=>{const{priorityGateways:o,volumeSplits:l,volumeSplitPriorityEntries:c,isVolumeSplit:u,isVolumeSplitPriority:d}=qT(a);return i.jsxs("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0d1018]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-3 py-1.5",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#78849a] leading-4",children:a.name||`Rule ${s+1}`}),a.routing_type&&i.jsx("span",{className:`text-[11px] font-semibold px-1.5 py-0.5 rounded-full ${a.routing_type==="volume_split_priority"?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":a.routing_type==="volume_split"?"bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-400":"bg-brand-100 dark:bg-brand-900/30 text-brand-600 dark:text-brand-400"} leading-4`,children:a.routing_type==="volume_split_priority"?"Split + Priority":a.routing_type==="volume_split"?"Volume Split":"Priority"})]}),i.jsxs("div",{className:"space-y-1.5 px-3 py-2.5",children:[(a.statements??[]).map((f,h)=>i.jsxs("div",{children:[h>0&&i.jsxs("div",{className:"flex items-center gap-2 my-1.5",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"}),i.jsx("span",{className:"text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"})]}),i.jsx(TG,{statement:f})]},h)),i.jsxs("div",{className:"flex items-start gap-2 pt-0.5 text-xs",children:[i.jsx("span",{className:"w-7 shrink-0 text-right text-[11px] font-bold text-brand-600 select-none leading-4",children:"→"}),i.jsxs("div",{className:"flex flex-wrap gap-1",children:[d?c.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-purple-50 dark:bg-purple-900/20 px-2 py-0.5 text-[11px] font-medium text-purple-700 dark:text-purple-300 leading-4",children:[f.split,"%: ",f.output.map(iu).join(", ")]},h)):u?l.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300 leading-4",children:[iu(f.output)," ",f.split,"%"]},h)):o.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-[11px] font-medium text-brand-700 dark:text-brand-300 leading-4",children:[h+1,". ",iu(f)]},h)),!d&&!u&&o.length===0&&i.jsx("span",{className:"text-slate-500 italic",children:"No output configured"})]})]})]})]},s)}),(()=>{const a=r,s=Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[];return s.length>0?i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("div",{className:"flex flex-wrap gap-1",children:s.map((o,l)=>i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-[11px] font-medium text-slate-600 dark:text-[#8090a8] leading-4",children:iu(o)},l))})]}):i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("span",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Not set — unmatched payments have no gateway"})]})})(),(!(n!=null&&n.rules)||n.rules.length===0)&&i.jsx("p",{className:"text-xs text-slate-500 italic",children:"No rules configured."})]})}function vOe({cond:t,op:e}){var n,r;return i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs",children:[i.jsx("span",{className:"select-none text-[11px] font-bold text-slate-500 dark:text-[#78849a] leading-4",children:e}),i.jsxs("span",{className:"rounded-md bg-slate-100 px-2 py-1 text-slate-700 dark:bg-[#1a1f2a] dark:text-[#c8d0de]",children:[ic(String(t.lhs??""))," ",i.jsx("span",{className:"font-mono text-slate-500 dark:text-[#78849a]",children:iOe(String(t.comparison??""))})," ",i.jsx("span",{className:"font-medium",children:((n=t.value)==null?void 0:n.type)==="metadata_variant"&&t.value.value&&typeof t.value.value=="object"?`{ "${t.value.value.key??""}" : "${t.value.value.value??""}" }`:ic(String(((r=t.value)==null?void 0:r.value)??""))})]})]})}function TG({statement:t}){const e=t.condition??[],n=t.nested??[];return i.jsxs("div",{className:"overflow-hidden rounded-lg border border-slate-200 dark:border-[#1e2330]",children:[i.jsx("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 px-2 py-2",children:e.map((r,a)=>i.jsx(vOe,{cond:r,op:a===0?"IF":"AND"},a))}),n.length>0&&i.jsxs("div",{className:"border-t border-slate-100 px-2 py-2 dark:border-[#1e2330]",children:[i.jsx("p",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:e.length>0?"and any of":"any of"}),i.jsx("div",{className:"space-y-1.5",children:n.map((r,a)=>i.jsxs("div",{children:[a>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("div",{className:"border-l-2 border-sky-200 pl-2 dark:border-sky-800",children:i.jsx(TG,{statement:r})})]},a))})]})]})}function bOe(){const t=Ro(),e=Kr(),{merchantId:n}=Er(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState("all"),[k,_]=g.useState("all"),[S,N]=g.useState(""),{data:E,mutate:P}=ut(n?`/routing/list/${n}`:null,()=>Ve(`/routing/list/${n}`)),{data:M,mutate:A}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`)),O=new Set((M||[]).map(U=>U.id)),D=(M||[]).find(U=>{var ee;return((ee=U.algorithm_data||U.algorithm)==null?void 0:ee.type)==="volume_split"}),I=(M||[]).find(U=>{var ee;return((ee=U.algorithm_data||U.algorithm)==null?void 0:ee.type)==="ab_test"}),X=I?(()=>{var ee;const U=(ee=I.algorithm_data||I.algorithm)==null?void 0:ee.data;return new Set([U==null?void 0:U.control_algorithm_id,U==null?void 0:U.variant_algorithm_id].filter(Boolean))})():new Set,Q=(E||[]).filter(U=>{const ee=U.algorithm_data||U.algorithm;return(ee==null?void 0:ee.type)!=="volume_split"&&(ee==null?void 0:ee.type)!=="ab_test"&&(ee==null?void 0:ee.type)!=="volume_contract"}).sort((U,ee)=>K0(ee)-K0(U)),V=Array.from(new Set(Q.flatMap(e8))).sort(),Y=Q.filter(U=>{if(w==="active"&&!O.has(U.id)||w==="inactive"&&O.has(U.id)||k!=="all"&&!e8(U).includes(k))return!1;if(S.trim()){const ee=S.trim().toLowerCase();if(!U.name.toLowerCase().includes(ee)&&!U.id.toLowerCase().includes(ee))return!1}return!0});function H(U){a(ee=>{const pe=new Set(ee);return pe.has(U)?pe.delete(U):pe.add(U),pe})}async function G(U){if(n){if(D){o(U);return}await $(U)}}async function $(U){h(!0),y(null),v(null);try{await Ve("/routing/activate",{created_by:n,routing_algorithm_id:U}),v("Rule activated successfully."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{h(!1)}}async function F(U){m(U),y(null),v(null);try{await Ve("/routing/deactivate",{created_by:n,routing_algorithm_id:U}),v("Rule deactivated successfully."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{m(null)}}async function R(U){if(n){y(null),v(null);try{await Ve("/routing/delete",{created_by:n,routing_algorithm_id:U}),v("Rule deleted."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{d(null)}}}const z=Q.find(U=>U.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(qs,{open:s!==null,title:"Switch to Rule-Based Routing?",description:`"${D==null?void 0:D.name}" (Volume Split) is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const U=s;o(null),$(U)},onCancel:()=>o(null)}),i.jsx(qs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const U=l;c(null),F(U)},onCancel:()=>c(null)}),i.jsx(qs,{open:u!==null,title:"Delete this rule?",description:`"${z==null?void 0:z.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>R(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(qr,{title:"Rule-Based Routing",description:"Create conditions to route card and alternative payment transactions dynamically across multiple active gateways."})}),i.jsxs(ke,{onClick:()=>e("/routing/rules/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?Q.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No rule-based rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Rule Name & ID",value:S,onChange:N,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:U=>j(U),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Conditions Overview"}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Destination Gateway",value:k,options:[{value:"all",label:"All gateways"},...V.map(U=>({value:U,label:U}))],onChange:_,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Y.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:6,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),_("all"),N("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Y.map(U=>{const ee=O.has(U.id),pe=X.has(U.id),re=r.has(U.id),he=xOe(U),q=yOe(U),W=ee?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":U.name,onClick:()=>H(U.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${ee?"bg-emerald-50/50 dark:bg-emerald-900/10":pe?"bg-purple-50/40 dark:bg-purple-900/10":""}`,children:[i.jsx("td",{className:"align-top px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[re?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:U.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:U.id})]})]})}),i.jsxs("td",{className:"align-top px-5 py-4",children:[i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${ee?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:ee?"Active":"Inactive"}),pe&&i.jsx("span",{className:"mt-1.5 block text-[11px] font-medium text-purple-600 dark:text-purple-400 leading-4",children:"In A/B test"})]}),i.jsx("td",{className:"max-w-[420px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words font-mono text-xs leading-[18px] text-slate-600 dark:text-[#8d96a8]",title:he,children:he})}),i.jsx("td",{className:"max-w-[300px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",title:q,children:q})}),i.jsx("td",{className:"align-top whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const ue=EG(U);return ue?i.jsxs("span",{title:ue.full,children:[ue.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:ue.time})]}):"—"})()}),i.jsx("td",{className:"align-top px-5 py-4",onClick:ue=>ue.stopPropagation(),children:i.jsx(HT,{items:[ee?{label:p===U.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>c(U.id),disabled:p===U.id||!t}:{label:"Activate",icon:bT,tone:"positive",onSelect:()=>G(U.id),disabled:f||!t},{label:"Edit",icon:El,onSelect:()=>e(`/routing/rules/${U.id}/edit`),disabled:!!W,hint:W},{label:"Duplicate",icon:lf,onSelect:()=>e(`/routing/rules/new?cloneFrom=${U.id}`),disabled:!t},{label:"Delete",icon:Cn,tone:"danger",onSelect:()=>d(U.id),disabled:!!W,hint:W}]})})]},U.id),re?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:6,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[U.description&&U.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:U.description}),i.jsx(YT,{algo:U})]})},`${U.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"Volume Split is active"})," — activating a rule-based rule will automatically deactivate it."]}),I&&i.jsxs(Fa,{tone:"info",children:[i.jsxs("strong",{children:['A/B experiment "',I.name,'" is active']}),' — rules marked "In A/B test" are used as experiment arms. Activating a rule directly will stop the experiment.']})]})}function ek({message:t}){return t?i.jsxs("p",{role:"alert",className:"mt-1.5 flex items-start gap-1.5 text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:[i.jsx(PCe,{size:14,className:"mt-px shrink-0"}),i.jsx("span",{children:t})]}):null}function PG(t){return t?"!border-red-400 focus:!ring-red-400 dark:!border-red-500/60":""}let LA=[],MG=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e>1;if(t=MG[r])e=r+1;else return!0;if(e==n)return!1}}function t8(t){return t>=127462&&t<=127487}const n8=8205;function kOe(t,e,n=!0,r=!0){return(n?RG:jOe)(t,e,r)}function RG(t,e,n){if(e==t.length)return e;e&&DG(t.charCodeAt(e))&&IG(t.charCodeAt(e-1))&&e--;let r=g_(t,e);for(e+=r8(r);e=0&&t8(g_(t,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function jOe(t,e,n){for(;e>0;){let r=RG(t,e-2,n);if(r=56320&&t<57344}function IG(t){return t>=55296&&t<56320}function r8(t){return t<65536?1:2}class ln{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,r){[e,n]=Xp(this,e,n);let a=[];return this.decompose(0,e,a,2),r.length&&r.decompose(0,r.length,a,3),this.decompose(n,this.length,a,1),el.from(a,this.length-(n-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=Xp(this,e,n);let r=[];return this.decompose(e,n,r,0),el.from(r,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),a=new Ex(this),s=new Ex(e);for(let o=n,l=n;;){if(a.next(o),s.next(o),o=0,a.lineBreak!=s.lineBreak||a.done!=s.done||a.value!=s.value)return!1;if(l+=a.value.length,a.done||l>=r)return!0}}iter(e=1){return new Ex(this,e)}iterRange(e,n=this.length){return new $G(this,e,n)}iterLines(e,n){let r;if(e==null)r=this.iter();else{n==null&&(n=this.lines+1);let a=this.line(e).from;r=this.iterRange(a,Math.max(a,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new LG(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ln.empty:e.length<=32?new Mr(e):el.from(Mr.split(e,[]))}}class Mr extends ln{constructor(e,n=SOe(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.text[s],l=a+o.length;if((n?r:l)>=e)return new _Oe(a,l,r,o);a=l+1,r++}}decompose(e,n,r,a){let s=e<=0&&n>=this.length?this:new Mr(a8(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(a&1){let o=r.pop(),l=u1(s.text,o.text.slice(),0,s.length);if(l.length<=32)r.push(new Mr(l,o.length+s.length));else{let c=l.length>>1;r.push(new Mr(l.slice(0,c)),new Mr(l.slice(c)))}}else r.push(s)}replace(e,n,r){if(!(r instanceof Mr))return super.replace(e,n,r);[e,n]=Xp(this,e,n);let a=u1(this.text,u1(r.text,a8(this.text,0,e)),n),s=this.length+r.length-(n-e);return a.length<=32?new Mr(a,s):el.from(Mr.split(a,[]),s)}sliceString(e,n=this.length,r=` +`){[e,n]=Xp(this,e,n);let a="";for(let s=0,o=0;s<=n&&oe&&o&&(a+=r),es&&(a+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return a}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let r=[],a=-1;for(let s of e)r.push(s),a+=s.length+1,r.length==32&&(n.push(new Mr(r,a)),r=[],a=-1);return a>-1&&n.push(new Mr(r,a)),n}}class el extends ln{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.children[s],l=a+o.length,c=r+o.lines-1;if((n?c:l)>=e)return o.lineInner(e,n,r,a);a=l+1,r=c+1}}decompose(e,n,r,a){for(let s=0,o=0;o<=n&&s=o){let u=a&((o<=e?1:0)|(c>=n?2:0));o>=e&&c<=n&&!u?r.push(l):l.decompose(e-o,n-o,r,u)}o=c+1}}replace(e,n,r){if([e,n]=Xp(this,e,n),r.lines=s&&n<=l){let c=o.replace(e-s,n-s,r),u=this.lines-o.lines+c.lines;if(c.lines>4&&c.lines>u>>6){let d=this.children.slice();return d[a]=c,new el(d,this.length-(n-e)+r.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,r)}sliceString(e,n=this.length,r=` +`){[e,n]=Xp(this,e,n);let a="";for(let s=0,o=0;se&&s&&(a+=r),eo&&(a+=l.sliceString(e-o,n-o,r)),o=c+1}return a}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof el))return 0;let r=0,[a,s,o,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;a+=n,s+=n){if(a==o||s==l)return r;let c=this.children[a],u=e.children[s];if(c!=u)return r+c.scanIdentical(u,n);r+=c.length+1}}static from(e,n=e.reduce((r,a)=>r+a.length+1,-1)){let r=0;for(let p of e)r+=p.lines;if(r<32){let p=[];for(let m of e)m.flatten(p);return new Mr(p,n)}let a=Math.max(32,r>>5),s=a<<1,o=a>>1,l=[],c=0,u=-1,d=[];function f(p){let m;if(p.lines>s&&p instanceof el)for(let x of p.children)f(x);else p.lines>o&&(c>o||!c)?(h(),l.push(p)):p instanceof Mr&&c&&(m=d[d.length-1])instanceof Mr&&p.lines+m.lines<=32?(c+=p.lines,u+=p.length+1,d[d.length-1]=new Mr(m.text.concat(p.text),m.length+1+p.length)):(c+p.lines>a&&h(),c+=p.lines,u+=p.length+1,d.push(p))}function h(){c!=0&&(l.push(d.length==1?d[0]:el.from(d,u)),u=-1,c=d.length=0)}for(let p of e)f(p);return h(),l.length==1?l[0]:new el(l,n)}}ln.empty=new Mr([""],0);function SOe(t){let e=-1;for(let n of t)e+=n.length+1;return e}function u1(t,e,n=0,r=1e9){for(let a=0,s=0,o=!0;s=n&&(c>r&&(l=l.slice(0,r-a)),a0?1:(e instanceof Mr?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,a=this.nodes[r],s=this.offsets[r],o=s>>1,l=a instanceof Mr?a.text.length:a.children.length;if(o==(n>0?l:0)){if(r==0)return this.done=!0,this.value="",this;n>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[r]+=n,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(a instanceof Mr){let c=a.text[o+(n<0?-1:0)];if(this.offsets[r]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=a.children[o+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[r]+=n):(n<0&&this.offsets[r]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof Mr?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class $G{constructor(e,n,r){this.value="",this.done=!1,this.cursor=new Ex(e,n>r?-1:1),this.pos=n>r?e.length:0,this.from=Math.min(n,r),this.to=Math.max(n,r)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let r=n<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:a}=this.cursor.next(e);return this.pos+=(a.length+e)*n,this.value=a.length<=r?a:n<0?a.slice(a.length-r):a.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LG{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:r,value:a}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=a,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(ln.prototype[Symbol.iterator]=function(){return this.iter()},Ex.prototype[Symbol.iterator]=$G.prototype[Symbol.iterator]=LG.prototype[Symbol.iterator]=function(){return this});class _Oe{constructor(e,n,r,a){this.from=e,this.to=n,this.number=r,this.text=a}get length(){return this.to-this.from}}function Xp(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function ka(t,e,n=!0,r=!0){return kOe(t,e,n,r)}function NOe(t){return t>=56320&&t<57344}function COe(t){return t>=55296&&t<56320}function Ms(t,e){let n=t.charCodeAt(e);if(!COe(n)||e+1==t.length)return n;let r=t.charCodeAt(e+1);return NOe(r)?(n-55296<<10)+(r-56320)+65536:n}function XT(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function tl(t){return t<65536?1:2}const FA=/\r\n?|\n/;var us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={}));class vl{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;ne)return s+(e-a);s+=l}else{if(r!=us.Simple&&u>=e&&(r==us.TrackDel&&ae||r==us.TrackBefore&&ae))return null;if(u>e||u==e&&n<0&&!l)return e==a||n<0?s:s+c;s+=c}a=u}if(e>a)throw new RangeError(`Position ${e} is out of range for changeset of length ${a}`);return s}touchesRange(e,n=e){for(let r=0,a=0;r=0&&a<=n&&l>=e)return an?"cover":!0;a=l}return!1}toString(){let e="";for(let n=0;n=0?":"+a:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new vl(e)}static create(e){return new vl(e)}}class na extends vl{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return BA(this,(n,r,a,s,o)=>e=e.replace(a,a+(r-n),o),!1),e}mapDesc(e,n=!1){return zA(this,e,n,!0)}invert(e){let n=this.sections.slice(),r=[];for(let a=0,s=0;a=0){n[a]=l,n[a+1]=o;let c=a>>1;for(;r.length0&&ou(r,n,s.text),s.forward(d),l+=d}let u=e[o++];for(;l>1].toJSON()))}return e}static of(e,n,r){let a=[],s=[],o=0,l=null;function c(d=!1){if(!d&&!a.length)return;oh||f<0||h>n)throw new RangeError(`Invalid change range ${f} to ${h} (in doc of length ${n})`);let m=p?typeof p=="string"?ln.of(p.split(r||FA)):p:ln.empty,x=m.length;if(f==h&&x==0)return;fo&&Ka(a,f-o,-1),Ka(a,h-f,x),ou(s,a,m),o=h}}return u(e),c(!l),l}static empty(e){return new na(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let a=0;al&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;r.length=0&&n<=0&&n==t[a+1]?t[a]+=e:a>=0&&e==0&&t[a]==0?t[a+1]+=n:r?(t[a]+=e,t[a+1]+=n):t.push(e,n)}function ou(t,e,n){if(n.length==0)return;let r=e.length-2>>1;if(r>1])),!(n||o==t.sections.length||t.sections[o+1]<0);)l=t.sections[o++],c=t.sections[o++];e(a,u,s,d,f),a=u,s=d}}}function zA(t,e,n,r=!1){let a=[],s=r?[]:null,o=new Y0(t),l=new Y0(e);for(let c=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let u=Math.min(o.len,l.len);Ka(a,u,-1),o.forward(u),l.forward(u)}else if(l.ins>=0&&(o.ins<0||c==o.i||o.off==0&&(l.len=0&&c=0){let u=0,d=o.len;for(;d;)if(l.ins==-1){let f=Math.min(d,l.len);u+=f,d-=f,l.forward(f)}else if(l.ins==0&&l.lenc||o.ins>=0&&o.len>c)&&(l||r.length>u),s.forward2(c),o.forward(c)}}}}class Y0{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return n>=e.length?ln.empty:e[n]}textBit(e){let{inserted:n}=this.set,r=this.i-2>>1;return r>=n.length&&!e?ln.empty:n[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Od{constructor(e,n,r){this.from=e,this.to=n,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let r,a;return this.empty?r=a=e.mapPos(this.from,n):(r=e.mapPos(this.from,1),a=e.mapPos(this.to,-1)),r==this.from&&a==this.to?this:new Od(r,a,this.flags)}extend(e,n=e,r=0){if(e<=this.anchor&&n>=this.anchor)return Ee.range(e,n,void 0,void 0,r);let a=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return Ee.range(this.anchor,a,void 0,void 0,r)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Ee.range(e.anchor,e.head)}static create(e,n,r){return new Od(e,n,r)}}class Ee{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:Ee.create(this.ranges.map(r=>r.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Ee(e.ranges.map(n=>Od.fromJSON(n)),e.main)}static single(e,n=e){return new Ee([Ee.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,a=0;aa.from-s.from),n=e.indexOf(r);for(let a=1;as.head?Ee.range(c,l):Ee.range(l,c))}}return new Ee(e,n)}}function BG(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let JT=0;class Qe{constructor(e,n,r,a,s){this.combine=e,this.compareInput=n,this.compare=r,this.isStatic=a,this.id=JT++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Qe(e.combine||(n=>n),e.compareInput||((n,r)=>n===r),e.compare||(e.combine?(n,r)=>n===r:ZT),!!e.static,e.enables)}of(e){return new d1([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new d1(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new d1(e,this,2,n)}from(e,n){return n||(n=r=>r),this.compute([e],r=>n(r.field(e)))}}function ZT(t,e){return t==e||t.length==e.length&&t.every((n,r)=>n===e[r])}class d1{constructor(e,n,r,a){this.dependencies=e,this.facet=n,this.type=r,this.value=a,this.id=JT++}dynamicSlot(e){var n;let r=this.value,a=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,c=!1,u=!1,d=[];for(let f of this.dependencies)f=="doc"?c=!0:f=="selection"?u=!0:((n=e[f.id])!==null&&n!==void 0?n:1)&1||d.push(e[f.id]);return{create(f){return f.values[o]=r(f),1},update(f,h){if(c&&h.docChanged||u&&(h.docChanged||h.selection)||UA(f,d)){let p=r(f);if(l?!s8(p,f.values[o],a):!a(p,f.values[o]))return f.values[o]=p,1}return 0},reconfigure:(f,h)=>{let p,m=h.config.address[s];if(m!=null){let x=nk(h,m);if(this.dependencies.every(y=>y instanceof Qe?h.facet(y)===f.facet(y):y instanceof as?h.field(y,!1)==f.field(y,!1):!0)||(l?s8(p=r(f),x,a):a(p=r(f),x)))return f.values[o]=x,0}else p=r(f);return f.values[o]=p,1}}}}function s8(t,e,n){if(t.length!=e.length)return!1;for(let r=0;rt[c.id]),a=n.map(c=>c.type),s=r.filter(c=>!(c&1)),o=t[e.id]>>1;function l(c){let u=[];for(let d=0;dr===a),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(cb).find(r=>r.field==this);return((n==null?void 0:n.create)||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:r=>(r.values[n]=this.create(r),1),update:(r,a)=>{let s=r.values[n],o=this.updateF(s,a);return this.compareF(s,o)?0:(r.values[n]=o,1)},reconfigure:(r,a)=>{let s=r.facet(cb),o=a.facet(cb),l;return(l=s.find(c=>c.field==this))&&l!=o.find(c=>c.field==this)?(r.values[n]=l.create(r),1):a.config.address[this.id]!=null?(r.values[n]=a.field(this),0):(r.values[n]=this.create(r),1)}}}init(e){return[this,cb.of({field:this,create:e})]}get extension(){return this}}const xd={lowest:4,low:3,default:2,high:1,highest:0};function Cg(t){return e=>new zG(e,t)}const Of={highest:Cg(xd.highest),high:Cg(xd.high),default:Cg(xd.default),low:Cg(xd.low),lowest:Cg(xd.lowest)};class zG{constructor(e,n){this.inner=e,this.prec=n}}class Qj{of(e){return new VA(this,e)}reconfigure(e){return Qj.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class VA{constructor(e,n){this.compartment=e,this.inner=n}}class tk{constructor(e,n,r,a,s,o){for(this.base=e,this.compartments=n,this.dynamicSlots=r,this.address=a,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,n,r){let a=[],s=Object.create(null),o=new Map;for(let h of AOe(e,n,o))h instanceof as?a.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h);let l=Object.create(null),c=[],u=[];for(let h of a)l[h.id]=u.length<<1,u.push(p=>h.slot(p));let d=r==null?void 0:r.config.facets;for(let h in s){let p=s[h],m=p[0].facet,x=d&&d[h]||[];if(p.every(y=>y.type==0))if(l[m.id]=c.length<<1|1,ZT(x,p))c.push(r.facet(m));else{let y=m.combine(p.map(b=>b.value));c.push(r&&m.compare(y,r.facet(m))?r.facet(m):y)}else{for(let y of p)y.type==0?(l[y.id]=c.length<<1|1,c.push(y.value)):(l[y.id]=u.length<<1,u.push(b=>y.dynamicSlot(b)));l[m.id]=u.length<<1,u.push(y=>EOe(y,m,p))}}let f=u.map(h=>h(l));return new tk(e,o,f,l,c,s)}}function AOe(t,e,n){let r=[[],[],[],[],[]],a=new Map;function s(o,l){let c=a.get(o);if(c!=null){if(c<=l)return;let u=r[c].indexOf(o);u>-1&&r[c].splice(u,1),o instanceof VA&&n.delete(o.compartment)}if(a.set(o,l),Array.isArray(o))for(let u of o)s(u,l);else if(o instanceof VA){if(n.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let u=e.get(o.compartment)||o.inner;n.set(o.compartment,u),s(u,l)}else if(o instanceof zG)s(o.inner,o.prec);else if(o instanceof as)r[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof d1)r[l].push(o),o.facet.extensions&&s(o.facet.extensions,xd.default);else{let u=o.extension;if(!u)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(u,l)}}return s(t,xd.default),r.reduce((o,l)=>o.concat(l))}function Ax(t,e){if(e&1)return 2;let n=e>>1,r=t.status[n];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;t.status[n]=4;let a=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|a}function nk(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const UG=Qe.define(),WA=Qe.define({combine:t=>t.some(e=>e),static:!0}),VG=Qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),WG=Qe.define(),HG=Qe.define(),GG=Qe.define(),qG=Qe.define({combine:t=>t.length?t[0]:!1});class Ol{constructor(e,n){this.type=e,this.value=n}static define(){return new OOe}}class OOe{of(e){return new Ol(this,e)}}class TOe{constructor(e){this.map=e}of(e){return new Ft(this,e)}}class Ft{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Ft(this.type,n)}is(e){return this.type==e}static define(e={}){return new TOe(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let r=[];for(let a of e){let s=a.map(n);s&&r.push(s)}return r}}Ft.reconfigure=Ft.define();Ft.appendConfig=Ft.define();class ia{constructor(e,n,r,a,s,o){this.startState=e,this.changes=n,this.selection=r,this.effects=a,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&BG(r,n.newLength),s.some(l=>l.type==ia.time)||(this.annotations=s.concat(ia.time.of(Date.now())))}static create(e,n,r,a,s,o){return new ia(e,n,r,a,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(ia.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}ia.time=Ol.define();ia.userEvent=Ol.define();ia.addToHistory=Ol.define();ia.remote=Ol.define();function POe(t,e){let n=[];for(let r=0,a=0;;){let s,o;if(r=t[r]))s=t[r++],o=t[r++];else if(a=0;a--){let s=r[a](t);s instanceof ia?t=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ia?t=s[0]:t=YG(e,Zh(s),!1)}return t}function ROe(t){let e=t.startState,n=e.facet(GG),r=t;for(let a=n.length-1;a>=0;a--){let s=n[a](t);s&&Object.keys(s).length&&(r=KG(r,HA(e,s,t.changes.newLength),!0))}return r==t?t:ia.create(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}const DOe=[];function Zh(t){return t==null?DOe:Array.isArray(t)?t:[t]}var pr=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(pr||(pr={}));const IOe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let GA;try{GA=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function $Oe(t){if(GA)return GA.test(t);for(let e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||IOe.test(n)))return!0}return!1}function LOe(t){return e=>{if(!/\S/.test(e))return pr.Space;if($Oe(e))return pr.Word;for(let n=0;n-1)return pr.Word;return pr.Other}}class rn{constructor(e,n,r,a,s,o){this.config=e,this.doc=n,this.selection=r,this.values=a,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;la.set(u,c)),n=null),a.set(l.value.compartment,l.value.extension)):l.is(Ft.reconfigure)?(n=null,r=l.value):l.is(Ft.appendConfig)&&(n=null,r=Zh(r).concat(l.value));let s;n?s=e.startState.values.slice():(n=tk.resolve(r,a,this),s=new rn(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,u)=>u.reconfigure(c,this),null).values);let o=e.startState.facet(WA)?e.newSelection:e.newSelection.asSingle();new rn(n,e.newDoc,o,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Ee.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,r=e(n.ranges[0]),a=this.changes(r.changes),s=[r.range],o=Zh(r.effects);for(let l=1;lo.spec.fromJSON(l,c)))}}return rn.create({doc:e.doc,selection:Ee.fromJSON(e.selection),extensions:n.extensions?a.concat([n.extensions]):a})}static create(e={}){let n=tk.resolve(e.extensions||[],new Map),r=e.doc instanceof ln?e.doc:ln.of((e.doc||"").split(n.staticFacet(rn.lineSeparator)||FA)),a=e.selection?e.selection instanceof Ee?e.selection:Ee.single(e.selection.anchor,e.selection.head):Ee.single(0);return BG(a,r.length),n.staticFacet(WA)||(a=a.asSingle()),new rn(n,r,a,n.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(rn.tabSize)}get lineBreak(){return this.facet(rn.lineSeparator)||` +`}get readOnly(){return this.facet(qG)}phrase(e,...n){for(let r of this.facet(rn.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(r,a)=>{if(a=="$")return"$";let s=+(a||1);return!s||s>n.length?r:n[s-1]})),e}languageDataAt(e,n,r=-1){let a=[];for(let s of this.facet(UG))for(let o of s(this,n,r))Object.prototype.hasOwnProperty.call(o,e)&&a.push(o[e]);return a}charCategorizer(e){let n=this.languageDataAt("wordChars",e);return LOe(n.length?n[0]:"")}wordAt(e){let{text:n,from:r,length:a}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,l=e-r;for(;o>0;){let c=ka(n,o,!1);if(s(n.slice(c,o))!=pr.Word)break;o=c}for(;lt.length?t[0]:4});rn.lineSeparator=VG;rn.readOnly=qG;rn.phrases=Qe.define({compare(t,e){let n=Object.keys(t),r=Object.keys(e);return n.length==r.length&&n.every(a=>t[a]==e[a])}});rn.languageData=UG;rn.changeFilter=WG;rn.transactionFilter=HG;rn.transactionExtender=GG;Qj.reconfigure=Ft.define();function Tl(t,e,n={}){let r={};for(let a of t)for(let s of Object.keys(a)){let o=a[s],l=r[s];if(l===void 0)r[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(n,s))r[s]=n[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let a in e)r[a]===void 0&&(r[a]=e[a]);return r}class Pu{eq(e){return this==e}range(e,n=e){return qA.create(e,n,this)}}Pu.prototype.startSide=Pu.prototype.endSide=0;Pu.prototype.point=!1;Pu.prototype.mapMode=us.TrackDel;function QT(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let qA=class XG{constructor(e,n,r){this.from=e,this.to=n,this.value=r}static create(e,n,r){return new XG(e,n,r)}};function KA(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class eP{constructor(e,n,r,a){this.from=e,this.to=n,this.value=r,this.maxPoint=a}get length(){return this.to[this.to.length-1]}findIndex(e,n,r,a=0){let s=r?this.to:this.from;for(let o=a,l=s.length;;){if(o==l)return o;let c=o+l>>1,u=s[c]-e||(r?this.value[c].endSide:this.value[c].startSide)-n;if(c==o)return u>=0?o:l;u>=0?l=c:o=c+1}}between(e,n,r,a){for(let s=this.findIndex(n,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sp||h==p&&u.startSide>0&&u.endSide<=0)continue;(p-h||u.endSide-u.startSide)<0||(o<0&&(o=h),u.point&&(l=Math.max(l,p-h)),r.push(u),a.push(h-o),s.push(p-o))}return{mapped:r.length?new eP(a,s,r,l):null,pos:o}}}class Gt{constructor(e,n,r,a){this.chunkPos=e,this.chunk=n,this.nextLayer=r,this.maxPoint=a}static create(e,n,r,a){return new Gt(e,n,r,a)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:r=!1,filterFrom:a=0,filterTo:s=this.length}=e,o=e.filter;if(n.length==0&&!o)return this;if(r&&(n=n.slice().sort(KA)),this.isEmpty)return n.length?Gt.of(n):this;let l=new JG(this,null,-1).goto(0),c=0,u=[],d=new xc;for(;l.value||c=0){let f=n[c++];d.addInner(f.from,f.to,f.value)||u.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,n-s,r)===!1)return}this.nextLayer.between(e,n,r)}}iter(e=0){return X0.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return X0.from(e).goto(n)}static compare(e,n,r,a,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=n.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),c=i8(o,l,r),u=new Eg(o,c,s),d=new Eg(l,c,s);r.iterGaps((f,h,p)=>o8(u,f,d,h,p,a)),r.empty&&r.length==0&&o8(u,0,d,0,0,a)}static eq(e,n,r=0,a){a==null&&(a=999999999);let s=e.filter(d=>!d.isEmpty&&n.indexOf(d)<0),o=n.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=i8(s,o),c=new Eg(s,l,0).goto(r),u=new Eg(o,l,0).goto(r);for(;;){if(c.to!=u.to||!YA(c.active,u.active)||c.point&&(!u.point||!QT(c.point,u.point)))return!1;if(c.to>a)return!0;c.next(),u.next()}}static spans(e,n,r,a,s=-1){let o=new Eg(e,null,s).goto(n),l=n,c=o.openStart;for(;;){let u=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),f=o.pointFroml&&(a.span(l,u,o.active,c),c=o.openEnd(u));if(o.to>r)return c+(o.point&&o.to>r?1:0);l=o.to,o.next()}}static of(e,n=!1){let r=new xc;for(let a of e instanceof qA?[e]:n?FOe(e):e)r.add(a.from,a.to,a.value);return r.finish()}static join(e){if(!e.length)return Gt.empty;let n=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let a=e[r];a!=Gt.empty;a=a.nextLayer)n=new Gt(a.chunkPos,a.chunk,n,Math.max(a.maxPoint,n.maxPoint));return n}}Gt.empty=new Gt([],[],null,-1);function FOe(t){if(t.length>1)for(let e=t[0],n=1;n0)return t.slice().sort(KA);e=r}return t}Gt.empty.nextLayer=Gt.empty;class xc{finishChunk(e){this.chunks.push(new eP(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,r){this.addInner(e,n,r)||(this.nextLayer||(this.nextLayer=new xc)).add(e,n,r)}addInner(e,n,r){let a=e-this.lastTo||r.startSide-this.last.endSide;if(a<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return a<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=n,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let r=n.value.length-1;return this.last=n.value[r],this.lastFrom=n.from[r]+e,this.lastTo=n.to[r]+e,!0}finish(){return this.finishInner(Gt.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=Gt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function i8(t,e,n){let r=new Map;for(let s of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&a.push(new JG(o,n,r,s));return a.length==1?a[0]:new X0(a)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let r of this.heap)r.goto(e,n);for(let r=this.heap.length>>1;r>=0;r--)x_(this.heap,r);return this.next(),this}forward(e,n){for(let r of this.heap)r.forward(e,n);for(let r=this.heap.length>>1;r>=0;r--)x_(this.heap,r);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),x_(this.heap,0)}}}function x_(t,e){for(let n=t[e];;){let r=(e<<1)+1;if(r>=t.length)break;let a=t[r];if(r+1=0&&(a=t[r+1],r++),n.compare(a)<0)break;t[r]=n,t[e]=a,e=r}}class Eg{constructor(e,n,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=X0.from(e,n,r)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){ub(this.active,e),ub(this.activeTo,e),ub(this.activeRank,e),this.minActive=l8(this.active,this.activeTo)}addActive(e){let n=0,{value:r,to:a,rank:s}=this.cursor;for(;n0;)n++;db(this.active,n,r),db(this.activeTo,n,a),db(this.activeRank,n,s),e&&db(e,n,this.cursor.from),this.minActive=l8(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>e){this.to=this.activeTo[a],this.endSide=this.active[a].endSide;break}this.removeActive(a),r&&ub(r,a)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from=0&&r[a]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&n.push(this.active[r]);return n.reverse()}openEnd(e){let n=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)n++;return n}}function o8(t,e,n,r,a,s){t.goto(e),n.goto(r);let o=r+a,l=r,c=r-e,u=!!s.boundChange;for(let d=!1;;){let f=t.to+c-n.to,h=f||t.endSide-n.endSide,p=h<0?t.to+c:n.to,m=Math.min(p,o);if(t.point||n.point?(t.point&&n.point&&QT(t.point,n.point)&&YA(t.activeForPoint(t.to),n.activeForPoint(n.to))||s.comparePoint(l,m,t.point,n.point),d=!1):(d&&s.boundChange(l),m>l&&!YA(t.active,n.active)&&s.compareRange(l,m,t.active,n.active),u&&mo)break;l=p,h<=0&&t.next(),h>=0&&n.next()}}function YA(t,e){if(t.length!=e.length)return!1;for(let n=0;n=e;r--)t[r+1]=t[r];t[e]=n}function l8(t,e){let n=-1,r=1e9;for(let a=0;a=e)return a;if(a==t.length)break;s+=t.charCodeAt(a)==9?n-s%n:1,a=ka(t,a)}return r===!0?-1:t.length}const JA="ͼ",c8=typeof Symbol>"u"?"__"+JA:Symbol.for(JA),ZA=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),u8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Mu{constructor(e,n){this.rules=[];let{finish:r}=n||{};function a(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,c,u){let d=[],f=/^@(\w+)\b/.exec(o[0]),h=f&&f[1]=="keyframes";if(f&&l==null)return c.push(o[0]+";");for(let p in l){let m=l[p];if(/&/.test(p))s(p.split(/,\s*/).map(x=>o.map(y=>x.replace(/&/,y))).reduce((x,y)=>x.concat(y)),m,c);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(a(p),m,d,h)}else m!=null&&d.push(p.replace(/_.*/,"").replace(/[A-Z]/g,x=>"-"+x.toLowerCase())+": "+m+";")}(d.length||h)&&c.push((r&&!f&&!u?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(a(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=u8[c8]||1;return u8[c8]=e+1,JA+e.toString(36)}static mount(e,n,r){let a=e[ZA],s=r&&r.nonce;a?s&&a.setNonce(s):a=new BOe(e,s),a.mount(Array.isArray(n)?n:[n],e)}}let d8=new Map;class BOe{constructor(e,n){let r=e.ownerDocument||e,a=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&a.CSSStyleSheet){let s=d8.get(r);if(s)return e[ZA]=s;this.sheet=new a.CSSStyleSheet,d8.set(r,this)}else this.styleTag=r.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[ZA]=this}mount(e,n){let r=this.sheet,a=0,s=0;for(let o=0;o-1&&(this.modules.splice(c,1),s--,c=-1),c==-1){if(this.modules.splice(s++,0,l),r)for(let u=0;u",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},zOe=typeof navigator<"u"&&/Mac/.test(navigator.platform),UOe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ra=0;Ra<10;Ra++)Ru[48+Ra]=Ru[96+Ra]=String(Ra);for(var Ra=1;Ra<=24;Ra++)Ru[Ra+111]="F"+Ra;for(var Ra=65;Ra<=90;Ra++)Ru[Ra]=String.fromCharCode(Ra+32),J0[Ra]=String.fromCharCode(Ra);for(var y_ in Ru)J0.hasOwnProperty(y_)||(J0[y_]=Ru[y_]);function VOe(t){var e=zOe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||UOe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?J0:Ru)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function Pn(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var a=n[r];typeof a=="string"?t.setAttribute(r,a):a!=null&&(t[r]=a)}e++}for(;e2);var Ze={mac:p8||/Mac/.test(cs.platform),windows:/Win/.test(cs.platform),linux:/Linux|X11/.test(cs.platform),ie:e2,ie_version:QG?QA.documentMode||6:t5?+t5[1]:e5?+e5[1]:0,gecko:f8,gecko_version:f8?+(/Firefox\/(\d+)/.exec(cs.userAgent)||[0,0])[1]:0,chrome:!!v_,chrome_version:v_?+v_[1]:0,ios:p8,android:/Android\b/.test(cs.userAgent),webkit:h8,webkit_version:h8?+(/\bAppleWebKit\/(\d+)/.exec(cs.userAgent)||[0,0])[1]:0,safari:n5,safari_version:n5?+(/\bVersion\/(\d+(\.\d+)?)/.exec(cs.userAgent)||[0,0])[1]:0,tabSize:QA.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function tP(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const rk=Object.create(null);function nP(t,e,n){if(t==e)return!0;t||(t=rk),e||(e=rk);let r=Object.keys(t),a=Object.keys(e);if(r.length-0!=a.length-0)return!1;for(let s of r)if(s!=n&&(a.indexOf(s)==-1||t[s]!==e[s]))return!1;return!0}function WOe(t,e){for(let n=t.attributes.length-1;n>=0;n--){let r=t.attributes[n].name;e[r]==null&&t.removeAttribute(r)}for(let n in e){let r=e[n];n=="style"?t.style.cssText=r:t.getAttribute(n)!=r&&t.setAttribute(n,r)}}function m8(t,e,n){let r=!1;if(e)for(let a in e)n&&a in n||(r=!0,a=="style"?t.style.cssText="":t.removeAttribute(a));if(n)for(let a in n)e&&e[a]==n[a]||(r=!0,a=="style"?t.style.cssText=n[a]:t.setAttribute(a,n[a]));return r}function HOe(t){let e=Object.create(null);for(let n=0;n0?3e8:-4e8:n>0?1e8:-1e8,new uf(e,n,n,r,e.widget||null,!1)}static replace(e){let n=!!e.block,r,a;if(e.isBlockGap)r=-5e8,a=4e8;else{let{start:s,end:o}=eq(e,n);r=(s?n?-3e8:-1:5e8)-1,a=(o?n?2e8:1:-6e8)+1}return new uf(e,r,a,n,e.widget||null,!0)}static line(e){return new Ly(e)}static set(e,n=!1){return Gt.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}kt.none=Gt.empty;class $y extends kt{constructor(e){let{start:n,end:r}=eq(e);super(n?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?tP(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||rk}eq(e){return this==e||e instanceof $y&&this.tagName==e.tagName&&nP(this.attrs,e.attrs)}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}$y.prototype.point=!1;class Ly extends kt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Ly&&this.spec.class==e.spec.class&&nP(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}Ly.prototype.mapMode=us.TrackBefore;Ly.prototype.point=!0;class uf extends kt{constructor(e,n,r,a,s,o){super(n,r,s,e),this.block=a,this.isReplace=o,this.mapMode=a?n<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?Ba.WidgetRange:this.startSide<=0?Ba.WidgetBefore:Ba.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof uf&&GOe(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}uf.prototype.point=!0;function eq(t,e=!1){let{inclusiveStart:n,inclusiveEnd:r}=t;return n==null&&(n=t.inclusive),r==null&&(r=t.inclusive),{start:n??e,end:r??e}}function GOe(t,e){return t==e||!!(t&&e&&t.compare(e))}function Qh(t,e,n,r=0){let a=n.length-1;a>=0&&n[a]+r>=t?n[a]=Math.max(n[a],e):n.push(t,e)}class Z0 extends Pu{constructor(e,n){super(),this.tagName=e,this.attributes=n}eq(e){return e==this||e instanceof Z0&&this.tagName==e.tagName&&nP(this.attributes,e.attributes)}static create(e){return new Z0(e.tagName,e.attributes||rk)}static set(e,n=!1){return Gt.of(e,n)}}Z0.prototype.startSide=Z0.prototype.endSide=-1;function Q0(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function r5(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function Ox(t,e){if(!e.anchorNode)return!1;try{return r5(t,e.anchorNode)}catch{return!1}}function Tx(t){return t.nodeType==3?ty(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function Px(t,e,n,r){return n?g8(t,e,n,r,-1)||g8(t,e,n,r,1):!1}function Du(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function ak(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function g8(t,e,n,r,a){for(;;){if(t==n&&e==r)return!0;if(e==(a<0?0:yc(t))){if(t.nodeName=="DIV")return!1;let s=t.parentNode;if(!s||s.nodeType!=1)return!1;e=Du(t)+(a<0?0:1),t=s}else if(t.nodeType==1){if(t=t.childNodes[e+(a<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=a<0?yc(t):0}else return!1}}function yc(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function ey(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function qOe(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function tq(t,e){let n=e.width/t.offsetWidth,r=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-t.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}function KOe(t,e,n,r,a,s,o,l){let c=t.ownerDocument,u=c.defaultView||window;for(let d=t,f=!1;d&&!f;)if(d.nodeType==1){let h,p=d==c.body,m=1,x=1;if(p)h=qOe(u);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(f=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let v=d.getBoundingClientRect();({scaleX:m,scaleY:x}=tq(d,v)),h={left:v.left,right:v.left+d.clientWidth*m,top:v.top,bottom:v.top+d.clientHeight*x}}let y=0,b=0;if(a=="nearest")e.top0&&e.bottom>h.bottom+b&&(b=e.bottom-h.bottom+o)):e.bottom>h.bottom-o&&(b=e.bottom-h.bottom+o,n<0&&e.top-b0&&e.right>h.right+y&&(y=e.right-h.right+s)):e.right>h.right-s&&(y=e.right-h.right+s,n<0&&e.lefth.bottom||e.lefth.right)&&(e={left:Math.max(e.left,h.left),right:Math.min(e.right,h.right),top:Math.max(e.top,h.top),bottom:Math.min(e.bottom,h.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function nq(t,e=!0){let n=t.ownerDocument,r=null,a=null;for(let s=t.parentNode;s&&!(s==n.body||(!e||r)&&a);)if(s.nodeType==1)!a&&s.scrollHeight>s.clientHeight&&(a=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:a}}class YOe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:r}=e;this.set(n,Math.min(e.anchorOffset,n?yc(n):0),r,Math.min(e.focusOffset,r?yc(r):0))}set(e,n,r,a){this.anchorNode=e,this.anchorOffset=n,this.focusNode=r,this.focusOffset=a}}let gd=null;Ze.safari&&Ze.safari_version>=26&&(gd=!1);function rq(t){if(t.setActive)return t.setActive();if(gd)return t.focus(gd);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(gd==null?{get preventScroll(){return gd={preventScroll:!0},!0}}:void 0),!gd){gd=!1;for(let n=0;nMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function sq(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r>0)return{node:n,offset:r};if(n.nodeType==1&&r>0){if(n.contentEditable=="false")return null;n=n.childNodes[r-1],r=yc(n)}else if(n.parentNode&&!ak(n))r=Du(n),n=n.parentNode;else return null}}function iq(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r=n){if(l.level==r)return o;(s<0||(a!=0?a<0?l.fromn:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}}function cq(t,e){if(t.length!=e.length)return!1;for(let n=0;n=0;x-=3)if(Vo[x+1]==-p){let y=Vo[x+2],b=y&2?a:y&4?y&1?s:a:0;b&&(Fn[f]=Fn[Vo[x]]=b),l=x;break}}else{if(Vo.length==189)break;Vo[l++]=f,Vo[l++]=h,Vo[l++]=c}else if((m=Fn[f])==2||m==1){let x=m==a;c=x?0:1;for(let y=l-3;y>=0;y-=3){let b=Vo[y+2];if(b&2)break;if(x)Vo[y+2]|=2;else{if(b&4)break;Vo[y+2]|=4}}}}}function r3e(t,e,n,r){for(let a=0,s=r;a<=n.length;a++){let o=a?n[a-1].to:t,l=ac;)m==y&&(m=n[--x].from,y=x?n[x-1].to:t),Fn[--m]=p;c=d}else s=u,c++}}}function s5(t,e,n,r,a,s,o){let l=r%2?2:1;if(r%2==a%2)for(let c=e,u=0;cc&&o.push(new ll(c,x.from,p));let y=x.direction==df!=!(p%2);i5(t,y?r+1:r,a,x.inner,x.from,x.to,o),c=x.to}m=x.to}else{if(m==n||(d?Fn[m]!=l:Fn[m]==l))break;m++}h?s5(t,c,m,r+1,a,h,o):ce;){let d=!0,f=!1;if(!u||c>s[u-1].to){let x=Fn[c-1];x!=l&&(d=!1,f=x==16)}let h=!d&&l==1?[]:null,p=d?r:r+1,m=c;e:for(;;)if(u&&m==s[u-1].to){if(f)break e;let x=s[--u];if(!d)for(let y=x.from,b=u;;){if(y==e)break e;if(b&&s[b-1].to==y)y=s[--b].from;else{if(Fn[y-1]==l)break e;break}}if(h)h.push(x);else{x.toFn.length;)Fn[Fn.length]=256;let r=[],a=e==df?0:1;return i5(t,a,a,n,0,t.length,r),r}function uq(t){return[new ll(0,t,0)]}let dq="";function s3e(t,e,n,r,a){var s;let o=r.head-t.from,l=ll.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),c=e[l],u=c.side(a,n);if(o==u){let h=l+=a?1:-1;if(h<0||h>=e.length)return null;c=e[l=h],o=c.side(!a,n),u=c.side(a,n)}let d=ka(t.text,o,c.forward(a,n));(dc.to)&&(d=u),dq=t.text.slice(Math.min(o,d),Math.max(o,d));let f=l==(a?e.length-1:0)?null:e[l+(a?1:-1)];return f&&d==u&&f.level+(a?0:1)t.some(e=>e)}),vq=Qe.define({combine:t=>t.some(e=>e)}),bq=Qe.define();class tp{constructor(e,n,r,a,s,o=!1){this.range=e,this.y=n,this.x=r,this.yMargin=a,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new tp(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new tp(Ee.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const fb=Ft.define({map:(t,e)=>t.map(e)}),wq=Ft.define();function ps(t,e,n){let r=t.facet(mq);r.length?r[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const Yl=Qe.define({combine:t=>t.length?t[0]:!0});let o3e=0;const Rh=Qe.define({combine(t){return t.filter((e,n)=>{for(let r=0;r{let c=[];return o&&c.push(t2.of(u=>{let d=u.plugin(l);return d?o(d):kt.none})),s&&c.push(s(l)),c})}static fromClass(e,n){return br.define((r,a)=>new e(r,a),n)}}class b_{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(r){if(ps(n.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){ps(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(r){ps(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const kq=Qe.define(),iP=Qe.define(),t2=Qe.define(),jq=Qe.define(),oP=Qe.define(),Fy=Qe.define(),Sq=Qe.define();function y8(t,e){let n=t.state.facet(Sq);if(!n.length)return n;let r=n.map(s=>s instanceof Function?s(t):s),a=[];return Gt.spans(r,e.from,e.to,{point(){},span(s,o,l,c){let u=s-e.from,d=o-e.from,f=a;for(let h=l.length-1;h>=0;h--,c--){let p=l[h].spec.bidiIsolate,m;if(p==null&&(p=i3e(e.text,u,d)),c>0&&f.length&&(m=f[f.length-1]).to==u&&m.direction==p)m.to=d,f=m.inner;else{let x={from:u,to:d,direction:p,inner:[]};f.push(x),f=x.inner}}}}),a}const _q=Qe.define();function lP(t){let e=0,n=0,r=0,a=0;for(let s of t.state.facet(_q)){let o=s(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(a=Math.max(a,o.bottom)))}return{left:e,right:n,top:r,bottom:a}}const rx=Qe.define();class Bi{constructor(e,n,r,a){this.fromA=e,this.toA=n,this.fromB=r,this.toB=a}join(e){return new Bi(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,r=this;for(;n>0;n--){let a=e[n-1];if(!(a.fromA>r.toA)){if(a.toAa.push(new Bi(s,o,l,c))),this.changedRanges=a}static create(e,n,r){return new sk(e,n,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const l3e=[];class Cr{constructor(e,n,r=0){this.dom=e,this.length=n,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return l3e}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let n=this.domAttrs;n&&WOe(this.dom,n)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,n=this.posAtStart){let r=n;for(let a of this.children){if(a==e)return r;r+=a.length+a.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,n){return null}domPosFor(e,n){let r=Du(this.dom),a=this.length?e>0:n>0;return new jo(this.parent.dom,r+(a?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof r2)return e;return null}static get(e){return e.cmTile}}class n2 extends Cr{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let n=this.dom,r=null,a,s=(e==null?void 0:e.node)==n?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,a=r?r.nextSibling:n.firstChild,s&&a!=l.dom&&(s.written=!0),l.dom.parentNode==n)for(;a&&a!=l.dom;)a=v8(a);else n.insertBefore(l.dom,a);r=l.dom}for(a=r?r.nextSibling:n.firstChild,s&&a&&(s.written=!0);a;)a=v8(a);this.length=o}}function v8(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class r2 extends n2{constructor(e,n){super(n),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let n=Cr.get(e);if(n&&this.owns(n))return n;e=e.parentNode}}blockTiles(e){for(let n=[],r=this,a=0,s=0;;)if(a==r.children.length){if(!n.length)return;r=r.parent,r.breakAfter&&s++,a=n.pop()}else{let o=r.children[a++];if(o instanceof oc)n.push(a),r=o,a=0;else{let l=s+o.length,c=e(o,s);if(c!==void 0)return c;s=l+o.breakAfter}}}resolveBlock(e,n){let r,a=-1,s,o=-1;if(this.blockTiles((l,c)=>{let u=c+l.length;if(e>=c&&e<=u){if(l.isWidget()&&n>=-1&&n<=1){if(l.flags&32)return!0;l.flags&16&&(r=void 0)}(ce||e==c&&(n>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-c)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&n<0||!s?{tile:r,offset:a}:{tile:s,offset:o}}}class oc extends n2{constructor(e,n){super(e),this.wrapper=n}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,n){let r=new oc(n||document.createElement(e.tagName),e);return n||(r.flags|=4),r}}class Jp extends n2{constructor(e,n){super(e),this.attrs=n}isLine(){return!0}static start(e,n,r){let a=new Jp(n||document.createElement("div"),e);return(!n||!r)&&(a.flags|=4),a}get domAttrs(){return this.attrs}resolveInline(e,n,r){let a=null,s=-1,o=null,l=-1;function c(d,f){for(let h=0,p=0;h=f&&(m.isComposite()?c(m,f-p):(!o||o.isHidden&&(n>0||r&&u3e(o,m)))&&(x>f||m.flags&32)?(o=m,l=f-p):(pr&&(e=r);let a=e,s=e,o=0;e==0&&n<0||e==r&&n>=0?Ze.chrome||Ze.gecko||(e?(a--,o=1):s=0)?0:l.length-1];return Ze.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(l,u=>u.width)||c),o?ey(c,o<0):c||null}static of(e,n){let r=new Td(n||document.createTextNode(e),e);return n||(r.flags|=2),r}}class ff extends Cr{constructor(e,n,r,a){super(e,n,a),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,n){return this.coordsInWidget(e,n,!1)}coordsInWidget(e,n,r){let a=this.widget.coordsAt(this.dom,e,n);if(a)return a;if(r)return ey(this.dom.getBoundingClientRect(),this.length?e==0:n<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let c=l?s.length-1:0;o=s[c],!(e>0?c==0:c==s.length-1||o.top0;)if(a.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==a.children.length){if(!e&&!l.length)break;r&&r.leave(a),o=!!a.breakAfter,{tile:a,index:s}=l.pop(),s++}else{let c=a.children[s],u=c.breakAfter;(n>0?c.length<=e:c.length=0;l--){let c=n.marks[l],u=a.lastChild;if(u instanceof Is&&u.mark.eq(c.mark))u.dom!=c.dom&&u.setDOM(w_(c.dom)),a=u;else{if(this.cache.reused.get(c)){let f=Cr.get(c.dom);f&&f.setDOM(w_(c.dom))}let d=Is.of(c.mark,c.dom);a.append(d),a=d}this.cache.reused.set(c,2)}let s=Cr.get(e.text);s&&this.cache.reused.set(s,2);let o=new Td(e.text,e.text.nodeValue);o.flags|=8,a.append(o)}addInlineWidget(e,n,r){let a=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);a||this.flushBuffer();let s=this.ensureMarks(n,r);!a&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,n,r){this.flushBuffer(),this.ensureMarks(n,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let n=this.afterWidget||this.lastBlock;n.length+=e,this.pos+=e}addLineStart(e,n){var r;e||(e=Nq);let a=Jp.start(e,n||((r=this.cache.find(Jp))===null||r===void 0?void 0:r.dom),!!n);this.getBlockPos().append(this.lastBlock=this.curLine=a)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,n){var r;let a=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(n>0&&(l=a.lastChild)&&l instanceof Is&&l.mark.eq(o))a=l,n--;else{let c=Is.of(o,(r=this.cache.find(Is,u=>u.mark.eq(o)))===null||r===void 0?void 0:r.dom);a.append(c),a=c,n=0}}return a}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!b8(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Ze.ios&&b8(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(k_,0,32)||new ff(k_.toDOM(),0,k_,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let n=new f3e(e.from,e.to,e.value,e.rank),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let n=this.root;for(let r of this.wrappers){let a=n.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);n.append(s),n=s}}return n}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let n=2|(e<0?16:32),r=this.cache.find(ik,void 0,1);return r&&(r.flags=n),r||new ik(n)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class p3e{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:a,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=a;let l=this.textOff=Math.min(e,a.length);return s?null:a.slice(0,l)}let n=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,n);return this.textOff=n,r}}const ok=[ff,Jp,Td,Is,ik,oc,r2];for(let t=0;t[]),this.index=ok.map(()=>0),this.reused=new Map}add(e){let n=e.constructor.bucket,r=this.buckets[n];r.length<6?r.push(e):r[this.index[n]=(this.index[n]+1)%6]=e}find(e,n,r=2){let a=e.bucket,s=this.buckets[a],o=this.index[a];for(let l=s.length-1;l>=0;l--){let c=(l+o)%s.length,u=s[c];if((!n||n(u))&&!this.reused.has(u))return s.splice(c,1),c{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,n){let r=n&&this.getCompositionContext(n.text);for(let a=0,s=0,o=0;;){let l=oa){let u=c-a;this.preserve(u,!o,!l),a=c,s+=u}if(!l)break;n&&l.fromA<=n.range.fromA&&l.toA>=n.range.toA?(this.forward(l.fromA,n.range.fromA,n.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(c-l);else{let u=c>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Is&&a.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?a.length&&(a.length=s=0):o instanceof Is&&(a.shift(),s=Math.min(s,a.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,n){let r=null,a=this.builder,s=0,o=Gt.spans(this.decorations,e,n,{point:(l,c,u,d,f,h)=>{if(u instanceof uf){if(this.disallowBlockEffectsFor[h]){if(u.block)throw new RangeError("Block decorations may not be specified via plugins");if(c>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,f>d.length)a.continueWidget(c-l);else{let p=u.widget||(u.block?Zp.block:Zp.inline),m=x3e(u),x=this.cache.findWidget(p,c-l,m)||ff.of(p,this.view,c-l,m);u.block?(u.startSide>0&&a.addLineStartIfNotCovered(r),a.addBlockWidget(x)):(a.ensureLine(r),a.addInlineWidget(x,d,f))}r=null}else r=y3e(r,u);c>l&&this.text.skip(c-l)},span:(l,c,u,d)=>{for(let f=l;fs,this.openMarks=o}forward(e,n,r=1){n-e<=10?this.old.advance(n-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(n-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let n=[],r=null;for(let a=e.parentNode;;a=a.parentNode){let s=Cr.get(a);if(a==this.view.contentDOM)break;s instanceof Is?n.push(s):s!=null&&s.isLine()?r=s:s instanceof oc||(a.nodeName=="DIV"&&!r&&a!=this.view.contentDOM?r=new Jp(a,Nq):r||n.push(Is.of(new $y({tagName:a.nodeName.toLowerCase(),attributes:HOe(a)}),a)))}return{line:r,marks:n}}}function b8(t,e){let n=r=>{for(let a of r.children)if((e?a.isText():a.length)||n(a))return!0;return!1};return n(t)}function x3e(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const Nq={class:"cm-line"};function y3e(t,e){let n=e.spec.attributes,r=e.spec.class;return!n&&!r||(t||(t={class:"cm-line"}),n&&tP(n,t),r&&(t.class+=" "+r)),t}function v3e(t){let e=[];for(let n=t.parents.length;n>1;n--){let r=n==t.parents.length?t.tile:t.parents[n].tile;r instanceof Is&&e.push(r.mark)}return e}function w_(t){let e=Cr.get(t);return e&&e.setDOM(t.cloneNode()),t}class Zp extends Pl{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Zp.inline=new Zp("span");Zp.block=new Zp("div");const k_=new class extends Pl{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class w8{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=kt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new r2(e,e.contentDOM),this.updateInner([new Bi(0,0,0,e.state.doc.length)],null)}update(e){var n;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let a=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?a=this.domChanged.newSel.head:!E3e(e.changes,this.hasComposition)&&!e.selectionSet&&(a=e.state.selection.main.head));let s=a>-1?w3e(this.view,e.changes,a):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:f}=this.hasComposition;r=new Bi(d,f,e.changes.mapPos(d,-1),e.changes.mapPos(f,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Ze.ie||Ze.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let c=S3e(o,this.decorations,e.changes);c.length&&(r=Bi.extendWithRanges(r,c));let u=N3e(l,this.blockWrappers,e.changes);return u.length&&(r=Bi.extendWithRanges(r,u)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(n||e.length){let o=this.tile,l=new g3e(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);n&&Cr.get(n.text)&&l.cache.reused.set(Cr.get(n.text),2),this.tile=l.run(e,n),l5(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Ze.chrome||Ze.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let a=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Ox(r,this.view.observer.selectionRange)&&!(a&&r.contains(a));if(!(s||n||o))return;let l=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,u,d;if(c.empty?d=u=this.inlineDOMNearPos(c.anchor,c.assoc||1):(d=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),u=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),Ze.gecko&&c.empty&&!this.hasComposition&&b3e(u)){let h=document.createTextNode("");this.view.observer.ignore(()=>u.node.insertBefore(h,u.node.childNodes[u.offset]||null)),u=d=new jo(h,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!Px(u.node,u.offset,f.anchorNode,f.anchorOffset)||!Px(d.node,d.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,c))&&(this.view.observer.ignore(()=>{Ze.android&&Ze.chrome&&r.contains(f.focusNode)&&C3e(f.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let h=Q0(this.view.root);if(h)if(c.empty){if(Ze.gecko){let p=k3e(u.node,u.offset);if(p&&p!=3){let m=(p==1?sq:iq)(u.node,u.offset);m&&(u=new jo(m.node,m.offset))}}h.collapse(u.node,u.offset),c.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=c.bidiLevel)}else if(h.extend){h.collapse(u.node,u.offset);try{h.extend(d.node,d.offset)}catch{}}else{let p=document.createRange();c.anchor>c.head&&([u,d]=[d,u]),p.setEnd(d.node,d.offset),p.setStart(u.node,u.offset),h.removeAllRanges(),h.addRange(p)}o&&this.view.root.activeElement==r&&(r.blur(),a&&a.focus())}),this.view.observer.setSelectionRange(u,d)),this.impreciseAnchor=u.precise?null:new jo(f.anchorNode,f.anchorOffset),this.impreciseHead=d.precise?null:new jo(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&Px(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,r=Q0(e.root),{anchorNode:a,anchorOffset:s}=e.observer.selectionRange;if(!r||!n.empty||!n.assoc||!r.modify)return;let o=this.lineAt(n.head,n.assoc);if(!o)return;let l=o.posAtStart;if(n.head==l||n.head==l+o.length)return;let c=this.coordsAt(n.head,-1),u=this.coordsAt(n.head,1);if(!c||!u||c.bottom>u.top)return;let d=this.domAtPos(n.head+n.assoc,n.assoc);r.collapse(d.node,d.offset),r.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=n.from&&r.collapse(a,s)}posFromDOM(e,n){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let a=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[n];else{let o=yc(e)==0?0:n==0?-1:1;for(;;){let l=e.parentNode;if(l==r.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return a;for(;s&&!Cr.get(s);)s=s.nextSibling;if(!s)return a+r.length;for(let o=0,l=a;;o++){let c=r.children[o];if(c.dom==s)return l;l+=c.length+c.breakAfter}}else return r.isText()?e==r.dom?a+n:a+(n?r.length:0):a}domAtPos(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.domPosFor(e,n):r.domIn(a,n)}inlineDOMNearPos(e,n){let r,a=-1,s=!1,o,l=-1,c=!1;return this.tile.blockTiles((u,d)=>{if(u.isWidget()){if(u.flags&32&&d>=e)return!0;u.flags&16&&(s=!0)}else{let f=d+u.length;if(d<=e&&(r=u,a=e-d,s=f=e&&!o&&(o=u,l=e-d,c=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,n):(s&&o?r=null:c&&r&&(o=null),r&&n<0||!o?r.domIn(a,n):o.domIn(l,n))}coordsAt(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.widget instanceof j_?null:r.coordsInWidget(a,n,!0):r.coordsIn(a,n)}lineAt(e,n){let{tile:r}=this.tile.resolveBlock(e,n);return r.isLine()?r:null}coordsForChar(e){let{tile:n,offset:r}=this.tile.resolveBlock(e,1);if(!n.isLine())return null;function a(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let c=a(l,o);if(c)return c}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,c=this.view.textDirection==zn.LTR,u=0,d=(f,h,p)=>{for(let m=0;ma);m++){let x=f.children[m],y=h+x.length,b=x.dom.getBoundingClientRect(),{height:v}=b;if(p&&!m&&(u+=b.top-p.top),x instanceof oc)y>r&&d(x,h,b);else if(h>=r&&(u>0&&n.push(-u),n.push(v+u),u=0,o)){let w=x.dom.lastChild,j=w?Tx(w):[];if(j.length){let k=j[j.length-1],_=c?k.right-b.left:b.right-k.left;_>l&&(l=_,this.minWidth=s,this.minWidthFrom=h,this.minWidthTo=y)}}p&&m==f.children.length-1&&(u+=p.bottom-b.bottom),h=y+x.breakAfter}};return d(this.tile,0,null),n}textDirectionAt(e){let{tile:n}=this.tile.resolveBlock(e,1);return getComputedStyle(n.dom).direction=="rtl"?zn.RTL:zn.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,c;for(let u of o.children){if(!u.isText()||/[^ -~]/.test(u.text))return;let d=Tx(u.dom);if(d.length!=1)return;l+=d[0].width,c=d[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:c}}});if(e)return e;let n=document.createElement("div"),r,a,s;return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(n);let o=Tx(n.firstChild)[0];r=n.getBoundingClientRect().height,a=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,n.remove()}),{lineHeight:r,charWidth:a,textHeight:s}}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let r=0,a=0;;a++){let s=a==n.viewports.length?null:n.viewports[a],o=s?s.from-1:this.view.state.doc.length;if(o>r){let l=(n.lineBlockAt(o).bottom-n.lineBlockAt(r).top)/this.view.scaleY;e.push(kt.replace({widget:new j_(l),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return kt.set(e)}updateDeco(){let e=1,n=this.view.state.facet(t2).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,a=this.view.state.facet(oP).map((s,o)=>{let l=typeof s=="function";return l&&(r=!0),l?s(this.view):s});for(a.length&&(this.dynamicDecorationMap[e++]=r,n.push(Gt.join(a))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){var n;if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(bq))try{if(d(this.view,e.range,e))return!0}catch(f){ps(this.view.state,f,"scroll handler")}let{range:r}=e,a=this.coordsAt(r.head,(n=r.assoc)!==null&&n!==void 0?n:r.empty?0:r.head>r.anchor?-1:1),s;if(!a)return;!r.empty&&(s=this.coordsAt(r.anchor,r.anchor>r.head?-1:1))&&(a={left:Math.min(a.left,s.left),top:Math.min(a.top,s.top),right:Math.max(a.right,s.right),bottom:Math.max(a.bottom,s.bottom)});let o=lP(this.view),l={left:a.left-o.left,top:a.top-o.top,right:a.right+o.right,bottom:a.bottom+o.bottom},{offsetWidth:c,offsetHeight:u}=this.view.scrollDOM;if(KOe(this.view.scrollDOM,l,r.head1&&(a.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||a.bottomr.isWidget()||r.children.some(n);return n(this.tile.resolveBlock(e,1).tile)}destroy(){l5(this.tile)}}function l5(t,e){let n=e==null?void 0:e.get(t);if(n!=1){n==null&&t.destroy();for(let r of t.children)l5(r,e)}}function b3e(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function Cq(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let r=sq(n.focusNode,n.focusOffset),a=iq(n.focusNode,n.focusOffset),s=r||a;if(a&&r&&a.node!=r.node){let l=Cr.get(a.node);if(!l||l.isText()&&l.text!=a.node.nodeValue)s=a;else if(t.docView.lastCompositionAfterCursor){let c=Cr.get(r.node);!c||c.isText()&&c.text!=r.node.nodeValue||(s=a)}}if(t.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function w3e(t,e,n){let r=Cq(t,n);if(!r)return null;let{node:a,from:s,to:o}=r,l=a.nodeValue;if(/[\n\r]/.test(l)||t.state.doc.sliceString(r.from,r.to)!=l)return null;let c=e.invertedDesc;return{range:new Bi(c.mapPos(s),c.mapPos(o),s,o),text:a}}function k3e(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(n=!0)}),n}class j_ extends Pl{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function A3e(t,e,n=1){let r=t.charCategorizer(e),a=t.doc.lineAt(e),s=e-a.from;if(a.length==0)return Ee.cursor(e);s==0?n=1:s==a.length&&(n=-1);let o=s,l=s;n<0?o=ka(a.text,s,!1):l=ka(a.text,s);let c=r(a.text.slice(o,l));for(;o>0;){let u=ka(a.text,o,!1);if(r(a.text.slice(u,o))!=c)break;o=u}for(;lt.defaultLineHeight*1.5){let l=t.viewState.heightOracle.textHeight,c=Math.floor((a-n.top-(t.defaultLineHeight-l)*.5)/l);s+=c*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(n.from,n.to);return n.from+XA(o,s,t.state.tabSize)}function c5(t,e,n){let r=t.lineBlockAt(e);if(Array.isArray(r.type)){let a;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!a||s.type==Ba.Text&&(a.type!=s.type||(n<0?s.frome)))&&(a=s)}}return a||r}return r}function T3e(t,e,n,r){let a=c5(t,e.head,e.assoc||-1),s=!r||a.type!=Ba.Text||!(t.lineWrapping||a.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>a.from?e.head-1:e.head);if(s){let o=t.dom.getBoundingClientRect(),l=t.textDirectionAt(a.from),c=t.posAtCoords({x:n==(l==zn.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(c!=null)return Ee.cursor(c,n?-1:1)}return Ee.cursor(n?a.to:a.from,n?-1:1)}function k8(t,e,n,r){let a=t.state.doc.lineAt(e.head),s=t.bidiSpans(a),o=t.textDirectionAt(a.from);for(let l=e,c=null;;){let u=s3e(a,s,o,l,n),d=dq;if(!u){if(a.number==(n?t.state.doc.lines:1))return l;d=` +`,a=t.state.doc.line(a.number+(n?1:-1)),s=t.bidiSpans(a),u=t.visualLineSide(a,!n)}if(c){if(!c(d))return l}else{if(!r)return u;c=r(d)}l=u}}function P3e(t,e,n){let r=t.state.charCategorizer(e),a=r(n);return s=>{let o=r(s);return a==pr.Space&&(a=o),a==o}}function M3e(t,e,n,r){let a=e.head,s=n?1:-1;if(a==(n?t.state.doc.length:0))return Ee.cursor(a,e.assoc);let o=e.goalColumn,l,c=t.contentDOM.getBoundingClientRect(),u=t.coordsAtPos(a,e.assoc||((e.empty?n:e.head==e.from)?1:-1)),d=t.documentTop;if(u)o==null&&(o=u.left-c.left),l=s<0?u.top:u.bottom;else{let m=t.viewState.lineBlockAt(a);o==null&&(o=Math.min(c.right-c.left,t.defaultCharacterWidth*(a-m.from))),l=(s<0?m.top:m.bottom)+d}let f=c.left+o,h=t.viewState.heightOracle.textHeight>>1,p=r??h;for(let m=0;;m+=h){let x=l+(p+m)*s,y=u5(t,{x:f,y:x},!1,s);if(n?x>c.bottom:xl:v{if(e>s&&ea(t)),n.from,e.head>n.from?-1:1);return r==n.from?n:Ee.cursor(r,rt.viewState.docHeight)return new nl(t.state.doc.length,-1);if(u=t.elementAtHeight(c),r==null)break;if(u.type==Ba.Text){if(r<0?u.tot.viewport.to)break;let h=t.docView.coordsAt(r<0?u.from:u.to,r>0?-1:1);if(h&&(r<0?h.top<=c+s:h.bottom>=c+s))break}let f=t.viewState.heightOracle.textHeight/2;c=r>0?u.bottom+f:u.top-f}if(t.viewport.from>=u.to||t.viewport.to<=u.from){if(n)return null;if(u.type==Ba.Text){let f=O3e(t,a,u,o,l);return new nl(f,f==u.from?1:-1)}}if(u.type!=Ba.Text)return c<(u.top+u.bottom)/2?new nl(u.from,1):new nl(u.to,-1);let d=t.docView.lineAt(u.from,2);return(!d||d.length!=u.length)&&(d=t.docView.lineAt(u.from,-2)),new R3e(t,o,l,t.textDirectionAt(u.from)).scanTile(d,u.from)}class R3e{constructor(e,n,r,a){this.view=e,this.x=n,this.y=r,this.baseDir=a,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+a.from>1;t:if(s.has(m)){let y=r+Math.floor(Math.random()*p);for(let b=0;b1)){if(b.bottomthis.y)(!c||c.top>b.top)&&(c=b),v=-1;else{let w=b.left>this.x?this.x-b.left:b.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,n);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,n)}let h=(o?this.dirAt(e[u],1):this.baseDir)==zn.LTR;return{i:u,after:this.x>(f.left+f.right)/2==h}}scanText(e,n){let r=[];for(let s=0;s{let o=r[s]-n,l=r[s+1]-n;return ty(e.dom,o,l).getClientRects()});return a.after?new nl(r[a.i+1],-1):new nl(r[a.i],1)}scanTile(e,n){if(!e.length)return new nl(n,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,n);if(l.isComposite())return this.scanTile(l,n)}let r=[n];for(let l=0,c=n;l{let c=e.children[l];return c.flags&48?null:(c.dom.nodeType==1?c.dom:ty(c.dom,0,c.length)).getClientRects()}),s=e.children[a.i],o=r[a.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):a.after?new nl(r[a.i+1],-1):new nl(o,1)}}const oh="￿";class D3e{constructor(e,n){this.points=e,this.view=n,this.text="",this.lineSeparator=n.state.facet(rn.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=oh}readRange(e,n){if(!e)return this;let r=e.parentNode;for(let a=e;;){this.findPointBefore(r,a);let s=this.text.length;this.readNode(a);let o=Cr.get(a),l=a.nextSibling;if(l==n){o!=null&&o.breakAfter&&!l&&r!=this.view.contentDOM&&this.lineBreak();break}let c=Cr.get(l);(o&&c?o.breakAfter:(o?o.breakAfter:ak(a))||ak(l)&&(a.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!$3e(l,n)&&this.lineBreak(),a=l}return this.findPointBefore(r,n),this}readTextNode(e){let n=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,n.length));for(let r=0,a=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=n.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(l=a.exec(n))&&(s=l.index,o=l[0].length),this.append(n.slice(r,s<0?n.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=o-1);r=s+o}}readNode(e){let n=Cr.get(e),r=n&&n.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let a=r.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==n&&(r.pos=this.text.length)}findPointInside(e,n){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(I3e(e,r.node,r.offset)?n:0))}}function I3e(t,e,n){for(;;){if(!e||n-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=Aq(e.docView.tile,n,r,0))){let c=s||o?[]:B3e(e),u=new D3e(c,e);u.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=u.text,this.newSel=z3e(c,this.bounds.from)}else{let c=e.observer.selectionRange,u=s&&s.node==c.focusNode&&s.offset==c.focusOffset||!r5(e.contentDOM,c.focusNode)?l.main.head:e.docView.posFromDOM(c.focusNode,c.focusOffset),d=o&&o.node==c.anchorNode&&o.offset==c.anchorOffset||!r5(e.contentDOM,c.anchorNode)?l.main.anchor:e.docView.posFromDOM(c.anchorNode,c.anchorOffset),f=e.viewport;if((Ze.ios||Ze.chrome)&&l.main.empty&&u!=d&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange(Ee.range(d,u));else if(e.lineWrapping&&d==u&&!(l.main.empty&&l.main.head==u)&&e.inputState.lastTouchTime>Date.now()-100){let h=e.coordsAtPos(u,-1),p=0;h&&(p=e.inputState.lastTouchY<=h.bottom?-1:1),this.newSel=Ee.create([Ee.cursor(u,p)])}else this.newSel=Ee.single(d,u)}}}function Aq(t,e,n,r){if(t.isComposite()){let a=-1,s=-1,o=-1,l=-1;for(let c=0,u=r,d=r;cn)return Aq(f,e,n,u);if(h>=e&&a==-1&&(a=c,s=u),u>n&&f.dom.parentNode==t.dom){o=c,l=d;break}d=h,u=h+f.breakAfter}return{from:s,to:l<0?r+t.length:l,startDOM:(a?t.children[a-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:r,to:r+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function Oq(t,e){let n,{newSel:r}=e,{state:a}=t,s=a.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:c}=e.bounds,u=s.from,d=null;(o===8||Ze.android&&e.text.length=l&&s.to<=c&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(h=e.text.length-(f.length-(s.to-l)))?n={from:s.from,to:s.to,insert:ln.of(e.text.slice(s.from-l,h).split(oh))}:(p=Tq(f,e.text,u-l,d))&&(Ze.chrome&&o==13&&p.toB==p.from+2&&e.text.slice(p.from,p.toB)==oh+oh&&p.toB--,n={from:l+p.from,to:l+p.toA,insert:ln.of(e.text.slice(p.from,p.toB).split(oh))})}else r&&(!t.hasFocus&&a.facet(Yl)||lk(r,s))&&(r=null);if(!n&&!r)return!1;if((Ze.mac||Ze.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(r&&n.insert.length==2&&(r=Ee.single(r.main.anchor-1,r.main.head-1)),n={from:n.from,to:n.to,insert:ln.of([n.insert.toString().replace("."," ")])}):a.doc.lineAt(s.from).toDate.now()-50?n={from:s.from,to:s.to,insert:a.toText(t.inputState.insertingText)}:Ze.chrome&&n&&n.from==n.to&&n.from==s.head&&n.insert.toString()==` + `&&t.lineWrapping&&(r&&(r=Ee.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:ln.of([" "])}),n)return cP(t,n,r,o);if(r&&!lk(r,s)){let l=!1,c="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(l=!0),c=t.inputState.lastSelectionOrigin,c=="select.pointer"&&(r=Eq(a.facet(Fy).map(u=>u(t)),r))),t.dispatch({selection:r,scrollIntoView:l,userEvent:c}),!0}else return!1}function cP(t,e,n,r=-1){if(Ze.ios&&t.inputState.flushIOSKey(e))return!0;let a=t.state.selection.main;if(Ze.android&&(e.to==a.to&&(e.from==a.from||e.from==a.from-1&&t.state.sliceDoc(e.from,a.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&ep(t.contentDOM,"Enter",13)||(e.from==a.from-1&&e.to==a.to&&e.insert.length==0||r==8&&e.insert.lengtha.head)&&ep(t.contentDOM,"Backspace",8)||e.from==a.from&&e.to==a.to+1&&e.insert.length==0&&ep(t.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,l=()=>o||(o=F3e(t,e,n));return t.state.facet(gq).some(c=>c(t,e.from,e.to,s,l))||t.dispatch(l()),!0}function F3e(t,e,n){let r,a=t.state,s=a.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let c=e.fromf(t)),u,c);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:Ee.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=s.frome.to?a.sliceDoc(e.to,s.to):"";r=a.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+u))}else{let c=a.changes(e),u=n&&n.main.to<=c.newLength?n.main:void 0;if(a.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=t.state.sliceDoc(e.from,e.to),f,h=n&&Cq(t,n.main.head);if(h){let m=e.insert.length-(e.to-e.from);f={from:h.from,to:h.to-m}}else f=t.state.doc.lineAt(s.head);let p=s.to-e.to;r=a.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:c,range:u||m.map(c)};let x=m.to-p,y=x-d.length;if(t.state.sliceDoc(y,x)!=d||x>=f.from&&y<=f.to)return{range:m};let b=a.changes({from:y,to:x,insert:e.insert}),v=m.to-s.to;return{changes:b,range:u?Ee.range(Math.max(0,u.anchor+v),Math.max(0,u.head+v)):m.map(b)}})}else r={changes:c,selection:u&&a.selection.replaceRange(u)}}let l="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,l+=".compose",t.inputState.compositionFirstChange&&(l+=".start",t.inputState.compositionFirstChange=!1)),a.update(r,{userEvent:l,scrollIntoView:!0})}function Tq(t,e,n,r){let a=Math.min(t.length,e.length),s=0;for(;s0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(r=="end"){let c=Math.max(0,s-Math.min(o,l));n-=o+c-s}if(o=o?s-n:0;s-=c,l=s+(l-o),o=s}else if(l=l?s-n:0;s-=c,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function B3e(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}=t.observer.selectionRange;return n&&(e.push(new j8(n,r)),(a!=n||s!=r)&&e.push(new j8(a,s))),e}function z3e(t,e){if(t.length==0)return null;let n=t[0].pos,r=t.length==2?t[1].pos:n;return n>-1&&r>-1?Ee.single(n+e,r+e):null}function lk(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class U3e{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ze.safari&&e.contentDOM.addEventListener("input",()=>null),Ze.gecko&&rTe(e.contentDOM.ownerDocument)}handleEvent(e){!X3e(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let r=this.handlers[e];if(r){for(let a of r.observers)a(this.view,n);for(let a of r.handlers){if(n.defaultPrevented)break;if(a(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=V3e(e),r=this.handlers,a=this.view.contentDOM;for(let s in n)if(s!="scroll"){let o=!n[s].handlers.length,l=r[s];l&&o!=!l.handlers.length&&(a.removeEventListener(s,this.handleEvent),l=null),l||a.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!n[s]&&a.removeEventListener(s,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Mq.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ze.android&&Ze.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return Ze.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&!e.shiftKey&&((n=Pq.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||W3e.indexOf(e.key)>-1&&e.ctrlKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from0?!0:Ze.safari&&!Ze.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function S8(t,e){return(n,r)=>{try{return e.call(t,r,n)}catch(a){ps(n.state,a)}}}function V3e(t){let e=Object.create(null);function n(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of t){let a=r.spec,s=a&&a.plugin.domEventHandlers,o=a&&a.plugin.domEventObservers;if(s)for(let l in s){let c=s[l];c&&n(l).handlers.push(S8(r.value,c))}if(o)for(let l in o){let c=o[l];c&&n(l).observers.push(S8(r.value,c))}}for(let r in To)n(r).handlers.push(To[r]);for(let r in Ks)n(r).observers.push(Ks[r]);return e}const Pq=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],W3e="dthko",Mq=[16,17,18,20,91,92,224,225],hb=6;function pb(t){return Math.max(0,t)*.7+8}function H3e(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class G3e{constructor(e,n,r,a){this.view=e,this.startEvent=n,this.style=r,this.mustSelect=a,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=nq(e.contentDOM),this.atoms=e.state.facet(Fy).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(rn.allowMultipleSelections)&&q3e(e,n),this.dragging=Y3e(e,n)&&Iq(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&H3e(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,r=0,a=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:a,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=lP(this.view);e.clientX-c.left<=a+hb?n=-pb(a-e.clientX):e.clientX+c.right>=o-hb&&(n=pb(e.clientX-o)),e.clientY-c.top<=s+hb?r=-pb(s-e.clientY):e.clientY+c.bottom>=l-hb&&(r=pb(e.clientY-l)),this.setScrollSpeed(n,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,r=Eq(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function q3e(t,e){let n=t.state.facet(fq);return n.length?n[0](e):Ze.mac?e.metaKey:e.ctrlKey}function K3e(t,e){let n=t.state.facet(hq);return n.length?n[0](e):Ze.mac?!e.altKey:!e.ctrlKey}function Y3e(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let r=Q0(t.root);if(!r||r.rangeCount==0)return!0;let a=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function X3e(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,r;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(r=Cr.get(n))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}const To=Object.create(null),Ks=Object.create(null),Rq=Ze.ie&&Ze.ie_version<15||Ze.ios&&Ze.webkit_version<604;function J3e(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),Dq(t,n.value)},50)}function a2(t,e,n){for(let r of t.facet(e))n=r(n,t);return n}function Dq(t,e){e=a2(t.state,aP,e);let{state:n}=t,r,a=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(d5!=null&&n.selection.ranges.every(c=>c.empty)&&d5==s.toString()){let c=-1;r=n.changeByRange(u=>{let d=n.doc.lineAt(u.from);if(d.from==c)return{range:u};c=d.from;let f=n.toText((o?s.line(a++).text:e)+n.lineBreak);return{changes:{from:d.from,insert:f},range:Ee.cursor(u.from+f.length)}})}else o?r=n.changeByRange(c=>{let u=s.line(a++);return{changes:{from:c.from,to:c.to,insert:u.text},range:Ee.cursor(c.from+u.length)}}):r=n.replaceSelection(s);t.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Ks.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Ks.wheel=Ks.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};To.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Ks.touchstart=(t,e)=>{let n=t.inputState,r=e.targetTouches[0];n.lastTouchTime=Date.now(),r&&(n.lastTouchX=r.clientX,n.lastTouchY=r.clientY),n.setSelectionOrigin("select.pointer")};Ks.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};To.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of t.state.facet(pq))if(n=r(t,e),n)break;if(!n&&e.button==0&&(n=Q3e(t,e)),n){let r=!t.hasFocus;t.inputState.startMouseSelection(new G3e(t,e,n,r)),r&&t.observer.ignore(()=>{rq(t.contentDOM);let s=t.root.activeElement;s&&!s.contains(t.contentDOM)&&s.blur()});let a=t.inputState.mouseSelection;if(a)return a.start(e),a.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function _8(t,e,n,r){if(r==1)return Ee.cursor(e,n);if(r==2)return A3e(t.state,e,n);{let a=t.docView.lineAt(e,n),s=t.state.doc.lineAt(a?a.posAtEnd:e),o=a?a.posAtStart:s.from,l=a?a.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(C8+1)%3:1}function Q3e(t,e){let n=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Iq(e),a=t.state.selection;return{update(s){s.docChanged&&(n.pos=s.changes.mapPos(n.pos),a=a.map(s.changes))},get(s,o,l){let c=t.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),u,d=_8(t,c.pos,c.assoc,r);if(n.pos!=c.pos&&!o){let f=_8(t,n.pos,n.assoc,r),h=Math.min(f.from,d.from),p=Math.max(f.to,d.to);d=h1&&(u=eTe(a,c.pos))?u:l?a.addRange(d):Ee.create([d])}}}function eTe(t,e){for(let n=0;n=e)return Ee.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}To.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let a=t.docView.tile.nearest(e.target);if(a&&a.isWidget()){let s=a.posAtStart,o=s+a.length;(s>=n.to||o<=n.from)&&(n=Ee.range(s,o))}}let{inputState:r}=t;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",a2(t.state,sP,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};To.dragend=t=>(t.inputState.draggedContent=null,!1);function A8(t,e,n,r){if(n=a2(t.state,aP,n),!n)return;let a=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=t.inputState,o=r&&s&&K3e(t,e)?{from:s.from,to:s.to}:null,l={from:a,insert:n},c=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(a,-1),head:c.mapPos(a,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}To.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let r=Array(n.length),a=0,s=()=>{++a==n.length&&A8(t,e,r.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(r[o]=l.result),s()},l.readAsText(n[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return A8(t,e,r,!0),!0}return!1};To.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=Rq?null:e.clipboardData;return n?(Dq(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(J3e(t),!1)};function tTe(t,e){let n=t.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),t.focus()},50)}function nTe(t){let e=[],n=[],r=!1;for(let a of t.selection.ranges)a.empty||(e.push(t.sliceDoc(a.from,a.to)),n.push(a));if(!e.length){let a=-1;for(let{from:s}of t.selection.ranges){let o=t.doc.lineAt(s);o.number>a&&(e.push(o.text),n.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),a=o.number}r=!0}return{text:a2(t,sP,e.join(t.lineBreak)),ranges:n,linewise:r}}let d5=null;To.copy=To.cut=(t,e)=>{if(!Ox(t.contentDOM,t.observer.selectionRange))return!1;let{text:n,ranges:r,linewise:a}=nTe(t.state);if(!n&&!a)return!1;d5=a?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Rq?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",n),!0):(tTe(t,n),!1)};const $q=Ol.define();function Lq(t,e){let n=[];for(let r of t.facet(xq)){let a=r(t,e);a&&n.push(a)}return n.length?t.update({effects:n,annotations:$q.of(!0)}):null}function Fq(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=Lq(t.state,e);n?t.dispatch(n):t.update([])}},10)}Ks.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Fq(t)};Ks.blur=t=>{t.observer.clearSelectionRange(),Fq(t)};Ks.compositionstart=Ks.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Ks.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ze.chrome&&Ze.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Ks.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};To.beforeinput=(t,e)=>{var n,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let s=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],c=t.posAtDOM(l.startContainer,l.startOffset),u=t.posAtDOM(l.endContainer,l.endOffset);return cP(t,{from:c,to:u,insert:t.state.toText(s)},null),!0}}let a;if(Ze.chrome&&Ze.android&&(a=Pq.find(s=>s.inputType==e.inputType))&&(t.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return Ze.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),Ze.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Ks.compositionend(t,e),20),!1};const O8=new Set;function rTe(t){O8.has(t)||(O8.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const T8=["pre-wrap","normal","pre-line","break-spaces"];let Qp=!1;function P8(){Qp=!1}class aTe{constructor(e){this.lineWrapping=e,this.doc=ln.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let r=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((n-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return T8.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let r=0;r-1,c=Math.abs(n-this.lineHeight)>.3||this.lineWrapping!=l||Math.abs(r-this.charWidth)>.1;if(this.lineWrapping=l,this.lineHeight=n,this.charWidth=r,this.textHeight=a,this.lineLength=s,c){this.heightSamples={};for(let u=0;u0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>f1&&(Qp=!0),this.height=e)}replace(e,n,r){return ys.of(r)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,r,a){let s=this,o=r.doc;for(let l=a.length-1;l>=0;l--){let{fromA:c,toA:u,fromB:d,toB:f}=a[l],h=s.lineAt(c,Jn.ByPosNoHeight,r.setDoc(n),0,0),p=h.to>=u?h:s.lineAt(u,Jn.ByPosNoHeight,r,0,0);for(f+=p.to-u,u=p.to;l>0&&h.from<=a[l-1].toA;)c=a[l-1].fromA,d=a[l-1].fromB,l--,cs*2){let l=e[n-1];l.break?e.splice(--n,1,l.left,null,l.right):e.splice(--n,1,l.left,l.right),r+=1+l.break,a-=l.size}else if(s>a*2){let l=e[r];l.break?e.splice(r,1,l.left,null,l.right):e.splice(r,1,l.left,l.right),r+=2+l.break,s-=l.size}else break;else if(a=s&&o(this.lineAt(0,Jn.ByPos,r,a,s))}setMeasuredHeight(e){let n=e.heights[e.index++];n<0?(this.spaceAbove=-n,n=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(n)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more&&this.setMeasuredHeight(a),this.outdated=!1,this}toString(){return`block(${this.length})`}}class li extends Bq{constructor(e,n,r){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,n){return new vo(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,n,r){let a=r[0];return r.length==1&&(a instanceof li||a instanceof Ma&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof Ma?a=new li(a.length,this.height,this.spaceAbove):a.height=this.height,this.outdated||(a.outdated=!1),a):ys.of(r)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more?this.setMeasuredHeight(a):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ma extends ys{constructor(e){super(e,0)}heightMetrics(e,n){let r=e.doc.lineAt(n).number,a=e.doc.lineAt(n+this.length).number,s=a-r+1,o,l=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*s);o=c/s,this.length>s+1&&(l=(this.height-c)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:a,perLine:o,perChar:l}}blockAt(e,n,r,a){let{firstLine:s,lastLine:o,perLine:l,perChar:c}=this.heightMetrics(n,a);if(n.lineWrapping){let u=a+(e0){let s=r[r.length-1];s instanceof Ma?r[r.length-1]=new Ma(s.length+a):r.push(null,new Ma(a-1))}if(e>0){let s=r[0];s instanceof Ma?r[0]=new Ma(e+s.length):r.unshift(new Ma(e-1),null)}return ys.of(r)}decomposeLeft(e,n){n.push(new Ma(e-1),null)}decomposeRight(e,n){n.push(null,new Ma(this.length-e-1))}updateHeight(e,n=0,r=!1,a){let s=n+this.length;if(a&&a.from<=n+this.length&&a.more){let o=[],l=Math.max(n,a.from),c=-1;for(a.from>n&&o.push(new Ma(a.from-n-1).updateHeight(e,n));l<=s&&a.more;){let d=e.doc.lineAt(l).length;o.length&&o.push(null);let f=a.heights[a.index++],h=0;f<0&&(h=-f,f=a.heights[a.index++]),c==-1?c=f:Math.abs(f-c)>=f1&&(c=-2);let p=new li(d,f,h);p.outdated=!1,o.push(p),l+=d+1}l<=s&&o.push(null,new Ma(s-l).updateHeight(e,l));let u=ys.of(o);return(c<0||Math.abs(u.height-this.height)>=f1||Math.abs(c-this.heightMetrics(e,n).perLine)>=f1)&&(Qp=!0),ck(this,u)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class oTe extends ys{constructor(e,n,r){super(e.length+n+r.length,e.height+r.height,n|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,n,r,a){let s=r+this.left.height;return el))return u;let d=n==Jn.ByPosNoHeight?Jn.ByPosNoHeight:Jn.ByPos;return c?u.join(this.right.lineAt(l,d,r,o,l)):this.left.lineAt(l,d,r,a,s).join(u)}forEachLine(e,n,r,a,s,o){let l=a+this.left.height,c=s+this.left.length+this.break;if(this.break)e=c&&this.right.forEachLine(e,n,r,l,c,o);else{let u=this.lineAt(c,Jn.ByPos,r,a,s);e=e&&u.from<=n&&o(u),n>u.to&&this.right.forEachLine(u.to+1,n,r,l,c,o)}}replace(e,n,r){let a=this.left.length+this.break;if(nthis.left.length)return this.balanced(this.left,this.right.replace(e-a,n-a,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of r)s.push(l);if(e>0&&M8(s,o-1),n=r&&n.push(null)),e>r&&this.right.decomposeLeft(e-r,n)}decomposeRight(e,n){let r=this.left.length,a=r+this.break;if(e>=a)return this.right.decomposeRight(e-a,n);e2*n.size||n.size>2*e.size?ys.of(this.break?[e,null,n]:[e,n]):(this.left=ck(this.left,e),this.right=ck(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,r=!1,a){let{left:s,right:o}=this,l=n+s.length+this.break,c=null;return a&&a.from<=n+s.length&&a.more?c=s=s.updateHeight(e,n,r,a):s.updateHeight(e,n,r),a&&a.from<=l+o.length&&a.more?c=o=o.updateHeight(e,l,r,a):o.updateHeight(e,l,r),c?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function M8(t,e){let n,r;t[e]==null&&(n=t[e-1])instanceof Ma&&(r=t[e+1])instanceof Ma&&t.splice(e-1,3,new Ma(n.length+1+r.length))}const lTe=5;class uP{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let r=Math.min(n,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof li?a.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new li(r-this.pos,-1,0)),this.writtenTo=r,n>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,r){if(e=lTe)&&this.addLineDeco(a,s,o)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenToe&&this.nodes.push(new li(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,n){let r=new Ma(n-e);return this.oracle.doc.lineAt(e).to==n&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof li)return e;let n=new li(0,-1,0);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,r){let a=this.ensureLine();a.length+=r,a.collapsed+=r,a.widgetHeight=Math.max(a.widgetHeight,e),a.breaks+=n,this.writtenTo=this.pos=this.pos+r}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof li)&&!this.isCovered?this.nodes.push(new li(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&f.overflow!="visible"){let h=d.getBoundingClientRect();s=Math.max(s,h.left),o=Math.min(o,h.right),l=Math.max(l,h.top),c=Math.min(u==t.parentNode?a.innerHeight:c,h.bottom)}u=f.position=="absolute"||f.position=="fixed"?d.offsetParent:d.parentNode}else if(u.nodeType==11)u=u.host;else break;return{left:s-n.left,right:Math.max(s,o)-n.left,top:l-(n.top+e),bottom:Math.max(l,c)-(n.top+e)}}function fTe(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function hTe(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class __{constructor(e,n,r,a){this.from=e,this.to=n,this.size=r,this.displaySize=a}static same(e,n){if(e.length!=n.length)return!1;for(let r=0;rtypeof a!="function"&&a.class=="cm-lineWrapping");this.heightOracle=new aTe(r),this.stateDeco=I8(n),this.heightMap=ys.empty().applyChanges(this.stateDeco,ln.empty,this.heightOracle.setDoc(n.doc),[new Bi(0,0,0,n.doc.length)]);for(let a=0;a<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());a++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=kt.set(this.lineGaps.map(a=>a.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let r=0;r<=1;r++){let a=r?n.head:n.anchor;if(!e.some(({from:s,to:o})=>a>=s&&a<=o)){let{from:s,to:o}=this.lineBlockAt(a);e.push(new mb(s,o))}}return this.viewports=e.sort((r,a)=>r.from-a.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?D8:new dP(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(ax(e,this.scaler))})}update(e,n=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=I8(this.state);let a=e.changedRanges,s=Bi.extendWithRanges(a,cTe(r,this.stateDeco,e?e.changes:na.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);P8(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Qp)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let c=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.headc.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let u=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(u||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(vq)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,n=e.contentDOM,r=window.getComputedStyle(n),a=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?zn.RTL:zn.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=n.getBoundingClientRect(),c=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let u=0,d=0;if(l.width&&l.height){let{scaleX:k,scaleY:_}=tq(n,l);(k>.005&&Math.abs(this.scaleX-k)>.005||_>.005&&Math.abs(this.scaleY-_)>.005)&&(this.scaleX=k,this.scaleY=_,u|=16,o=c=!0)}let f=(parseInt(r.paddingTop)||0)*this.scaleY,h=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=h)&&(this.paddingTop=f,this.paddingBottom=h,u|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(a.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,u|=16);let p=nq(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=aq(this.scrollParent||e.win);let x=(this.printing?hTe:dTe)(n,this.paddingTop),y=x.top-this.pixelViewport.top,b=x.bottom-this.pixelViewport.bottom;this.pixelViewport=x;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(c=!0)),!this.inView&&!this.scrollTarget&&!fTe(e.dom))return 0;let w=l.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,u|=16),c){let k=e.docView.measureVisibleLineHeights(this.viewport);if(a.mustRefreshForHeights(k)&&(o=!0),o||a.lineWrapping&&Math.abs(w-this.contentDOMWidth)>a.charWidth){let{lineHeight:_,charWidth:S,textHeight:N}=e.docView.measureTextSize();o=_>0&&a.refresh(s,_,S,N,Math.max(5,w/S),k),o&&(e.docView.minWidth=0,u|=16)}y>0&&b>0?d=Math.max(y,b):y<0&&b<0&&(d=Math.min(y,b)),P8();for(let _ of this.viewports){let S=_.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(_);this.heightMap=(o?ys.empty().applyChanges(this.stateDeco,ln.empty,this.heightOracle,[new Bi(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(a,0,o,new sTe(_.from,S))}Qp&&(u|=2)}let j=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return j&&(u&2&&(u|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),u|=this.updateForViewport()),(u&2||j)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),a=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,c=new mb(a.lineAt(o-r*1e3,Jn.ByHeight,s,0,0).from,a.lineAt(l+(1-r)*1e3,Jn.ByHeight,s,0,0).to);if(n){let{head:u}=n.range;if(uc.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=a.lineAt(u,Jn.ByPos,s,0,0),h;n.y=="center"?h=(f.top+f.bottom)/2-d/2:n.y=="start"||n.y=="nearest"&&u=l+Math.max(10,Math.min(r,250)))&&a>o-2*1e3&&s>1,o=a<<1;if(this.defaultTextDirection!=zn.LTR&&!r)return[];let l=[],c=(d,f,h,p)=>{if(f-dd&&bb.from>=h.from&&b.to<=h.to&&Math.abs(b.from-d)b.fromv));if(!y){if(fw.from<=f&&w.to>=f)){let w=n.moveToLineBoundary(Ee.cursor(f),!1,!0).head;w>d&&(f=w)}let b=this.gapSize(h,d,f,p),v=r||b<2e6?b:2e6;y=new __(d,f,b,v)}l.push(y)},u=d=>{if(d.length2e6)for(let _ of e)_.from>=d.from&&_.fromd.from&&c(d.from,p,d,f),mn.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let r=[];Gt.spans(n,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let a=0;if(r.length!=this.visibleRanges.length)a=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||ax(this.heightMap.lineAt(e,Jn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||ax(this.heightMap.lineAt(this.scaler.fromDOM(e),Jn.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return ax(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class mb{constructor(e,n){this.from=e,this.to=n}}function mTe(t,e,n){let r=[],a=t,s=0;return Gt.spans(n,t,e,{span(){},point(o,l){o>a&&(r.push({from:a,to:o}),s+=o-a),a=l}},20),a=1)return e[e.length-1].to;let r=Math.floor(t*n);for(let a=0;;a++){let{from:s,to:o}=e[a],l=o-s;if(r<=l)return s+r;r-=l}}function xb(t,e){let n=0;for(let{from:r,to:a}of t.ranges){if(e<=a){n+=e-r;break}n+=a-r}return n/t.total}function gTe(t,e){for(let n of t)if(e(n))return n}const D8={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function I8(t){let e=t.facet(t2).filter(r=>typeof r!="function"),n=t.facet(oP).filter(r=>typeof r!="function");return n.length&&e.push(Gt.join(n)),e}class dP{constructor(e,n,r){let a=0,s=0,o=0;this.viewports=r.map(({from:l,to:c})=>{let u=n.lineAt(l,Jn.ByPos,e,0,0).top,d=n.lineAt(c,Jn.ByPos,e,0,0).bottom;return a+=d-u,{from:l,to:c,top:u,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(n.height-a);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let n=0,r=0,a=0;;n++){let s=nn.from==e.viewports[r].from&&n.to==e.viewports[r].to):!1}}function ax(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),r=e.toDOM(t.bottom);return new vo(t.from,t.length,n,r-n,Array.isArray(t._content)?t._content.map(a=>ax(a,e)):t._content)}const yb=Qe.define({combine:t=>t.join(" ")}),f5=Qe.define({combine:t=>t.indexOf(!0)>-1}),h5=Mu.newName(),zq=Mu.newName(),Uq=Mu.newName(),Vq={"&light":"."+zq,"&dark":"."+Uq};function p5(t,e,n){return new Mu(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,a=>{if(a=="&")return t;if(!n||!n[a])throw new RangeError(`Unsupported selector: ${a}`);return n[a]}):t+" "+r}})}const xTe=p5("."+h5,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Vq),yTe={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},N_=Ze.ie&&Ze.ie_version<=11;class vTe{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new YOe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let r of n)this.queue.push(r);(Ze.ie&&Ze.ie_version<=11||Ze.ios&&e.composing)&&n.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ze.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ze.chrome&&Ze.chrome_version<126)&&(this.editContext=new wTe(e),e.state.facet(Yl)&&(e.contentDOM.editContext=this.editContext.editContext)),N_&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,r)=>n!=e[r]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,a=this.selectionRange;if(r.state.facet(Yl)?r.root.activeElement!=this.dom:!Ox(this.dom,a))return;let s=a.anchorNode&&r.docView.tile.nearest(a.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(Ze.ie&&Ze.ie_version<=11||Ze.android&&Ze.chrome)&&!r.state.selection.main.empty&&a.focusNode&&Px(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=Q0(e.root);if(!n)return!1;let r=Ze.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&bTe(this.view,n)||n;if(!r||this.selectionRange.eq(r))return!1;let a=Ox(this.dom,r);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&ep(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,r=-1,a=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(a=!0),n==-1?{from:n,to:r}=o:(n=Math.min(o.from,n),r=Math.max(o.to,r)))}return{from:n,to:r,typeOver:a}}readChange(){let{from:e,to:n,typeOver:r}=this.processRecords(),a=this.selectionChanged&&Ox(this.dom,this.selectionRange);if(e<0&&!a)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new L3e(this.view,e,n,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let r=this.view.state,a=Oq(this.view,n);return this.view.state==r&&(n.domChanged||n.newSel&&!lk(this.view.state.selection,n.newSel.main))&&this.view.update([]),a}readMutation(e){let n=this.view.docView.tile.nearest(e.target);if(!n||n.isWidget())return null;if(n.markDirty(e.type=="attributes"),e.type=="childList"){let r=$8(n,e.previousSibling||e.target.previousSibling,-1),a=$8(n,e.nextSibling||e.target.nextSibling,1);return{from:r?n.posAfter(r):n.posAtStart,to:a?n.posBefore(a):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Yl)!=e.state.facet(Yl)&&(e.view.contentDOM.editContext=e.state.facet(Yl)?this.editContext.editContext:null))}destroy(){var e,n,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function $8(t,e,n){for(;e;){let r=Cr.get(e);if(r&&r.parent==t)return r;let a=e.parentNode;e=a!=t.dom?a:n>0?e.nextSibling:e.previousSibling}return null}function L8(t,e){let n=e.startContainer,r=e.startOffset,a=e.endContainer,s=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return Px(o.node,o.offset,a,s)&&([n,r,a,s]=[a,s,n,r]),{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}}function bTe(t,e){if(e.getComposedRanges){let a=e.getComposedRanges(t.root)[0];if(a)return L8(t,a)}let n=null;function r(a){a.preventDefault(),a.stopImmediatePropagation(),n=a.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",r,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",r,!0),n?L8(t,n):null}class wTe{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let a=e.state.selection.main,{anchor:s,head:o}=a,l=this.toEditorPos(r.updateRangeStart),c=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:l,drifted:!1});let u=c-l>r.text.length;l==this.from&&sthis.to&&(c=s);let d=Tq(e.state.sliceDoc(l,c),r.text,(u?a.from:a.to)-l,u?"end":null);if(!d){let h=Ee.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));lk(h,a)||e.dispatch({selection:h,userEvent:"select"});return}let f={from:d.from+l,to:d.toA+l,insert:ln.of(r.text.slice(d.from,d.toB).split(` +`))};if((Ze.mac||Ze.android)&&f.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:c,insert:ln.of([r.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let h=this.to-this.from+(f.to-f.from+f.insert.length);cP(e,f,Ee.single(this.toEditorPos(r.selectionStart,h),this.toEditorPos(r.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(n.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let a=[],s=null;for(let o=this.toEditorPos(r.rangeStart),l=this.toEditorPos(r.rangeEnd);o{let a=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let c=this.toEditorPos(s.rangeStart),u=this.toEditorPos(s.rangeEnd);if(c{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)n.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let a=Q0(r.root);a&&a.rangeCount&&this.editContext.updateSelectionBounds(a.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,r=!1,a=this.pendingContextChange;return e.changes.iterChanges((s,o,l,c,u)=>{if(r)return;let d=u.length-(o-s);if(a&&o>=a.to)if(a.from==s&&a.to==o&&a.insert.eq(u)){a=this.pendingContextChange=null,n+=d,this.to+=d;return}else a=null,this.revertPending(e.state);if(s+=n,o+=n,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+u.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),u.toString()),this.to+=d}n+=d}),a&&!r&&this.revertPending(e.state),!r}update(e){let n=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(a=>!a.isUserEvent("input.type")&&a.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),a=this.toContextPos(n.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=a)&&this.editContext.updateSelection(r,a)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class We{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(a=>a.forEach(s=>r(s,this)))||(a=>this.update(a)),this.dispatch=this.dispatch.bind(this),this._root=e.root||XOe(e.parent)||document,this.viewState=new R8(this,e.state||rn.create(e)),e.scrollTo&&e.scrollTo.is(fb)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Rh).map(a=>new b_(a));for(let a of this.plugins)a.update(this);this.observer=new vTe(this),this.inputState=new U3e(this),this.inputState.ensureHandlers(this.plugins),this.docView=new w8(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let n=e.length==1&&e[0]instanceof ia?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,r=!1,a,s=this.state;for(let h of e){if(h.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=h.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,c=null;e.some(h=>h.annotation($q))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,c=Lq(s,o),c||(l=1));let u=this.observer.delayedAndroidKey,d=null;if(u?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(rn.phrases)!=this.state.facet(rn.phrases))return this.setState(s);a=sk.create(this,s,e),a.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(f&&(f=f.map(h.changes)),h.scrollIntoView){let{main:p}=h.state.selection,{x:m,y:x}=this.state.facet(We.cursorScrollMargin);f=new tp(p.empty?p:Ee.cursor(p.head,p.head>p.anchor?-1:1),"nearest","nearest",x,m)}for(let p of h.effects)p.is(fb)&&(f=p.value.clip(this.state))}this.viewState.update(a,f),this.bidiCache=uk.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),n=this.docView.update(a),this.state.facet(rx)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(yb)!=a.state.facet(yb)&&(this.viewState.mustMeasureContent=!0),(n||r||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!a.empty)for(let h of this.state.facet(o5))try{h(a)}catch(p){ps(this.state,p,"update listener")}(c||d)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),d&&!Oq(this,d)&&u.force&&ep(this.contentDOM,u.key,u.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new R8(this,e),this.plugins=e.facet(Rh).map(r=>new b_(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new w8(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(Rh),r=e.state.facet(Rh);if(n!=r){let a=[];for(let s of r){let o=n.indexOf(s);if(o<0)a.push(new b_(s));else{let l=this.plugins[o];l.mustUpdate=e,a.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=a,this.pluginMap.clear()}else for(let a of this.plugins)a.mustUpdate=e;for(let a=0;a-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,r=this.viewState.scrollParent,a=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(a-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(aq(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(a);s=p.from,o=p.top}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];c&4||([this.measureRequests,u]=[u,this.measureRequests]);let d=u.map(p=>{try{return p.read(this)}catch(m){return ps(this.state,m),F8}}),f=sk.create(this,this.state,[]),h=!1;f.flags|=c,n?n.flags|=c:n=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),h=this.docView.update(f),h&&this.docViewUpdate());for(let p=0;p1||m<-1)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){a=a+m,r?r.scrollTop+=m:this.win.scrollBy(0,m),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(o5))l(n)}get themeClasses(){return h5+" "+(this.state.facet(f5)?Uq:zq)+" "+this.state.facet(yb)}updateAttrs(){let e=B8(this,kq,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Yl)?"true":"false",class:"cm-content",style:`${Ze.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),B8(this,iP,n);let r=this.observer.ignore(()=>{let a=m8(this.contentDOM,this.contentAttrs,n),s=m8(this.dom,this.editorAttrs,e);return a||s});return this.editorAttrs=e,this.contentAttrs=n,r}showAnnouncements(e){let n=!0;for(let r of e)for(let a of r.effects)if(a.is(We.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(rx);let e=this.state.facet(We.cspNonce);Mu.mount(this.root,this.styleModules.concat(xTe).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;nr.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,r){return S_(this,e,k8(this,e,n,r))}moveByGroup(e,n){return S_(this,e,k8(this,e,n,r=>P3e(this,e.head,r)))}visualLineSide(e,n){let r=this.bidiSpans(e),a=this.textDirectionAt(e.from),s=r[n?r.length-1:0];return Ee.cursor(s.side(n,a)+e.from,s.forward(!n,a)?1:-1)}moveToLineBoundary(e,n,r=!0){return T3e(this,e,n,r)}moveVertically(e,n,r){return S_(this,e,M3e(this,e,n,r))}domAtPos(e,n=1){return this.docView.domAtPos(e,n)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){this.readMeasured();let r=u5(this,e,n);return r&&r.pos}posAndSideAtCoords(e,n=!0){return this.readMeasured(),u5(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let r=this.docView.coordsAt(e,n);if(!r||r.left==r.right)return r;let a=this.state.doc.lineAt(e),s=this.bidiSpans(a),o=s[ll.find(s,e-a.from,-1,n)];return ey(r,o.dir==zn.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(yq)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>kTe)return uq(e.length);let n=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||cq(s.isolates,r=y8(this,e))))return s.order;r||(r=y8(this,e));let a=a3e(e.text,n,r);return this.bidiCache.push(new uk(e.from,e.to,n,r,!0,a)),a}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ze.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{rq(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){var r,a,s,o;return fb.of(new tp(typeof e=="number"?Ee.cursor(e):e,(r=n.y)!==null&&r!==void 0?r:"nearest",(a=n.x)!==null&&a!==void 0?a:"nearest",(s=n.yMargin)!==null&&s!==void 0?s:5,(o=n.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return fb.of(new tp(Ee.cursor(r.from),"start","start",r.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return br.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return br.define(()=>({}),{eventObservers:e})}static theme(e,n){let r=Mu.newName(),a=[yb.of(r),rx.of(p5(`.${r}`,e))];return n&&n.dark&&a.push(f5.of(!0)),a}static baseTheme(e){return Of.lowest(rx.of(p5("."+h5,e,Vq)))}static findFromDOM(e){var n;let r=e.querySelector(".cm-content"),a=r&&Cr.get(r)||Cr.get(e);return((n=a==null?void 0:a.root)===null||n===void 0?void 0:n.view)||null}}We.styleModule=rx;We.inputHandler=gq;We.clipboardInputFilter=aP;We.clipboardOutputFilter=sP;We.scrollHandler=bq;We.focusChangeEffect=xq;We.perLineTextDirection=yq;We.exceptionSink=mq;We.updateListener=o5;We.editable=Yl;We.mouseSelectionStyle=pq;We.dragMovesSelection=hq;We.clickAddsSelectionRange=fq;We.decorations=t2;We.blockWrappers=jq;We.outerDecorations=oP;We.atomicRanges=Fy;We.bidiIsolatedRanges=Sq;We.cursorScrollMargin=Qe.define({combine:t=>{let e=5,n=5;for(let r of t)typeof r=="number"?e=n=r:{x:e,y:n}=r;return{x:e,y:n}}});We.scrollMargins=_q;We.darkTheme=f5;We.cspNonce=Qe.define({combine:t=>t.length?t[0]:""});We.contentAttributes=iP;We.editorAttributes=kq;We.lineWrapping=We.contentAttributes.of({class:"cm-lineWrapping"});We.announce=Ft.define();const kTe=4096,F8={};class uk{constructor(e,n,r,a,s,o){this.from=e,this.to=n,this.dir=r,this.isolates=a,this.fresh=s,this.order=o}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let r=[],a=e.length?e[e.length-1].dir:zn.LTR;for(let s=Math.max(0,e.length-10);s=0;a--){let s=r[a],o=typeof s=="function"?s(t):s;o&&tP(o,n)}return n}const jTe=Ze.mac?"mac":Ze.windows?"win":Ze.linux?"linux":"key";function STe(t,e){const n=t.split(/-(?!$)/);let r=n[n.length-1];r=="Space"&&(r=" ");let a,s,o,l;for(let c=0;cr.concat(a),[]))),n}function NTe(t,e,n){return Hq(Wq(t.state),e,t,n)}let Xc=null;const CTe=4e3;function ETe(t,e=jTe){let n=Object.create(null),r=Object.create(null),a=(o,l)=>{let c=r[o];if(c==null)r[o]=l;else if(c!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,c,u,d)=>{var f,h;let p=n[o]||(n[o]=Object.create(null)),m=l.split(/ (?!$)/).map(b=>STe(b,e));for(let b=1;b{let j=Xc={view:w,prefix:v,scope:o};return setTimeout(()=>{Xc==j&&(Xc=null)},CTe),!0}]})}let x=m.join(" ");a(x,!1);let y=p[x]||(p[x]={preventDefault:!1,stopPropagation:!1,run:((h=(f=p._any)===null||f===void 0?void 0:f.run)===null||h===void 0?void 0:h.slice())||[]});c&&y.run.push(c),u&&(y.preventDefault=!0),d&&(y.stopPropagation=!0)};for(let o of t){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let u of l){let d=n[u]||(n[u]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let h in d)d[h].run.push(p=>f(p,m5))}let c=o[e]||o.key;if(c)for(let u of l)s(u,c,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(u,"Shift-"+c,o.shift,o.preventDefault,o.stopPropagation)}return n}let m5=null;function Hq(t,e,n,r){m5=e;let a=VOe(e),s=Ms(a,0),o=tl(s)==a.length&&a!=" ",l="",c=!1,u=!1,d=!1;Xc&&Xc.view==n&&Xc.scope==r&&(l=Xc.prefix+" ",Mq.indexOf(e.keyCode)<0&&(u=!0,Xc=null));let f=new Set,h=y=>{if(y){for(let b of y.run)if(!f.has(b)&&(f.add(b),b(n)))return y.stopPropagation&&(d=!0),!0;y.preventDefault&&(y.stopPropagation&&(d=!0),u=!0)}return!1},p=t[r],m,x;return p&&(h(p[l+vb(a,e,!o)])?c=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ze.windows&&e.ctrlKey&&e.altKey)&&!(Ze.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=Ru[e.keyCode])&&m!=a?(h(p[l+vb(m,e,!0)])||e.shiftKey&&(x=J0[e.keyCode])!=a&&x!=m&&h(p[l+vb(x,e,!1)]))&&(c=!0):o&&e.shiftKey&&h(p[l+vb(a,e,!0)])&&(c=!0),!c&&h(p._any)&&(c=!0)),u&&(c=!0),c&&d&&e.stopPropagation(),m5=null,c}class Wd{constructor(e,n,r,a,s){this.className=e,this.left=n,this.top=r,this.width=a,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,r){if(r.empty){let a=e.coordsAtPos(r.head,r.assoc||1);if(!a)return[];let s=Gq(e);return[new Wd(n,a.left-s.left,a.top-s.top,null,a.bottom-a.top)]}else return ATe(e,n,r)}}function Gq(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==zn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function U8(t,e,n,r){let a=t.coordsAtPos(e,n*2);if(!a)return r;let s=t.dom.getBoundingClientRect(),o=(a.top+a.bottom)/2,l=t.posAtCoords({x:s.left+1,y:o}),c=t.posAtCoords({x:s.right-1,y:o});return l==null||c==null?r:{from:Math.max(r.from,Math.min(l,c)),to:Math.min(r.to,Math.max(l,c))}}function ATe(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let r=Math.max(n.from,t.viewport.from),a=Math.min(n.to,t.viewport.to),s=t.textDirection==zn.LTR,o=t.contentDOM,l=o.getBoundingClientRect(),c=Gq(t),u=o.querySelector(".cm-line"),d=u&&window.getComputedStyle(u),f=l.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),h=l.right-(d?parseInt(d.paddingRight):0),p=c5(t,r,1),m=c5(t,a,-1),x=p.type==Ba.Text?p:null,y=m.type==Ba.Text?m:null;if(x&&(t.lineWrapping||p.widgetLineBreaks)&&(x=U8(t,r,1,x)),y&&(t.lineWrapping||m.widgetLineBreaks)&&(y=U8(t,a,-1,y)),x&&y&&x.from==y.from&&x.to==y.to)return v(w(n.from,n.to,x));{let k=x?w(n.from,null,x):j(p,!1),_=y?w(null,n.to,y):j(m,!0),S=[];return(x||p).to<(y||m).from-(x&&y?1:0)||p.widgetLineBreaks>1&&k.bottom+t.defaultLineHeight/2<_.top?S.push(b(f,k.bottom,h,_.top)):k.bottom<_.top&&t.elementAtHeight((k.bottom+_.top)/2).type==Ba.Text&&(k.bottom=_.top=(k.bottom+_.top)/2),v(k).concat(S).concat(v(_))}function b(k,_,S,N){return new Wd(e,k-c.left,_-c.top,Math.max(0,S-k),N-_)}function v({top:k,bottom:_,horizontal:S}){let N=[];for(let E=0;EA&&D.from=X)break;H>I&&M(Math.max(Y,I),k==null&&Y<=A,Math.min(H,X),_==null&&H>=O,V.dir)}if(I=Q.to+1,I>=X)break}return P.length==0&&M(A,k==null,O,_==null,t.textDirection),{top:N,bottom:E,horizontal:P}}function j(k,_){let S=l.top+(_?k.top:k.bottom);return{top:S,bottom:S,horizontal:[]}}}function OTe(t,e){return t.constructor==e.constructor&&t.eq(e)}class TTe{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(h1)!=e.state.facet(h1)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,r=e.facet(h1);for(;n!OTe(n,this.drawn[r]))){let n=this.dom.firstChild,r=0;for(let a of e)a.update&&n&&a.constructor&&this.drawn[r].constructor&&a.update(n,this.drawn[r])?(n=n.nextSibling,r++):this.dom.insertBefore(a.draw(),n);for(;n;){let a=n.nextSibling;n.remove(),n=a}this.drawn=e,Ze.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const h1=Qe.define();function qq(t){return[br.define(e=>new TTe(e,t)),h1.of(t)]}const em=Qe.define({combine(t){return Tl(t,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function PTe(t={}){return[em.of(t),MTe,RTe,DTe,vq.of(!0)]}function Kq(t){return t.startState.facet(em)!=t.state.facet(em)}const MTe=qq({above:!0,markers(t){let{state:e}=t,n=e.facet(em),r=[];for(let a of e.selection.ranges){let s=a==e.selection.main;if(a.empty||n.drawRangeCursor&&!(s&&Ze.ios&&n.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=a.empty?a:Ee.cursor(a.head,a.assoc);for(let c of Wd.forRange(t,o,l))r.push(c)}}return r},update(t,e){t.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=Kq(t);return n&&V8(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){V8(e.state,t)},class:"cm-cursorLayer"});function V8(t,e){e.style.animationDuration=t.facet(em).cursorBlinkRate+"ms"}const RTe=qq({above:!1,markers(t){let e=[],{main:n,ranges:r}=t.state.selection;for(let a of r)if(!a.empty)for(let s of Wd.forRange(t,"cm-selectionBackground",a))e.push(s);if(Ze.ios&&!n.empty&&t.state.facet(em).iosSelectionHandles){for(let a of Wd.forRange(t,"cm-selectionHandle cm-selectionHandle-start",Ee.cursor(n.from,1)))e.push(a);for(let a of Wd.forRange(t,"cm-selectionHandle cm-selectionHandle-end",Ee.cursor(n.to,1)))e.push(a)}return e},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||Kq(t)},class:"cm-selectionLayer"}),DTe=Of.highest(We.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Yq=Ft.define({map(t,e){return t==null?null:e.mapPos(t)}}),sx=as.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,r)=>r.is(Yq)?r.value:n,t)}}),ITe=br.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(sx);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(sx)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(sx),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let r=t.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-r.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(sx)!=t&&this.view.dispatch({effects:Yq.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function $Te(){return[sx,ITe]}function W8(t,e,n,r,a){e.lastIndex=0;for(let s=t.iterRange(n,r),o=n,l;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)a(o+l.index,l)}function LTe(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let r=[];for(let{from:a,to:s}of n)a=Math.max(t.state.doc.lineAt(a).from,a-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=a?r[r.length-1].to=s:r.push({from:a,to:s});return r}class FTe{constructor(e){const{regexp:n,decoration:r,decorate:a,boundary:s,maxLength:o=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,a)this.addMatch=(l,c,u,d)=>a(d,u,u+l[0].length,l,c);else if(typeof r=="function")this.addMatch=(l,c,u,d)=>{let f=r(l,c,u);f&&d(u,u+l[0].length,f)};else if(r)this.addMatch=(l,c,u,d)=>d(u,u+l[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let n=new xc,r=n.add.bind(n);for(let{from:a,to:s}of LTe(e,this.maxLength))W8(e.state.doc,this.regexp,a,s,(o,l)=>this.addMatch(l,e,o,r));return n.finish()}updateDeco(e,n){let r=1e9,a=-1;return e.docChanged&&e.changes.iterChanges((s,o,l,c)=>{c>=e.view.viewport.from&&l<=e.view.viewport.to&&(r=Math.min(l,r),a=Math.max(c,a))}),e.viewportMoved||a-r>1e3?this.createDeco(e.view):a>-1?this.updateRange(e.view,n.map(e.changes),r,a):n}updateRange(e,n,r,a){for(let s of e.visibleRanges){let o=Math.max(s.from,r),l=Math.min(s.to,a);if(l>=o){let c=e.state.doc.lineAt(o),u=c.toc.from;o--)if(this.boundary.test(c.text[o-1-c.from])){d=o;break}for(;lh.push(b.range(x,y));if(c==u)for(this.regexp.lastIndex=d-c.from;(p=this.regexp.exec(c.text))&&p.indexthis.addMatch(y,e,x,m));n=n.update({filterFrom:d,filterTo:f,filter:(x,y)=>xf,add:h})}}return n}}const g5=/x/.unicode!=null?"gu":"g",BTe=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,g5),zTe={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let C_=null;function UTe(){var t;if(C_==null&&typeof document<"u"&&document.body){let e=document.body.style;C_=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return C_||!1}const p1=Qe.define({combine(t){let e=Tl(t,{render:null,specialChars:BTe,addSpecialChars:null});return(e.replaceTabs=!UTe())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,g5)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,g5)),e}});function VTe(t={}){return[p1.of(t),WTe()]}let H8=null;function WTe(){return H8||(H8=br.fromClass(class{constructor(t){this.view=t,this.decorations=kt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(p1)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new FTe({regexp:t.specialChars,decoration:(e,n,r)=>{let{doc:a}=n.state,s=Ms(e[0],0);if(s==9){let o=a.lineAt(r),l=n.state.tabSize,c=Rm(o.text,l,r-o.from);return kt.replace({widget:new KTe((l-c%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=kt.replace({widget:new qTe(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(p1);t.startState.facet(p1)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const HTe="•";function GTe(t){return t>=32?HTe:t==10?"␤":String.fromCharCode(9216+t)}class qTe extends Pl{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=GTe(this.code),r=e.state.phrase("Control character")+" "+(zTe[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,r,n);if(a)return a;let s=document.createElement("span");return s.textContent=n,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class KTe extends Pl{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function YTe(){return JTe}const XTe=kt.line({class:"cm-activeLine"}),JTe=br.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let r of t.state.selection.ranges){let a=t.lineBlockAt(r.head);a.from>e&&(n.push(XTe.range(a.from)),e=a.from)}return kt.set(n)}},{decorations:t=>t.decorations});class ZTe extends Pl{constructor(e){super(),this.content=e}toDOM(e){let n=document.createElement("span");return n.className="cm-placeholder",n.style.pointerEvents="none",n.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),n.setAttribute("aria-hidden","true"),n}coordsAt(e){let n=e.firstChild?Tx(e.firstChild):[];if(!n.length)return null;let r=window.getComputedStyle(e.parentNode),a=ey(n[0],r.direction!="rtl"),s=parseInt(r.lineHeight);return a.bottom-a.top>s*1.5?{left:a.left,right:a.right,top:a.top,bottom:a.top+s}:a}ignoreEvent(){return!1}}function Xq(t){let e=br.fromClass(class{constructor(n){this.view=n,this.placeholder=t?kt.set([kt.widget({widget:new ZTe(t),side:1}).range(0)]):kt.none}get decorations(){return this.view.state.doc.length?kt.none:this.placeholder}},{decorations:n=>n.decorations});return typeof t=="string"?[e,We.contentAttributes.of({"aria-placeholder":t})]:e}const x5=2e3;function QTe(t,e,n){let r=Math.min(e.line,n.line),a=Math.max(e.line,n.line),s=[];if(e.off>x5||n.off>x5||e.col<0||n.col<0){let o=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=r;c<=a;c++){let u=t.doc.line(c);u.length<=l&&s.push(Ee.range(u.from+o,u.to+l))}}else{let o=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=r;c<=a;c++){let u=t.doc.line(c),d=XA(u.text,o,t.tabSize,!0);if(d<0)s.push(Ee.cursor(u.to));else{let f=XA(u.text,l,t.tabSize);s.push(Ee.range(u.from+d,u.from+f))}}}return s}function ePe(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function G8(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),r=t.state.doc.lineAt(n),a=n-r.from,s=a>x5?-1:a==r.length?ePe(t,e.clientX):Rm(r.text,t.state.tabSize,n-r.from);return{line:r.number,col:s,off:a}}function tPe(t,e){let n=G8(t,e),r=t.state.selection;return n?{update(a){if(a.docChanged){let s=a.changes.mapPos(a.startState.doc.line(n.line).from),o=a.state.doc.lineAt(s);n={line:o.number,col:n.col,off:Math.min(n.off,o.length)},r=r.map(a.changes)}},get(a,s,o){let l=G8(t,a);if(!l)return r;let c=QTe(t.state,n,l);return c.length?o?Ee.create(c.concat(r.ranges)):Ee.create(c):r}}:null}function nPe(t){let e=n=>n.altKey&&n.button==0;return We.mouseSelectionStyle.of((n,r)=>e(r)?tPe(n,r):null)}const rPe={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},aPe={style:"cursor: crosshair"};function sPe(t={}){let[e,n]=rPe[t.key||"Alt"],r=br.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventObservers:{keydown(a){this.set(a.keyCode==e||n(a))},keyup(a){(a.keyCode==e||!n(a))&&this.set(!1)},mousemove(a){this.set(n(a))}}});return[r,We.contentAttributes.of(a=>{var s;return!((s=a.plugin(r))===null||s===void 0)&&s.isDown?aPe:null})]}const bb="-10000px";class Jq{constructor(e,n,r,a){this.facet=n,this.createTooltipView=r,this.removeTooltipView=a,this.input=e.state.facet(n),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,n){var r;let a=e.state.facet(this.facet),s=a.filter(c=>c);if(a===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let o=[],l=n?[]:null;for(let c=0;cn[u]=c),n.length=l.length),this.input=a,this.tooltips=s,this.tooltipViews=o,!0}}function iPe(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const E_=Qe.define({combine:t=>{var e,n,r;return{position:Ze.ios?"absolute":((e=t.find(a=>a.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(a=>a.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((r=t.find(a=>a.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||iPe}}}),q8=new WeakMap,fP=br.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(E_);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Jq(t,hP,(n,r)=>this.createTooltip(n,r),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,r=t.state.facet(E_);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let a of this.manager.tooltipViews)a.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let a of this.manager.tooltipViews)this.container.appendChild(a.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),r=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let a=document.createElement("div");a.className="cm-tooltip-arrow",n.dom.appendChild(a)}return n.dom.style.position=this.position,n.dom.style.top=bb,n.dom.style.left="0px",this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(t=r.destroy)===null||t===void 0||t.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(Ze.safari){let o=s.getBoundingClientRect();n=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else n=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(t=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),a=lP(this.view);return{visible:{left:r.left+a.left,top:r.top+a.top,right:r.right-a.right,bottom:r.bottom-a.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(E_).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:r,scaleX:a,scaleY:s}=t,o=[];for(let l=0;l=Math.min(n.bottom,r.bottom)||f.rightMath.min(n.right,r.right)+.1)){d.style.top=bb;continue}let p=c.arrow?u.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,x=h.right-h.left,y=(e=q8.get(u))!==null&&e!==void 0?e:h.bottom-h.top,b=u.offset||lPe,v=this.view.textDirection==zn.LTR,w=h.width>r.right-r.left?v?r.left:r.right-h.width:v?Math.max(r.left,Math.min(f.left-(p?14:0)+b.x,r.right-x)):Math.min(Math.max(r.left,f.left-x+(p?14:0)-b.x),r.right-x),j=this.above[l];!c.strictSide&&(j?f.top-y-m-b.yr.bottom)&&j==r.bottom-f.bottom>f.top-r.top&&(j=this.above[l]=!j);let k=(j?f.top-r.top:r.bottom-f.bottom)-m;if(kw&&N.top<_+y&&N.bottom>_&&(_=j?N.top-y-2-m:N.bottom+m+2);if(this.position=="absolute"?(d.style.top=(_-t.parent.top)/s+"px",K8(d,(w-t.parent.left)/a)):(d.style.top=_/s+"px",K8(d,w/a)),p){let N=f.left+(v?b.x:-b.x)-(w+14-7);p.style.left=N/a+"px"}u.overlap!==!0&&o.push({left:w,top:_,right:S,bottom:_+y}),d.classList.toggle("cm-tooltip-above",j),d.classList.toggle("cm-tooltip-below",!j),u.positioned&&u.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=bb}},{eventObservers:{scroll(){this.maybeMeasure()}}});function K8(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const oPe=We.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lPe={x:0,y:0},hP=Qe.define({enables:[fP,oPe]}),dk=Qe.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class i2{static create(e){return new i2(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Jq(e,dk,(n,r)=>this.createHostedView(n,r),n=>n.dom.remove())}createHostedView(e,n){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let r of this.manager.tooltipViews){let a=r[e];if(a!==void 0){if(n===void 0)n=a;else if(n!==a)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const cPe=hP.compute([dk],t=>{let e=t.facet(dk);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var r;return(r=n.end)!==null&&r!==void 0?r:n.pos})),create:i2.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class uPe{constructor(e,n,r,a,s){this.view=e,this.source=n,this.field=r,this.setHover=a,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;el.bottom||n.xl.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(a)).find(d=>d.from<=a&&d.to>=a),u=c&&c.dir==zn.RTL?-1:1;s=n.x{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>ps(e.state,c,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(fP),n=e?e.manager.tooltips.findIndex(r=>r.create==i2.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:a,tooltip:s}=this;if(a.length&&s&&!dPe(s.dom,e)||this.pending){let{pos:o}=a[0]||this.pending,l=(r=(n=a[0])===null||n===void 0?void 0:n.end)!==null&&r!==void 0?r:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!fPe(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=r=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const wb=4;function dPe(t,e){let{left:n,right:r,top:a,bottom:s}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();a=Math.min(l.top,a),s=Math.max(l.bottom,s)}return e.clientX>=n-wb&&e.clientX<=r+wb&&e.clientY>=a-wb&&e.clientY<=s+wb}function fPe(t,e,n,r,a,s){let o=t.scrollDOM.getBoundingClientRect(),l=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>r||o.righta||Math.min(o.bottom,l)=e&&c<=n}function hPe(t,e={}){let n=Ft.define(),r=as.define({create(){return[]},update(a,s){if(a.length&&(e.hideOnChange&&(s.docChanged||s.selection)?a=[]:e.hideOn&&(a=a.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let l of a){let c=s.changes.mapPos(l.pos,-1,us.TrackDel);if(c!=null){let u=Object.assign(Object.create(null),l);u.pos=c,u.end!=null&&(u.end=s.changes.mapPos(u.end)),o.push(u)}}a=o}for(let o of s.effects)o.is(n)&&(a=o.value),o.is(pPe)&&(a=[]);return a},provide:a=>dk.from(a)});return{active:r,extension:[r,br.define(a=>new uPe(a,t,r,n,e.hoverTime||300)),cPe]}}function Zq(t,e){let n=t.plugin(fP);if(!n)return null;let r=n.manager.tooltips.indexOf(e);return r<0?null:n.manager.tooltipViews[r]}const pPe=Ft.define(),Y8=Qe.define({combine(t){let e,n;for(let r of t)e=e||r.topContainer,n=n||r.bottomContainer;return{topContainer:e,bottomContainer:n}}});function pP(t,e){let n=t.plugin(Qq),r=n?n.specs.indexOf(e):-1;return r>-1?n.panels[r]:null}const Qq=br.fromClass(class{constructor(t){this.input=t.state.facet(ny),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(Y8);this.top=new kb(t,!0,e.topContainer),this.bottom=new kb(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(Y8);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new kb(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new kb(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(ny);if(n!=this.input){let r=n.filter(c=>c),a=[],s=[],o=[],l=[];for(let c of r){let u=this.specs.indexOf(c),d;u<0?(d=c(t.view),l.push(d)):(d=this.panels[u],d.update&&d.update(t)),a.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=a,this.top.sync(s),this.bottom.sync(o);for(let c of l)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let r of this.panels)r.update&&r.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>We.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class kb{constructor(e,n,r){this.view=e,this.top=n,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=X8(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=X8(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function X8(t){let e=t.nextSibling;return t.remove(),e}const ny=Qe.define({enables:Qq});function mPe(t,e){let n,r=new Promise(o=>n=o),a=o=>gPe(o,e,n);t.state.field(A_,!1)?t.dispatch({effects:eK.of(a)}):t.dispatch({effects:Ft.appendConfig.of(A_.init(()=>[a]))});let s=tK.of(a);return{close:s,result:r.then(o=>((t.win.queueMicrotask||(c=>t.win.setTimeout(c,10)))(()=>{t.state.field(A_).indexOf(a)>-1&&t.dispatch({effects:s})}),o))}}const A_=as.define({create(){return[]},update(t,e){for(let n of e.effects)n.is(eK)?t=[n.value].concat(t):n.is(tK)&&(t=t.filter(r=>r!=n.value));return t},provide:t=>ny.computeN([t],e=>e.field(t))}),eK=Ft.define(),tK=Ft.define();function gPe(t,e,n){let r=e.content?e.content(t,()=>o(null)):null;if(!r){if(r=Pn("form"),e.input){let l=Pn("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),r.appendChild(Pn("label",(e.label||"")+": ",l))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(Pn("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let a=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let l=0;l{u.keyCode==27?(u.preventDefault(),o(null)):u.keyCode==13&&(u.preventDefault(),o(c))}),c.addEventListener("submit",u=>{u.preventDefault(),o(c)})}let s=Pn("div",r,Pn("button",{onclick:()=>o(null),"aria-label":t.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(l){s.contains(s.ownerDocument.activeElement)&&t.focus(),n(l)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let l;typeof e.focus=="string"?l=r.querySelector(e.focus):l=r.querySelector("input")||r.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}class vc extends Pu{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}vc.prototype.elementClass="";vc.prototype.toDOM=void 0;vc.prototype.mapMode=us.TrackBefore;vc.prototype.startSide=vc.prototype.endSide=-1;vc.prototype.point=!0;const m1=Qe.define(),xPe=Qe.define(),yPe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Gt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Rx=Qe.define();function vPe(t){return[nK(),Rx.of({...yPe,...t})]}const J8=Qe.define({combine:t=>t.some(e=>e)});function nK(t){return[bPe]}const bPe=br.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Rx).map(e=>new Q8(t,e)),this.fixed=!t.state.facet(J8);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,r=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(r<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(J8)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=Gt.iter(this.view.state.facet(m1),this.view.viewport.from),r=[],a=this.gutters.map(s=>new wPe(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let l of s.type)if(l.type==Ba.Text&&o){y5(n,r,l.from);for(let c of a)c.line(this.view,l,r);o=!1}else if(l.widget)for(let c of a)c.widget(this.view,l)}else if(s.type==Ba.Text){y5(n,r,s.from);for(let o of a)o.line(this.view,s,r)}else if(s.widget)for(let o of a)o.widget(this.view,s);for(let s of a)s.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(Rx),n=t.state.facet(Rx),r=t.docChanged||t.heightChanged||t.viewportChanged||!Gt.eq(t.startState.facet(m1),t.state.facet(m1),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let a of this.gutters)a.update(t)&&(r=!0);else{r=!0;let a=[];for(let s of n){let o=e.indexOf(s);o<0?a.push(new Q8(this.view,s)):(this.gutters[o].update(t),a.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),a.indexOf(s)<0&&s.destroy();for(let s of a)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=a}return r}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>We.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let r=n.dom.offsetWidth*e.scaleX,a=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==zn.LTR?{left:r,right:a}:{right:r,left:a}})});function Z8(t){return Array.isArray(t)?t:[t]}function y5(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class wPe{constructor(e,n,r){this.gutter=e,this.height=r,this.i=0,this.cursor=Gt.iter(e.markers,n.from)}addElement(e,n,r){let{gutter:a}=this,s=(n.top-this.height)/e.scaleY,o=n.height/e.scaleY;if(this.i==a.elements.length){let l=new rK(e,o,s,r);a.elements.push(l),a.dom.appendChild(l.dom)}else a.elements[this.i].update(e,o,s,r);this.height=n.bottom,this.i++}line(e,n,r){let a=[];y5(this.cursor,a,n.from),r.length&&(a=a.concat(r));let s=this.gutter.config.lineMarker(e,n,a);s&&a.unshift(s);let o=this.gutter;a.length==0&&!o.config.renderEmptyElements||this.addElement(e,n,a)}widget(e,n){let r=this.gutter.config.widgetMarker(e,n.widget,n),a=r?[r]:null;for(let s of e.state.facet(xPe)){let o=s(e,n.widget,n);o&&(a||(a=[])).push(o)}a&&this.addElement(e,n,a)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class Q8{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in n.domEventHandlers)this.dom.addEventListener(r,a=>{let s=a.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();o=(c.top+c.bottom)/2}else o=a.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);n.domEventHandlers[r](e,l,a)&&a.preventDefault()});this.markers=Z8(n.markers(e)),n.initialSpacer&&(this.spacer=new rK(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=Z8(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let a=this.config.updateSpacer(this.spacer.markers[0],e);a!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[a])}let r=e.view.viewport;return!Gt.eq(this.markers,n,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class rK{constructor(e,n,r,a){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,r,a)}update(e,n,r,a){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),kPe(this.markers,a)||this.setMarkers(e,a)}setMarkers(e,n){let r="cm-gutterElement",a=this.dom.firstChild;for(let s=0,o=0;;){let l=o,c=ss(l,c,u)||o(l,c,u):o}return r}})}});class O_ extends vc{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function T_(t,e){return t.state.facet(Dh).formatNumber(e,t.state)}const _Pe=Rx.compute([Dh],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(jPe)},lineMarker(e,n,r){return r.some(a=>a.toDOM)?null:new O_(T_(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,r)=>{for(let a of e.state.facet(SPe)){let s=a(e,n,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Dh)!=e.state.facet(Dh),initialSpacer(e){return new O_(T_(e,e6(e.state.doc.lines)))},updateSpacer(e,n){let r=T_(n.view,e6(n.view.state.doc.lines));return r==e.number?e:new O_(r)},domEventHandlers:t.facet(Dh).domEventHandlers,side:"before"}));function NPe(t={}){return[Dh.of(t),nK(),_Pe]}function e6(t){let e=9;for(;e{let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.head).from;a>n&&(n=a,e.push(CPe.range(a)))}return Gt.of(e)});function APe(){return EPe}const OPe=1024;let TPe=0;class P_{constructor(e,n){this.from=e,this.to=n}}class Qt{constructor(e={}){this.id=TPe++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ys.match(e)),n=>{let r=e(n);return r===void 0?null:[this,r]}}}Qt.closedBy=new Qt({deserialize:t=>t.split(" ")});Qt.openedBy=new Qt({deserialize:t=>t.split(" ")});Qt.group=new Qt({deserialize:t=>t.split(" ")});Qt.isolate=new Qt({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});Qt.contextHash=new Qt({perNode:!0});Qt.lookAhead=new Qt({perNode:!0});Qt.mounted=new Qt({perNode:!0});class Dx{constructor(e,n,r,a=!1){this.tree=e,this.overlay=n,this.parser=r,this.bracketed=a}static get(e){return e&&e.props&&e.props[Qt.mounted.id]}}const PPe=Object.create(null);class Ys{constructor(e,n,r,a=0){this.name=e,this.props=n,this.id=r,this.flags=a}static define(e){let n=e.props&&e.props.length?Object.create(null):PPe,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),a=new Ys(e.name||"",n,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(a)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return a}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(Qt.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let r in e)for(let a of r.split(" "))n[a]=e[r];return r=>{for(let a=r.prop(Qt.group),s=-1;s<(a?a.length:0);s++){let o=n[s<0?r.name:a[s]];if(o)return o}}}}Ys.none=new Ys("",Object.create(null),0,8);class mP{constructor(e){this.types=e;for(let n=0;n0;for(let c=this.cursor(o|Rr.IncludeAnonymous);;){let u=!1;if(c.from<=s&&c.to>=a&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;u=!0}for(;u&&r&&(l||!c.type.isAnonymous)&&r(c),!c.nextSibling();){if(!c.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:yP(Ys.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,a)=>new mr(this.type,n,r,a,this.propValues),e.makeTree||((n,r,a)=>new mr(Ys.none,n,r,a)))}static build(e){return IPe(e)}}mr.empty=new mr(Ys.none,[],[],0);class gP{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new gP(this.buffer,this.index)}}class Iu{constructor(e,n,r){this.buffer=e,this.length=n,this.set=r}get type(){return Ys.none}toString(){let e=[];for(let n=0;n0));c=o[c+3]);return l}slice(e,n,r){let a=this.buffer,s=new Uint16Array(n-e),o=0;for(let l=e,c=0;l=e&&ne;case 1:return n<=e&&r>e;case 2:return r>e;case 4:return!0}}function ry(t,e,n,r){for(var a;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to0?l.length:-1;e!=u;e+=n){let d=l[e],f=c[e]+o.from,h;if(!(!(s&Rr.EnterBracketed&&d instanceof mr&&(h=Dx.get(d))&&!h.overlay&&h.bracketed&&r>=f&&r<=f+d.length)&&!aK(a,r,f,f+d.length))){if(d instanceof Iu){if(s&Rr.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,n,r-f,a);if(p>-1)return new lu(new MPe(o,d,e,f),null,p)}else if(s&Rr.IncludeAnonymous||!d.type.isAnonymous||xP(d)){let p;if(!(s&Rr.IgnoreMounts)&&(p=Dx.get(d))&&!p.overlay)return new Gi(p.tree,f,e,o);let m=new Gi(d,f,e,o);return s&Rr.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?d.children.length-1:0,n,r,a,s)}}}if(s&Rr.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+n:e=n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,r=0){let a;if(!(r&Rr.IgnoreOverlays)&&(a=Dx.get(this._tree))&&a.overlay){let s=e-this.from,o=r&Rr.EnterBracketed&&a.bracketed;for(let{from:l,to:c}of a.overlay)if((n>0||o?l<=s:l=s:c>s))return new Gi(a.tree,a.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function n6(t,e,n,r){let a=t.cursor(),s=[];if(!a.firstChild())return s;if(n!=null){for(let o=!1;!o;)if(o=a.type.is(n),!a.nextSibling())return s}for(;;){if(r!=null&&a.type.is(r))return s;if(a.type.is(e)&&s.push(a.node),!a.nextSibling())return r==null?s:[]}}function v5(t,e,n=e.length-1){for(let r=t;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}class MPe{constructor(e,n,r,a){this.parent=e,this.buffer=n,this.index=r,this.start=a}}class lu extends sK{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,r){super(),this.context=e,this._parent=n,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,n,r){let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.context.start,r);return s<0?null:new lu(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,r=0){if(r&Rr.ExcludeBuffers)return null;let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new lu(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new lu(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new lu(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:r}=this.context,a=this.index+4,s=r.buffer[this.index+3];if(s>a){let o=r.buffer[this.index+1];e.push(r.slice(a,s,o)),n.push(0)}return new mr(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iK(t){if(!t.length)return null;let e=0,n=t[0];for(let s=1;sn.from||o.to=e){let l=new Gi(o.tree,o.overlay[0].from+s.from,-1,s);(a||(a=[r])).push(ry(l,e,n,!1))}}return a?iK(a):r}class b5{get name(){return this.type.name}constructor(e,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~Rr.EnterBracketed,e instanceof Gi)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:r,buffer:a}=this.buffer;return this.type=n||a.set.types[a.buffer[e]],this.from=r+a.buffer[e+1],this.to=r+a.buffer[e+2],!0}yield(e){return e?e instanceof Gi?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,r,this.mode));let{buffer:a}=this.buffer,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,r=this.mode){return this.buffer?r&Rr.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Rr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Rr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(e<0){let a=r<0?0:this.stack[r]+4;if(this.index!=a)return this.yieldBuf(n.findChild(a,this.index,-1,0,4))}else{let a=n.buffer[this.index+3];if(a<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(a)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,r,{buffer:a}=this;if(a){if(e>0){if(this.index-1)for(let s=n+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let l=r._tree.children[s];if(this.mode&Rr.IncludeAnonymous||l instanceof Iu||!l.type.isAnonymous||xP(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==a){if(a==this.index)return o;n=o,r=s+1;break e}a=this.stack[--s]}for(let a=r;a=0;s--){if(s<0)return v5(this._tree,e,a);let o=r[n.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[a]&&e[a]!=o.name)return!1;a--}}return!0}}function xP(t){return t.children.some(e=>e instanceof Iu||!e.type.isAnonymous||xP(e))}function IPe(t){var e;let{buffer:n,nodeSet:r,maxBufferLength:a=OPe,reused:s=[],minRepeatType:o=r.types.length}=t,l=Array.isArray(n)?new gP(n,n.length):n,c=r.types,u=0,d=0;function f(k,_,S,N,E,P){let{id:M,start:A,end:O,size:D}=l,I=d,X=u;if(D<0)if(l.next(),D==-1){let G=s[M];S.push(G),N.push(A-k);return}else if(D==-3){u=M;return}else if(D==-4){d=M;return}else throw new RangeError(`Unrecognized record size: ${D}`);let Q=c[M],V,Y,H=A-k;if(O-A<=a&&(Y=y(l.pos-_,E))){let G=new Uint16Array(Y.size-Y.skip),$=l.pos-Y.size,F=G.length;for(;l.pos>$;)F=b(Y.start,G,F);V=new Iu(G,O-Y.start,r),H=Y.start-k}else{let G=l.pos-D;l.next();let $=[],F=[],R=M>=o?M:-1,z=0,U=O;for(;l.pos>G;)R>=0&&l.id==R&&l.size>=0?(l.end<=U-a&&(m($,F,A,z,l.end,U,R,I,X),z=$.length,U=l.end),l.next()):P>2500?h(A,G,$,F):f(A,G,$,F,R,P+1);if(R>=0&&z>0&&z<$.length&&m($,F,A,z,A,U,R,I,X),$.reverse(),F.reverse(),R>-1&&z>0){let ee=p(Q,X);V=yP(Q,$,F,0,$.length,0,O-A,ee,ee)}else V=x(Q,$,F,O-A,I-O,X)}S.push(V),N.push(H)}function h(k,_,S,N){let E=[],P=0,M=-1;for(;l.pos>_;){let{id:A,start:O,end:D,size:I}=l;if(I>4)l.next();else{if(M>-1&&O=0;D-=3)A[I++]=E[D],A[I++]=E[D+1]-O,A[I++]=E[D+2]-O,A[I++]=I;S.push(new Iu(A,E[2]-O,r)),N.push(O-k)}}function p(k,_){return(S,N,E)=>{let P=0,M=S.length-1,A,O;if(M>=0&&(A=S[M])instanceof mr){if(!M&&A.type==k&&A.length==E)return A;(O=A.prop(Qt.lookAhead))&&(P=N[M]+A.length+O)}return x(k,S,N,E,P,_)}}function m(k,_,S,N,E,P,M,A,O){let D=[],I=[];for(;k.length>N;)D.push(k.pop()),I.push(_.pop()+S-E);k.push(x(r.types[M],D,I,P-E,A-P,O)),_.push(E-S)}function x(k,_,S,N,E,P,M){if(P){let A=[Qt.contextHash,P];M=M?[A].concat(M):[A]}if(E>25){let A=[Qt.lookAhead,E];M=M?[A].concat(M):[A]}return new mr(k,_,S,N,M)}function y(k,_){let S=l.fork(),N=0,E=0,P=0,M=S.end-a,A={size:0,start:0,skip:0};e:for(let O=S.pos-k;S.pos>O;){let D=S.size;if(S.id==_&&D>=0){A.size=N,A.start=E,A.skip=P,P+=4,N+=4,S.next();continue}let I=S.pos-D;if(D<0||I=o?4:0,Q=S.start;for(S.next();S.pos>I;){if(S.size<0)if(S.size==-3||S.size==-4)X+=4;else break e;else S.id>=o&&(X+=4);S.next()}E=Q,N+=D,P+=X}return(_<0||N==k)&&(A.size=N,A.start=E,A.skip=P),A.size>4?A:void 0}function b(k,_,S){let{id:N,start:E,end:P,size:M}=l;if(l.next(),M>=0&&N4){let O=l.pos-(M-4);for(;l.pos>O;)S=b(k,_,S)}_[--S]=A,_[--S]=P-k,_[--S]=E-k,_[--S]=N}else M==-3?u=N:M==-4&&(d=N);return S}let v=[],w=[];for(;l.pos>0;)f(t.start||0,t.bufferStart||0,v,w,-1,0);let j=(e=t.length)!==null&&e!==void 0?e:v.length?w[0]+v[0].length:0;return new mr(c[t.topID],v.reverse(),w.reverse(),j)}const r6=new WeakMap;function g1(t,e){if(!t.isAnonymous||e instanceof Iu||e.type!=t)return 1;let n=r6.get(e);if(n==null){n=1;for(let r of e.children){if(r.type!=t||!(r instanceof mr)){n=1;break}n+=g1(t,r)}r6.set(e,n)}return n}function yP(t,e,n,r,a,s,o,l,c){let u=0;for(let m=r;m=d)break;_+=S}if(w==j+1){if(_>d){let S=m[j];p(S.children,S.positions,0,S.children.length,x[j]+v);continue}f.push(m[j])}else{let S=x[w-1]+m[w-1].length-k;f.push(yP(t,m,x,j,w,k,S,null,c))}h.push(k+v-s)}}return p(e,n,r,a,0),(l||c)(f,h,o)}class Hd{constructor(e,n,r,a,s=!1,o=!1){this.from=e,this.to=n,this.tree=r,this.offset=a,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],r=!1){let a=[new Hd(0,e.length,e,0,!1,r)];for(let s of n)s.to>e.length&&a.push(s);return a}static applyChanges(e,n,r=128){if(!n.length)return e;let a=[],s=1,o=e.length?e[0]:null;for(let l=0,c=0,u=0;;l++){let d=l=r)for(;o&&o.from=h.from||f<=h.to||u){let p=Math.max(h.from,c)-u,m=Math.min(h.to,f)-u;h=p>=m?null:new Hd(p,m,h.tree,h.offset+u,l>0,!!d)}if(h&&a.push(h),o.to>f)break;o=snew P_(a.from,a.to)):[new P_(0,0)]:[new P_(0,e.length)],this.createParse(e,n||[],r)}parse(e,n,r){let a=this.startParse(e,n,r);for(;;){let s=a.advance();if(s)return s}}}class $Pe{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}new Qt({perNode:!0});let LPe=0;class Di{constructor(e,n,r,a){this.name=e,this.set=n,this.base=r,this.modified=a,this.id=LPe++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let r=typeof e=="string"?e:"?";if(e instanceof Di&&(n=e),n!=null&&n.base)throw new Error("Can not derive from a modified tag");let a=new Di(r,[],null,[]);if(a.set.push(a),n)for(let s of n.set)a.set.push(s);return a}static defineModifier(e){let n=new fk(e);return r=>r.modified.indexOf(n)>-1?r:fk.get(r.base||r,r.modified.concat(n).sort((a,s)=>a.id-s.id))}}let FPe=0;class fk{constructor(e){this.name=e,this.instances=[],this.id=FPe++}static get(e,n){if(!n.length)return e;let r=n[0].instances.find(l=>l.base==e&&BPe(n,l.modified));if(r)return r;let a=[],s=new Di(e.name,a,e,n);for(let l of n)l.instances.push(s);let o=zPe(n);for(let l of e.set)if(!l.modified.length)for(let c of o)a.push(fk.get(l,c));return s}}function BPe(t,e){return t.length==e.length&&t.every((n,r)=>n==e[r])}function zPe(t){let e=[[]];for(let n=0;nr.length-n.length)}function UPe(t){let e=Object.create(null);for(let n in t){let r=t[n];Array.isArray(r)||(r=[r]);for(let a of n.split(" "))if(a){let s=[],o=2,l=a;for(let f=0;;){if(l=="..."&&f>0&&f+3==a.length){o=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!h)throw new RangeError("Invalid path: "+a);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),f+=h[0].length,f==a.length)break;let p=a[f++];if(f==a.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+a);l=a.slice(f)}let c=s.length-1,u=s[c];if(!u)throw new RangeError("Invalid path: "+a);let d=new ay(r,o,c>0?s.slice(0,c):null);e[u]=d.sort(e[u])}}return lK.add(e)}const lK=new Qt({combine(t,e){let n,r,a;for(;t||e;){if(!t||e&&t.depth>=e.depth?(a=e,e=e.next):(a=t,t=t.next),n&&n.mode==a.mode&&!a.context&&!n.context)continue;let s=new ay(a.tags,a.mode,a.context);n?n.next=s:r=s,n=s}return r}});class ay{constructor(e,n,r,a){this.tags=e,this.mode=n,this.context=r,this.next=a}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=a;for(let l of s)for(let c of l.set){let u=n[c.id];if(u){o=o?o+" "+u:u;break}}return o},scope:r}}function VPe(t,e){let n=null;for(let r of t){let a=r.style(e);a&&(n=n?n+" "+a:a)}return n}function WPe(t,e,n,r=0,a=t.length){let s=new HPe(r,Array.isArray(e)?e:[e],n);s.highlightRange(t.cursor(),r,a,"",s.highlighters),s.flush(a)}class HPe{constructor(e,n,r){this.at=e,this.highlighters=n,this.span=r,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,r,a,s){let{type:o,from:l,to:c}=e;if(l>=r||c<=n)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let u=a,d=GPe(e)||ay.empty,f=VPe(s,d.tags);if(f&&(u&&(u+=" "),u+=f,d.mode==1&&(a+=(a?" ":"")+f)),this.startSpan(Math.max(n,l),u),d.opaque)return;let h=e.tree&&e.tree.prop(Qt.mounted);if(h&&h.overlay){let p=e.node.enter(h.overlay[0].from+l,1),m=this.highlighters.filter(y=>!y.scope||y.scope(h.tree.type)),x=e.firstChild();for(let y=0,b=l;;y++){let v=y=w||!e.nextSibling())););if(!v||w>r)break;b=v.to+l,b>n&&(this.highlightRange(p.cursor(),Math.max(n,v.from+l),Math.min(r,b),"",m),this.startSpan(Math.min(r,b),u))}x&&e.parent()}else if(e.firstChild()){h&&(a="");do if(!(e.to<=n)){if(e.from>=r)break;this.highlightRange(e,n,r,a,s),this.startSpan(Math.min(r,e.to),u)}while(e.nextSibling());e.parent()}}}function GPe(t){let e=t.type.prop(lK);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const Ye=Di.define,Sb=Ye(),Uc=Ye(),a6=Ye(Uc),s6=Ye(Uc),Vc=Ye(),_b=Ye(Vc),M_=Ye(Vc),qo=Ye(),cd=Ye(qo),Wo=Ye(),Ho=Ye(),w5=Ye(),Ag=Ye(w5),Nb=Ye(),oe={comment:Sb,lineComment:Ye(Sb),blockComment:Ye(Sb),docComment:Ye(Sb),name:Uc,variableName:Ye(Uc),typeName:a6,tagName:Ye(a6),propertyName:s6,attributeName:Ye(s6),className:Ye(Uc),labelName:Ye(Uc),namespace:Ye(Uc),macroName:Ye(Uc),literal:Vc,string:_b,docString:Ye(_b),character:Ye(_b),attributeValue:Ye(_b),number:M_,integer:Ye(M_),float:Ye(M_),bool:Ye(Vc),regexp:Ye(Vc),escape:Ye(Vc),color:Ye(Vc),url:Ye(Vc),keyword:Wo,self:Ye(Wo),null:Ye(Wo),atom:Ye(Wo),unit:Ye(Wo),modifier:Ye(Wo),operatorKeyword:Ye(Wo),controlKeyword:Ye(Wo),definitionKeyword:Ye(Wo),moduleKeyword:Ye(Wo),operator:Ho,derefOperator:Ye(Ho),arithmeticOperator:Ye(Ho),logicOperator:Ye(Ho),bitwiseOperator:Ye(Ho),compareOperator:Ye(Ho),updateOperator:Ye(Ho),definitionOperator:Ye(Ho),typeOperator:Ye(Ho),controlOperator:Ye(Ho),punctuation:w5,separator:Ye(w5),bracket:Ag,angleBracket:Ye(Ag),squareBracket:Ye(Ag),paren:Ye(Ag),brace:Ye(Ag),content:qo,heading:cd,heading1:Ye(cd),heading2:Ye(cd),heading3:Ye(cd),heading4:Ye(cd),heading5:Ye(cd),heading6:Ye(cd),contentSeparator:Ye(qo),list:Ye(qo),quote:Ye(qo),emphasis:Ye(qo),strong:Ye(qo),link:Ye(qo),monospace:Ye(qo),strikethrough:Ye(qo),inserted:Ye(),deleted:Ye(),changed:Ye(),invalid:Ye(),meta:Nb,documentMeta:Ye(Nb),annotation:Ye(Nb),processingInstruction:Ye(Nb),definition:Di.defineModifier("definition"),constant:Di.defineModifier("constant"),function:Di.defineModifier("function"),standard:Di.defineModifier("standard"),local:Di.defineModifier("local"),special:Di.defineModifier("special")};for(let t in oe){let e=oe[t];e instanceof Di&&(e.name=t)}cK([{tag:oe.link,class:"tok-link"},{tag:oe.heading,class:"tok-heading"},{tag:oe.emphasis,class:"tok-emphasis"},{tag:oe.strong,class:"tok-strong"},{tag:oe.keyword,class:"tok-keyword"},{tag:oe.atom,class:"tok-atom"},{tag:oe.bool,class:"tok-bool"},{tag:oe.url,class:"tok-url"},{tag:oe.labelName,class:"tok-labelName"},{tag:oe.inserted,class:"tok-inserted"},{tag:oe.deleted,class:"tok-deleted"},{tag:oe.literal,class:"tok-literal"},{tag:oe.string,class:"tok-string"},{tag:oe.number,class:"tok-number"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],class:"tok-string2"},{tag:oe.variableName,class:"tok-variableName"},{tag:oe.local(oe.variableName),class:"tok-variableName tok-local"},{tag:oe.definition(oe.variableName),class:"tok-variableName tok-definition"},{tag:oe.special(oe.variableName),class:"tok-variableName2"},{tag:oe.definition(oe.propertyName),class:"tok-propertyName tok-definition"},{tag:oe.typeName,class:"tok-typeName"},{tag:oe.namespace,class:"tok-namespace"},{tag:oe.className,class:"tok-className"},{tag:oe.macroName,class:"tok-macroName"},{tag:oe.propertyName,class:"tok-propertyName"},{tag:oe.operator,class:"tok-operator"},{tag:oe.comment,class:"tok-comment"},{tag:oe.meta,class:"tok-meta"},{tag:oe.invalid,class:"tok-invalid"},{tag:oe.punctuation,class:"tok-punctuation"}]);var R_;const Ih=new Qt;function qPe(t){return Qe.define({combine:t?e=>e.concat(t):void 0})}const KPe=new Qt;class So{constructor(e,n,r=[],a=""){this.data=e,this.name=a,rn.prototype.hasOwnProperty("tree")||Object.defineProperty(rn.prototype,"tree",{get(){return rs(this)}}),this.parser=n,this.extension=[$u.of(this),rn.languageData.of((s,o,l)=>{let c=i6(s,o,l),u=c.type.prop(Ih);if(!u)return[];let d=s.facet(u),f=c.type.prop(KPe);if(f){let h=c.resolve(o-c.from,l);for(let p of f)if(p.test(h,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,n,r=-1){return i6(e,n,r).type.prop(Ih)==this.data}findRegions(e){let n=e.facet($u);if((n==null?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let r=[],a=(s,o)=>{if(s.prop(Ih)==this.data){r.push({from:o,to:o+s.length});return}let l=s.prop(Qt.mounted);if(l){if(l.tree.prop(Ih)==this.data){if(l.overlay)for(let c of l.overlay)r.push({from:c.from+o,to:c.to+o});else r.push({from:o,to:o+s.length});return}else if(l.overlay){let c=r.length;if(a(l.tree,l.overlay[0].from+o),r.length>c)return}}for(let c=0;c=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-r,n-r)}}let Og=null;class tm{constructor(e,n,r=[],a,s,o,l,c){this.parser=e,this.state=n,this.fragments=r,this.tree=a,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,r){return new tm(e,n,[],mr.empty,0,r,[],null)}startParse(){return this.parser.startParse(new YPe(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=mr.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let a=Date.now()+e;e=()=>Date.now()>a}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Hd.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=Og;Og=this;try{return e()}finally{Og=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=o6(e,n.from,n.to);return e}changes(e,n){let{fragments:r,tree:a,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((u,d,f,h)=>c.push({fromA:u,toA:d,fromB:f,toB:h})),r=Hd.applyChanges(r,c),a=mr.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let u of this.skipped){let d=e.mapPos(u.from,1),f=e.mapPos(u.to,-1);de.from&&(this.fragments=o6(this.fragments,a,s),this.skipped.splice(r--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends oK{createParse(n,r,a){let s=a[0].from,o=a[a.length-1].to;return{parsedPos:s,advance(){let c=Og;if(c){for(let u of a)c.tempSkipped.push(u);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=o,new mr(Ys.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return Og}}function o6(t,e,n){return Hd.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class nm{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new nm(n)}static init(e){let n=Math.min(3e3,e.doc.length),r=tm.create(e.facet($u).parser,e,{from:0,to:n});return r.work(20,n)||r.takeTree(),new nm(r)}}So.state=as.define({create:nm.init,update(t,e){for(let n of e.effects)if(n.is(So.setState))return n.value;return e.startState.facet($u)!=e.state.facet($u)?nm.init(e.state):t.apply(e)}});let uK=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(uK=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const D_=typeof navigator<"u"&&(!((R_=navigator.scheduling)===null||R_===void 0)&&R_.isInputPending)?()=>navigator.scheduling.isInputPending():null,XPe=br.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(So.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(So.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=uK(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnda+1e3,c=s.context.work(()=>D_&&D_()||Date.now()>o,a+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:So.setState.of(new nm(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>ps(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$u=Qe.define({combine(t){return t.length?t[0]:null},enables:t=>[So.state,XPe,We.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]}),JPe=Qe.define(),o2=Qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function hf(t){let e=t.facet(o2);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function sy(t,e){let n="",r=t.tabSize,a=t.facet(o2)[0];if(a==" "){for(;e>=r;)n+=" ",e-=r;a=" "}for(let s=0;s=e?ZPe(t,n,e):null}class l2{constructor(e,n={}){this.state=e,this.options=n,this.unit=hf(e)}lineAt(e,n=1){let r=this.state.doc.lineAt(e),{simulateBreak:a,simulateDoubleBreak:s}=this.options;return a!=null&&a>=r.from&&a<=r.to?s&&a==e?{text:"",from:e}:(n<0?a-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,n=e.length){return Rm(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:r,from:a}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let o=s(a);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const dK=new Qt;function ZPe(t,e,n){let r=e.resolveStack(n),a=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(a!=r.node){let s=[];for(let o=a;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return fK(r,t,n)}function fK(t,e,n){for(let r=t;r;r=r.next){let a=eMe(r.node);if(a)return a(bP.create(e,n,r))}return 0}function QPe(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function eMe(t){let e=t.type.prop(dK);if(e)return e;let n=t.firstChild,r;if(n&&(r=n.type.prop(Qt.closedBy))){let a=t.lastChild,s=a&&r.indexOf(a.name)>-1;return o=>aMe(o,!0,1,void 0,s&&!QPe(o)?a.from:void 0)}return t.parent==null?tMe:null}function tMe(){return 0}class bP extends l2{constructor(e,n,r){super(e.state,e.options),this.base=e,this.pos=n,this.context=r}get node(){return this.context.node}static create(e,n,r){return new bP(e,n,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(n.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(nMe(r,e))break;n=this.state.doc.lineAt(r.from)}return this.lineIndent(n.from)}continue(){return fK(this.context.next,this.base,this.pos)}}function nMe(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function rMe(t){let e=t.node,n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let a=t.options.simulateBreak,s=t.state.doc.lineAt(n.from),o=a==null||a<=s.from?s.to:Math.min(s.to,a);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==r)return null;if(!c.type.isSkipped){if(c.from>=o)return null;let u=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+u}}l=c.to}}function aMe(t,e,n,r,a){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=r&&s.slice(o,o+r.length)==r||a==t.pos+o,c=rMe(t);return c?l?t.column(c.from):t.column(c.to):t.baseIndent+(l?0:t.unit*n)}const sMe=200;function iMe(){return rn.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,a=n.lineAt(r);if(r>a.from+sMe)return t;let s=n.sliceString(a.from,r);if(!e.some(u=>u.test(s)))return t;let{state:o}=t,l=-1,c=[];for(let{head:u}of o.selection.ranges){let d=o.doc.lineAt(u);if(d.from==l)continue;l=d.from;let f=vP(o,d.from);if(f==null)continue;let h=/^\s*/.exec(d.text)[0],p=sy(o,f);h!=p&&c.push({from:d.from,to:d.from+h.length,insert:p})}return c.length?[t,{changes:c,sequential:!0}]:t})}const oMe=Qe.define(),lMe=new Qt;function cMe(t,e,n){let r=rs(t);if(r.lengthn)continue;if(s&&l.from=e&&u.to>n&&(s=u)}}return s}function uMe(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function hk(t,e,n){for(let r of t.facet(oMe)){let a=r(t,e,n);if(a)return a}return cMe(t,e,n)}function hK(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?void 0:{from:n,to:r}}const c2=Ft.define({map:hK}),By=Ft.define({map:hK});function pK(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(r=>r.from<=n&&r.to>=n)||e.push(t.lineBlockAt(n));return e}const pf=as.define({create(){return kt.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,r)=>t=l6(t,n,r)),t=t.map(e.changes);for(let n of e.effects)if(n.is(c2)&&!dMe(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(xK),a=r?kt.replace({widget:new yMe(r(e.state,n.value))}):c6;t=t.update({add:[a.range(n.value.from,n.value.to)]})}else n.is(By)&&(t=t.update({filter:(r,a)=>n.value.from!=r||n.value.to!=a,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=l6(t,e.selection.main.head)),t},provide:t=>We.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(r,a)=>{n.push(r,a)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n{ae&&(r=!0)}),r?t.update({filterFrom:e,filterTo:n,filter:(a,s)=>a>=n||s<=e}):t}function pk(t,e,n){var r;let a=null;return(r=t.field(pf,!1))===null||r===void 0||r.between(e,n,(s,o)=>{(!a||a.from>s)&&(a={from:s,to:o})}),a}function dMe(t,e,n){let r=!1;return t.between(e,e,(a,s)=>{a==e&&s==n&&(r=!0)}),r}function mK(t,e){return t.field(pf,!1)?e:e.concat(Ft.appendConfig.of(yK()))}const fMe=t=>{for(let e of pK(t)){let n=hk(t.state,e.from,e.to);if(n)return t.dispatch({effects:mK(t.state,[c2.of(n),gK(t,n)])}),!0}return!1},hMe=t=>{if(!t.state.field(pf,!1))return!1;let e=[];for(let n of pK(t)){let r=pk(t.state,n.from,n.to);r&&e.push(By.of(r),gK(t,r,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function gK(t,e,n=!0){let r=t.state.doc.lineAt(e.from).number,a=t.state.doc.lineAt(e.to).number;return We.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${a}.`)}const pMe=t=>{let{state:e}=t,n=[];for(let r=0;r{let e=t.state.field(pf,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(r,a)=>{n.push(By.of({from:r,to:a}))}),t.dispatch({effects:n}),!0},gMe=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:fMe},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:hMe},{key:"Ctrl-Alt-[",run:pMe},{key:"Ctrl-Alt-]",run:mMe}],xMe={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},xK=Qe.define({combine(t){return Tl(t,xMe)}});function yK(t){return[pf,wMe]}function vK(t,e){let{state:n}=t,r=n.facet(xK),a=o=>{let l=t.lineBlockAt(t.posAtDOM(o.target)),c=pk(t.state,l.from,l.to);c&&t.dispatch({effects:By.of(c)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,a,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=a,s}const c6=kt.replace({widget:new class extends Pl{toDOM(t){return vK(t,null)}}});class yMe extends Pl{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return vK(e,this.value)}}const vMe={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class I_ extends vc{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function bMe(t={}){let e={...vMe,...t},n=new I_(e,!0),r=new I_(e,!1),a=br.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet($u)!=o.state.facet($u)||o.startState.field(pf,!1)!=o.state.field(pf,!1)||rs(o.startState)!=rs(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new xc;for(let c of o.viewportLineBlocks){let u=pk(o.state,c.from,c.to)?r:hk(o.state,c.from,c.to)?n:null;u&&l.add(c.from,c.from,u)}return l.finish()}}),{domEventHandlers:s}=e;return[a,vPe({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(a))===null||l===void 0?void 0:l.markers)||Gt.empty},initialSpacer(){return new I_(e,!1)},domEventHandlers:{...s,click:(o,l,c)=>{if(s.click&&s.click(o,l,c))return!0;let u=pk(o.state,l.from,l.to);if(u)return o.dispatch({effects:By.of(u)}),!0;let d=hk(o.state,l.from,l.to);return d?(o.dispatch({effects:c2.of(d)}),!0):!1}}}),yK()]}const wMe=We.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Dm{constructor(e,n){this.specs=e;let r;function a(l){let c=Mu.newName();return(r||(r=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?a(n.all):void 0,o=n.scope;this.scope=o instanceof So?l=>l.prop(Ih)==o.data:o?l=>l==o:void 0,this.style=cK(e.map(l=>({tag:l.tag,class:l.class||a(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=r?new Mu(r):null,this.themeType=n.themeType}static define(e,n){return new Dm(e,n||{})}}const k5=Qe.define(),bK=Qe.define({combine(t){return t.length?[t[0]]:null}});function $_(t){let e=t.facet(k5);return e.length?e:t.facet(bK)}function wP(t,e){let n=[jMe],r;return t instanceof Dm&&(t.module&&n.push(We.styleModule.of(t.module)),r=t.themeType),e!=null&&e.fallback?n.push(bK.of(t)):r?n.push(k5.computeN([We.darkTheme],a=>a.facet(We.darkTheme)==(r=="dark")?[t]:[])):n.push(k5.of(t)),n}class kMe{constructor(e){this.markCache=Object.create(null),this.tree=rs(e.state),this.decorations=this.buildDeco(e,$_(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=rs(e.state),r=$_(e.state),a=r!=$_(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);n.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(n!=this.tree||e.viewportChanged||a)&&(this.tree=n,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return kt.none;let r=new xc;for(let{from:a,to:s}of e.visibleRanges)WPe(this.tree,n,(o,l,c)=>{r.add(o,l,this.markCache[c]||(this.markCache[c]=kt.mark({class:c})))},a,s);return r.finish()}}const jMe=Of.high(br.fromClass(kMe,{decorations:t=>t.decorations})),SMe=Dm.define([{tag:oe.meta,color:"#404740"},{tag:oe.link,textDecoration:"underline"},{tag:oe.heading,textDecoration:"underline",fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strong,fontWeight:"bold"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.keyword,color:"#708"},{tag:[oe.atom,oe.bool,oe.url,oe.contentSeparator,oe.labelName],color:"#219"},{tag:[oe.literal,oe.inserted],color:"#164"},{tag:[oe.string,oe.deleted],color:"#a11"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],color:"#e40"},{tag:oe.definition(oe.variableName),color:"#00f"},{tag:oe.local(oe.variableName),color:"#30a"},{tag:[oe.typeName,oe.namespace],color:"#085"},{tag:oe.className,color:"#167"},{tag:[oe.special(oe.variableName),oe.macroName],color:"#256"},{tag:oe.definition(oe.propertyName),color:"#00c"},{tag:oe.comment,color:"#940"},{tag:oe.invalid,color:"#f00"}]),_Me=We.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),wK=1e4,kK="()[]{}",jK=Qe.define({combine(t){return Tl(t,{afterCursor:!0,brackets:kK,maxScanDistance:wK,renderMatch:EMe})}}),NMe=kt.mark({class:"cm-matchingBracket"}),CMe=kt.mark({class:"cm-nonmatchingBracket"});function EMe(t){let e=[],n=t.matched?NMe:CMe;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}function u6(t){let e=[],n=t.facet(jK);for(let r of t.selection.ranges){if(!r.empty)continue;let a=cl(t,r.head,-1,n)||r.head>0&&cl(t,r.head-1,1,n)||n.afterCursor&&(cl(t,r.head,1,n)||r.headt.decorations}),OMe=[AMe,_Me];function TMe(t={}){return[jK.of(t),OMe]}const PMe=new Qt;function j5(t,e,n){let r=t.prop(e<0?Qt.openedBy:Qt.closedBy);if(r)return r;if(t.name.length==1){let a=n.indexOf(t.name);if(a>-1&&a%2==(e<0?1:0))return[n[a+e]]}return null}function S5(t){let e=t.type.prop(PMe);return e?e(t.node):t}function cl(t,e,n,r={}){let a=r.maxScanDistance||wK,s=r.brackets||kK,o=rs(t),l=o.resolveInner(e,n);for(let c=l;c;c=c.parent){let u=j5(c.type,n,s);if(u&&c.from0?e>=d.from&&ed.from&&e<=d.to))return MMe(t,e,n,c,d,u,s)}}return RMe(t,e,n,o,l.type,a,s)}function MMe(t,e,n,r,a,s,o){let l=r.parent,c={from:a.from,to:a.to},u=0,d=l==null?void 0:l.cursor();if(d&&(n<0?d.childBefore(r.from):d.childAfter(r.to)))do if(n<0?d.to<=r.from:d.from>=r.to){if(u==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let u={from:n<0?e-1:e,to:n>0?e+1:e},d=t.doc.iterRange(e,n>0?t.doc.length:0),f=0;for(let h=0;!d.next().done&&h<=s;){let p=d.value;n<0&&(h+=p.length);let m=e+h*n;for(let x=n>0?0:p.length-1,y=n>0?p.length:-1;x!=y;x+=n){let b=o.indexOf(p[x]);if(!(b<0||r.resolveInner(m+x,1).type!=a))if(b%2==0==n>0)f++;else{if(f==1)return{start:u,end:{from:m+x,to:m+x+1},matched:b>>1==c>>1};f--}}n>0&&(h+=p.length)}return d.done?{start:u,matched:!1}:null}function d6(t,e,n,r=0,a=0){e==null&&(e=t.search(/[^\s\u00a0]/),e==-1&&(e=t.length));let s=a;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.posn}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return a(s)==a(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let a=this.string.slice(this.pos).match(e);return a&&a.index>0?null:(a&&n!==!1&&(this.pos+=a[0].length),a)}}current(){return this.string.slice(this.start,this.pos)}}function DMe(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>!0),copyState:t.copyState||IMe,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||SP,mergeTokens:t.mergeTokens!==!1}}function IMe(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const f6=new WeakMap;class kP extends So{constructor(e){let n=qPe(e.languageData),r=DMe(e),a,s=new class extends oK{createParse(o,l,c){return new LMe(a,o,l,c)}};super(n,s,[],e.name),this.topNode=zMe(n,this),a=this,this.streamParser=r,this.stateAfter=new Qt({perNode:!0}),this.tokenTable=e.tokenTable?new EK(r.tokenTable):BMe}static define(e){return new kP(e)}getIndent(e){let n,{overrideIndentation:r}=e.options;r&&(n=f6.get(e.state),n!=null&&n1e4)return null;for(;s=r&&n+e.length<=a&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:n+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],c=n+e.positions[o],u=l instanceof mr&&c=e.length)return e;!a&&n==0&&e.type==t.topNode&&(a=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],c;if(on&&jP(t,s.tree,0-s.offset,n,l),u;if(c&&c.pos<=r&&(u=_K(t,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:u}}return{state:t.streamParser.startState(a?hf(a):4),tree:mr.empty}}class LMe{constructor(e,n,r,a){this.lang=e,this.input=n,this.fragments=r,this.ranges=a,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=a[a.length-1].to;let s=tm.get(),o=a[0].from,{state:l,tree:c}=$Me(e,r,o,this.to,s==null?void 0:s.state);this.state=l,this.parsedPos=this.chunkStart=o+c.length;for(let u=0;uu.from<=s.viewport.from&&u.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(hf(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=tm.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(n,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==` +`&&(n="");else{let r=n.indexOf(` +`);r>-1&&(n=n.slice(0,r))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),r=e+n.length;for(let a=this.rangeIndex;;){let s=this.ranges[a].to;if(s>=r||(n=n.slice(0,s-(r-n.length)),a++,a==this.ranges.length))break;let o=this.ranges[a].from,l=this.lineAfter(o);n+=l,r=o+l.length}return{line:n,end:r}}skipGapsTo(e,n,r){for(;;){let a=this.ranges[this.rangeIndex].to,s=e+n;if(r>0?a>s:a>=s)break;let o=this.ranges[++this.rangeIndex].from;n+=o-a}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){a=this.skipGapsTo(n,a,1),n+=a;let l=this.chunk.length;a=this.skipGapsTo(r,a,-1),r+=a,s+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==n?this.chunk[o+2]=r:this.chunk.push(e,n,r,s),a}parseLine(e){let{line:n,end:r}=this.nextLine(),a=0,{streamParser:s}=this.lang,o=new SK(n,e?e.state.tabSize:4,e?hf(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=NK(s.token,o,this.state);if(l&&(a=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,a)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return a}throw new Error("Stream parser failed to advance stream.")}const SP=Object.create(null),iy=[Ys.none],FMe=new mP(iy),h6=[],p6=Object.create(null),CK=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])CK[t]=AK(SP,e);class EK{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),CK)}resolve(e){return e?this.table[e]||(this.table[e]=AK(this.extra,e)):0}}const BMe=new EK(SP);function L_(t,e){h6.indexOf(t)>-1||(h6.push(t),console.warn(e))}function AK(t,e){let n=[];for(let l of e.split(" ")){let c=[];for(let u of l.split(".")){let d=t[u]||oe[u];d?typeof d=="function"?c.length?c=c.map(d):L_(u,`Modifier ${u} used at start of tag`):c.length?L_(u,`Tag ${u} used as modifier`):c=Array.isArray(d)?d:[d]:L_(u,`Unknown highlighting tag ${u}`)}for(let u of c)n.push(u)}if(!n.length)return 0;let r=e.replace(/ /g,"_"),a=r+" "+n.map(l=>l.id),s=p6[a];if(s)return s.id;let o=p6[a]=Ys.define({id:iy.length,name:r,props:[UPe({[r]:n})]});return iy.push(o),o.id}function zMe(t,e){let n=Ys.define({id:iy.length,name:"Document",props:[Ih.add(()=>t),dK.add(()=>r=>e.getIndent(r))],top:!0});return iy.push(n),n}zn.RTL,zn.LTR;const UMe=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),r=NP(t.state,n.from);return r.line?VMe(t):r.block?HMe(t):!1};function _P(t,e){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let a=t(e,n);return a?(r(n.update(a)),!0):!1}}const VMe=_P(KMe,0),WMe=_P(OK,0),HMe=_P((t,e)=>OK(t,e,qMe(e)),0);function NP(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const Tg=50;function GMe(t,{open:e,close:n},r,a){let s=t.sliceDoc(r-Tg,r),o=t.sliceDoc(a,a+Tg),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(o)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&o.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:a+c,margin:c&&1}};let d,f;a-r<=2*Tg?d=f=t.sliceDoc(r,a):(d=t.sliceDoc(r,r+Tg),f=t.sliceDoc(a-Tg,a));let h=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(f)[0].length,m=f.length-p-n.length;return d.slice(h,h+e.length)==e&&f.slice(m,m+n.length)==n?{open:{pos:r+h+e.length,margin:/\s/.test(d.charAt(h+e.length))?1:0},close:{pos:a-p-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function qMe(t){let e=[];for(let n of t.selection.ranges){let r=t.doc.lineAt(n.from),a=n.to<=r.to?r:t.doc.lineAt(n.to);a.from>r.from&&a.from==n.to&&(a=n.to==r.to+1?r:t.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=a.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:a.to})}return e}function OK(t,e,n=e.selection.ranges){let r=n.map(s=>NP(e,s.from).block);if(!r.every(s=>s))return null;let a=n.map((s,o)=>GMe(e,r[o],s.from,s.to));if(t!=2&&!a.every(s=>s))return{changes:e.changes(n.map((s,o)=>a[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(t!=1&&a.some(s=>s)){let s=[];for(let o=0,l;oa&&(s==o||o>f.from)){a=f.from;let h=/^\s*/.exec(f.text)[0].length,p=h==f.length,m=f.text.slice(h,h+u.length)==u?h:-1;hs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&s.push({from:l.from+u,insert:c+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:c}of r)if(l>=0){let u=o.from+l,d=u+c.length;o.text[d-o.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const _5=Ol.define(),YMe=Ol.define(),XMe=Qe.define(),TK=Qe.define({combine(t){return Tl(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(r,a)=>e(r,a)||n(r,a)})}}),PK=as.define({create(){return ul.empty},update(t,e){let n=e.state.facet(TK),r=e.annotation(_5);if(r){let c=Bs.fromTransaction(e,r.selection),u=r.side,d=u==0?t.undone:t.done;return c?d=mk(d,d.length,n.minDepth,c):d=DK(d,e.startState.selection),new ul(u==0?r.rest:d,u==0?d:r.rest)}let a=e.annotation(YMe);if((a=="full"||a=="before")&&(t=t.isolate()),e.annotation(ia.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=Bs.fromTransaction(e),o=e.annotation(ia.time),l=e.annotation(ia.userEvent);return s?t=t.addChanges(s,o,l,n,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,n.newGroupDelay)),(a=="full"||a=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new ul(t.done.map(Bs.fromJSON),t.undone.map(Bs.fromJSON))}});function JMe(t={}){return[PK,TK.of(t),We.domEventHandlers({beforeinput(e,n){let r=e.inputType=="historyUndo"?MK:e.inputType=="historyRedo"?N5:null;return r?(e.preventDefault(),r(n)):!1}})]}function u2(t,e){return function({state:n,dispatch:r}){if(!e&&n.readOnly)return!1;let a=n.field(PK,!1);if(!a)return!1;let s=a.pop(t,n,e);return s?(r(s),!0):!1}}const MK=u2(0,!1),N5=u2(1,!1),ZMe=u2(0,!0),QMe=u2(1,!0);class Bs{constructor(e,n,r,a,s){this.changes=e,this.effects=n,this.mapped=r,this.startSelection=a,this.selectionsAfter=s}setSelAfter(e){return new Bs(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(e){return new Bs(e.changes&&na.fromJSON(e.changes),[],e.mapped&&vl.fromJSON(e.mapped),e.startSelection&&Ee.fromJSON(e.startSelection),e.selectionsAfter.map(Ee.fromJSON))}static fromTransaction(e,n){let r=zi;for(let a of e.startState.facet(XMe)){let s=a(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new Bs(e.changes.invert(e.startState.doc),r,void 0,n||e.startState.selection,zi)}static selection(e){return new Bs(void 0,zi,void 0,void 0,e)}}function mk(t,e,n,r){let a=e+1>n+20?e-n-1:0,s=t.slice(a,e);return s.push(r),s}function eRe(t,e){let n=[],r=!1;return t.iterChangedRanges((a,s)=>n.push(a,s)),e.iterChangedRanges((a,s,o,l)=>{for(let c=0;c=u&&o<=d&&(r=!0)}}),r}function tRe(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,r)=>n.empty!=e.ranges[r].empty).length===0}function RK(t,e){return t.length?e.length?t.concat(e):t:e}const zi=[],nRe=200;function DK(t,e){if(t.length){let n=t[t.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-nRe));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),mk(t,t.length-1,1e9,n.setSelAfter(r)))}else return[Bs.selection([e])]}function rRe(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function F_(t,e){if(!t.length)return t;let n=t.length,r=zi;for(;n;){let a=aRe(t[n-1],e,r);if(a.changes&&!a.changes.empty||a.effects.length){let s=t.slice(0,n);return s[n-1]=a,s}else e=a.mapped,n--,r=a.selectionsAfter}return r.length?[Bs.selection(r)]:zi}function aRe(t,e,n){let r=RK(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):zi,n);if(!t.changes)return Bs.selection(r);let a=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new Bs(a,Ft.mapEffects(t.effects,e),o,t.startSelection.map(s),r)}const sRe=/^(input\.type|delete)($|\.)/;class ul{constructor(e,n,r=0,a=void 0){this.done=e,this.undone=n,this.prevTime=r,this.prevUserEvent=a}isolate(){return this.prevTime?new ul(this.done,this.undone):this}addChanges(e,n,r,a,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!r||sRe.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime0&&n-this.prevTimen.empty?t.moveByChar(n,e):d2(n,e))}function ss(t){return t.textDirectionAt(t.state.selection.main.head)==zn.LTR}const $K=t=>IK(t,!ss(t)),LK=t=>IK(t,ss(t));function FK(t,e){return Io(t,n=>n.empty?t.moveByGroup(n,e):d2(n,e))}const oRe=t=>FK(t,!ss(t)),lRe=t=>FK(t,ss(t));function cRe(t,e,n){if(e.type.prop(n))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function f2(t,e,n){let r=rs(t).resolveInner(e.head),a=n?Qt.closedBy:Qt.openedBy;for(let c=e.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;cRe(t,u,a)?r=u:c=n?u.to:u.from}let s=r.type.prop(a),o,l;return s&&(o=n?cl(t,r.from,1):cl(t,r.to,-1))&&o.matched?l=n?o.end.to:o.end.from:l=n?r.to:r.from,Ee.cursor(l,n?-1:1)}const uRe=t=>Io(t,e=>f2(t.state,e,!ss(t))),dRe=t=>Io(t,e=>f2(t.state,e,ss(t)));function BK(t,e){return Io(t,n=>{if(!n.empty)return d2(n,e);let r=t.moveVertically(n,e);return r.head!=n.head?r:t.moveToLineBoundary(n,e)})}const zK=t=>BK(t,!1),UK=t=>BK(t,!0);function VK(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,n.height):d2(o,e));if(a.eq(r.selection))return!1;let s;if(n.selfScroll){let o=t.coordsAtPos(r.selection.main.head),l=t.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;o&&o.top>c&&o.bottomWK(t,!1),C5=t=>WK(t,!0);function ed(t,e,n){let r=t.lineBlockAt(e.head),a=t.moveToLineBoundary(e,n);if(a.head==e.head&&a.head!=(n?r.to:r.from)&&(a=t.moveToLineBoundary(e,n,!1)),!n&&a.head==r.from&&r.length){let s=/^\s*/.exec(t.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(a=Ee.cursor(r.from+s))}return a}const fRe=t=>Io(t,e=>ed(t,e,!0)),hRe=t=>Io(t,e=>ed(t,e,!1)),pRe=t=>Io(t,e=>ed(t,e,!ss(t))),mRe=t=>Io(t,e=>ed(t,e,ss(t))),gRe=t=>Io(t,e=>Ee.cursor(t.lineBlockAt(e.head).from,1)),xRe=t=>Io(t,e=>Ee.cursor(t.lineBlockAt(e.head).to,-1));function yRe(t,e,n){let r=!1,a=Im(t.selection,s=>{let o=cl(t,s.head,-1)||cl(t,s.head,1)||s.head>0&&cl(t,s.head-1,1)||s.headyRe(t,e);function Qi(t,e){let n=Im(t.state.selection,r=>{let a=e(r);return Ee.range(r.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch(Do(t.state,n)),!0)}function HK(t,e){return Qi(t,n=>t.moveByChar(n,e))}const GK=t=>HK(t,!ss(t)),qK=t=>HK(t,ss(t));function KK(t,e){return Qi(t,n=>t.moveByGroup(n,e))}const bRe=t=>KK(t,!ss(t)),wRe=t=>KK(t,ss(t)),kRe=t=>Qi(t,e=>f2(t.state,e,!ss(t))),jRe=t=>Qi(t,e=>f2(t.state,e,ss(t)));function YK(t,e){return Qi(t,n=>t.moveVertically(n,e))}const XK=t=>YK(t,!1),JK=t=>YK(t,!0);function ZK(t,e){return Qi(t,n=>t.moveVertically(n,e,VK(t).height))}const g6=t=>ZK(t,!1),x6=t=>ZK(t,!0),SRe=t=>Qi(t,e=>ed(t,e,!0)),_Re=t=>Qi(t,e=>ed(t,e,!1)),NRe=t=>Qi(t,e=>ed(t,e,!ss(t))),CRe=t=>Qi(t,e=>ed(t,e,ss(t))),ERe=t=>Qi(t,e=>Ee.cursor(t.lineBlockAt(e.head).from)),ARe=t=>Qi(t,e=>Ee.cursor(t.lineBlockAt(e.head).to)),y6=({state:t,dispatch:e})=>(e(Do(t,{anchor:0})),!0),v6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.doc.length})),!0),b6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.selection.main.anchor,head:0})),!0),w6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),ORe=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),TRe=({state:t,dispatch:e})=>{let n=h2(t).map(({from:r,to:a})=>Ee.range(r,Math.min(a+1,t.doc.length)));return e(t.update({selection:Ee.create(n),userEvent:"select"})),!0},PRe=({state:t,dispatch:e})=>{let n=Im(t.selection,r=>{let a=rs(t),s=a.resolveStack(r.from,1);if(r.empty){let o=a.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=r.to||l.to>r.to&&l.from<=r.from)&&o.next)return Ee.range(l.to,l.from)}return r});return n.eq(t.selection)?!1:(e(Do(t,n)),!0)};function QK(t,e){let{state:n}=t,r=n.selection,a=n.selection.ranges.slice();for(let s of n.selection.ranges){let o=n.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let c=t.moveVertically(l,e);if(c.heado.to){a.some(u=>u.head==c.head)||a.push(c);break}else{if(c.head==l.head)break;l=c}}}return a.length==r.ranges.length?!1:(t.dispatch(Do(n,Ee.create(a,a.length-1))),!0)}const MRe=t=>QK(t,!1),RRe=t=>QK(t,!0),DRe=({state:t,dispatch:e})=>{let n=t.selection,r=null;return n.ranges.length>1?r=Ee.create([n.main]):n.main.empty||(r=Ee.create([Ee.cursor(n.main.head)])),r?(e(Do(t,r)),!0):!1};function zy(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:r}=t,a=r.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let c=e(s);co&&(n="delete.forward",c=Cb(t,c,!0)),o=Math.min(o,c),l=Math.max(l,c)}else o=Cb(t,o,!1),l=Cb(t,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:Ee.cursor(o,oa(t)))r.between(e,e,(a,s)=>{ae&&(e=n?s:a)});return e}const eY=(t,e,n)=>zy(t,r=>{let a=r.from,{state:s}=t,o=s.doc.lineAt(a),l,c;if(n&&!e&&a>o.from&&aeY(t,!1,!0),tY=t=>eY(t,!0,!1),nY=(t,e)=>zy(t,n=>{let r=n.head,{state:a}=t,s=a.doc.lineAt(r),o=a.charCategorizer(r);for(let l=null;;){if(r==(e?s.to:s.from)){r==n.head&&s.number!=(e?a.doc.lines:1)&&(r+=e?1:-1);break}let c=ka(s.text,r-s.from,e)+s.from,u=s.text.slice(Math.min(r,c)-s.from,Math.max(r,c)-s.from),d=o(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),rY=t=>nY(t,!1),IRe=t=>nY(t,!0),$Re=t=>zy(t,e=>{let n=t.lineBlockAt(e.head).to;return e.headzy(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),FRe=t=>zy(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let n=t.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ln.of(["",""])},range:Ee.cursor(r.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},zRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(r=>{if(!r.empty||r.from==0||r.from==t.doc.length)return{range:r};let a=r.from,s=t.doc.lineAt(a),o=a==s.from?a-1:ka(s.text,a-s.from,!1)+s.from,l=a==s.to?a+1:ka(s.text,a-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:t.doc.slice(a,l).append(t.doc.slice(o,a))},range:Ee.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function h2(t){let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.from),s=t.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=t.doc.lineAt(r.to-1)),n>=a.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:a.from,to:s.to,ranges:[r]});n=s.number+1}return e}function aY(t,e,n){if(t.readOnly)return!1;let r=[],a=[];for(let s of h2(t)){if(n?s.to==t.doc.length:s.from==0)continue;let o=t.doc.lineAt(n?s.to+1:s.from-1),l=o.length+1;if(n){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+t.lineBreak});for(let c of s.ranges)a.push(Ee.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:t.lineBreak+o.text});for(let c of s.ranges)a.push(Ee.range(c.anchor-l,c.head-l))}}return r.length?(e(t.update({changes:r,scrollIntoView:!0,selection:Ee.create(a,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const URe=({state:t,dispatch:e})=>aY(t,e,!1),VRe=({state:t,dispatch:e})=>aY(t,e,!0);function sY(t,e,n){if(t.readOnly)return!1;let r=[];for(let s of h2(t))n?r.push({from:s.from,insert:t.doc.slice(s.from,s.to)+t.lineBreak}):r.push({from:s.to,insert:t.lineBreak+t.doc.slice(s.from,s.to)});let a=t.changes(r);return e(t.update({changes:a,selection:t.selection.map(a,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const WRe=({state:t,dispatch:e})=>sY(t,e,!1),HRe=({state:t,dispatch:e})=>sY(t,e,!0),GRe=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(h2(e).map(({from:a,to:s})=>(a>0?a--:s{let s;if(t.lineWrapping){let o=t.lineBlockAt(a.head),l=t.coordsAtPos(a.head,a.assoc||1);l&&(s=o.bottom+t.documentTop-l.bottom+t.defaultLineHeight/2)}return t.moveVertically(a,!0,s)}).map(n);return t.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function qRe(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=rs(t).resolveInner(e),r=n.childBefore(e),a=n.childAfter(e),s;return r&&a&&r.to<=e&&a.from>=e&&(s=r.type.prop(Qt.closedBy))&&s.indexOf(a.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(a.from).from&&!/\S/.test(t.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}const k6=iY(!1),KRe=iY(!0);function iY(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(a=>{let{from:s,to:o}=a,l=e.doc.lineAt(s),c=!t&&s==o&&qRe(e,s);t&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let u=new l2(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=vP(u,s);for(d==null&&(d=Rm(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let a=[];for(let o=r.from;o<=r.to;){let l=t.doc.lineAt(o);l.number>n&&(r.empty||r.to>l.from)&&(e(l,a,r),n=l.number),o=l.to+1}let s=t.changes(a);return{changes:a,range:Ee.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const YRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),r=new l2(t,{overrideIndentation:s=>{let o=n[s];return o??-1}}),a=CP(t,(s,o,l)=>{let c=vP(r,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=sy(t,c);(u!=d||l.fromt.readOnly?!1:(e(t.update(CP(t,(n,r)=>{r.push({from:n.from,insert:t.facet(o2)})}),{userEvent:"input.indent"})),!0),lY=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(CP(t,(n,r)=>{let a=/^\s*/.exec(n.text)[0];if(!a)return;let s=Rm(a,t.tabSize),o=0,l=sy(t,Math.max(0,s-hf(t)));for(;o(t.setTabFocusMode(),!0),JRe=[{key:"Ctrl-b",run:$K,shift:GK,preventDefault:!0},{key:"Ctrl-f",run:LK,shift:qK},{key:"Ctrl-p",run:zK,shift:XK},{key:"Ctrl-n",run:UK,shift:JK},{key:"Ctrl-a",run:gRe,shift:ERe},{key:"Ctrl-e",run:xRe,shift:ARe},{key:"Ctrl-d",run:tY},{key:"Ctrl-h",run:E5},{key:"Ctrl-k",run:$Re},{key:"Ctrl-Alt-h",run:rY},{key:"Ctrl-o",run:BRe},{key:"Ctrl-t",run:zRe},{key:"Ctrl-v",run:C5}],ZRe=[{key:"ArrowLeft",run:$K,shift:GK,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:oRe,shift:bRe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:pRe,shift:NRe,preventDefault:!0},{key:"ArrowRight",run:LK,shift:qK,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:lRe,shift:wRe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:mRe,shift:CRe,preventDefault:!0},{key:"ArrowUp",run:zK,shift:XK,preventDefault:!0},{mac:"Cmd-ArrowUp",run:y6,shift:b6},{mac:"Ctrl-ArrowUp",run:m6,shift:g6},{key:"ArrowDown",run:UK,shift:JK,preventDefault:!0},{mac:"Cmd-ArrowDown",run:v6,shift:w6},{mac:"Ctrl-ArrowDown",run:C5,shift:x6},{key:"PageUp",run:m6,shift:g6},{key:"PageDown",run:C5,shift:x6},{key:"Home",run:hRe,shift:_Re,preventDefault:!0},{key:"Mod-Home",run:y6,shift:b6},{key:"End",run:fRe,shift:SRe,preventDefault:!0},{key:"Mod-End",run:v6,shift:w6},{key:"Enter",run:k6,shift:k6},{key:"Mod-a",run:ORe},{key:"Backspace",run:E5,shift:E5,preventDefault:!0},{key:"Delete",run:tY,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:rY,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:IRe,preventDefault:!0},{mac:"Mod-Backspace",run:LRe,preventDefault:!0},{mac:"Mod-Delete",run:FRe,preventDefault:!0}].concat(JRe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),QRe=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:uRe,shift:kRe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:dRe,shift:jRe},{key:"Alt-ArrowUp",run:URe},{key:"Shift-Alt-ArrowUp",run:WRe},{key:"Alt-ArrowDown",run:VRe},{key:"Shift-Alt-ArrowDown",run:HRe},{key:"Mod-Alt-ArrowUp",run:MRe},{key:"Mod-Alt-ArrowDown",run:RRe},{key:"Escape",run:DRe},{key:"Mod-Enter",run:KRe},{key:"Alt-l",mac:"Ctrl-l",run:TRe},{key:"Mod-i",run:PRe,preventDefault:!0},{key:"Mod-[",run:lY},{key:"Mod-]",run:oY},{key:"Mod-Alt-\\",run:YRe},{key:"Shift-Mod-k",run:GRe},{key:"Shift-Mod-\\",run:vRe},{key:"Mod-/",run:UMe},{key:"Alt-A",run:WMe},{key:"Ctrl-m",mac:"Shift-Alt-m",run:XRe}].concat(ZRe),e4e={key:"Tab",run:oY,shift:lY},j6=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class rm{constructor(e,n,r=0,a=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,a),this.bufferStart=r,this.normalize=s?l=>s(j6(l)):j6,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=XT(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=tl(e);let a=this.normalize(n);if(a.length)for(let s=0,o=r,l=!0;;s++){let c=a.charCodeAt(s),u=this.match(c,o,l,this.bufferPos+this.bufferStart,s==a.length-1);if(u)return this.value=u,this;if(s==a.length-1)break;l&&sthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,a=r+n[0].length;if(this.matchPos=gk(this.text,a+(r==a?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(rthis.value.to)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=r||a.to<=n){let l=new np(n,e.sliceString(n,r));return B_.set(e,l),l}if(a.from==n&&a.to==r)return a;let{text:s,from:o}=a;return o>n&&(s=e.sliceString(n,o)+s,o=n),a.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,a=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this.matchPos=gk(this.text,a+(r==a?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=np.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(uY.prototype[Symbol.iterator]=dY.prototype[Symbol.iterator]=function(){return this});function t4e(t){try{return new RegExp(t,EP),!0}catch{return!1}}function gk(t,e){if(e>=t.length)return e;let n=t.lineAt(e),r;for(;e=56320&&r<57344;)e++;return e}const n4e=t=>{let{state:e}=t,n=String(e.doc.lineAt(t.state.selection.main.head).number),{close:r,result:a}=mPe(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:e.phrase("go")});return a.then(s=>{let o=s&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(s.elements.line.value);if(!o){t.dispatch({effects:r});return}let l=e.doc.lineAt(e.selection.main.head),[,c,u,d,f]=o,h=d?+d.slice(1):0,p=u?+u:l.number;if(u&&f){let y=p/100;c&&(y=y*(c=="-"?-1:1)+l.number/e.doc.lines),p=Math.round(e.doc.lines*y)}else u&&c&&(p=p*(c=="-"?-1:1)+l.number);let m=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),x=Ee.cursor(m.from+Math.max(0,Math.min(h,m.length)));t.dispatch({effects:[r,We.scrollIntoView(x.from,{y:"center"})],selection:x})}),!0},r4e={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},a4e=Qe.define({combine(t){return Tl(t,r4e,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function s4e(t){return[u4e,c4e]}const i4e=kt.mark({class:"cm-selectionMatch"}),o4e=kt.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function S6(t,e,n,r){return(n==0||t(e.sliceDoc(n-1,n))!=pr.Word)&&(r==e.doc.length||t(e.sliceDoc(r,r+1))!=pr.Word)}function l4e(t,e,n,r){return t(e.sliceDoc(n,n+1))==pr.Word&&t(e.sliceDoc(r-1,r))==pr.Word}const c4e=br.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(a4e),{state:n}=t,r=n.selection;if(r.ranges.length>1)return kt.none;let a=r.main,s,o=null;if(a.empty){if(!e.highlightWordAroundCursor)return kt.none;let c=n.wordAt(a.head);if(!c)return kt.none;o=n.charCategorizer(a.head),s=n.sliceDoc(c.from,c.to)}else{let c=a.to-a.from;if(c200)return kt.none;if(e.wholeWords){if(s=n.sliceDoc(a.from,a.to),o=n.charCategorizer(a.head),!(S6(o,n,a.from,a.to)&&l4e(o,n,a.from,a.to)))return kt.none}else if(s=n.sliceDoc(a.from,a.to),!s)return kt.none}let l=[];for(let c of t.visibleRanges){let u=new rm(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!o||S6(o,n,d,f))&&(a.empty&&d<=a.from&&f>=a.to?l.push(o4e.range(d,f)):(d>=a.to||f<=a.from)&&l.push(i4e.range(d,f)),l.length>e.maxMatches))return kt.none}}return kt.set(l)}},{decorations:t=>t.decorations}),u4e=We.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),d4e=({state:t,dispatch:e})=>{let{selection:n}=t,r=Ee.create(n.ranges.map(a=>t.wordAt(a.head)||Ee.cursor(a.head)),n.mainIndex);return r.eq(n)?!1:(e(t.update({selection:r})),!0)};function f4e(t,e){let{main:n,ranges:r}=t.selection,a=t.wordAt(n.head),s=a&&a.from==n.from&&a.to==n.to;for(let o=!1,l=new rm(t.doc,e,r[r.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new rm(t.doc,e,0,Math.max(0,r[r.length-1].from-1)),o=!0}else{if(o&&r.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const h4e=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return d4e({state:t,dispatch:e});let r=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=r))return!1;let a=f4e(t,r);return a?(e(t.update({selection:t.selection.addRange(Ee.range(a.from,a.to),!1),effects:We.scrollIntoView(a.to)})),!0):!1},$m=Qe.define({combine(t){return Tl(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new C4e(e),scrollToMatch:e=>We.scrollIntoView(e)})}});class fY{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||t4e(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?` +`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new v4e(this):new g4e(this)}getCursor(e,n=0,r){let a=e.doc?e:rn.create({doc:e});return r==null&&(r=a.doc.length),this.regexp?ch(this,a,n,r):lh(this,a,n,r)}}class hY{constructor(e){this.spec=e}}function p4e(t,e,n){return(r,a,s,o)=>{if(n&&!n(r,a,s,o))return!1;let l=r>=o&&a<=o+s.length?s.slice(r-o,a-o):e.doc.sliceString(r,a);return t(l,e,r,a)}}function lh(t,e,n,r){let a;return t.wholeWord&&(a=m4e(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(a=p4e(t.test,e,a)),new rm(e.doc,t.unquoted,n,r,t.caseSensitive?void 0:s=>s.toLowerCase(),a)}function m4e(t,e){return(n,r,a,s)=>((s>n||s+a.length=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=lh(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}function x4e(t,e,n){return(r,a,s)=>(!n||n(r,a,s))&&t(s[0],e,r,a)}function ch(t,e,n,r){let a;return t.wholeWord&&(a=y4e(e.charCategorizer(e.selection.main.head))),t.test&&(a=x4e(t.test,e,a)),new uY(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:a},n,r)}function xk(t,e){return t.slice(ka(t,e,!1),e)}function yk(t,e){return t.slice(e,ka(t,e))}function y4e(t){return(e,n,r)=>!r[0].length||(t(xk(r.input,r.index))!=pr.Word||t(yk(r.input,r.index))!=pr.Word)&&(t(yk(r.input,r.index+r[0].length))!=pr.Word||t(xk(r.input,r.index+r[0].length))!=pr.Word)}class v4e extends hY{nextMatch(e,n,r){let a=ch(this.spec,e,r,e.doc.length).next();return a.done&&(a=ch(this.spec,e,0,n).next()),a.done?null:a.value}prevMatchInRange(e,n,r){for(let a=1;;a++){let s=Math.max(n,r-a*1e4),o=ch(this.spec,e,s,r),l=null;for(;!o.next().done;)l=o.value;if(l&&(s==n||l.from>s+10))return l;if(s==n)return null}}prevMatch(e,n,r){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let a=r.length;a>0;a--){let s=+r.slice(0,a);if(s>0&&s=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=ch(this.spec,e,Math.max(0,n-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}const oy=Ft.define(),AP=Ft.define(),ju=as.define({create(t){return new z_(A5(t).create(),null)},update(t,e){for(let n of e.effects)n.is(oy)?t=new z_(n.value.create(),t.panel):n.is(AP)&&(t=new z_(t.query,n.value?OP:null));return t},provide:t=>ny.from(t,e=>e.panel)});class z_{constructor(e,n){this.query=e,this.panel=n}}const b4e=kt.mark({class:"cm-searchMatch"}),w4e=kt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),k4e=br.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(ju))}update(t){let e=t.state.field(ju);(e!=t.startState.field(ju)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return kt.none;let{view:n}=this,r=new xc;for(let a=0,s=n.visibleRanges,o=s.length;as[a+1].from-2*250;)c=s[++a].to;t.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?w4e:b4e)})}return r.finish()}},{decorations:t=>t.decorations});function Uy(t){return e=>{let n=e.state.field(ju,!1);return n&&n.query.spec.valid?t(e,n):gY(e)}}const vk=Uy((t,{query:e})=>{let{to:n}=t.state.selection.main,r=e.nextMatch(t.state,n,n);if(!r)return!1;let a=Ee.single(r.from,r.to),s=t.state.facet($m);return t.dispatch({selection:a,effects:[TP(t,r),s.scrollToMatch(a.main,t)],userEvent:"select.search"}),mY(t),!0}),bk=Uy((t,{query:e})=>{let{state:n}=t,{from:r}=n.selection.main,a=e.prevMatch(n,r,r);if(!a)return!1;let s=Ee.single(a.from,a.to),o=t.state.facet($m);return t.dispatch({selection:s,effects:[TP(t,a),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),mY(t),!0}),j4e=Uy((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:Ee.create(n.map(r=>Ee.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),S4e=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:a}=n.main,s=[],o=0;for(let l=new rm(t.doc,t.sliceDoc(r,a));!l.next().done;){if(s.length>1e3)return!1;l.value.from==r&&(o=s.length),s.push(Ee.range(l.value.from,l.value.to))}return e(t.update({selection:Ee.create(s,o),userEvent:"select.search.matches"})),!0},_6=Uy((t,{query:e})=>{let{state:n}=t,{from:r,to:a}=n.selection.main;if(n.readOnly)return!1;let s=e.nextMatch(n,r,r);if(!s)return!1;let o=s,l=[],c,u,d=[];o.precise?o.from==r&&o.to==a&&(u=n.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:u}),d.push(We.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):o=e.nextMatch(n,o.from,o.to);let f=t.state.changes(l);return o&&(c=Ee.single(o.from,o.to).map(f),d.push(TP(t,o)),d.push(n.facet($m).scrollToMatch(c.main,t))),t.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),_4e=Uy((t,{query:e})=>{if(t.state.readOnly)return!1;let n=[];for(let a of e.matchAll(t.state,1e9)){let{from:s,to:o,precise:l}=a;l&&n.push({from:s,to:o,insert:e.getReplacement(a)})}if(!n.length)return!1;let r=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:We.announce.of(r),userEvent:"input.replace.all"}),!0});function OP(t){return t.state.facet($m).createPanel(t)}function A5(t,e){var n,r,a,s,o;let l=t.selection.main,c=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!c)return e;let u=t.facet($m);return new fY({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=e==null?void 0:e.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(a=e==null?void 0:e.literal)!==null&&a!==void 0?a:u.literal,regexp:(s=e==null?void 0:e.regexp)!==null&&s!==void 0?s:u.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:u.wholeWord})}function pY(t){let e=pP(t,OP);return e&&e.dom.querySelector("[main-field]")}function mY(t){let e=pY(t);e&&e==t.root.activeElement&&e.select()}const gY=t=>{let e=t.state.field(ju,!1);if(e&&e.panel){let n=pY(t);if(n&&n!=t.root.activeElement){let r=A5(t.state,e.query.spec);r.valid&&t.dispatch({effects:oy.of(r)}),n.focus(),n.select()}}else t.dispatch({effects:[AP.of(!0),e?oy.of(A5(t.state,e.query.spec)):Ft.appendConfig.of(A4e)]});return!0},xY=t=>{let e=t.state.field(ju,!1);if(!e||!e.panel)return!1;let n=pP(t,OP);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:AP.of(!1)}),!0},N4e=[{key:"Mod-f",run:gY,scope:"editor search-panel"},{key:"F3",run:vk,shift:bk,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:vk,shift:bk,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:xY,scope:"editor search-panel"},{key:"Mod-Shift-l",run:S4e},{key:"Mod-Alt-g",run:n4e},{key:"Mod-d",run:h4e,preventDefault:!0}];class C4e{constructor(e){this.view=e;let n=this.query=e.state.field(ju).query.spec;this.commit=this.commit.bind(this),this.searchField=Pn("input",{value:n.search,placeholder:ni(e,"Find"),"aria-label":ni(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Pn("input",{value:n.replace,placeholder:ni(e,"Replace"),"aria-label":ni(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Pn("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=Pn("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=Pn("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(a,s,o){return Pn("button",{class:"cm-button",name:a,onclick:s,type:"button"},o)}this.dom=Pn("div",{onkeydown:a=>this.keydown(a),class:"cm-search"},[this.searchField,r("next",()=>vk(e),[ni(e,"next")]),r("prev",()=>bk(e),[ni(e,"previous")]),r("select",()=>j4e(e),[ni(e,"all")]),Pn("label",null,[this.caseField,ni(e,"match case")]),Pn("label",null,[this.reField,ni(e,"regexp")]),Pn("label",null,[this.wordField,ni(e,"by word")]),...e.state.readOnly?[]:[Pn("br"),this.replaceField,r("replace",()=>_6(e),[ni(e,"replace")]),r("replaceAll",()=>_4e(e),[ni(e,"replace all")])],Pn("button",{name:"close",onclick:()=>xY(e),"aria-label":ni(e,"close"),type:"button"},["×"])])}commit(){let e=new fY({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:oy.of(e)}))}keydown(e){NTe(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?bk:vk)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),_6(this.view))}update(e){for(let n of e.transactions)for(let r of n.effects)r.is(oy)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet($m).top}}function ni(t,e){return t.state.phrase(e)}const Eb=30,Ab=/[\s\.,:;?!]/;function TP(t,{from:e,to:n}){let r=t.state.doc.lineAt(e),a=t.state.doc.lineAt(n).to,s=Math.max(r.from,e-Eb),o=Math.min(a,n+Eb),l=t.state.sliceDoc(s,o);if(s!=r.from){for(let c=0;cl.length-Eb;c--)if(!Ab.test(l[c-1])&&Ab.test(l[c])){l=l.slice(0,c);break}}return We.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${r.number}.`)}const E4e=We.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),A4e=[ju,Of.low(k4e),E4e];class yY{constructor(e,n,r,a){this.state=e,this.pos=n,this.explicit=r,this.view=a,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=rs(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),r=Math.max(n.from,this.pos-250),a=n.text.slice(r-n.from,this.pos-n.from),s=a.search(vY(e,!1));return s<0?null:{from:r+s,to:this.pos,text:a.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),r&&r.onDocChange&&(this.abortOnDocChange=!0))}}function N6(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function O4e(t){let e=Object.create(null),n=Object.create(null);for(let{label:a}of t){e[a[0]]=!0;for(let s=1;stypeof a=="string"?{label:a}:a),[n,r]=e.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:O4e(e);return a=>{let s=a.matchBefore(r);return s||a.explicit?{from:s?s.from:a.pos,options:e,validFor:n}:null}}class C6{constructor(e,n,r,a){this.completion=e,this.source=n,this.match=r,this.score=a}}function Gd(t){return t.selection.main.from}function vY(t,e){var n;let{source:r}=t,a=e&&r[0]!="^",s=r[r.length-1]!="$";return!a&&!s?t:new RegExp(`${a?"^":""}(?:${r})${s?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const bY=Ol.define();function P4e(t,e,n,r){let{main:a}=t.selection,s=n-a.from,o=r-a.from;return{...t.changeByRange(l=>{if(l!=a&&n!=r&&t.sliceDoc(l.from+s,l.from+o)!=t.sliceDoc(n,r))return{range:l};let c=t.toText(e);return{changes:{from:l.from+s,to:r==a.from?l.to:l.from+o,insert:c},range:Ee.cursor(l.from+s+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const E6=new WeakMap;function M4e(t){if(!Array.isArray(t))return t;let e=E6.get(t);return e||E6.set(t,e=T4e(t)),e}const wk=Ft.define(),ly=Ft.define();class R4e{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(_=XT(k))!=_.toLowerCase()?1:_!=_.toUpperCase()?2:0;(!v||S==1&&y||j==0&&S!=0)&&(n[f]==k||r[f]==k&&(h=!0)?o[f++]=v:o.length&&(b=!1)),j=S,v+=tl(k)}return f==c&&o[0]==0&&b?this.result(-100+(h?-200:0),o,e):p==c&&m==0?this.ret(-200-e.length+(x==e.length?0:-100),[0,x]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):p==c?this.ret(-900-e.length,[m,x]):f==c?this.result(-100+(h?-200:0)+-700+(b?0:-1100),o,e):n.length==2?null:this.result((a[0]?-700:0)+-200+-1100,a,e)}result(e,n,r){let a=[],s=0;for(let o of n){let l=o+(this.astral?tl(Ms(r,o)):1);s&&a[s-1]==o?a[s-1]=l:(a[s++]=o,a[s++]=l)}return this.ret(e-r.length,a)}}class D4e{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:I4e,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>r=>A6(e(r),n(r)),optionClass:(e,n)=>r=>A6(e(r),n(r)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function A6(t,e){return t?e?t+" "+e:t:e}function I4e(t,e,n,r,a,s){let o=t.textDirection==zn.RTL,l=o,c=!1,u="top",d,f,h=e.left-a.left,p=a.right-e.right,m=r.right-r.left,x=r.bottom-r.top;if(l&&h=x||v>e.top?d=n.bottom-e.top:(u="bottom",d=e.bottom-n.top)}let y=(e.bottom-e.top)/s.offsetHeight,b=(e.right-e.left)/s.offsetWidth;return{style:`${u}: ${d/y}px; max-width: ${f/b}px`,class:"cm-completionInfo-"+(c?o?"left-narrow":"right-narrow":l?"left":"right")}}const PP=Ft.define();function $4e(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let r=document.createElement("div");return r.classList.add("cm-completionIcon"),n.type&&r.classList.add(...n.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),r.setAttribute("aria-hidden","true"),r},position:20}),e.push({render(n,r,a,s){let o=document.createElement("span");o.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let u=0;uc&&o.appendChild(document.createTextNode(l.slice(c,d)));let h=o.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(l.slice(d,f))),h.className="cm-completionMatchedText",c=f}return cn.position-r.position).map(n=>n.render)}function U_(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let a=Math.floor(e/n);return{from:a*n,to:(a+1)*n}}let r=Math.floor((t-e)/n);return{from:t-(r+1)*n,to:t-r*n}}class L4e{constructor(e,n,r){this.view=e,this.stateField=n,this.applyCompletion=r,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let a=e.state.field(n),{options:s,selected:o}=a.open,l=e.state.facet(ba);this.optionContent=$4e(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=U_(s.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:u}=e.state.field(n).open;for(let d=c.target,f;d&&d!=this.dom;d=d.parentNode)if(d.nodeName=="LI"&&(f=/-(\d+)$/.exec(d.id))&&+f[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;d!=null&&(e.dispatch({effects:PP.of(d)}),c.preventDefault())}}),this.dom.addEventListener("focusout",c=>{let u=e.state.field(this.stateField,!1);u&&u.tooltip&&e.state.facet(ba).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:ly.of(null)})}),this.showOptions(s,a.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let r=e.state.field(this.stateField),a=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),r!=a){let{options:s,selected:o,disabled:l}=r.open;(!a.open||a.open.options!=s)&&(this.range=U_(s.length,o,e.state.facet(ba).maxRenderedOptions),this.showOptions(s,r.id)),this.updateSel(),l!=((n=a.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let r of this.currentClass.split(" "))r&&this.dom.classList.remove(r);for(let r of n.split(" "))r&&this.dom.classList.add(r);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected=this.range.to)&&(this.range=U_(n.options.length,n.selected,this.view.state.facet(ba).maxRenderedOptions),this.showOptions(n.options,e.id));let r=this.updateSelectedOption(n.selected);if(r){this.destroyInfo();let{completion:a}=n.options[n.selected],{info:s}=a;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(a);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,a)}).catch(l=>ps(this.view.state,l,"completion info")):(this.addInfoPane(o,a),r.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let r=this.info=document.createElement("div");if(r.className="cm-tooltip cm-completionInfo",r.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)r.appendChild(e),this.infoDestroy=null;else{let{dom:a,destroy:s}=e;r.appendChild(a),this.infoDestroy=s||null}this.dom.appendChild(r),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let r=this.list.firstChild,a=this.range.from;r;r=r.nextSibling,a++)r.nodeName!="LI"||!r.id?a--:a==e?r.hasAttribute("aria-selected")||(r.setAttribute("aria-selected","true"),n=r):r.hasAttribute("aria-selected")&&(r.removeAttribute("aria-selected"),r.removeAttribute("aria-describedby"));return n&&B4e(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),r=this.info.getBoundingClientRect(),a=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return a.top>Math.min(s.bottom,n.bottom)-10||a.bottom{o.target==a&&o.preventDefault()});let s=null;for(let o=r.from;or.from||r.from==0))if(s=h,typeof u!="string"&&u.header)a.appendChild(u.header(u));else{let p=a.appendChild(document.createElement("completion-section"));p.textContent=h}}const d=a.appendChild(document.createElement("li"));d.id=n+"-"+o,d.setAttribute("role","option");let f=this.optionClass(l);f&&(d.className=f);for(let h of this.optionContent){let p=h(l,this.view.state,this.view,c);p&&d.appendChild(p)}}return r.from&&a.classList.add("cm-completionListIncompleteTop"),r.tonew L4e(n,t,e)}function B4e(t,e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=n.height/t.offsetHeight;r.topn.bottom&&(t.scrollTop+=(r.bottom-n.bottom)/a)}function O6(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function z4e(t,e){let n=[],r=null,a=null,s=d=>{n.push(d);let{section:f}=d.completion;if(f){r||(r=[]);let h=typeof f=="string"?f:f.name;r.some(p=>p.name==h)||r.push(typeof f=="string"?{name:h}:f)}},o=e.facet(ba);for(let d of t)if(d.hasResult()){let f=d.result.getMatch;if(d.result.filter===!1)for(let h of d.result.options)s(new C6(h,d.source,f?f(h):[],1e9-n.length));else{let h=e.sliceDoc(d.from,d.to),p,m=o.filterStrict?new D4e(h):new R4e(h);for(let x of d.result.options)if(p=m.match(x.label)){let y=x.displayLabel?f?f(x,p.matched):[]:p.matched,b=p.score+(x.boost||0);if(s(new C6(x,d.source,y,b)),typeof x.section=="object"&&x.section.rank==="dynamic"){let{name:v}=x.section;a||(a=Object.create(null)),a[v]=Math.max(b,a[v]||-1e9)}}}}if(r){let d=Object.create(null),f=0,h=(p,m)=>(p.rank==="dynamic"&&m.rank==="dynamic"?a[m.name]-a[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof m.rank=="number"?m.rank:1e9)||(p.nameh.score-f.score||u(f.completion,h.completion))){let f=d.completion;!c||c.label!=f.label||c.detail!=f.detail||c.type!=null&&f.type!=null&&c.type!=f.type||c.apply!=f.apply||c.boost!=f.boost?l.push(d):O6(d.completion)>O6(c)&&(l[l.length-1]=d),c=d.completion}return l}class $h{constructor(e,n,r,a,s,o){this.options=e,this.attrs=n,this.tooltip=r,this.timestamp=a,this.selected=s,this.disabled=o}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new $h(this.options,T6(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,r,a,s,o){if(a&&!o&&e.some(u=>u.isPending))return a.setDisabled();let l=z4e(e,n);if(!l.length)return a&&e.some(u=>u.isPending)?a.setDisabled():null;let c=n.facet(ba).selectOnOpen?0:-1;if(a&&a.selected!=c&&a.selected!=-1){let u=a.options[a.selected].completion;for(let d=0;dd.hasResult()?Math.min(u,d.from):u,1e8),create:q4e,above:s.aboveCursor},a?a.timestamp:Date.now(),c,!1)}map(e){return new $h(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new $h(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class kk{constructor(e,n,r){this.active=e,this.id=n,this.open=r}static start(){return new kk(H4e,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,r=n.facet(ba),s=(r.override||n.languageDataAt("autocomplete",Gd(n)).map(M4e)).map(c=>(this.active.find(d=>d.source==c)||new Ui(c,this.active.some(d=>d.state!=0)?1:0)).update(e,r));s.length==this.active.length&&s.every((c,u)=>c==this.active[u])&&(s=this.active);let o=this.open,l=e.effects.some(c=>c.is(MP));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!U4e(s,this.active)||l?o=$h.build(s,n,this.id,o,r,l):o&&o.disabled&&!s.some(c=>c.isPending)&&(o=null),!o&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new Ui(c.source,0):c));for(let c of e.effects)c.is(PP)&&(o=o&&o.setSelected(c.value,this.id));return s==this.active&&o==this.open?this:new kk(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?V4e:W4e}}function U4e(t,e){if(t==e)return!0;for(let n=0,r=0;;){for(;n-1&&(n["aria-activedescendant"]=t+"-"+e),n}const H4e=[];function wY(t,e){if(t.isUserEvent("input.complete")){let r=t.annotation(bY);if(r&&e.activateOnCompletion(r))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class Ui{constructor(e,n,r=!1){this.source=e,this.state=n,this.explicit=r}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let r=wY(e,n),a=this;(r&8||r&16&&this.touches(e))&&(a=new Ui(a.source,0)),r&4&&a.state==0&&(a=new Ui(this.source,1)),a=a.updateFor(e,r);for(let s of e.effects)if(s.is(wk))a=new Ui(a.source,1,s.value);else if(s.is(ly))a=new Ui(a.source,0);else if(s.is(MP))for(let o of s.value)o.source==a.source&&(a=o);return a}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Gd(e.state))}}class rp extends Ui{constructor(e,n,r,a,s,o){super(e,3,n),this.limit=r,this.result=a,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,n){var r;if(!(n&3))return this.map(e.changes);let a=this.result;a.map&&!e.changes.empty&&(a=a.map(a,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=Gd(e.state);if(l>o||!a||n&2&&(Gd(e.startState)==this.from||ln.map(e))}}),Rs=as.define({create(){return kk.start()},update(t,e){return t.update(e)},provide:t=>[hP.from(t,e=>e.tooltip),We.contentAttributes.from(t,e=>e.attrs)]});function RP(t,e){const n=e.completion.apply||e.completion.label;let r=t.state.field(Rs).active.find(a=>a.source==e.source);return r instanceof rp?(typeof n=="string"?t.dispatch({...P4e(t.state,n,r.from,r.to),annotations:bY.of(e.completion)}):n(t,e.completion,r.from,r.to),!0):!1}const q4e=F4e(Rs,RP);function Ob(t,e="option"){return n=>{let r=n.state.field(Rs,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+a*(t?1:-1):t?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),n.dispatch({effects:PP.of(l)}),!0}}const K4e=t=>{let e=t.state.field(Rs,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Rs,!1)?(t.dispatch({effects:wk.of(!0)}),!0):!1,Y4e=t=>{let e=t.state.field(Rs,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:ly.of(null)}),!0)};class X4e{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const J4e=50,Z4e=1e3,Q4e=br.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Rs).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Rs),n=t.state.facet(ba);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Rs)==e)return;let r=t.transactions.some(s=>{let o=wY(s,n);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;sJ4e&&Date.now()-o.time>Z4e){for(let l of o.context.abortListeners)try{l()}catch(c){ps(this.view.state,c)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(s=>s.effects.some(o=>o.is(wk)))&&(this.pendingStart=!0);let a=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),a):-1,this.composing!=0)for(let s of t.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Rs);for(let n of e.active)n.isPending&&!this.running.some(r=>r.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(ba).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=Gd(e),r=new yY(e,n,t.explicit,this.view),a=new X4e(t,r);this.running.push(a),Promise.resolve(t.source(r)).then(s=>{a.context.aborted||(a.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:ly.of(null)}),ps(this.view.state,s)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(ba).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(ba),r=this.view.state.field(Rs);for(let a=0;al.source==s.active.source);if(o&&o.isPending)if(s.done==null){let l=new Ui(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||r.open&&r.open.disabled)&&this.view.dispatch({effects:MP.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Rs,!1);if(e&&e.tooltip&&this.view.state.facet(ba).closeOnBlur){let n=e.open&&Zq(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ly.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:wk.of(!1)}),20),this.composing=0}}}),eDe=typeof navigator=="object"&&/Win/.test(navigator.platform),tDe=Of.highest(We.domEventHandlers({keydown(t,e){let n=e.state.field(Rs,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(eDe&&t.altKey)||t.metaKey)return!1;let r=n.open.options[n.open.selected],a=n.active.find(o=>o.source==r.source),s=r.completion.commitCharacters||a.result.commitCharacters;return s&&s.indexOf(t.key)>-1&&RP(e,r),!1}})),nDe=We.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),cy={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Pd=Ft.define({map(t,e){let n=e.mapPos(t,-1,us.TrackAfter);return n??void 0}}),DP=new class extends Pu{};DP.startSide=1;DP.endSide=-1;const kY=as.define({create(){return Gt.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:r=>r>=n.from&&r<=n.to})}for(let n of e.effects)n.is(Pd)&&(t=t.update({add:[DP.range(n.value,n.value+1)]}));return t}});function rDe(){return[sDe,kY]}const V_="()[]{}<>«»»«[]{}";function jY(t){for(let e=0;e{if((aDe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let a=t.state.selection.main;if(r.length>2||r.length==2&&tl(Ms(r,0))==1||e!=a.from||n!=a.to)return!1;let s=lDe(t.state,r);return s?(t.dispatch(s),!0):!1}),iDe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let r=SY(t,t.selection.main.head).brackets||cy.brackets,a=null,s=t.changeByRange(o=>{if(o.empty){let l=cDe(t.doc,o.head);for(let c of r)if(c==l&&p2(t.doc,o.head)==jY(Ms(c,0)))return{changes:{from:o.head-c.length,to:o.head+c.length},range:Ee.cursor(o.head-c.length)}}return{range:a=o}});return a||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!a},oDe=[{key:"Backspace",run:iDe}];function lDe(t,e){let n=SY(t,t.selection.main.head),r=n.brackets||cy.brackets;for(let a of r){let s=jY(Ms(a,0));if(e==a)return s==a?fDe(t,a,r.indexOf(a+a+a)>-1,n):uDe(t,a,s,n.before||cy.before);if(e==s&&_Y(t,t.selection.main.from))return dDe(t,a,s)}return null}function _Y(t,e){let n=!1;return t.field(kY).between(0,t.doc.length,r=>{r==e&&(n=!0)}),n}function p2(t,e){let n=t.sliceString(e,e+2);return n.slice(0,tl(Ms(n,0)))}function cDe(t,e){let n=t.sliceString(e-2,e);return tl(Ms(n,0))==n.length?n:n.slice(1)}function uDe(t,e,n,r){let a=null,s=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:n,from:o.to}],effects:Pd.of(o.to+e.length),range:Ee.range(o.anchor+e.length,o.head+e.length)};let l=p2(t.doc,o.head);return!l||/\s/.test(l)||r.indexOf(l)>-1?{changes:{insert:e+n,from:o.head},effects:Pd.of(o.head+e.length),range:Ee.cursor(o.head+e.length)}:{range:a=o}});return a?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function dDe(t,e,n){let r=null,a=t.changeByRange(s=>s.empty&&p2(t.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:Ee.cursor(s.head+n.length)}:r={range:s});return r?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function fDe(t,e,n,r){let a=r.stringPrefixes||cy.stringPrefixes,s=null,o=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Pd.of(l.to+e.length),range:Ee.range(l.anchor+e.length,l.head+e.length)};let c=l.head,u=p2(t.doc,c),d;if(u==e){if(P6(t,c))return{changes:{insert:e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)};if(_Y(t,c)){let h=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+h.length,insert:h},range:Ee.cursor(c+h.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(d=M6(t,c-2*e.length,a))>-1&&P6(t,d))return{changes:{insert:e+e+e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)};if(t.charCategorizer(c)(u)!=pr.Word&&M6(t,c,a)>-1&&!hDe(t,c,e,a))return{changes:{insert:e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)}}return{range:s=l}});return s?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function P6(t,e){let n=rs(t).resolveInner(e+1);return n.parent&&n.from==e}function hDe(t,e,n,r){let a=rs(t).resolveInner(e,-1),s=r.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=t.sliceDoc(a.from,Math.min(a.to,a.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&r.indexOf(l.slice(0,c))>-1){let d=a.firstChild;for(;d&&d.from==a.from&&d.to-d.from>n.length+c;){if(t.sliceDoc(d.to-n.length,d.to)==n)return!1;d=d.firstChild}return!0}let u=a.to==e&&a.parent;if(!u)break;a=u}return!1}function M6(t,e,n){let r=t.charCategorizer(e);if(r(t.sliceDoc(e-1,e))!=pr.Word)return e;for(let a of n){let s=e-a.length;if(t.sliceDoc(s,e)==a&&r(t.sliceDoc(s-1,s))!=pr.Word)return s}return-1}function NY(t={}){return[tDe,Rs,ba.of(t),Q4e,pDe,nDe]}const CY=[{key:"Ctrl-Space",run:ap},{mac:"Alt-`",run:ap},{mac:"Alt-i",run:ap},{key:"Escape",run:Y4e},{key:"ArrowDown",run:Ob(!0)},{key:"ArrowUp",run:Ob(!1)},{key:"PageDown",run:Ob(!0,"page")},{key:"PageUp",run:Ob(!1,"page")},{key:"Enter",run:K4e}],pDe=Of.highest(s2.computeN([ba],t=>t.facet(ba).defaultKeymap?[CY]:[]));class R6{constructor(e,n,r){this.from=e,this.to=n,this.diagnostic=r}}class yd{constructor(e,n,r){this.diagnostics=e,this.panel=n,this.selected=r}static init(e,n,r){let a=r.facet(dl).markerFilter;a&&(e=a(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new xc,l=[],c=0,u=r.doc.iter(),d=0,f=r.doc.length;for(let p=0;;){let m=p==s.length?null:s[p];if(!m&&!l.length)break;let x,y;if(l.length)x=c,y=l.reduce((w,j)=>Math.min(w,j.to),m&&m.from>x?m.from:1e8);else{if(x=m.from,x>f)break;y=m.to,l.push(m),p++}for(;pw.from||w.to==x))l.push(w),p++,y=Math.min(w.to,y);else{y=Math.min(w.from,y);break}}y=Math.min(y,f);let b=!1;if(l.some(w=>w.from==x&&(w.to==y||y==f))&&(b=x==y,!b&&y-x<10)){let w=x-(d+u.value.length);w>0&&(u.next(w),d=x);for(let j=x;;){if(j>=y){b=!0;break}if(!u.lineBreak&&d+u.value.length>j)break;j=d+u.value.length,d+=u.value.length,u.next()}}let v=ODe(l);if(b)o.add(x,x,kt.widget({widget:new NDe(v),diagnostics:l.slice()}));else{let w=l.reduce((j,k)=>k.markClass?j+" "+k.markClass:j,"");o.add(x,y,kt.mark({class:"cm-lintRange cm-lintRange-"+v+w,diagnostics:l.slice(),inclusiveEnd:l.some(j=>j.to>y)}))}if(c=y,c==f)break;for(let w=0;w{if(!(e&&o.diagnostics.indexOf(e)<0))if(!r)r=new R6(a,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new R6(r.from,s,r.diagnostic)}}),r}function mDe(t,e){let n=e.pos,r=e.end||n,a=t.state.facet(dl).hideOn(t,n,r);if(a!=null)return a;let s=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(IP))||t.changes.touchesRange(s.from,Math.max(s.to,r)))}function EY(t,e){return t.field(hi,!1)?e:e.concat(Ft.appendConfig.of(MY))}function gDe(t,e){return{effects:EY(t,[IP.of(e)])}}const IP=Ft.define(),$P=Ft.define(),AY=Ft.define(),hi=as.define({create(){return new yd(kt.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),r=null,a=t.panel;if(t.selected){let s=e.changes.mapPos(t.selected.from,1);r=Lu(n,t.selected.diagnostic,s)||Lu(n,null,s)}!n.size&&a&&e.state.facet(dl).autoPanel&&(a=null),t=new yd(n,a,r)}for(let n of e.effects)if(n.is(IP)){let r=e.state.facet(dl).autoPanel?n.value.length?uy.open:null:t.panel;t=yd.init(n.value,r,e.state)}else n.is($P)?t=new yd(t.diagnostics,n.value?uy.open:null,t.selected):n.is(AY)&&(t=new yd(t.diagnostics,t.panel,n.value));return t},provide:t=>[ny.from(t,e=>e.panel),We.decorations.from(t,e=>e.diagnostics)]}),xDe=kt.mark({class:"cm-lintRange cm-lintRange-active"});function yDe(t,e,n){let{diagnostics:r}=t.state.field(hi),a,s=-1,o=-1;r.between(e-(n<0?1:0),e+(n>0?1:0),(c,u,{spec:d})=>{if(e>=c&&e<=u&&(c==u||(e>c||n>0)&&(ePY(t,n,!1)))}const bDe=t=>{let e=t.state.field(hi,!1);(!e||!e.panel)&&t.dispatch({effects:EY(t.state,[$P.of(!0)])});let n=pP(t,uy.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},D6=t=>{let e=t.state.field(hi,!1);return!e||!e.panel?!1:(t.dispatch({effects:$P.of(!1)}),!0)},wDe=t=>{let e=t.state.field(hi,!1);if(!e)return!1;let n=t.state.selection.main,r=Lu(e.diagnostics,null,n.to+1);return!r&&(r=Lu(e.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(t.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},kDe=[{key:"Mod-Shift-m",run:bDe,preventDefault:!0},{key:"F8",run:wDe}],OY=br.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(dl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(r(this.view))),r=>{this.view.state.doc==e.doc&&this.view.dispatch(gDe(this.view.state,r.reduce((a,s)=>a.concat(s))))},r=>{ps(this.view.state,r)})}}update(t){let e=t.state.facet(dl);(t.docChanged||e!=t.startState.facet(dl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function jDe(t,e,n){let r=[],a=-1;for(let s of t)s.then(o=>{r.push(o),clearTimeout(a),r.length==t.length?e(r):a=setTimeout(()=>e(r),200)},n)}const dl=Qe.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...Tl(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:I6,tooltipFilter:I6,needsRefresh:(e,n)=>e?n?r=>e(r)||n(r):e:n,hideOn:(e,n)=>e?n?(r,a,s)=>e(r,a,s)||n(r,a,s):e:n,autoPanel:(e,n)=>e||n})}}});function I6(t,e){return t?e?(n,r)=>e(t(n,r),r):t:e}function SDe(t,e={}){return[dl.of({source:t,config:e}),OY,MY]}function _De(t){let e=t.plugin(OY);e&&e.force()}function TY(t){let e=[];if(t)e:for(let{name:n}of t){for(let r=0;rs.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function PY(t,e,n){var r;let a=n?TY(e.actions):[];return Pn("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Pn("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(r=e.actions)===null||r===void 0?void 0:r.map((s,o)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=Lu(t.state.field(hi).diagnostics,e);m&&s.apply(t,m.from,m.to)},{name:u}=s,d=a[o]?u.indexOf(a[o]):-1,f=d<0?u:[u.slice(0,d),Pn("u",u.slice(d,d+1)),u.slice(d+1)],h=s.markClass?" "+s.markClass:"";return Pn("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${a[o]})"`}.`},f)}),e.source&&Pn("div",{class:"cm-diagnosticSource"},e.source))}class NDe extends Pl{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Pn("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class $6{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=PY(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class uy{constructor(e){this.view=e,this.items=[];let n=a=>{if(!(a.ctrlKey||a.altKey||a.metaKey)){if(a.keyCode==27)D6(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=TY(s.actions);for(let l=0;l{for(let s=0;sD6(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(hi).selected;if(!e)return-1;for(let n=0;n{for(let d of u.diagnostics){if(o.has(d))continue;o.add(d);let f=-1,h;for(let p=r;pr&&(this.items.splice(r,f-r),a=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),s=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.topc.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function n(){let r=e;e=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;e!=r.dom;)n();e=r.dom.nextSibling}else this.list.insertBefore(r.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(hi),r=Lu(n.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:AY.of(r)})}static open(e){return new uy(e)}}function CDe(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Tb(t){return CDe(``,'width="6" height="3"')}const EDe=We.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Tb("#d11")},".cm-lintRange-warning":{backgroundImage:Tb("orange")},".cm-lintRange-info":{backgroundImage:Tb("#999")},".cm-lintRange-hint":{backgroundImage:Tb("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function ADe(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function ODe(t){let e="hint",n=1;for(let r of t){let a=ADe(r.severity);a>n&&(n=a,e=r.severity)}return e}const MY=[hi,We.decorations.compute([hi],t=>{let{selected:e,panel:n}=t.field(hi);return!e||!n||e.from==e.to?kt.none:kt.set([xDe.range(e.from,e.to)])}),hPe(yDe,{hideOn:mDe}),EDe];var L6=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(oDe)),e.defaultKeymap!==!1&&(r=r.concat(QRe)),e.searchKeymap!==!1&&(r=r.concat(N4e)),e.historyKeymap!==!1&&(r=r.concat(iRe)),e.foldKeymap!==!1&&(r=r.concat(gMe)),e.completionKeymap!==!1&&(r=r.concat(CY)),e.lintKeymap!==!1&&(r=r.concat(kDe));var a=[];return e.lineNumbers!==!1&&a.push(NPe()),e.highlightActiveLineGutter!==!1&&a.push(APe()),e.highlightSpecialChars!==!1&&a.push(VTe()),e.history!==!1&&a.push(JMe()),e.foldGutter!==!1&&a.push(bMe()),e.drawSelection!==!1&&a.push(PTe()),e.dropCursor!==!1&&a.push($Te()),e.allowMultipleSelections!==!1&&a.push(rn.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(iMe()),e.syntaxHighlighting!==!1&&a.push(wP(SMe,{fallback:!0})),e.bracketMatching!==!1&&a.push(TMe()),e.closeBrackets!==!1&&a.push(rDe()),e.autocompletion!==!1&&a.push(NY()),e.rectangularSelection!==!1&&a.push(nPe()),n!==!1&&a.push(sPe()),e.highlightActiveLine!==!1&&a.push(YTe()),e.highlightSelectionMatches!==!1&&a.push(s4e()),e.tabSize&&typeof e.tabSize=="number"&&a.push(o2.of(" ".repeat(e.tabSize))),a.concat([s2.of(r.flat())]).filter(Boolean)};const TDe="#e5c07b",F6="#e06c75",PDe="#56b6c2",MDe="#ffffff",x1="#abb2bf",O5="#7d8799",RDe="#61afef",DDe="#98c379",B6="#d19a66",IDe="#c678dd",$De="#21252b",z6="#2c313a",U6="#282c34",W_="#353a42",LDe="#3E4451",V6="#528bff",FDe=We.theme({"&":{color:x1,backgroundColor:U6},".cm-content":{caretColor:V6},".cm-cursor, .cm-dropCursor":{borderLeftColor:V6},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:LDe},".cm-panels":{backgroundColor:$De,color:x1},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:U6,color:O5,border:"none"},".cm-activeLineGutter":{backgroundColor:z6},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:W_},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:W_,borderBottomColor:W_},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:z6,color:x1}}},{dark:!0}),BDe=Dm.define([{tag:oe.keyword,color:IDe},{tag:[oe.name,oe.deleted,oe.character,oe.propertyName,oe.macroName],color:F6},{tag:[oe.function(oe.variableName),oe.labelName],color:RDe},{tag:[oe.color,oe.constant(oe.name),oe.standard(oe.name)],color:B6},{tag:[oe.definition(oe.name),oe.separator],color:x1},{tag:[oe.typeName,oe.className,oe.number,oe.changed,oe.annotation,oe.modifier,oe.self,oe.namespace],color:TDe},{tag:[oe.operator,oe.operatorKeyword,oe.url,oe.escape,oe.regexp,oe.link,oe.special(oe.string)],color:PDe},{tag:[oe.meta,oe.comment],color:O5},{tag:oe.strong,fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.link,color:O5,textDecoration:"underline"},{tag:oe.heading,fontWeight:"bold",color:F6},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:B6},{tag:[oe.processingInstruction,oe.string,oe.inserted],color:DDe},{tag:oe.invalid,color:MDe}]),zDe=[FDe,wP(BDe)];var UDe=We.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),VDe=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:r=!0,readOnly:a=!1,theme:s="light",placeholder:o="",basicSetup:l=!0}=e,c=[];switch(n&&c.unshift(s2.of([e4e])),l&&(typeof l=="boolean"?c.unshift(L6()):c.unshift(L6(l))),o&&c.unshift(Xq(o)),s){case"light":c.push(UDe);break;case"dark":c.push(zDe);break;case"none":break;default:c.push(s);break}return r===!1&&c.push(We.editable.of(!1)),a&&c.push(rn.readOnly.of(!0)),[...c]},WDe=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)});class HDe{constructor(e,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class W6{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var H_=null,GDe=()=>typeof window>"u"?new W6:(H_||(H_=new W6),H_),H6=Ol.define(),qDe=200,KDe=[];function YDe(t){var{value:e,selection:n,onChange:r,onStatistics:a,onCreateEditor:s,onUpdate:o,extensions:l=KDe,autoFocus:c,theme:u="light",height:d=null,minHeight:f=null,maxHeight:h=null,width:p=null,minWidth:m=null,maxWidth:x=null,placeholder:y="",editable:b=!0,readOnly:v=!1,indentWithTab:w=!0,basicSetup:j=!0,root:k,initialState:_}=t,[S,N]=g.useState(),[E,P]=g.useState(),[M,A]=g.useState(),O=g.useState(()=>({current:null}))[0],D=g.useState(()=>({current:null}))[0],I=We.theme({"&":{height:d,minHeight:f,maxHeight:h,width:p,minWidth:m,maxWidth:x},"& .cm-scroller":{height:"100% !important"}}),X=We.updateListener.of(Y=>{if(Y.docChanged&&typeof r=="function"&&!Y.transactions.some($=>$.annotation(H6))){O.current?O.current.reset():(O.current=new HDe(()=>{if(D.current){var $=D.current;D.current=null,$()}O.current=null},qDe),GDe().add(O.current));var H=Y.state.doc,G=H.toString();r(G,Y)}a&&a(WDe(Y))}),Q=VDe({theme:u,editable:b,readOnly:v,placeholder:y,indentWithTab:w,basicSetup:j}),V=[X,I,...Q];return o&&typeof o=="function"&&V.push(We.updateListener.of(o)),V=V.concat(l),g.useLayoutEffect(()=>{if(S&&!M){var Y={doc:e,selection:n,extensions:V},H=_?rn.fromJSON(_.json,Y,_.fields):rn.create(Y);if(A(H),!E){var G=new We({state:H,parent:S,root:k});P(G),s&&s(G,H)}}return()=>{E&&(A(void 0),P(void 0))}},[S,M]),g.useEffect(()=>{t.container&&N(t.container)},[t.container]),g.useEffect(()=>()=>{E&&(E.destroy(),P(void 0)),O.current&&(O.current.cancel(),O.current=null)},[E]),g.useEffect(()=>{c&&E&&E.focus()},[c,E]),g.useEffect(()=>{E&&E.dispatch({effects:Ft.reconfigure.of(V)})},[u,l,d,f,h,p,m,x,y,b,v,w,j,r,o]),g.useEffect(()=>{if(e!==void 0){var Y=E?E.state.doc.toString():"";if(E&&e!==Y){var H=O.current&&!O.current.isDone,G=()=>{E&&e!==E.state.doc.toString()&&E.dispatch({changes:{from:0,to:E.state.doc.toString().length,insert:e||""},annotations:[H6.of(!0)]})};H?D.current=G:G()}}},[e,E]),{state:M,setState:A,view:E,setView:P,container:S,setContainer:N}}var XDe=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],RY=g.forwardRef((t,e)=>{var{className:n,value:r="",selection:a,extensions:s=[],onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,autoFocus:d,theme:f="light",height:h,minHeight:p,maxHeight:m,width:x,minWidth:y,maxWidth:b,basicSetup:v,placeholder:w,indentWithTab:j,editable:k,readOnly:_,root:S,initialState:N}=t,E=ike(t,XDe),P=g.useRef(null),{state:M,view:A,container:O,setContainer:D}=YDe({root:S,value:r,autoFocus:d,theme:f,height:h,minHeight:p,maxHeight:m,width:x,minWidth:y,maxWidth:b,basicSetup:v,placeholder:w,indentWithTab:j,editable:k,readOnly:_,selection:a,onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,extensions:s,initialState:N});g.useImperativeHandle(e,()=>({editor:P.current,state:M,view:A}),[P,O,M,A]);var I=g.useCallback(Q=>{P.current=Q,D(Q)},[D]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var X=typeof f=="string"?"cm-theme-"+f:"cm-theme";return i.jsx("div",T0({ref:I,className:""+X+(n?" "+n:"")},E))});RY.displayName="CodeMirror";var DY=t=>{var{theme:e,settings:n={},styles:r=[]}=t,a={".cm-gutters":{}},s={};n.background&&(s.backgroundColor=n.background),n.backgroundImage&&(s.backgroundImage=n.backgroundImage),n.foreground&&(s.color=n.foreground),n.fontSize&&(s.fontSize=n.fontSize),(n.background||n.foreground)&&(a["&"]=s),n.fontFamily&&(a["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(a[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(a[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(a[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(a[".cm-content"]={caretColor:n.caret},a[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var o={};n.gutterActiveForeground&&(o.color=n.gutterActiveForeground),n.lineHighlight&&(a[".cm-activeLine"]={backgroundColor:n.lineHighlight},o.backgroundColor=n.lineHighlight),a[".cm-activeLineGutter"]=o,n.selection&&(a["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:n.selection+" !important"}),n.selectionMatch&&(a["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var l=We.theme(a,{dark:e==="dark"}),c=Dm.define(r),u=[l,wP(c)];return u},JDe={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},ZDe=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#116329"},{tag:[oe.comment,oe.bracket],color:"#6a737d"},{tag:[oe.className,oe.propertyName],color:"#6f42c1"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#005cc5"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#d73a49"},{tag:[oe.string,oe.meta,oe.regexp],color:"#032f62"},{tag:[oe.name,oe.quote],color:"#22863a"},{tag:[oe.heading,oe.strong],color:"#24292e",fontWeight:"bold"},{tag:[oe.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[oe.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#e36209"},{tag:[oe.url,oe.escape,oe.regexp,oe.link],color:"#032f62"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#cb2431"}],IY=t=>{var{theme:e="light",settings:n={},styles:r=[]}=t||{};return DY({theme:e,settings:T0({},JDe,n),styles:[...ZDe,...r]})};IY();var QDe={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},eIe=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#7ee787"},{tag:[oe.comment,oe.bracket],color:"#8b949e"},{tag:[oe.className,oe.propertyName],color:"#d2a8ff"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#79c0ff"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#ff7b72"},{tag:[oe.string,oe.meta,oe.regexp],color:"#a5d6ff"},{tag:[oe.name,oe.quote],color:"#7ee787"},{tag:[oe.heading,oe.strong],color:"#d2a8ff",fontWeight:"bold"},{tag:[oe.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[oe.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#ffab70"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#f97583"}],$Y=t=>{var{theme:e="dark",settings:n={},styles:r=[]}=t||{};return DY({theme:e,settings:T0({},QDe,n),styles:[...eIe,...r]})};$Y();const tIe=["absa_sanlam","aci","adyen","adyenplatform","affirm","airwallex","amazonpay","archipel","authipay","authorizedotnet","bambora","bamboraapac","bankofamerica","barclaycard","billwerk","bitpay","blackhawknetwork","bluesnap","boku","braintree","breadpay","calida","cardinal","cashtocode","celero","chargebee","checkbook","checkout","coinbase","coingate","cryptopay","ctp_mastercard","ctp_visa","custombilling","cybersource","cybersourcedecisionmanager","datatrans","deutschebank","digitalvirgo","dlocal","dwolla","ebanx","elavon","envoy","facilitapay","finix","fiserv","fiservcommercehub","fiservemea","fiuu","flexiti","forte","getnet","gigadat","givepayments","globalpay","globepay","gocardless","helcim","hipay","hyperpg","iatapay","imerchantsolutions","inespay","interpayments","itaubank","jpmorgan","juspaythreedsserver","klarna","loonio","mifinity","mollie","moneris","multisafepay","netcetera","nexinets","nexixpay","nmi","nomupay","noon","nordea","novalnet","nuvei","opennode","paybox","payconex","payjustnow","payjustnowinstore","payload","payme","payone","paypal","paysafe","paystack","paytm","payu","peachpayments","phonepe","placetopay","plaid","powertranz","prophetpay","rapyd","razorpay","recurly","redsys","revolv3","riskified","santander","shift4","signifyd","silverflow","square","stax","stripe","stripebilling","tesouro","threedsecureio","tokenio","truelayer","trustly","trustpay","trustpayments","tsys","tsys_transit","vgs","volt","wellsfargo","wise","worldline","worldpay","worldpaymodular","worldpayvantiv","worldpayxml","xendit","zen","zift","zsl"];function am(t,e=[],n=[]){const r=new Set(e.filter(Boolean)),a=kAe();if(a){const o=new Set(n.filter(Boolean));return a.filter(l=>!o.has(l.merchant_connector_id)).map(l=>({name:l.connector_name,gatewayId:l.merchant_connector_id}))}const s=new Set;return[...t,...tIe].filter(o=>!o||r.has(o)||s.has(o)?!1:(s.add(o),!0)).map(o=>({name:o}))}function T5(t,e){const n=t.toLowerCase(),r=e.toLowerCase();if(!n)return 0;if(r.startsWith(n))return 1e3-r.length;let a=0,s=0,o=-1,l=0;for(let c=0;c({item:n,score:T5(t,n)})).filter(n=>n.score!==null).sort((n,r)=>r.score-n.score).map(n=>n.item):e}const nIe={"==":"=","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in",not_in:"not in"},rIe={"=":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in","not in":"not_in"};function ix(t){return Array.isArray(t.value)?`${t.lhs} in [${t.value.join(", ")}]`:`${t.metadataKey?`${t.lhs}.${t.metadataKey}`:t.lhs} ${nIe[t.operator]??t.operator} ${t.value}`}function G6(t){const e=t.conditions.map(ix).join(" and ");return t.conditions.length>1?`(${e})`:e}function aIe(t){const e=[];if(t.conditions.length===0&&t.nested.length>0){const n=t.nested[0].conditions;e.push(n.length>1?`(${n.map(ix).join(" and ")})`:n.length===1?ix(n[0]):"");const r=t.nested.slice(1);return r.length>0&&e.push(`and (${r.map(G6).join(" or ")})`),e.filter(Boolean)}return t.conditions.forEach((n,r)=>e.push(r===0?ix(n):`and ${ix(n)}`)),t.nested.length>0&&e.push(`and (${t.nested.map(G6).join(" or ")})`),e}function sIe(t){return t.map(e=>{const n=[];if(e.statements.forEach((r,a)=>{a>0&&n.push("or"),aIe(r).forEach(s=>n.push(s))}),e.outputType==="priority"){const r=e.priorityGateways.map(a=>a.gatewayId?`${a.gatewayName}(${a.gatewayId})`:a.gatewayName).join(", ");n.push(`=> priority: ${r}`)}else if(e.outputType==="volume_split"){const r=e.volumeSplitEntries.map(a=>`${a.split}% ${a.gatewayName}${a.gatewayId?`(${a.gatewayId})`:""}`).join(", ");n.push(`=> volume_split: ${r}`)}else{const r=e.volumeSplitPriorityEntries.map(a=>`${a.split}% [${a.gateways.map(s=>s.gatewayId?`${s.gatewayName}(${s.gatewayId})`:s.gatewayName).join(", ")}]`).join(", ");n.push(`=> volume_split_priority: ${r}`)}return n.join(` +`)}).join(` + +`)}class Md extends Error{}function G_(t){if(t=t.trim(),!t)return null;const e=/^(\w+)\s+in\s+\[([^\]]*)\]$/.exec(t);if(e){const a=e[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Md(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:e[1],operator:"in",value:a}}const n=/^(\w+)\s+not\s+in\s+\[([^\]]*)\]$/.exec(t);if(n){const a=n[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Md(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:n[1],operator:"not_in",value:a}}const r=/^([\w.]+)\s*(>=|<=|!=|>|<|=)\s*(.+)$/.exec(t);if(r){const a=r[3].trim();if(!a)throw new Md(`Empty value in condition: "${t}"`);const s=r[1],o=s.indexOf("."),l=o>=0?s.slice(0,o):s,c=o>=0?s.slice(o+1):void 0;return{id:crypto.randomUUID(),lhs:l,operator:rIe[r[2]]??r[2],value:a,metadataKey:c}}throw new Md(`Invalid condition syntax: "${t}"`)}function q_(t,e){const n=[];let r=0,a=0;for(let s=0;s0)continue;const o=e.exec(t.slice(s));o&&o.index===0&&(n.push(t.slice(a,s).trim()),s+=o[0].length-1,a=s+1)}return n.push(t.slice(a).trim()),n.filter(Boolean)}function K_(t){return t=t.trim(),t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1).trim():t}function iIe(t){const e=[],n=[];for(const r of t.split(` +`)){const a=r.trim();if(!a||a.startsWith("#"))continue;const s=a.replace(/^(?:and|or)\s+/i,"").trim();if(s.startsWith("(")&&s.endsWith(")"))if(e.length===0&&n.length===0)for(const o of q_(s.slice(1,-1),/^\s+and\s+/i))try{const l=G_(K_(o));l&&e.push(l)}catch(l){if(l instanceof Md)return{group:null,error:l.message};throw l}else for(const o of q_(s.slice(1,-1),/^\s+or\s+/i)){const l=[];for(const c of q_(K_(o),/^\s+and\s+/i))try{const u=G_(K_(c));u&&l.push(u)}catch(u){if(u instanceof Md)return{group:null,error:u.message};throw u}l.length&&n.push({id:crypto.randomUUID(),conditions:l,nested:[]})}else try{const o=G_(s);o&&e.push(o)}catch(o){if(o instanceof Md)return{group:null,error:o.message};throw o}}return{group:{id:crypto.randomUUID(),conditions:e,nested:n},error:null}}function oIe(t){let e=!0;for(const n of t.split(` +`)){const r=n.trim();if(!(!r||r.startsWith("#"))){if(/^or$/i.test(r)){e=!0;continue}if(!/^and$/i.test(r)){if(e){e=!1;continue}if(!/^(?:and|or)\s+/i.test(r))return`Missing 'and' or 'or' before: "${r.length>40?r.slice(0,40)+"…":r}"`}}}return null}function lIe(t){const e=[];let n=0,r=0,a="";for(let s=0;s0)continue;const o=/^(\s+)(and|or)(\s+)/i.exec(t.slice(s));o&&(e.push({sep:a,text:t.slice(r,s).trim()}),a=o[2].toLowerCase(),s+=o[0].length-1,r=s+1)}return e.push({sep:a,text:t.slice(r).trim()}),e.filter(s=>s.text)}function cIe(t){return t.split(` +`).flatMap(e=>{const n=e.trim();if(!n||n.startsWith("#")||/^=>/.test(n)||/^(?:and|or)(?:\s|$)/i.test(n))return[e];const r=lIe(n);return r.length<=1?[e]:r.map((a,s)=>s===0?a.text:`${a.sep} ${a.text}`)}).join(` +`)}function uIe(t){const e=[],n=t.split(/\n\s*\n/).map(r=>r.trim()).filter(Boolean);for(let r=0;r");if(s===-1)continue;const o=cIe(a.slice(0,s).trim()),l=oIe(o);if(l)return{rules:null,error:`Rule ${r+1}: ${l}`};const c=a.slice(s+2).trim();let u="priority",d=[],f=[];const h=[];if(c.startsWith("priority:")){u="priority";const x=c.slice(9).trim();d=x?x.split(",").flatMap(y=>{const b=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(y.trim());return b&&b[1]?[{id:crypto.randomUUID(),gatewayName:b[1],gatewayId:b[2]??""}]:[]}):[]}else if(c.startsWith("volume_split:")){u="volume_split";const x=c.slice(13).trim();f=x?x.split(",").flatMap(y=>{const b=/^(\d+)%\s+([^\s(]+)(?:\(([^)]*)\))?$/.exec(y.trim());return b?[{id:crypto.randomUUID(),split:Number(b[1]),gatewayName:b[2],gatewayId:b[3]??""}]:[]}):[]}else if(c.startsWith("volume_split_priority:")){u="volume_split_priority";const x=c.slice(22).trim(),y=/(\d+)%\s*\[([^\]]*)\]/g;let b;for(;(b=y.exec(x))!==null;){const v=b[2].split(",").map(w=>w.trim()).filter(Boolean).map(w=>{const j=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(w);return{id:crypto.randomUUID(),gatewayName:(j==null?void 0:j[1])??w,gatewayId:(j==null?void 0:j[2])??""}});h.push({id:crypto.randomUUID(),split:Number(b[1]),gateways:v})}}else return{rules:null,error:`Rule ${r+1}: output must start with priority:, volume_split:, or volume_split_priority:`};if(u==="priority"&&d.length===0)return{rules:null,error:`Rule ${r+1}: priority output must have at least one gateway`};if(u==="volume_split"&&f.length===0)return{rules:null,error:`Rule ${r+1}: volume_split output must have at least one gateway`};if(u==="volume_split_priority"&&h.length===0)return{rules:null,error:`Rule ${r+1}: volume_split_priority output must have at least one gateway`};const p=o.replace(/^([ \t]*)or\s+(?=\S)/gim,`$1or +$1`),m=[];for(const x of p.split(/^[ \t]*or[ \t]*$/im)){const{group:y,error:b}=iIe(x.trim());if(b)return{rules:null,error:`Rule ${r+1}: ${b}`};y&&(y.conditions.length>0||y.nested.length>0)&&m.push(y)}m.length||m.push({id:crypto.randomUUID(),conditions:[],nested:[]}),e.push({id:crypto.randomUUID(),name:`Rule ${e.length+1}`,statements:m,outputType:u,priorityGateways:d,volumeSplitEntries:f,volumeSplitPriorityEntries:h})}return{rules:e,error:null}}const LY=`currency in [EUR, GBP] +and amount > 100 +and (payment_method = card or card_type = credit) +=> priority: adyen + +currency = USD +=> volume_split: 70% stripe, 30% adyen`,dIe=kP.define({startState:()=>({}),token(t){return t.eatSpace()?null:t.match(/^#.*/)?"comment":t.match("=>")?"meta":t.match(/^(?:and|or|not)\b/i)||t.match(/^in\b/i)?"keyword":t.match(/^(?:volume_split_priority|volume_split|priority)(?=\s*:)/)?"typeName":t.match(/^(?:!=|>=|<=|>|<|=)/)?"operator":t.match(/^\d+/)?"number":t.match(/^[[\]%,:]/)?"punctuation":t.match(/^\w+/)?"variableName":(t.next(),null)}}),FY=t=>[{tag:oe.keyword,color:t?"#a78bfa":"#7c3aed",fontWeight:"600"},{tag:oe.meta,color:t?"#fbbf24":"#d97706",fontWeight:"700"},{tag:oe.typeName,color:t?"#34d399":"#059669",fontWeight:"600"},{tag:oe.operator,color:t?"#60a5fa":"#2563eb"},{tag:oe.number,color:t?"#fbbf24":"#b45309"},{tag:oe.punctuation,color:"#64748b"},{tag:oe.comment,color:t?"#4e5870":"#94a3b8",fontStyle:"italic"},{tag:oe.variableName,color:t?"#cbd5e1":"#1e293b"}],fIe=IY({styles:FY(!1)}),hIe=$Y({styles:FY(!0)}),pIe=/\w+\s+(?:(?:in|not\s+in)\s*\[[^\]]+\]|(?:=|!=|>=|<=|>|<)\s+\S+)\s*$/;function mIe(t,e,n,r){var m,x,y;const a=t.slice(0,e).split(` +`),s=a[a.length-1],o=a.length>=2?a[a.length-2].trim():"";if(!s.trim())return pIe.test(o)||/^or$/i.test(o)?["and","and (","or","or (","=>"]:[];const l=s.includes("]")?s.slice(s.lastIndexOf("]")+1):s;if(s.includes("]")&&!l.trim())return["and","and (","or","or (","=>"];const c=l.trimStart().replace(/^(?:and|or)\s+/i,"").replace(/^\(/,"");if(!c)return Object.keys(n).slice(0,12);if(/\)\s*$/.test(c))return["and","or","or (","=>"];const u=/=>\s*(\w*)$/.exec(s);if(u){const b=r[0]??"gateway_name",v=r[1]??"gateway_name",w=[`priority: ${b}`,`volume_split: 70% ${b}, 30% ${v}`];return u[1]?w.sort((j,k)=>(T5(u[1],k)??-1/0)-(T5(u[1],j)??-1/0)):w}if(/=>\s*(?:priority|volume_split(?:_priority)?):/.test(s)){const b=/(\w*)$/.exec(s);return Pg((b==null?void 0:b[1])??"",am(r).map(v=>v.name)).slice(0,10)}const d=/(\w+)\s+(?:in|not\s+in)\s*\[(?:[^\]]*,\s*)?(\w*)$/.exec(c);if(d){const b=((m=n[d[1]])==null?void 0:m.values)??[],v=/\[([^\]]*)$/.exec(c),w=v?v[1].split(",").map(j=>j.trim()).filter(Boolean):[];return Pg(d[2],b.filter(j=>!w.includes(j))).slice(0,12)}const f=/(\w+)\s+(?:>=|<=|!=|>|<|=)\s*(\w*)$/.exec(c);if(f)return Pg(f[2],((x=n[f[1]])==null?void 0:x.values)??[]).slice(0,12);const h=/^(\w+)\s+(\w*)$/.exec(c);if(h&&n[h[1]]){const v=((y=n[h[1]])==null?void 0:y.type)==="integer"?["=","!=",">","<",">=","<="]:["=","!=","in [","not in ["];return Pg(h[2],v)}if(/\)\s*$/.test(c))return["and","or","or (","=>"];const p=/(\w+)$/.exec(c);return p&&p[1].length>=1?Pg(p[1],["and","and (","or","or (","=>",...Object.keys(n)]).slice(0,12):[]}function gIe(t,e){return n=>{const r=n.state.doc.toString(),a=n.pos,s=mIe(r,a,t.current??{},e.current??[]);if(!s.length)return null;const o=r.slice(0,a),l=/(\w+)$/.exec(o);return{from:l?a-l[0].length:a,options:s.map(u=>({label:u,apply(d,f,h,p){const m=d.state.doc.toString(),x=m.slice(p),y=/^\w+/.exec(x);let b=y?p+y[0].length:p;u.includes(":")&&(b=d.state.doc.lineAt(p).to);const v=m.slice(b);let w,j;if(u.endsWith("["))w=u+"]",j=h+u.length;else if(u.endsWith("("))w=u+")",j=h+u.length;else{const k=!u.endsWith(":")&&!/^\s/.test(v);w=u+(k?" ":""),j=h+w.length}d.dispatch({changes:{from:h,to:b,insert:w},selection:{anchor:j}}),setTimeout(()=>ap(d),0)}})),validFor:/^\w*$/}}}function xIe(t){return SDe(e=>{var u;const n=t.current;if(!n)return[];const r=e.state.doc.toString(),a=/Rule (\d+)/.exec(n),s=a?parseInt(a[1],10)-1:0,o=r.split(/\n\s*\n/);let l=0;for(let d=0;d ul":{maxHeight:"220px",borderRadius:"8px",overflowY:"auto"},".cm-tooltip.cm-tooltip-autocomplete > ul > li":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",padding:"4px 12px"},".cm-diagnostic":{padding:"2px 4px",borderRadius:"3px"}});function vIe({value:t,onChange:e,parseError:n,routingKeys:r,gatewaySuggestions:a}){const[s,o]=g.useState(()=>document.documentElement.classList.contains("dark")),l=g.useRef(r),c=g.useRef(a),u=g.useRef(n),d=g.useRef(null);g.useEffect(()=>{l.current=r},[r]),g.useEffect(()=>{c.current=a},[a]),g.useEffect(()=>{u.current=n,d.current&&_De(d.current)},[n]),g.useEffect(()=>{const p=new MutationObserver(()=>o(document.documentElement.classList.contains("dark")));return p.observe(document.documentElement,{attributeFilter:["class"]}),()=>p.disconnect()},[]);const h=g.useMemo(()=>[dIe,Xq(LY),NY({override:[gIe(l,c)],activateOnTyping:!0,closeOnBlur:!0}),xIe(u),We.lineWrapping,yIe,We.domEventHandlers({click:(p,m)=>(ap(m),!1)}),We.updateListener.of(p=>{if(p.docChanged)for(const m of p.transactions)m.changes.iterChanges((x,y,b,v,w)=>{const j=w.toString();(j===" "||j===` +`)&&ap(p.view)})})],[]);return i.jsxs("div",{children:[i.jsx(RY,{value:t,onChange:p=>e(p),onCreateEditor:p=>{d.current=p},theme:s?hIe:fIe,extensions:h,basicSetup:{lineNumbers:!1,foldGutter:!1,autocompletion:!1,highlightActiveLine:!1,highlightSelectionMatches:!1,closeBrackets:!0,bracketMatching:!0,indentOnInput:!1,searchKeymap:!1},className:`rounded-xl border overflow-hidden ${n?"border-red-400 dark:border-red-500":"border-slate-200 dark:border-[#222226]"}`}),n?i.jsx("p",{className:"mt-1.5 text-xs text-red-600 font-medium",children:n}):i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:["Tab / Enter to complete · ↑↓ navigate · ",i.jsx("code",{className:"font-mono",children:"or"})," on its own line starts an OR group"]})]})}function bIe(){for(var t=arguments.length,e=new Array(t),n=0;nr=>{e.forEach(a=>a(r))},e)}const m2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Lm(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function LP(t){return"nodeType"in t}function Js(t){var e,n;return t?Lm(t)?t:LP(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function FP(t){const{Document:e}=Js(t);return t instanceof e}function Vy(t){return Lm(t)?!1:t instanceof Js(t).HTMLElement}function BY(t){return t instanceof Js(t).SVGElement}function Fm(t){return t?Lm(t)?t.document:LP(t)?FP(t)?t:Vy(t)||BY(t)?t.ownerDocument:document:document:document}const jl=m2?g.useLayoutEffect:g.useEffect;function BP(t){const e=g.useRef(t);return jl(()=>{e.current=t}),g.useCallback(function(){for(var n=arguments.length,r=new Array(n),a=0;a{t.current=setInterval(r,a)},[]),n=g.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function dy(t,e){e===void 0&&(e=[t]);const n=g.useRef(t);return jl(()=>{n.current!==t&&(n.current=t)},e),n}function Wy(t,e){const n=g.useRef();return g.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function jk(t){const e=BP(t),n=g.useRef(null),r=g.useCallback(a=>{a!==n.current&&(e==null||e(a,n.current)),n.current=a},[]);return[n,r]}function P5(t){const e=g.useRef();return g.useEffect(()=>{e.current=t},[t]),e.current}let Y_={};function Hy(t,e){return g.useMemo(()=>{if(e)return e;const n=Y_[t]==null?0:Y_[t]+1;return Y_[t]=n,t+"-"+n},[t,e])}function zY(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a{const l=Object.entries(o);for(const[c,u]of l){const d=s[c];d!=null&&(s[c]=d+t*u)}return s},{...e})}}const sp=zY(1),fy=zY(-1);function kIe(t){return"clientX"in t&&"clientY"in t}function zP(t){if(!t)return!1;const{KeyboardEvent:e}=Js(t.target);return e&&t instanceof e}function jIe(t){if(!t)return!1;const{TouchEvent:e}=Js(t.target);return e&&t instanceof e}function M5(t){if(jIe(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return kIe(t)?{x:t.clientX,y:t.clientY}:null}const hy=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[hy.Translate.toString(t),hy.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),q6="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function SIe(t){return t.matches(q6)?t:t.querySelector(q6)}const _Ie={display:"none"};function NIe(t){let{id:e,value:n}=t;return J.createElement("div",{id:e,style:_Ie},n)}function CIe(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const a={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return J.createElement("div",{id:e,style:a,role:"status","aria-live":r,"aria-atomic":!0},n)}function EIe(){const[t,e]=g.useState("");return{announce:g.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const UY=g.createContext(null);function AIe(t){const e=g.useContext(UY);g.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function OIe(){const[t]=g.useState(()=>new Set),e=g.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[g.useCallback(r=>{let{type:a,event:s}=r;t.forEach(o=>{var l;return(l=o[a])==null?void 0:l.call(o,s)})},[t]),e]}const TIe={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},PIe={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function MIe(t){let{announcements:e=PIe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:a=TIe}=t;const{announce:s,announcement:o}=EIe(),l=Hy("DndLiveRegion"),[c,u]=g.useState(!1);if(g.useEffect(()=>{u(!0)},[]),AIe(g.useMemo(()=>({onDragStart(f){let{active:h}=f;s(e.onDragStart({active:h}))},onDragMove(f){let{active:h,over:p}=f;e.onDragMove&&s(e.onDragMove({active:h,over:p}))},onDragOver(f){let{active:h,over:p}=f;s(e.onDragOver({active:h,over:p}))},onDragEnd(f){let{active:h,over:p}=f;s(e.onDragEnd({active:h,over:p}))},onDragCancel(f){let{active:h,over:p}=f;s(e.onDragCancel({active:h,over:p}))}}),[s,e])),!c)return null;const d=J.createElement(J.Fragment,null,J.createElement(NIe,{id:r,value:a.draggable}),J.createElement(CIe,{id:l,announcement:o}));return n?fs.createPortal(d,n):d}var ra;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(ra||(ra={}));function Sk(){}function K6(t,e){return g.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function RIe(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const Po=Object.freeze({x:0,y:0});function VY(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function WY(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function DIe(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function Y6(t){let{left:e,top:n,height:r,width:a}=t;return[{x:e,y:n},{x:e+a,y:n},{x:e,y:n+r},{x:e+a,y:n+r}]}function HY(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function X6(t,e,n){return e===void 0&&(e=t.left),n===void 0&&(n=t.top),{x:e+t.width*.5,y:n+t.height*.5}}const IIe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=X6(e,e.left,e.top),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=VY(X6(c),a);s.push({id:l,data:{droppableContainer:o,value:u}})}}return s.sort(WY)},$Ie=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=Y6(e),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=Y6(c),d=a.reduce((h,p,m)=>h+VY(u[m],p),0),f=Number((d/4).toFixed(4));s.push({id:l,data:{droppableContainer:o,value:f}})}}return s.sort(WY)};function LIe(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),a=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=a-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const c=LIe(l,e);c>0&&a.push({id:o,data:{droppableContainer:s,value:c}})}}return a.sort(DIe)};function BIe(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function GY(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:Po}function zIe(t){return function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const UIe=zIe(1);function VIe(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function WIe(t,e,n){const r=VIe(e);if(!r)return t;const{scaleX:a,scaleY:s,x:o,y:l}=r,c=t.left-o-(1-a)*parseFloat(n),u=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),d=a?t.width/a:t.width,f=s?t.height/s:t.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const HIe={ignoreTransform:!1};function Bm(t,e){e===void 0&&(e=HIe);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:u,transformOrigin:d}=Js(t).getComputedStyle(t);u&&(n=WIe(n,u,d))}const{top:r,left:a,width:s,height:o,bottom:l,right:c}=n;return{top:r,left:a,width:s,height:o,bottom:l,right:c}}function J6(t){return Bm(t,{ignoreTransform:!0})}function GIe(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function qIe(t,e){return e===void 0&&(e=Js(t).getComputedStyle(t)),e.position==="fixed"}function KIe(t,e){e===void 0&&(e=Js(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(a=>{const s=e[a];return typeof s=="string"?n.test(s):!1})}function g2(t,e){const n=[];function r(a){if(e!=null&&n.length>=e||!a)return n;if(FP(a)&&a.scrollingElement!=null&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!Vy(a)||BY(a)||n.includes(a))return n;const s=Js(t).getComputedStyle(a);return a!==t&&KIe(a,s)&&n.push(a),qIe(a,s)?n:r(a.parentNode)}return t?r(t):n}function qY(t){const[e]=g2(t,1);return e??null}function X_(t){return!m2||!t?null:Lm(t)?t:LP(t)?FP(t)||t===Fm(t).scrollingElement?window:Vy(t)?t:null:null}function KY(t){return Lm(t)?t.scrollX:t.scrollLeft}function YY(t){return Lm(t)?t.scrollY:t.scrollTop}function R5(t){return{x:KY(t),y:YY(t)}}var ya;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(ya||(ya={}));function XY(t){return!m2||!t?!1:t===document.scrollingElement}function JY(t){const e={x:0,y:0},n=XY(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},a=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:a,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const YIe={x:.2,y:.2};function XIe(t,e,n,r,a){let{top:s,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),a===void 0&&(a=YIe);const{isTop:u,isBottom:d,isLeft:f,isRight:h}=JY(t),p={x:0,y:0},m={x:0,y:0},x={height:e.height*a.y,width:e.width*a.x};return!u&&s<=e.top+x.height?(p.y=ya.Backward,m.y=r*Math.abs((e.top+x.height-s)/x.height)):!d&&c>=e.bottom-x.height&&(p.y=ya.Forward,m.y=r*Math.abs((e.bottom-x.height-c)/x.height)),!h&&l>=e.right-x.width?(p.x=ya.Forward,m.x=r*Math.abs((e.right-x.width-l)/x.width)):!f&&o<=e.left+x.width&&(p.x=ya.Backward,m.x=r*Math.abs((e.left+x.width-o)/x.width)),{direction:p,speed:m}}function JIe(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:a}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:a,width:t.clientWidth,height:t.clientHeight}}function ZY(t){return t.reduce((e,n)=>sp(e,R5(n)),Po)}function ZIe(t){return t.reduce((e,n)=>e+KY(n),0)}function QIe(t){return t.reduce((e,n)=>e+YY(n),0)}function e$e(t,e){if(e===void 0&&(e=Bm),!t)return;const{top:n,left:r,bottom:a,right:s}=e(t);qY(t)&&(a<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const t$e=[["x",["left","right"],ZIe],["y",["top","bottom"],QIe]];class UP{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=g2(n),a=ZY(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of t$e)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=a[s]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Ix{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var a;(a=this.target)==null||a.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function n$e(t){const{EventTarget:e}=Js(t);return t instanceof e?t:Fm(t)}function J_(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var Pi;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(Pi||(Pi={}));function Z6(t){t.preventDefault()}function r$e(t){t.stopPropagation()}var nn;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(nn||(nn={}));const QY={start:[nn.Space,nn.Enter],cancel:[nn.Esc],end:[nn.Space,nn.Enter,nn.Tab]},a$e=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case nn.Right:return{...n,x:n.x+25};case nn.Left:return{...n,x:n.x-25};case nn.Down:return{...n,y:n.y+25};case nn.Up:return{...n,y:n.y-25}}};class VP{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Ix(Fm(n)),this.windowListeners=new Ix(Js(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Pi.Resize,this.handleCancel),this.windowListeners.add(Pi.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Pi.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&e$e(r),n(Po)}handleKeyDown(e){if(zP(e)){const{active:n,context:r,options:a}=this.props,{keyboardCodes:s=QY,coordinateGetter:o=a$e,scrollBehavior:l="smooth"}=a,{code:c}=e;if(s.end.includes(c)){this.handleEnd(e);return}if(s.cancel.includes(c)){this.handleCancel(e);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Po;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(e,{active:n,context:r.current,currentCoordinates:d});if(f){const h=fy(f,d),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const x of m){const y=e.code,{isTop:b,isRight:v,isLeft:w,isBottom:j,maxScroll:k,minScroll:_}=JY(x),S=JIe(x),N={x:Math.min(y===nn.Right?S.right-S.width/2:S.right,Math.max(y===nn.Right?S.left:S.left+S.width/2,f.x)),y:Math.min(y===nn.Down?S.bottom-S.height/2:S.bottom,Math.max(y===nn.Down?S.top:S.top+S.height/2,f.y))},E=y===nn.Right&&!v||y===nn.Left&&!w,P=y===nn.Down&&!j||y===nn.Up&&!b;if(E&&N.x!==f.x){const M=x.scrollLeft+h.x,A=y===nn.Right&&M<=k.x||y===nn.Left&&M>=_.x;if(A&&!h.y){x.scrollTo({left:M,behavior:l});return}A?p.x=x.scrollLeft-M:p.x=y===nn.Right?x.scrollLeft-k.x:x.scrollLeft-_.x,p.x&&x.scrollBy({left:-p.x,behavior:l});break}else if(P&&N.y!==f.y){const M=x.scrollTop+h.y,A=y===nn.Down&&M<=k.y||y===nn.Up&&M>=_.y;if(A&&!h.x){x.scrollTo({top:M,behavior:l});return}A?p.y=x.scrollTop-M:p.y=y===nn.Down?x.scrollTop-k.y:x.scrollTop-_.y,p.y&&x.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,sp(fy(f,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}VP.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=QY,onActivation:a}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),a==null||a({event:t.nativeEvent}),!0)}return!1}}];function Q6(t){return!!(t&&"distance"in t)}function eF(t){return!!(t&&"delay"in t)}class WP{constructor(e,n,r){var a;r===void 0&&(r=n$e(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=Fm(o),this.documentListeners=new Ix(this.document),this.listeners=new Ix(r),this.windowListeners=new Ix(Js(o)),this.initialCoordinates=(a=M5(s))!=null?a:Po,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Pi.Resize,this.handleCancel),this.windowListeners.add(Pi.DragStart,Z6),this.windowListeners.add(Pi.VisibilityChange,this.handleCancel),this.windowListeners.add(Pi.ContextMenu,Z6),this.documentListeners.add(Pi.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eF(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Q6(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:a}=this.props;a(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(Pi.Click,r$e,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Pi.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:a,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!a)return;const c=(n=M5(e))!=null?n:Po,u=fy(a,c);if(!r&&l){if(Q6(l)){if(l.tolerance!=null&&J_(u,l.tolerance))return this.handleCancel();if(J_(u,l.distance))return this.handleStart()}if(eF(l)&&J_(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}e.cancelable&&e.preventDefault(),o(c)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===nn.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const s$e={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class HP extends WP{constructor(e){const{event:n}=e,r=Fm(n.target);super(e,s$e,r)}}HP.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const i$e={move:{name:"mousemove"},end:{name:"mouseup"}};var D5;(function(t){t[t.RightClick=2]="RightClick"})(D5||(D5={}));class o$e extends WP{constructor(e){super(e,i$e,Fm(e.event.target))}}o$e.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===D5.RightClick?!1:(r==null||r({event:n}),!0)}}];const Z_={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class l$e extends WP{constructor(e){super(e,Z_)}static setup(){return window.addEventListener(Z_.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Z_.move.name,e)};function e(){}}}l$e.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:a}=n;return a.length>1?!1:(r==null||r({event:n}),!0)}}];var $x;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})($x||($x={}));var _k;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(_k||(_k={}));function c$e(t){let{acceleration:e,activator:n=$x.Pointer,canScroll:r,draggingRect:a,enabled:s,interval:o=5,order:l=_k.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:h}=t;const p=d$e({delta:f,disabled:!s}),[m,x]=wIe(),y=g.useRef({x:0,y:0}),b=g.useRef({x:0,y:0}),v=g.useMemo(()=>{switch(n){case $x.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case $x.DraggableRect:return a}},[n,a,c]),w=g.useRef(null),j=g.useCallback(()=>{const _=w.current;if(!_)return;const S=y.current.x*b.current.x,N=y.current.y*b.current.y;_.scrollBy(S,N)},[]),k=g.useMemo(()=>l===_k.TreeOrder?[...u].reverse():u,[l,u]);g.useEffect(()=>{if(!s||!u.length||!v){x();return}for(const _ of k){if((r==null?void 0:r(_))===!1)continue;const S=u.indexOf(_),N=d[S];if(!N)continue;const{direction:E,speed:P}=XIe(_,N,v,e,h);for(const M of["x","y"])p[M][E[M]]||(P[M]=0,E[M]=0);if(P.x>0||P.y>0){x(),w.current=_,m(j,o),y.current=P,b.current=E;return}}y.current={x:0,y:0},b.current={x:0,y:0},x()},[e,j,r,x,s,o,JSON.stringify(v),JSON.stringify(p),m,u,k,d,JSON.stringify(h)])}const u$e={x:{[ya.Backward]:!1,[ya.Forward]:!1},y:{[ya.Backward]:!1,[ya.Forward]:!1}};function d$e(t){let{delta:e,disabled:n}=t;const r=P5(e);return Wy(a=>{if(n||!r||!a)return u$e;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[ya.Backward]:a.x[ya.Backward]||s.x===-1,[ya.Forward]:a.x[ya.Forward]||s.x===1},y:{[ya.Backward]:a.y[ya.Backward]||s.y===-1,[ya.Forward]:a.y[ya.Forward]||s.y===1}}},[n,e,r])}function f$e(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Wy(a=>{var s;return e==null?null:(s=r??a)!=null?s:null},[r,e])}function h$e(t,e){return g.useMemo(()=>t.reduce((n,r)=>{const{sensor:a}=r,s=a.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var py;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(py||(py={}));var I5;(function(t){t.Optimized="optimized"})(I5||(I5={}));const tF=new Map;function p$e(t,e){let{dragging:n,dependencies:r,config:a}=e;const[s,o]=g.useState(null),{frequency:l,measure:c,strategy:u}=a,d=g.useRef(t),f=y(),h=dy(f),p=g.useCallback(function(b){b===void 0&&(b=[]),!h.current&&o(v=>v===null?b:v.concat(b.filter(w=>!v.includes(w))))},[h]),m=g.useRef(null),x=Wy(b=>{if(f&&!n)return tF;if(!b||b===tF||d.current!==t||s!=null){const v=new Map;for(let w of t){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){v.set(w.id,w.rect.current);continue}const j=w.node.current,k=j?new UP(c(j),j):null;w.rect.current=k,k&&v.set(w.id,k)}return v}return b},[t,s,n,f,c]);return g.useEffect(()=>{d.current=t},[t]),g.useEffect(()=>{f||p()},[n,f]),g.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),g.useEffect(()=>{f||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,f,p,...r]),{droppableRects:x,measureDroppableContainers:p,measuringScheduled:s!=null};function y(){switch(u){case py.Always:return!1;case py.BeforeDragging:return n;default:return!n}}}function eX(t,e){return Wy(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function m$e(t,e){return eX(t,e)}function g$e(t){let{callback:e,disabled:n}=t;const r=BP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function x2(t){let{callback:e,disabled:n}=t;const r=BP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function x$e(t){return new UP(Bm(t),t)}function nF(t,e,n){e===void 0&&(e=x$e);const[r,a]=g.useState(null);function s(){a(c=>{if(!t)return null;if(t.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=e(t);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=g$e({callback(c){if(t)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(t)){s();break}}}}),l=x2({callback:s});return jl(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function y$e(t){const e=eX(t);return GY(t,e)}const rF=[];function v$e(t){const e=g.useRef(t),n=Wy(r=>t?r&&r!==rF&&t&&e.current&&t.parentNode===e.current.parentNode?r:g2(t):rF,[t]);return g.useEffect(()=>{e.current=t},[t]),n}function b$e(t){const[e,n]=g.useState(null),r=g.useRef(t),a=g.useCallback(s=>{const o=X_(s.target);o&&n(l=>l?(l.set(o,R5(o)),new Map(l)):null)},[]);return g.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(c=>{const u=X_(c);return u?(u.addEventListener("scroll",a,{passive:!0}),[u,R5(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(c=>{const u=X_(c);u==null||u.removeEventListener("scroll",a)})}},[a,t]),g.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>sp(s,o),Po):ZY(t):Po,[t,e])}function aF(t,e){e===void 0&&(e=[]);const n=g.useRef(null);return g.useEffect(()=>{n.current=null},e),g.useEffect(()=>{const r=t!==Po;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?fy(t,n.current):Po}function w$e(t){g.useEffect(()=>{if(!m2)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function k$e(t,e){return g.useMemo(()=>t.reduce((n,r)=>{let{eventName:a,handler:s}=r;return n[a]=o=>{s(o,e)},n},{}),[t,e])}function tX(t){return g.useMemo(()=>t?GIe(t):null,[t])}const sF=[];function j$e(t,e){e===void 0&&(e=Bm);const[n]=t,r=tX(n?Js(n):null),[a,s]=g.useState(sF);function o(){s(()=>t.length?t.map(c=>XY(c)?r:new UP(e(c),c)):sF)}const l=x2({callback:o});return jl(()=>{l==null||l.disconnect(),o(),t.forEach(c=>l==null?void 0:l.observe(c))},[t]),a}function S$e(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Vy(e)?e:t}function _$e(t){let{measure:e}=t;const[n,r]=g.useState(null),a=g.useCallback(u=>{for(const{target:d}of u)if(Vy(d)){r(f=>{const h=e(d);return f?{...f,width:h.width,height:h.height}:h});break}},[e]),s=x2({callback:a}),o=g.useCallback(u=>{const d=S$e(u);s==null||s.disconnect(),d&&(s==null||s.observe(d)),r(d?e(d):null)},[e,s]),[l,c]=jk(o);return g.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const N$e=[{sensor:HP,options:{}},{sensor:VP,options:{}}],C$e={current:{}},y1={draggable:{measure:J6},droppable:{measure:J6,strategy:py.WhileDragging,frequency:I5.Optimized},dragOverlay:{measure:Bm}};class Lx extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const E$e={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Lx,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Sk},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:y1,measureDroppableContainers:Sk,windowRect:null,measuringScheduled:!1},A$e={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Sk,draggableNodes:new Map,over:null,measureDroppableContainers:Sk},y2=g.createContext(A$e),nX=g.createContext(E$e);function O$e(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Lx}}}function T$e(t,e){switch(e.type){case ra.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case ra.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case ra.DragEnd:case ra.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ra.RegisterDroppable:{const{element:n}=e,{id:r}=n,a=new Lx(t.droppable.containers);return a.set(r,n),{...t,droppable:{...t.droppable,containers:a}}}case ra.SetDroppableDisabled:{const{id:n,key:r,disabled:a}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Lx(t.droppable.containers);return o.set(n,{...s,disabled:a}),{...t,droppable:{...t.droppable,containers:o}}}case ra.UnregisterDroppable:{const{id:n,key:r}=e,a=t.droppable.containers.get(n);if(!a||r!==a.key)return t;const s=new Lx(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function P$e(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:a}=g.useContext(y2),s=P5(r),o=P5(n==null?void 0:n.id);return g.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!zP(s)||document.activeElement===s.target)return;const l=a.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=SIe(d);if(f){f.focus();break}}})}},[r,e,a,o,s]),null}function M$e(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((a,s)=>s({transform:a,...r}),n):n}function R$e(t){return g.useMemo(()=>({draggable:{...y1.draggable,...t==null?void 0:t.draggable},droppable:{...y1.droppable,...t==null?void 0:t.droppable},dragOverlay:{...y1.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function D$e(t){let{activeNode:e,measure:n,initialRect:r,config:a=!0}=t;const s=g.useRef(!1),{x:o,y:l}=typeof a=="boolean"?{x:a,y:a}:a;jl(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const u=e==null?void 0:e.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=GY(d,r);if(o||(f.x=0),l||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const h=qY(u);h&&h.scrollBy({top:f.y,left:f.x})}},[e,o,l,r,n])}const rX=g.createContext({...Po,scaleX:1,scaleY:1});var Wc;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Wc||(Wc={}));const I$e=g.memo(function(e){var n,r,a,s;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=N$e,collisionDetection:f=FIe,measuring:h,modifiers:p,...m}=e;const x=g.useReducer(T$e,void 0,O$e),[y,b]=x,[v,w]=OIe(),[j,k]=g.useState(Wc.Uninitialized),_=j===Wc.Initialized,{draggable:{active:S,nodes:N,translate:E},droppable:{containers:P}}=y,M=S!=null?N.get(S):null,A=g.useRef({initial:null,translated:null}),O=g.useMemo(()=>{var dt;return S!=null?{id:S,data:(dt=M==null?void 0:M.data)!=null?dt:C$e,rect:A}:null},[S,M]),D=g.useRef(null),[I,X]=g.useState(null),[Q,V]=g.useState(null),Y=dy(m,Object.values(m)),H=Hy("DndDescribedBy",o),G=g.useMemo(()=>P.getEnabled(),[P]),$=R$e(h),{droppableRects:F,measureDroppableContainers:R,measuringScheduled:z}=p$e(G,{dragging:_,dependencies:[E.x,E.y],config:$.droppable}),U=f$e(N,S),ee=g.useMemo(()=>Q?M5(Q):null,[Q]),pe=Kt(),re=m$e(U,$.draggable.measure);D$e({activeNode:S!=null?N.get(S):null,config:pe.layoutShiftCompensation,initialRect:re,measure:$.draggable.measure});const he=nF(U,$.draggable.measure,re),q=nF(U?U.parentElement:null),W=g.useRef({activatorEvent:null,active:null,activeNode:U,collisionRect:null,collisions:null,droppableRects:F,draggableNodes:N,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=P.getNodeFor((n=W.current.over)==null?void 0:n.id),te=_$e({measure:$.dragOverlay.measure}),ie=(r=te.nodeRef.current)!=null?r:U,me=_?(a=te.rect)!=null?a:he:null,ve=!!(te.nodeRef.current&&te.rect),Ne=y$e(ve?null:he),je=tX(ie?Js(ie):null),Me=v$e(_?ue??U:null),Be=j$e(Me),tt=M$e(p,{transform:{x:E.x-Ne.x,y:E.y-Ne.y,scaleX:1,scaleY:1},activatorEvent:Q,active:O,activeNodeRect:he,containerNodeRect:q,draggingNodeRect:me,over:W.current.over,overlayNodeRect:te.rect,scrollableAncestors:Me,scrollableAncestorRects:Be,windowRect:je}),B=ee?sp(ee,E):null,se=b$e(Me),de=aF(se),Ce=aF(se,[he]),fe=sp(tt,de),be=me?UIe(me,tt):null,we=O&&be?f({active:O,collisionRect:be,droppableRects:F,droppableContainers:G,pointerCoordinates:B}):null,Le=HY(we,"id"),[Oe,He]=g.useState(null),vt=ve?tt:sp(tt,Ce),bt=BIe(vt,(s=Oe==null?void 0:Oe.rect)!=null?s:null,he),Bt=g.useRef(null),wt=g.useCallback((dt,le)=>{let{sensor:Ie,options:Ge}=le;if(D.current==null)return;const nt=N.get(D.current);if(!nt)return;const Nt=dt.nativeEvent,ge=new Ie({active:D.current,activeNode:nt,event:Nt,options:Ge,context:W,onAbort(pt){if(!N.get(pt))return;const{onDragAbort:gn}=Y.current,sn={id:pt};gn==null||gn(sn),v({type:"onDragAbort",event:sn})},onPending(pt,Ht,gn,sn){if(!N.get(pt))return;const{onDragPending:_a}=Y.current,Dn={id:pt,constraint:Ht,initialCoordinates:gn,offset:sn};_a==null||_a(Dn),v({type:"onDragPending",event:Dn})},onStart(pt){const Ht=D.current;if(Ht==null)return;const gn=N.get(Ht);if(!gn)return;const{onDragStart:sn}=Y.current,xn={activatorEvent:Nt,active:{id:Ht,data:gn.data,rect:A}};fs.unstable_batchedUpdates(()=>{sn==null||sn(xn),k(Wc.Initializing),b({type:ra.DragStart,initialCoordinates:pt,active:Ht}),v({type:"onDragStart",event:xn}),X(Bt.current),V(Nt)})},onMove(pt){b({type:ra.DragMove,coordinates:pt})},onEnd:st(ra.DragEnd),onCancel:st(ra.DragCancel)});Bt.current=ge;function st(pt){return async function(){const{active:gn,collisions:sn,over:xn,scrollAdjustedTranslate:_a}=W.current;let Dn=null;if(gn&&_a){const{cancelDrop:ua}=Y.current;Dn={activatorEvent:Nt,active:gn,collisions:sn,delta:_a,over:xn},pt===ra.DragEnd&&typeof ua=="function"&&await Promise.resolve(ua(Dn))&&(pt=ra.DragCancel)}D.current=null,fs.unstable_batchedUpdates(()=>{b({type:pt}),k(Wc.Uninitialized),He(null),X(null),V(null),Bt.current=null;const ua=pt===ra.DragEnd?"onDragEnd":"onDragCancel";if(Dn){const or=Y.current[ua];or==null||or(Dn),v({type:ua,event:Dn})}})}}},[N]),zt=g.useCallback((dt,le)=>(Ie,Ge)=>{const nt=Ie.nativeEvent,Nt=N.get(Ge);if(D.current!==null||!Nt||nt.dndKit||nt.defaultPrevented)return;const ge={active:Nt};dt(Ie,le.options,ge)===!0&&(nt.dndKit={capturedBy:le.sensor},D.current=Ge,wt(Ie,le))},[N,wt]),Ut=h$e(d,zt);w$e(d),jl(()=>{he&&j===Wc.Initializing&&k(Wc.Initialized)},[he,j]),g.useEffect(()=>{const{onDragMove:dt}=Y.current,{active:le,activatorEvent:Ie,collisions:Ge,over:nt}=W.current;if(!le||!Ie)return;const Nt={active:le,activatorEvent:Ie,collisions:Ge,delta:{x:fe.x,y:fe.y},over:nt};fs.unstable_batchedUpdates(()=>{dt==null||dt(Nt),v({type:"onDragMove",event:Nt})})},[fe.x,fe.y]),g.useEffect(()=>{const{active:dt,activatorEvent:le,collisions:Ie,droppableContainers:Ge,scrollAdjustedTranslate:nt}=W.current;if(!dt||D.current==null||!le||!nt)return;const{onDragOver:Nt}=Y.current,ge=Ge.get(Le),st=ge&&ge.rect.current?{id:ge.id,rect:ge.rect.current,data:ge.data,disabled:ge.disabled}:null,pt={active:dt,activatorEvent:le,collisions:Ie,delta:{x:nt.x,y:nt.y},over:st};fs.unstable_batchedUpdates(()=>{He(st),Nt==null||Nt(pt),v({type:"onDragOver",event:pt})})},[Le]),jl(()=>{W.current={activatorEvent:Q,active:O,activeNode:U,collisionRect:be,collisions:we,droppableRects:F,draggableNodes:N,draggingNode:ie,draggingNodeRect:me,droppableContainers:P,over:Oe,scrollableAncestors:Me,scrollAdjustedTranslate:fe},A.current={initial:me,translated:be}},[O,U,we,be,N,ie,me,F,P,Oe,Me,fe]),c$e({...pe,delta:E,draggingRect:be,pointerCoordinates:B,scrollableAncestors:Me,scrollableAncestorRects:Be});const Un=g.useMemo(()=>({active:O,activeNode:U,activeNodeRect:he,activatorEvent:Q,collisions:we,containerNodeRect:q,dragOverlay:te,draggableNodes:N,droppableContainers:P,droppableRects:F,over:Oe,measureDroppableContainers:R,scrollableAncestors:Me,scrollableAncestorRects:Be,measuringConfiguration:$,measuringScheduled:z,windowRect:je}),[O,U,he,Q,we,q,te,N,P,F,Oe,R,Me,Be,$,z,je]),Vt=g.useMemo(()=>({activatorEvent:Q,activators:Ut,active:O,activeNodeRect:he,ariaDescribedById:{draggable:H},dispatch:b,draggableNodes:N,over:Oe,measureDroppableContainers:R}),[Q,Ut,O,he,b,H,N,Oe,R]);return J.createElement(UY.Provider,{value:w},J.createElement(y2.Provider,{value:Vt},J.createElement(nX.Provider,{value:Un},J.createElement(rX.Provider,{value:bt},u)),J.createElement(P$e,{disabled:(l==null?void 0:l.restoreFocus)===!1})),J.createElement(MIe,{...l,hiddenTextDescribedById:H}));function Kt(){const dt=(I==null?void 0:I.autoScrollEnabled)===!1,le=typeof c=="object"?c.enabled===!1:c===!1,Ie=_&&!dt&&!le;return typeof c=="object"?{...c,enabled:Ie}:{enabled:Ie}}}),$$e=g.createContext(null),iF="button",L$e="Draggable";function F$e(t){let{id:e,data:n,disabled:r=!1,attributes:a}=t;const s=Hy(L$e),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:h}=g.useContext(y2),{role:p=iF,roleDescription:m="draggable",tabIndex:x=0}=a??{},y=(c==null?void 0:c.id)===e,b=g.useContext(y?rX:$$e),[v,w]=jk(),[j,k]=jk(),_=k$e(o,e),S=dy(n);jl(()=>(f.set(e,{id:e,key:s,node:v,activatorNode:j,data:S}),()=>{const E=f.get(e);E&&E.key===s&&f.delete(e)}),[f,e]);const N=g.useMemo(()=>({role:p,tabIndex:x,"aria-disabled":r,"aria-pressed":y&&p===iF?!0:void 0,"aria-roledescription":m,"aria-describedby":d.draggable}),[r,p,x,y,m,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:N,isDragging:y,listeners:r?void 0:_,node:v,over:h,setNodeRef:w,setActivatorNodeRef:k,transform:b}}function B$e(){return g.useContext(nX)}const z$e="Droppable",U$e={timeout:25};function V$e(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:a}=t;const s=Hy(z$e),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=g.useContext(y2),d=g.useRef({disabled:n}),f=g.useRef(!1),h=g.useRef(null),p=g.useRef(null),{disabled:m,updateMeasurementsFor:x,timeout:y}={...U$e,...a},b=dy(x??r),v=g.useCallback(()=>{if(!f.current){f.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{u(Array.isArray(b.current)?b.current:[b.current]),p.current=null},y)},[y]),w=x2({callback:v,disabled:m||!o}),j=g.useCallback((N,E)=>{w&&(E&&(w.unobserve(E),f.current=!1),N&&w.observe(N))},[w]),[k,_]=jk(j),S=dy(e);return g.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),g.useEffect(()=>(l({type:ra.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:h,data:S}}),()=>l({type:ra.UnregisterDroppable,key:s,id:r})),[r]),g.useEffect(()=>{n!==d.current.disabled&&(l({type:ra.SetDroppableDisabled,id:r,key:s,disabled:n}),d.current.disabled=n)},[r,s,n,l]),{active:o,rect:h,isOver:(c==null?void 0:c.id)===r,node:k,over:c,setNodeRef:_}}function GP(t,e,n){const r=t.slice();return r.splice(n<0?r.length+n:n,0,r.splice(e,1)[0]),r}function W$e(t,e){return t.reduce((n,r,a)=>{const s=e.get(r);return s&&(n[a]=s),n},Array(t.length))}function Pb(t){return t!==null&&t>=0}function H$e(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n{let{rects:e,activeIndex:n,overIndex:r,index:a}=t;const s=GP(e,r,n),o=e[a],l=s[a];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},Mb={scaleX:1,scaleY:1},q$e=t=>{var e;let{activeIndex:n,activeNodeRect:r,index:a,rects:s,overIndex:o}=t;const l=(e=s[n])!=null?e:r;if(!l)return null;if(a===n){const u=s[o];return u?{x:0,y:nn&&a<=o?{x:0,y:-l.height-c,...Mb}:a=o?{x:0,y:l.height+c,...Mb}:{x:0,y:0,...Mb}};function K$e(t,e,n){const r=t[e],a=t[e-1],s=t[e+1];return r?nr.map(_=>typeof _=="object"&&"id"in _?_.id:_),[r]),m=o!=null,x=o?p.indexOf(o.id):-1,y=u?p.indexOf(u.id):-1,b=g.useRef(p),v=!H$e(p,b.current),w=y!==-1&&x===-1||v,j=G$e(s);jl(()=>{v&&m&&d(p)},[v,p,m,d]),g.useEffect(()=>{b.current=p},[p]);const k=g.useMemo(()=>({activeIndex:x,containerId:f,disabled:j,disableTransforms:w,items:p,overIndex:y,useDragOverlay:h,sortedRects:W$e(p,c),strategy:a}),[x,f,j.draggable,j.droppable,w,p,y,c,h,a]);return J.createElement(iX.Provider,{value:k},e)}const X$e=t=>{let{id:e,items:n,activeIndex:r,overIndex:a}=t;return GP(n,r,a).indexOf(e)},J$e=t=>{let{containerId:e,isSorting:n,wasDragging:r,index:a,items:s,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=t;return!u||!r||l!==s&&a===o?!1:n?!0:o!==a&&e===c},Z$e={duration:200,easing:"ease"},oX="transform",Q$e=hy.Transition.toString({property:oX,duration:0,easing:"linear"}),eLe={roleDescription:"sortable"};function tLe(t){let{disabled:e,index:n,node:r,rect:a}=t;const[s,o]=g.useState(null),l=g.useRef(n);return jl(()=>{if(!e&&n!==l.current&&r.current){const c=a.current;if(c){const u=Bm(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[e,n,r,a]),g.useEffect(()=>{s&&o(null)},[s]),s}function nLe(t){let{animateLayoutChanges:e=J$e,attributes:n,disabled:r,data:a,getNewIndex:s=X$e,id:o,strategy:l,resizeObserverConfig:c,transition:u=Z$e}=t;const{items:d,containerId:f,activeIndex:h,disabled:p,disableTransforms:m,sortedRects:x,overIndex:y,useDragOverlay:b,strategy:v}=g.useContext(iX),w=rLe(r,p),j=d.indexOf(o),k=g.useMemo(()=>({sortable:{containerId:f,index:j,items:d},...a}),[f,a,j,d]),_=g.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:S,node:N,isOver:E,setNodeRef:P}=V$e({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:_,...c}}),{active:M,activatorEvent:A,activeNodeRect:O,attributes:D,setNodeRef:I,listeners:X,isDragging:Q,over:V,setActivatorNodeRef:Y,transform:H}=F$e({id:o,data:k,attributes:{...eLe,...n},disabled:w.draggable}),G=bIe(P,I),$=!!M,F=$&&!m&&Pb(h)&&Pb(y),R=!b&&Q,z=R&&F?H:null,ee=F?z??(l??v)({rects:x,activeNodeRect:O,activeIndex:h,overIndex:y,index:j}):null,pe=Pb(h)&&Pb(y)?s({id:o,items:d,activeIndex:h,overIndex:y}):j,re=M==null?void 0:M.id,he=g.useRef({activeId:re,items:d,newIndex:pe,containerId:f}),q=d!==he.current.items,W=e({active:M,containerId:f,isDragging:Q,isSorting:$,id:o,index:j,items:d,newIndex:he.current.newIndex,previousItems:he.current.items,previousContainerId:he.current.containerId,transition:u,wasDragging:he.current.activeId!=null}),ue=tLe({disabled:!W,index:j,node:N,rect:S});return g.useEffect(()=>{$&&he.current.newIndex!==pe&&(he.current.newIndex=pe),f!==he.current.containerId&&(he.current.containerId=f),d!==he.current.items&&(he.current.items=d)},[$,pe,f,d]),g.useEffect(()=>{if(re===he.current.activeId)return;if(re&&!he.current.activeId){he.current.activeId=re;return}const ie=setTimeout(()=>{he.current.activeId=re},50);return()=>clearTimeout(ie)},[re]),{active:M,activeIndex:h,attributes:D,data:k,rect:S,index:j,newIndex:pe,items:d,isOver:E,isSorting:$,isDragging:Q,listeners:X,node:N,overIndex:y,over:V,setNodeRef:G,setActivatorNodeRef:Y,setDroppableNodeRef:P,setDraggableNodeRef:I,transform:ue??ee,transition:te()};function te(){if(ue||q&&he.current.newIndex===j)return Q$e;if(!(R&&!zP(A)||!u)&&($||W))return hy.Transition.toString({...u,property:oX})}}function rLe(t,e){var n,r;return typeof t=="boolean"?{draggable:t,droppable:!1}:{draggable:(n=t==null?void 0:t.draggable)!=null?n:e.draggable,droppable:(r=t==null?void 0:t.droppable)!=null?r:e.droppable}}function Nk(t){if(!t)return!1;const e=t.data.current;return!!(e&&"sortable"in e&&typeof e.sortable=="object"&&"containerId"in e.sortable&&"items"in e.sortable&&"index"in e.sortable)}const aLe=[nn.Down,nn.Right,nn.Up,nn.Left],sLe=(t,e)=>{let{context:{active:n,collisionRect:r,droppableRects:a,droppableContainers:s,over:o,scrollableAncestors:l}}=e;if(aLe.includes(t.code)){if(t.preventDefault(),!n||!r)return;const c=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const h=a.get(f.id);if(h)switch(t.code){case nn.Down:r.toph.top&&c.push(f);break;case nn.Left:r.left>h.left&&c.push(f);break;case nn.Right:r.left1&&(d=u[1].id),d!=null){const f=s.get(n.id),h=s.get(d),p=h?a.get(h.id):null,m=h==null?void 0:h.node.current;if(m&&p&&f&&h){const y=g2(m).some((_,S)=>l[S]!==_),b=lX(f,h),v=iLe(f,h),w=y||!b?{x:0,y:0}:{x:v?r.width-p.width:0,y:v?r.height-p.height:0},j={x:p.left,y:p.top};return w.x&&w.y?j:fy(j,w)}}}};function lX(t,e){return!Nk(t)||!Nk(e)?!1:t.data.current.sortable.containerId===e.data.current.sortable.containerId}function iLe(t,e){return!Nk(t)||!Nk(e)||!lX(t,e)?!1:t.data.current.sortable.index_.value===t))==null?void 0:k.label)??t,b=(u?n.filter(_=>_.label.toLowerCase().includes(u.toLowerCase())||_.value.toLowerCase().includes(u.toLowerCase())):n).slice().sort((_,S)=>_.label.localeCompare(S.label));function v(){var S;const _=(S=p.current)==null?void 0:S.getBoundingClientRect();_&&(h({position:"fixed",top:_.bottom+4,left:_.left,minWidth:_.width,zIndex:9999}),c(!0))}g.useEffect(()=>{var _;l&&((_=x.current)==null||_.focus())},[l]),g.useEffect(()=>{if(!l)return;function _(N){var P,M;const E=N.target;!((P=p.current)!=null&&P.contains(E))&&!((M=m.current)!=null&&M.contains(E))&&w()}function S(N){N.key==="Escape"&&w()}return document.addEventListener("mousedown",_),document.addEventListener("keydown",S),()=>{document.removeEventListener("mousedown",_),document.removeEventListener("keydown",S)}},[l]);function w(){c(!1),d("")}function j(_){e(_),w()}return i.jsxs("div",{className:`relative ${r||(a?"block":"inline-block")}`,"data-cy":o,children:[i.jsxs("button",{ref:p,type:"button",disabled:s,onClick:()=>l?w():v(),className:a?`flex w-full items-center justify-between gap-2 text-left ${a}`:"cond-select flex w-full items-center justify-between gap-1 pr-2",style:{backgroundImage:"none",display:"flex",alignItems:"center"},"data-value":t,children:[i.jsx("span",{className:"min-w-0 truncate text-left",children:y||i.jsx("span",{className:"text-slate-500",children:"select..."})}),i.jsx(wn,{size:11,className:`shrink-0 text-slate-500 transition-transform duration-150 ${l?"rotate-180":""}`})]}),l&&fs.createPortal(i.jsxs("div",{ref:m,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"p-1.5 border-b border-slate-100 dark:border-[#1c1c24]",children:i.jsx("input",{ref:x,type:"text",value:u,onChange:_=>d(_.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(b.length*32+8,272)}px`},children:b.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):b.map(_=>i.jsx("button",{type:"button","data-value":_.value,onClick:()=>j(_.value),className:`w-full px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${_.value===t?"text-brand-600 dark:text-brand-400 font-medium bg-brand-50/50 dark:bg-brand-900/10":""}`,children:_.label},_.value))})]}),document.body)]})}function oLe({values:t,onChange:e,options:n,placeholder:r="Select…",className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useRef(null),m=l?n.filter(w=>w.label.toLowerCase().includes(l.toLowerCase())||w.value.toLowerCase().includes(l.toLowerCase())):n;function x(){var j;const w=(j=f.current)==null?void 0:j.getBoundingClientRect();w&&(d({position:"fixed",top:w.bottom+4,left:w.left,minWidth:w.width,zIndex:9999}),o(!0))}g.useEffect(()=>{var w;s&&((w=p.current)==null||w.focus())},[s]),g.useEffect(()=>{if(!s)return;function w(k){var S,N;const _=k.target;!((S=f.current)!=null&&S.contains(_))&&!((N=h.current)!=null&&N.contains(_))&&y()}function j(k){k.key==="Escape"&&y()}return document.addEventListener("mousedown",w),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",w),document.removeEventListener("keydown",j)}},[s]);function y(){o(!1),c("")}function b(w){e(t.includes(w)?t.filter(j=>j!==w):[...t,w])}function v(w,j){j.stopPropagation(),e(t.filter(k=>k!==w))}return i.jsxs("div",{className:`relative ${a}`,children:[i.jsxs("div",{ref:f,onClick:()=>s?y():x(),className:"flex w-full min-w-0 cursor-pointer flex-wrap items-center gap-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm dark:border-[#222226]",children:[t.length===0&&i.jsx("span",{className:"text-slate-500",children:r}),t.map(w=>{var k;const j=((k=n.find(_=>_.value===w))==null?void 0:k.label)??w;return i.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-brand-100 dark:bg-brand-500/20 border border-brand-200 dark:border-brand-500/40 px-1.5 py-0.5 font-medium text-brand-700 dark:text-brand-300",children:[j,i.jsx("button",{type:"button",onClick:_=>v(w,_),className:"text-brand-600 hover:text-brand-600 dark:hover:text-brand-200",children:i.jsx(Hr,{size:10})})]},w)}),i.jsx(wn,{size:11,className:`ml-auto shrink-0 text-slate-500 transition-transform duration-150 ${s?"rotate-180":""}`})]}),s&&fs.createPortal(i.jsxs("div",{ref:h,style:u,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"border-b border-slate-100 dark:border-[#1c1c24] p-1.5",children:i.jsx("input",{ref:p,type:"text",value:l,onChange:w=>c(w.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"max-h-52 overflow-y-auto py-0.5",children:m.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):m.map(w=>{const j=t.includes(w.value);return i.jsxs("button",{type:"button","data-value":w.value,onClick:()=>b(w.value),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${j?"text-brand-600 dark:text-brand-400":"text-slate-700 dark:text-[#c8d0de]"}`,children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${j?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#3a4258]"}`,children:j&&i.jsx("svg",{viewBox:"0 0 8 8",className:"h-2 w-2 fill-current",children:i.jsx("path",{d:"M1 4l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})})}),w.label]},w.value)})})]}),document.body)]})}const oF=272,lF=160,cF=12;function Gy({value:t,onChange:e,options:n,placeholder:r="Gateway name",className:a="",dataCy:s,onEnter:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(-1),[f,h]=g.useState({}),[p,m]=g.useState(oF),x=g.useRef(null),y=g.useRef(null),b=g.useRef(null),v=t.trim().toLowerCase(),w=v?n.filter(S=>S.name.toLowerCase().includes(v)):n;function j(){var M;const S=(M=y.current)==null?void 0:M.getBoundingClientRect();if(!S)return;const N=window.innerHeight-S.bottom-cF,E=S.top-cF,P=NN;m(Math.min(oF,Math.max(lF,P?E:N))),h({position:"fixed",left:S.left,minWidth:S.width,zIndex:9999,...P?{bottom:window.innerHeight-S.top+4}:{top:S.bottom+4}}),c(!0)}function k(){c(!1),d(-1)}g.useEffect(()=>{if(!l)return;function S(N){var P,M;const E=N.target;!((P=x.current)!=null&&P.contains(E))&&!((M=b.current)!=null&&M.contains(E))&&k()}return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[l]);function _(S){if(S.key==="ArrowDown"){if(S.preventDefault(),!l)return j();d(N=>w.length?(N+1)%w.length:-1)}else if(S.key==="ArrowUp"){if(S.preventDefault(),!l)return j();d(N=>w.length?N<=0?w.length-1:N-1:-1)}else S.key==="Enter"?(S.preventDefault(),l&&u>=0&&w[u]?(e(w[u].name,w[u]),k()):(k(),o==null||o())):S.key==="Escape"&&l&&(S.stopPropagation(),k())}return i.jsxs("div",{ref:x,className:`relative ${a}`,"data-cy":s,children:[i.jsx("input",{ref:y,value:t,onChange:S=>{e(S.target.value),d(-1),l||j()},onFocus:j,onBlur:k,onKeyDown:_,placeholder:r,role:"combobox","aria-expanded":l,"aria-autocomplete":"list",autoComplete:"off",className:"w-full rounded-lg border border-slate-200 bg-transparent py-2 pl-3 pr-8 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",tabIndex:-1,"aria-label":l?"Hide gateway list":"Show gateway list",onMouseDown:S=>{var N;S.preventDefault(),(N=y.current)==null||N.focus(),l?k():j()},className:"absolute inset-y-0 right-0 flex items-center px-2 text-slate-500 hover:text-slate-600 dark:hover:text-slate-200",children:i.jsx(wn,{size:13,className:`transition-transform duration-150 ${l?"rotate-180":""}`})}),l&&fs.createPortal(i.jsx("div",{ref:b,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#222226] dark:bg-[#111118]",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(Math.max(w.length,1)*(w.some(S=>S.gatewayId)?52:32)+8,p)}px`},children:w.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:t.trim()?i.jsxs(i.Fragment,{children:["No connector matches — ",i.jsx("span",{className:"font-mono",children:t.trim()})," is used as typed"]}):"No gateways"}):w.map((S,N)=>i.jsxs("button",{type:"button","data-value":S.name,onMouseDown:E=>E.preventDefault(),onMouseEnter:()=>d(N),onClick:()=>{var E;e(S.name,S),k(),(E=y.current)==null||E.focus()},className:`w-full px-3 py-2.5 text-left font-mono text-sm transition-colors ${N===u?"bg-slate-50 dark:bg-[#1c1c24]":""} ${S.name===t?"bg-brand-50/50 font-medium text-brand-600 dark:bg-brand-900/10 dark:text-brand-400":""}`,children:[S.name,S.gatewayId&&i.jsx("span",{"data-gateway-id":S.gatewayId,className:"mt-0.5 block truncate text-xs font-normal text-slate-500",children:S.gatewayId})]},S.gatewayId||S.name))})}),document.body)]})}function lLe({id:t,position:e,gatewayName:n,gatewayId:r,options:a,onEdit:s,onRemove:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(n),[f,h]=g.useState(r),{attributes:p,listeners:m,setNodeRef:x,transform:y,transition:b}=nLe({id:t,disabled:l}),v={transform:hy.Transform.toString(y),transition:b};function w(){d(n),h(r),c(!0)}function j(){const _=u.trim();_&&(s({gatewayName:_,gatewayId:f.trim()}),c(!1))}function k(){c(!1)}return l?i.jsxs("div",{ref:x,style:v,className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),k()),_.key==="Enter"&&(_.preventDefault(),j())},children:[i.jsxs("span",{className:"w-5 shrink-0 text-center text-sm tabular-nums text-slate-500",children:[e,"."]}),i.jsx(Gy,{value:u,onChange:(_,S)=>{d(_),h((S==null?void 0:S.gatewayId)??"")},onEnter:j,options:a,className:"flex-1"}),i.jsx("input",{value:f,onChange:_=>h(_.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:j,disabled:!u.trim(),"aria-label":"Save gateway",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:k,"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{ref:x,style:v,className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsx("span",{...p,...m,className:"cursor-grab text-slate-500",children:i.jsx(LCe,{size:14})}),i.jsxs("button",{type:"button",onClick:w,"aria-label":`Edit ${n}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[e,". ",n,r?` (${r})`:""]}),i.jsx(El,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:o,"aria-label":`Remove ${n}`,className:"text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]})}function qP({gateways:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),l=RIe(K6(HP),K6(VP,{coordinateGetter:sLe}));function c(f){const{active:h,over:p}=f;if(p&&h.id!==p.id){const m=t.findIndex(y=>y.id===h.id),x=t.findIndex(y=>y.id===p.id);e(GP(t,m,x))}}function u(){r.trim()&&(e([...t,{id:crypto.randomUUID(),gatewayName:r.trim(),gatewayId:s.trim()}]),a(""),o(""))}const d=am(n,t.map(f=>f.gatewayName),t.map(f=>f.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[i.jsx(I$e,{sensors:l,collisionDetection:IIe,onDragEnd:c,children:i.jsx(Y$e,{items:t.map(f=>f.id),strategy:q$e,children:t.map((f,h)=>i.jsx(lLe,{id:f.id,position:h+1,gatewayName:f.gatewayName,gatewayId:f.gatewayId,options:am(n,t.filter(p=>p.id!==f.id).map(p=>p.gatewayName),t.filter(p=>p.id!==f.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===f.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==f.id))},f.id))})}),i.jsxs("div",{className:"flex gap-2",onBlur:f=>{f.currentTarget.contains(f.relatedTarget)||u()},children:[i.jsx(Gy,{value:r,onChange:(f,h)=>{a(f),o((h==null?void 0:h.gatewayId)??"")},onEnter:u,options:d,className:"flex-1"}),i.jsx("input",{value:s,onChange:f=>o(f.target.value),onKeyDown:f=>f.key==="Enter"&&(f.preventDefault(),u()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:u,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function cLe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),[l,c]=g.useState(""),u=t.reduce((h,p)=>h+p.split,0);function d(){!s.trim()||!r||(e([...t,{id:crypto.randomUUID(),split:Number(r),gatewayName:s.trim(),gatewayId:l.trim()}]),a(""),o(""),c(""))}const f=am(n,t.map(h=>h.gatewayName),t.map(h=>h.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[t.map(h=>i.jsx(uLe,{entry:h,options:am(n,t.filter(p=>p.id!==h.id).map(p=>p.gatewayName),t.filter(p=>p.id!==h.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===h.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==h.id))},h.id)),t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${u===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",u,"%",u!==100?" (must equal 100%)":" ✓"]}),i.jsxs("div",{className:"flex gap-2",onBlur:h=>{h.currentTarget.contains(h.relatedTarget)||d()},children:[i.jsx("input",{type:"number",value:r,onChange:h=>a(h.target.value),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-20 focus:outline-none focus:border-brand-500"}),i.jsx(Gy,{value:s,onChange:(h,p)=>{o(h),c((p==null?void 0:p.gatewayId)??"")},onEnter:d,options:f,className:"flex-1"}),i.jsx("input",{value:l,onChange:h=>c(h.target.value),onKeyDown:h=>h.key==="Enter"&&(h.preventDefault(),d()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:d,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function uLe({entry:t,options:e,onEdit:n,onRemove:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(String(t.split)),[c,u]=g.useState(t.gatewayName),[d,f]=g.useState(t.gatewayId);function h(){l(String(t.split)),u(t.gatewayName),f(t.gatewayId),s(!0)}function p(){const m=c.trim();m&&(n({split:Number(o)||0,gatewayName:m,gatewayId:d.trim()}),s(!1))}return a?i.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:m=>{m.key==="Escape"&&(m.preventDefault(),s(!1)),m.key==="Enter"&&(m.preventDefault(),p())},children:[i.jsx("input",{type:"number",value:o,onChange:m=>l(m.target.value),"aria-label":"Split percentage",className:"w-20 rounded-lg border border-slate-200 bg-transparent px-2 py-1 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(Gy,{value:c,onChange:(m,x)=>{u(m),f((x==null?void 0:x.gatewayId)??"")},onEnter:p,options:e,className:"flex-1"}),i.jsx("input",{value:d,onChange:m=>f(m.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:p,disabled:!c.trim(),"aria-label":"Save split",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:()=>s(!1),"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsxs("span",{className:"text-xs font-bold text-brand-600 w-10 shrink-0 tabular-nums",children:[t.split,"%"]}),i.jsxs("button",{type:"button",onClick:h,"aria-label":`Edit ${t.gatewayName}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[t.gatewayName,t.gatewayId?` (${t.gatewayId})`:""]}),i.jsx(El,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:r,"aria-label":`Remove ${t.gatewayName}`,className:"text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]})}function dLe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),s=t.reduce((c,u)=>c+u.split,0);function o(){r&&(e([...t,{id:crypto.randomUUID(),split:Number(r),gateways:[]}]),a(""))}function l(c,u){e(t.map(d=>d.id===c?{...d,...u}:d))}return i.jsxs("div",{className:"space-y-3",children:[t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${s===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",s,"%",s!==100?" (must equal 100%)":" ✓"]}),t.map((c,u)=>i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-slate-50 dark:bg-[#111118] border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsxs("span",{className:"text-xs text-slate-500 font-medium shrink-0",children:["Split ",u+1,":"]}),i.jsx("input",{type:"number",value:c.split,onChange:d=>l(c.id,{split:Number(d.target.value)}),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded px-2 py-0.5 text-xs w-16 focus:outline-none"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),i.jsx("button",{type:"button",onClick:()=>e(t.filter(d=>d.id!==c.id)),className:"ml-auto text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]}),i.jsxs("div",{className:"p-3",children:[i.jsx("p",{className:"mb-2 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:"Priority list for this split"}),i.jsx(qP,{gateways:c.gateways,suggestions:n,onChange:d=>l(c.id,{gateways:d})})]})]},c.id)),i.jsxs("div",{className:"flex gap-2 items-center",onBlur:c=>{c.currentTarget.contains(c.relatedTarget)||o()},children:[i.jsx("input",{type:"number",value:r,onChange:c=>a(c.target.value),onKeyDown:c=>c.key==="Enter"&&(c.preventDefault(),o()),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-24 focus:outline-none focus:border-brand-500"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:o,children:[i.jsx(Qn,{size:13})," Add split"]})]})]})}function fLe({row:t,onChange:e,onRemove:n,routingKeys:r}){const a=r[t.lhs],s=(a==null?void 0:a.type)==="enum",o=(a==null?void 0:a.type)==="integer",l=(a==null?void 0:a.type)==="udf"||(a==null?void 0:a.type)==="global_ref",c=t.operator==="in"||t.operator==="not_in",u=o?[">","<",">=","<=","==","!="]:s?["==","!=","in","not_in"]:["==","!="],d=Array.isArray(t.value)?t.value:[];function f(h){const p=h==="in"||h==="not_in",m=t.operator==="in"||t.operator==="not_in";let x=t.value;p&&!Array.isArray(t.value)?x=t.value?[t.value]:[]:!p&&m&&(x=Array.isArray(t.value)?t.value[0]??"":""),e({...t,operator:h,value:x})}return i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Yo,{className:"w-[13.5rem] shrink-0",dataCy:"cond-lhs",value:t.lhs,onChange:h=>{var x;const p=r[h],m=(p==null?void 0:p.type)==="enum"?((x=p.values)==null?void 0:x[0])??"":"";e({...t,lhs:h,value:m,operator:"=="})},options:Object.keys(r).map(h=>({value:h,label:ic(h)}))}),i.jsx("select",{value:t.operator,onChange:h=>f(h.target.value),"aria-label":"Condition operator",className:"cond-select w-[10.5rem] shrink-0",children:u.map(h=>i.jsx("option",{value:h,children:AG[h]||h},h))}),i.jsx("div",{className:"flex items-center gap-2",children:s&&c?i.jsx("div",{"data-cy":"cond-val",className:"w-[14rem]",children:i.jsx(oLe,{values:d,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:ic(h)})),placeholder:"Select values…"})}):s?i.jsx(Yo,{className:"w-[12rem]",dataCy:"cond-val",value:t.value,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:ic(h)}))}):o?i.jsx("input",{type:"number",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-32"}):l?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"text",value:t.metadataKey||"",onChange:h=>e({...t,metadataKey:h.target.value}),placeholder:"key",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-40"}),i.jsx("span",{className:"shrink-0 text-sm text-slate-500 dark:text-slate-400 select-none",children:"="}),i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-44"})]}):i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-52"})}),i.jsx("button",{type:"button",onClick:n,"aria-label":"Remove condition",className:"shrink-0 text-red-600 transition-colors hover:text-red-600",children:i.jsx(Cn,{size:15})})]})}function cX({group:t,onChange:e,onRemove:n,canRemove:r,routingKeys:a,depth:s=0}){function o(){e({...t,conditions:[...t.conditions,OG(a)]})}function l(){e({...t,nested:[...t.nested,GT(a)]})}return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222733] bg-white dark:bg-[#0f141d]",children:[i.jsxs("div",{className:"space-y-0 divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[t.conditions.map((c,u)=>i.jsxs("div",{"data-testid":"condition-row",className:"flex items-center gap-3 px-4 py-3",children:[t.conditions.length>1&&i.jsx("span",{className:"w-10 shrink-0 text-[11px] font-bold uppercase tracking-widest text-sky-700 select-none leading-4",children:u===0?"IF":"AND"}),i.jsx(fLe,{row:c,routingKeys:a,onChange:d=>e({...t,conditions:t.conditions.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,conditions:t.conditions.length>1?t.conditions.filter(d=>d.id!==c.id):t.conditions})})]},c.id)),i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add condition"]}),s>0&&r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(Cn,{size:13})," Remove group"]})]})]}),s===0&&t.nested.length>0&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] px-3 pt-3 pb-2 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:[i.jsx(sL,{size:11}),"Then match any of (nested OR)"]}),t.nested.map((c,u)=>i.jsxs("div",{className:"pl-3 border-l-2 border-sky-200 dark:border-sky-800",children:[u>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx(cX,{group:c,routingKeys:a,canRemove:!0,depth:1,onChange:d=>e({...t,nested:t.nested.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,nested:t.nested.filter(d=>d.id!==c.id)})})]},c.id))]}),s===0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-4 border-t border-slate-100 px-4 py-2.5 dark:border-[#1c1c24]",children:[s===0&&i.jsxs("button",{type:"button",onClick:l,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(sL,{size:13})," Add nested branch"]}),r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(Cn,{size:13})," Remove group"]})]})]})}const uF={priority:"Priority",volume_split:"Volume Split"};function hLe({block:t,index:e,onChange:n,onRemove:r,routingKeys:a,gatewaySuggestions:s=[],error:o}){const[l,c]=g.useState(!1);g.useEffect(()=>{o&&c(!1)},[o]);function u(){n({...t,statements:[...t.statements,GT(a)]})}return i.jsxs("div",{className:`overflow-hidden rounded-xl border ${o?"border-red-300 dark:border-red-500/50":"border-slate-200 dark:border-[#1c1c24]"}`,children:[i.jsxs("div",{onClick:()=>c(!l),className:"flex cursor-pointer items-center justify-between gap-3 border-b border-slate-200 bg-slate-50 px-5 py-3 dark:border-[#1c1c24] dark:bg-[#111118]",children:[i.jsxs("div",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[i.jsx("input",{value:t.name,onChange:d=>n({...t,name:d.target.value}),onClick:d=>d.stopPropagation(),placeholder:"Rule name",className:"input-bare min-w-0 max-w-[16rem] flex-1 cursor-text text-[15px] font-semibold text-slate-800 focus:outline-none dark:text-slate-100 leading-[22px]"}),i.jsx("span",{className:"shrink-0 truncate text-xs text-slate-500 dark:text-[#78849a]",children:e===0?"(Highest priority matching check)":e!==void 0?`(Checked if rule ${e} does not match)`:""})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),r()},"aria-label":"Delete rule",className:"text-red-600 transition-colors hover:text-red-600",children:i.jsx(Cn,{size:15})}),i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),c(!l)},"aria-label":l?"Expand rule":"Collapse rule",className:"text-slate-500 transition-colors hover:text-slate-600",children:l?i.jsx(wn,{size:15}):i.jsx(Ds,{size:15})})]})]}),!l&&i.jsxs("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[i.jsxs("div",{className:"space-y-2.5 px-5 py-5",children:[i.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"If"}),t.statements.map((d,f)=>i.jsxs("div",{className:"space-y-2",children:[f>0&&i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"}),i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-sky-700 px-1 leading-4",children:"or"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"})]}),i.jsx(cX,{group:d,routingKeys:a,canRemove:t.statements.length>1,onChange:h=>n({...t,statements:t.statements.map(p=>p.id===d.id?h:p)}),onRemove:()=>n({...t,statements:t.statements.filter(h=>h.id!==d.id)})})]},d.id)),i.jsxs("button",{type:"button",onClick:u,className:"mt-1 flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add OR group"]})]}),i.jsxs("div",{"data-cy":"then-section",className:"px-5 py-5",children:[i.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[i.jsx("p",{className:"shrink-0 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Then route"}),i.jsx("div",{className:"flex overflow-hidden rounded-lg border border-slate-200 text-xs dark:border-[#222226]",children:Object.keys(uF).map(d=>i.jsx("button",{type:"button",onClick:()=>n({...t,outputType:d}),className:`px-2.5 py-1 transition-colors ${t.outputType===d?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:uF[d]},d))})]}),t.outputType==="priority"&&i.jsx(qP,{gateways:t.priorityGateways,suggestions:s,onChange:d=>n({...t,priorityGateways:d})}),t.outputType==="volume_split"&&i.jsx(cLe,{entries:t.volumeSplitEntries,suggestions:s,onChange:d=>n({...t,volumeSplitEntries:d})}),t.outputType==="volume_split_priority"&&i.jsx(dLe,{entries:t.volumeSplitPriorityEntries,suggestions:s,onChange:d=>n({...t,volumeSplitPriorityEntries:d})}),i.jsx(ek,{message:o})]})]})]})}function dF(t,e,n,r){return JSON.stringify([t.trim(),e,n,r])}function fF(){const t=Ro(),e=Kr(),{id:n}=f7(),[r]=Nl(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=Er(),{routingKeysConfig:l,isLoading:c,error:u}=MT(),d=l,f=Object.keys(d).length>0,h=!c&&(!f||!!u),[p,m]=g.useState(""),[x,y]=g.useState(""),[b,v]=g.useState([]),[w,j]=g.useState({priorityGateways:[]}),[k,_]=g.useState("visual"),[S,N]=g.useState(""),[E,P]=g.useState(null),[M,A]=g.useState(!1),[O,D]=g.useState(null),[I,X]=g.useState(null),[Q,V]=g.useState({}),Y=g.useRef(null),{data:H,mutate:G}=ut(o?`/routing/list/${o}`:null,()=>Ve(`/routing/list/${o}`)),{data:$}=ut(o?`/routing/list/active/${o}`:null,()=>Ve(`/routing/list/active/${o}`)),F=n||a,R=F?(H||[]).find(je=>je.id===F):void 0,z=s&&($||[]).some(je=>je.id===n),U=s&&!$,ee=g.useRef(null),pe=g.useRef(null);g.useEffect(()=>{if(!R||ee.current===R.id)return;ee.current=R.id;const{ruleBlocks:je,defaultOutput:Me}=cOe(R);m(s?R.name:`copy-of-${R.name}`),y(R.description&&R.description!=="N/A"?R.description:""),v(je),j(Me),_("visual"),pe.current=dF(s?R.name:`copy-of-${R.name}`,R.description&&R.description!=="N/A"?R.description:"",je,Me)},[R,s]);const re=pe.current!==null&&pe.current!==dF(p,x,b,w),he=R&&p.trim()===R.name?`copy-of-${R.name}`:p.trim(),q=Array.from(new Set([...b.flatMap(je=>[...je.priorityGateways.map(Me=>Me.gatewayName),...je.volumeSplitEntries.map(Me=>Me.gatewayName),...je.volumeSplitPriorityEntries.flatMap(Me=>Me.gateways.map(Be=>Be.gatewayName))]),...w.priorityGateways.map(je=>je.gatewayName)].filter(Boolean))),W=oOe(b,w,d);function ue(){m(""),y(""),v([]),j({priorityGateways:[]}),_("visual"),N(""),P(null),D(null),X(null),V({})}async function te(je){var tt;if(je.preventDefault(),!o){D("Set a Merchant ID first.");return}if(h){D("Routing key config is unavailable. Ensure backend /config/routing-keys is reachable and valid.");return}const Me=p.trim()?null:"Rule name is required.",Be={};if(b.forEach(B=>{(B.outputType==="priority"&&B.priorityGateways.length===0||B.outputType==="volume_split"&&B.volumeSplitEntries.length===0||B.outputType==="volume_split_priority"&&B.volumeSplitPriorityEntries.length===0)&&(Be[B.id]="Add at least one destination gateway to route to.")}),X(Me),V(Be),Me||Object.keys(Be).length||E){D(E&&!Me&&!Object.keys(Be).length?"Fix the syntax error in the code editor before saving.":"Fix the highlighted fields before saving."),Me&&((tt=Y.current)==null||tt.focus());return}A(!0),D(null);try{const B={type:"advanced",data:W};s&&!z?await Ve("/routing/update",{created_by:o,routing_algorithm_id:n,name:p.trim(),description:x,algorithm:B}):await Ve("/routing/create",{name:z?he:p.trim(),description:x,created_by:o,algorithm_for:(R==null?void 0:R.algorithm_for)??"payment",algorithm:B}),await G(),e("/routing/rules")}catch(B){D(String(B))}finally{A(!1)}}function ie(){v(je=>[...je,{id:crypto.randomUUID(),name:`Rule ${je.length+1}`,statements:[GT(d)],outputType:"priority",priorityGateways:[],volumeSplitEntries:[],volumeSplitPriorityEntries:[]}])}function me(){b.length>0?N(sIe(b)):S.trim()||N(LY),P(null),_("code")}function ve(){_("visual")}function Ne(je){if(N(je),!je.trim()){P(null),v([]);return}const Me=uIe(je);Me.error?(P(Me.error),v([])):Me.rules!==null&&(P(null),v(Me.rules))}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/rules"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Rule-Based Routing"]}),i.jsx(qr,{title:s?"Edit Payment Rule":"Create Payment Rule",description:"Create precise cascading routing paths for card transactions using conditional flags.",className:"truncate"})]}),i.jsxs("div",{className:"flex shrink-0 rounded-lg border border-slate-200 text-xs dark:border-[#222226] overflow-hidden",children:[i.jsx("button",{type:"button",onClick:ve,className:`px-3 py-1.5 transition-colors ${k==="visual"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Visual Builder"}),i.jsx("button",{type:"button",onClick:me,className:`px-3 py-1.5 transition-colors ${k==="code"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Code"})]})]}),s&&!R&&H&&i.jsx(_t,{error:"That rule no longer exists for this merchant."}),z&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:he||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:te,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"rule-name",ref:Y,value:p,onChange:je=>{m(je.target.value),I&&X(null)},placeholder:"my-rule","aria-invalid":!!I,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${PG(!!I)}`}),i.jsx(ek,{message:I})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"rule-description",value:x,onChange:je=>y(je.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Configured Rules"}),c&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),h&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Builder is disabled until this is fixed."}),k==="visual"?i.jsxs(i.Fragment,{children:[b.map((je,Me)=>i.jsx(hLe,{block:je,index:Me,routingKeys:d,gatewaySuggestions:q,error:Q[je.id],onChange:Be=>{v(tt=>tt.map(B=>B.id===je.id?Be:B)),Q[je.id]&&V(({[je.id]:tt,...B})=>B)},onRemove:()=>{v(Be=>Be.filter(tt=>tt.id!==je.id)),V(({[je.id]:Be,...tt})=>tt)}},je.id)),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",onClick:ie,disabled:h,children:[i.jsx(Qn,{size:14})," Add Rule"]})]}):i.jsx(vIe,{value:S,onChange:Ne,parseError:E,routingKeys:d,gatewaySuggestions:q})]}),i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-300 px-4 py-4 dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-200 leading-[22px]",children:"Default Fallback Gateway"}),i.jsxs("p",{className:"mb-4 mt-1 text-[13px] text-slate-500 dark:text-[#8d96a8] leading-[18px]",children:["This gateway handles any transactions that do not match the custom rules configured above. Per-request overrides are possible via ",i.jsx("code",{className:"font-mono",children:"fallback_output"}),"."]}),i.jsx(qP,{gateways:w.priorityGateways,suggestions:q,onChange:je=>j({...w,priorityGateways:je})})]})]})}),i.jsx(_t,{error:O}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{type:"submit",disabled:M||h||!t||U||z&&!re,title:z&&!re?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:M?"Saving...":z?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(ke,{type:"button",variant:"secondary",size:"sm",onClick:ue,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/rules"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx(pLe,{ruleName:p,ruleBlocks:b,algorithmData:W})]})]})}function pLe({ruleName:t,ruleBlocks:e,algorithmData:n}){const r={id:"preview",name:t,description:"",created_by:"",algorithm:{type:"advanced",data:n}};return i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:t.trim()||"Untitled rule"})]}),e.length===0?i.jsx("p",{className:"text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96a8]",children:"No conditions yet — every payment will take the default fallback."}):i.jsx(YT,{algo:r})]})})})})}function uX(t){return{type:"volume_split",data:t.map(e=>({split:e.split,output:{gateway_name:e.gatewayName.trim(),gateway_id:e.gatewayId.trim()||null}}))}}function mLe(t,e){var n;return{name:t.ruleName.trim(),description:((n=t.description)==null?void 0:n.trim())??"",created_by:e,algorithm_for:"payment",metadata:{},algorithm:uX(t.gateways)}}function gLe(t){return t.map((e,n)=>{var r,a,s;return{id:`${((r=e.output)==null?void 0:r.gateway_name)||"gateway"}-${n}`,gatewayName:((a=e.output)==null?void 0:a.gateway_name)||"",gatewayId:((s=e.output)==null?void 0:s.gateway_id)||"",split:e.split}})}function v2(t){const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="volume_split")return null;const n=e.data||[];return{id:t.id,name:t.name,description:t.description,createdAt:t.created_at,gateways:gLe(n)}}var hn;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function n(a){throw new Error}t.assertNever=n,t.arrayToEnum=a=>{const s={};for(const o of a)s[o]=o;return s},t.getValidEnumValues=a=>{const s=t.objectKeys(a).filter(l=>typeof a[a[l]]!="number"),o={};for(const l of s)o[l]=a[l];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(s){return a[s]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&s.push(o);return s},t.find=(a,s)=>{for(const o of a)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function r(a,s=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(hn||(hn={}));var hF;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(hF||(hF={}));const ht=hn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hc=t=>{switch(typeof t){case"undefined":return ht.undefined;case"string":return ht.string;case"number":return Number.isNaN(t)?ht.nan:ht.number;case"boolean":return ht.boolean;case"function":return ht.function;case"bigint":return ht.bigint;case"symbol":return ht.symbol;case"object":return Array.isArray(t)?ht.array:t===null?ht.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ht.promise:typeof Map<"u"&&t instanceof Map?ht.map:typeof Set<"u"&&t instanceof Set?ht.set:typeof Date<"u"&&t instanceof Date?ht.date:ht.object;default:return ht.unknown}},Fe=hn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class bc extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},a=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;cn.message){const n={},r=[];for(const a of this.issues)if(a.path.length>0){const s=a.path[0];n[s]=n[s]||[],n[s].push(e(a))}else r.push(e(a));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}bc.create=t=>new bc(t);const $5=(t,e)=>{let n;switch(t.code){case Fe.invalid_type:t.received===ht.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Fe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,hn.jsonStringifyReplacer)}`;break;case Fe.unrecognized_keys:n=`Unrecognized key(s) in object: ${hn.joinValues(t.keys,", ")}`;break;case Fe.invalid_union:n="Invalid input";break;case Fe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${hn.joinValues(t.options)}`;break;case Fe.invalid_enum_value:n=`Invalid enum value. Expected ${hn.joinValues(t.options)}, received '${t.received}'`;break;case Fe.invalid_arguments:n="Invalid function arguments";break;case Fe.invalid_return_type:n="Invalid function return type";break;case Fe.invalid_date:n="Invalid date";break;case Fe.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:hn.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Fe.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Fe.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Fe.custom:n="Invalid input";break;case Fe.invalid_intersection_types:n="Intersection results could not be merged";break;case Fe.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Fe.not_finite:n="Number must be finite";break;default:n=e.defaultError,hn.assertNever(t)}return{message:n}};let xLe=$5;function yLe(){return xLe}const vLe=t=>{const{data:e,path:n,errorMaps:r,issueData:a}=t,s=[...n,...a.path||[]],o={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:e,defaultError:l}).message;return{...a,path:s,message:l}};function et(t,e){const n=yLe(),r=vLe({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===$5?void 0:$5].filter(a=>!!a)});t.common.issues.push(r)}class xi{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const a of n){if(a.status==="aborted")return Dt;a.status==="dirty"&&e.dirty(),r.push(a.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const a of n){const s=await a.key,o=await a.value;r.push({key:s,value:o})}return xi.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const a of n){const{key:s,value:o}=a;if(s.status==="aborted"||o.status==="aborted")return Dt;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(r[s.value]=o.value)}return{status:e.value,value:r}}}const Dt=Object.freeze({status:"aborted"}),ox=t=>({status:"dirty",value:t}),eo=t=>({status:"valid",value:t}),pF=t=>t.status==="aborted",mF=t=>t.status==="dirty",sm=t=>t.status==="valid",Ck=t=>typeof Promise<"u"&&t instanceof Promise;var xt;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(xt||(xt={}));class Fu{constructor(e,n,r,a){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const gF=(t,e)=>{if(sm(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new bc(t.common.issues);return this._error=n,this._error}}};function Wt(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:a}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,l)=>{const{message:c}=t;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:a}}class un{get description(){return this._def.description}_getType(e){return Hc(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:Hc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new xi,ctx:{common:e.parent.common,data:e.data,parsedType:Hc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(Ck(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)},a=this._parseSync({data:e,path:r.path,parent:r});return gF(r,a)}"~validate"(e){var r,a;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return sm(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(a=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>sm(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)},a=this._parse({data:e,path:r.path,parent:r}),s=await(Ck(a)?a:Promise.resolve(a));return gF(r,s)}refine(e,n){const r=a=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(a):n;return this._refinement((a,s)=>{const o=e(a),l=()=>s.addIssue({code:Fe.custom,...r(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(e,n){return this._refinement((r,a)=>e(r)?!0:(a.addIssue(typeof n=="function"?n(r,a):n),!1))}_refinement(e){return new yf({schema:this,typeName:$t.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Su.create(this,this._def)}nullable(){return lm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bl.create(this)}promise(){return Tk.create(this,this._def)}or(e){return Ak.create([this,e],this._def)}and(e){return Ok.create(this,e,this._def)}transform(e){return new yf({...Wt(this._def),schema:this,typeName:$t.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new F5({...Wt(this._def),innerType:this,defaultValue:n,typeName:$t.ZodDefault})}brand(){return new ULe({typeName:$t.ZodBranded,type:this,...Wt(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new B5({...Wt(this._def),innerType:this,catchValue:n,typeName:$t.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return KP.create(this,e)}readonly(){return z5.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const bLe=/^c[^\s-]{8,}$/i,wLe=/^[0-9a-z]+$/,kLe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jLe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,SLe=/^[a-z0-9_-]{21}$/i,_Le=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,NLe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,CLe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ELe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Q_;const ALe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,OLe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,TLe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,PLe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,MLe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,RLe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dX="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",DLe=new RegExp(`^${dX}$`);function fX(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function ILe(t){return new RegExp(`^${fX(t)}$`)}function $Le(t){let e=`${dX}T${fX(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function LLe(t,e){return!!((e==="v4"||!e)&&ALe.test(t)||(e==="v6"||!e)&&TLe.test(t))}function FLe(t,e){if(!_Le.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(r));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function BLe(t,e){return!!((e==="v4"||!e)&&OLe.test(t)||(e==="v6"||!e)&&PLe.test(t))}class nc extends un{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ht.string){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.string,received:s.parsedType}),Dt}const r=new xi;let a;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(a=this._getOrReturnCtx(e,a),et(a,{code:Fe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const o=e.data.length>s.value,l=e.data.lengthe.test(a),{validation:n,code:Fe.invalid_string,...xt.errToObj(r)})}_addCheck(e){return new nc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...xt.errToObj(e)})}url(e){return this._addCheck({kind:"url",...xt.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...xt.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...xt.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...xt.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...xt.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...xt.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...xt.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...xt.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...xt.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...xt.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...xt.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...xt.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...xt.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...xt.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...xt.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...xt.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...xt.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...xt.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...xt.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...xt.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...xt.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...xt.errToObj(n)})}nonempty(e){return this.min(1,xt.errToObj(e))}trim(){return new nc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new nc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new nc({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew nc({checks:[],typeName:$t.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...Wt(t)});function zLe(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,a=n>r?n:r,s=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return s%o/10**a}class mf extends un{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ht.number){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.number,received:s.parsedType}),Dt}let r;const a=new xi;for(const s of this._def.checks)s.kind==="int"?hn.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?zLe(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_finite,message:s.message}),a.dirty()):hn.assertNever(s);return{status:a.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,xt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,xt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,xt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,xt.toString(n))}setLimit(e,n,r,a){return new mf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:xt.toString(a)}]})}_addCheck(e){return new mf({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:xt.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:xt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:xt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:xt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:xt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:xt.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:xt.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:xt.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:xt.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&hn.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew mf({checks:[],typeName:$t.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...Wt(t)});class gf extends un{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ht.bigint)return this._getInvalidInput(e);let r;const a=new xi;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):hn.assertNever(s);return{status:a.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return et(n,{code:Fe.invalid_type,expected:ht.bigint,received:n.parsedType}),Dt}gte(e,n){return this.setLimit("min",e,!0,xt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,xt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,xt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,xt.toString(n))}setLimit(e,n,r,a){return new gf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:xt.toString(a)}]})}_addCheck(e){return new gf({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:xt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:xt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:xt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:xt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:xt.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew gf({checks:[],typeName:$t.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...Wt(t)});class Ek extends un{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ht.boolean){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.boolean,received:r.parsedType}),Dt}return eo(e.data)}}Ek.create=t=>new Ek({typeName:$t.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...Wt(t)});class im extends un{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ht.date){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.date,received:s.parsedType}),Dt}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_date}),Dt}const r=new xi;let a;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(a=this._getOrReturnCtx(e,a),et(a,{code:Fe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):hn.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new im({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:xt.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:xt.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew im({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:$t.ZodDate,...Wt(t)});class xF extends un{_parse(e){if(this._getType(e)!==ht.symbol){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.symbol,received:r.parsedType}),Dt}return eo(e.data)}}xF.create=t=>new xF({typeName:$t.ZodSymbol,...Wt(t)});class yF extends un{_parse(e){if(this._getType(e)!==ht.undefined){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.undefined,received:r.parsedType}),Dt}return eo(e.data)}}yF.create=t=>new yF({typeName:$t.ZodUndefined,...Wt(t)});class vF extends un{_parse(e){if(this._getType(e)!==ht.null){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.null,received:r.parsedType}),Dt}return eo(e.data)}}vF.create=t=>new vF({typeName:$t.ZodNull,...Wt(t)});class bF extends un{constructor(){super(...arguments),this._any=!0}_parse(e){return eo(e.data)}}bF.create=t=>new bF({typeName:$t.ZodAny,...Wt(t)});class wF extends un{constructor(){super(...arguments),this._unknown=!0}_parse(e){return eo(e.data)}}wF.create=t=>new wF({typeName:$t.ZodUnknown,...Wt(t)});class Bu extends un{_parse(e){const n=this._getOrReturnCtx(e);return et(n,{code:Fe.invalid_type,expected:ht.never,received:n.parsedType}),Dt}}Bu.create=t=>new Bu({typeName:$t.ZodNever,...Wt(t)});class kF extends un{_parse(e){if(this._getType(e)!==ht.undefined){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.void,received:r.parsedType}),Dt}return eo(e.data)}}kF.create=t=>new kF({typeName:$t.ZodVoid,...Wt(t)});class bl extends un{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),a=this._def;if(n.parsedType!==ht.array)return et(n,{code:Fe.invalid_type,expected:ht.array,received:n.parsedType}),Dt;if(a.exactLength!==null){const o=n.data.length>a.exactLength.value,l=n.data.lengtha.maxLength.value&&(et(n,{code:Fe.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>a.type._parseAsync(new Fu(n,o,n.path,l)))).then(o=>xi.mergeArray(r,o));const s=[...n.data].map((o,l)=>a.type._parseSync(new Fu(n,o,n.path,l)));return xi.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new bl({...this._def,minLength:{value:e,message:xt.toString(n)}})}max(e,n){return new bl({...this._def,maxLength:{value:e,message:xt.toString(n)}})}length(e,n){return new bl({...this._def,exactLength:{value:e,message:xt.toString(n)}})}nonempty(e){return this.min(1,e)}}bl.create=(t,e)=>new bl({type:t,minLength:null,maxLength:null,exactLength:null,typeName:$t.ZodArray,...Wt(e)});function uh(t){if(t instanceof Ur){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=Su.create(uh(r))}return new Ur({...t._def,shape:()=>e})}else return t instanceof bl?new bl({...t._def,type:uh(t.element)}):t instanceof Su?Su.create(uh(t.unwrap())):t instanceof lm?lm.create(uh(t.unwrap())):t instanceof xf?xf.create(t.items.map(e=>uh(e))):t}class Ur extends un{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=hn.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==ht.object){const u=this._getOrReturnCtx(e);return et(u,{code:Fe.invalid_type,expected:ht.object,received:u.parsedType}),Dt}const{status:r,ctx:a}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof Bu&&this._def.unknownKeys==="strip"))for(const u in a.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=s[u],f=a.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Fu(a,f,a.path,u)),alwaysSet:u in a.data})}if(this._def.catchall instanceof Bu){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:a.data[d]}});else if(u==="strict")l.length>0&&(et(a,{code:Fe.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const f=a.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Fu(a,f,a.path,d)),alwaysSet:d in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const f=await d.key,h=await d.value;u.push({key:f,value:h,alwaysSet:d.alwaysSet})}return u}).then(u=>xi.mergeObjectSync(r,u)):xi.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return xt.errToObj,new Ur({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,o;const a=((o=(s=this._def).errorMap)==null?void 0:o.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:xt.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new Ur({...this._def,unknownKeys:"strip"})}passthrough(){return new Ur({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ur({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ur({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:$t.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new Ur({...this._def,catchall:e})}pick(e){const n={};for(const r of hn.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Ur({...this._def,shape:()=>n})}omit(e){const n={};for(const r of hn.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new Ur({...this._def,shape:()=>n})}deepPartial(){return uh(this)}partial(e){const n={};for(const r of hn.objectKeys(this.shape)){const a=this.shape[r];e&&!e[r]?n[r]=a:n[r]=a.optional()}return new Ur({...this._def,shape:()=>n})}required(e){const n={};for(const r of hn.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Su;)s=s._def.innerType;n[r]=s}return new Ur({...this._def,shape:()=>n})}keyof(){return hX(hn.objectKeys(this.shape))}}Ur.create=(t,e)=>new Ur({shape:()=>t,unknownKeys:"strip",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});Ur.strictCreate=(t,e)=>new Ur({shape:()=>t,unknownKeys:"strict",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});Ur.lazycreate=(t,e)=>new Ur({shape:t,unknownKeys:"strip",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});class Ak extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function a(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=s.map(l=>new bc(l.ctx.common.issues));return et(n,{code:Fe.invalid_union,unionErrors:o}),Dt}if(n.common.async)return Promise.all(r.map(async s=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(a);{let s;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!s&&(s={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const l=o.map(c=>new bc(c));return et(n,{code:Fe.invalid_union,unionErrors:l}),Dt}}get options(){return this._def.options}}Ak.create=(t,e)=>new Ak({options:t,typeName:$t.ZodUnion,...Wt(e)});function L5(t,e){const n=Hc(t),r=Hc(e);if(t===e)return{valid:!0,data:t};if(n===ht.object&&r===ht.object){const a=hn.objectKeys(e),s=hn.objectKeys(t).filter(l=>a.indexOf(l)!==-1),o={...t,...e};for(const l of s){const c=L5(t[l],e[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===ht.array&&r===ht.array){if(t.length!==e.length)return{valid:!1};const a=[];for(let s=0;s{if(pF(s)||pF(o))return Dt;const l=L5(s.value,o.value);return l.valid?((mF(s)||mF(o))&&n.dirty(),{status:n.value,value:l.data}):(et(r,{code:Fe.invalid_intersection_types}),Dt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>a(s,o)):a(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Ok.create=(t,e,n)=>new Ok({left:t,right:e,typeName:$t.ZodIntersection,...Wt(n)});class xf extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.array)return et(r,{code:Fe.invalid_type,expected:ht.array,received:r.parsedType}),Dt;if(r.data.lengththis._def.items.length&&(et(r,{code:Fe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Fu(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>xi.mergeArray(n,o)):xi.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new xf({...this._def,rest:e})}}xf.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xf({items:t,typeName:$t.ZodTuple,rest:null,...Wt(e)})};class jF extends un{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.map)return et(r,{code:Fe.invalid_type,expected:ht.map,received:r.parsedType}),Dt;const a=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:a._parse(new Fu(r,l,r.path,[u,"key"])),value:s._parse(new Fu(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return Dt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return Dt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}jF.create=(t,e,n)=>new jF({valueType:e,keyType:t,typeName:$t.ZodMap,...Wt(n)});class my extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.set)return et(r,{code:Fe.invalid_type,expected:ht.set,received:r.parsedType}),Dt;const a=this._def;a.minSize!==null&&r.data.sizea.maxSize.value&&(et(r,{code:Fe.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),n.dirty());const s=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return Dt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>s._parse(new Fu(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(e,n){return new my({...this._def,minSize:{value:e,message:xt.toString(n)}})}max(e,n){return new my({...this._def,maxSize:{value:e,message:xt.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}my.create=(t,e)=>new my({valueType:t,minSize:null,maxSize:null,typeName:$t.ZodSet,...Wt(e)});class SF extends un{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}SF.create=(t,e)=>new SF({getter:t,typeName:$t.ZodLazy,...Wt(e)});class _F extends un{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return et(n,{received:n.data,code:Fe.invalid_literal,expected:this._def.value}),Dt}return{status:"valid",value:e.data}}get value(){return this._def.value}}_F.create=(t,e)=>new _F({value:t,typeName:$t.ZodLiteral,...Wt(e)});function hX(t,e){return new om({values:t,typeName:$t.ZodEnum,...Wt(e)})}class om extends un{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return et(n,{expected:hn.joinValues(r),received:n.parsedType,code:Fe.invalid_type}),Dt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return et(n,{received:n.data,code:Fe.invalid_enum_value,options:r}),Dt}return eo(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return om.create(e,{...this._def,...n})}exclude(e,n=this._def){return om.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}}om.create=hX;class NF extends un{_parse(e){const n=hn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==ht.string&&r.parsedType!==ht.number){const a=hn.objectValues(n);return et(r,{expected:hn.joinValues(a),received:r.parsedType,code:Fe.invalid_type}),Dt}if(this._cache||(this._cache=new Set(hn.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const a=hn.objectValues(n);return et(r,{received:r.data,code:Fe.invalid_enum_value,options:a}),Dt}return eo(e.data)}get enum(){return this._def.values}}NF.create=(t,e)=>new NF({values:t,typeName:$t.ZodNativeEnum,...Wt(e)});class Tk extends un{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==ht.promise&&n.common.async===!1)return et(n,{code:Fe.invalid_type,expected:ht.promise,received:n.parsedType}),Dt;const r=n.parsedType===ht.promise?n.data:Promise.resolve(n.data);return eo(r.then(a=>this._def.type.parseAsync(a,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Tk.create=(t,e)=>new Tk({type:t,typeName:$t.ZodPromise,...Wt(e)});class yf extends un{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$t.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),a=this._def.effect||null,s={addIssue:o=>{et(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const o=a.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return Dt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?Dt:c.status==="dirty"||n.value==="dirty"?ox(c.value):c});{if(n.value==="aborted")return Dt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?Dt:l.status==="dirty"||n.value==="dirty"?ox(l.value):l}}if(a.type==="refinement"){const o=l=>{const c=a.refinement(l,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?Dt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?Dt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(a.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!sm(o))return Dt;const l=a.transform(o.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>sm(o)?Promise.resolve(a.transform(o.value,s)).then(l=>({status:n.value,value:l})):Dt);hn.assertNever(a)}}yf.create=(t,e,n)=>new yf({schema:t,typeName:$t.ZodEffects,effect:e,...Wt(n)});yf.createWithPreprocess=(t,e,n)=>new yf({schema:e,effect:{type:"preprocess",transform:t},typeName:$t.ZodEffects,...Wt(n)});class Su extends un{_parse(e){return this._getType(e)===ht.undefined?eo(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Su.create=(t,e)=>new Su({innerType:t,typeName:$t.ZodOptional,...Wt(e)});class lm extends un{_parse(e){return this._getType(e)===ht.null?eo(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}lm.create=(t,e)=>new lm({innerType:t,typeName:$t.ZodNullable,...Wt(e)});class F5 extends un{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===ht.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}F5.create=(t,e)=>new F5({innerType:t,typeName:$t.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Wt(e)});class B5 extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},a=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ck(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new bc(r.common.issues)},input:r.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new bc(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}B5.create=(t,e)=>new B5({innerType:t,typeName:$t.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Wt(e)});class CF extends un{_parse(e){if(this._getType(e)!==ht.nan){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.nan,received:r.parsedType}),Dt}return{status:"valid",value:e.data}}}CF.create=t=>new CF({typeName:$t.ZodNaN,...Wt(t)});class ULe extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class KP extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Dt:s.status==="dirty"?(n.dirty(),ox(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const a=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Dt:a.status==="dirty"?(n.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:r.path,parent:r})}}static create(e,n){return new KP({in:e,out:n,typeName:$t.ZodPipeline})}}class z5 extends un{_parse(e){const n=this._def.innerType._parse(e),r=a=>(sm(a)&&(a.value=Object.freeze(a.value)),a);return Ck(n)?n.then(a=>r(a)):r(n)}unwrap(){return this._def.innerType}}z5.create=(t,e)=>new z5({innerType:t,typeName:$t.ZodReadonly,...Wt(e)});var $t;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})($t||($t={}));const qd=nc.create,Rd=mf.create;gf.create;Ek.create;im.create;Bu.create;const pX=bl.create,b2=Ur.create;Ak.create;Ok.create;xf.create;om.create;Tk.create;Su.create;lm.create;const Dd=yf.createWithPreprocess,mX={string:t=>nc.create({...t,coerce:!0}),number:t=>mf.create({...t,coerce:!0}),boolean:t=>Ek.create({...t,coerce:!0}),bigint:t=>gf.create({...t,coerce:!0}),date:t=>im.create({...t,coerce:!0})},VLe=b2({id:qd().min(1),gatewayName:qd().trim().min(1,"Gateway name is required"),gatewayId:qd().trim(),split:Rd().min(0).max(100)});b2({ruleName:qd().trim().min(1,"Enter a rule name"),gateways:pX(VLe).min(1,"Add at least one gateway")});function WLe(t){return!!(t.ruleName||t.total||Object.keys(t.gateways).length)}function HLe(t){const e={gateways:{}};if(t.ruleName.trim()||(e.ruleName="Enter a rule name"),!t.gateways.length)return e.total="Add at least one gateway.",e;t.gateways.forEach(r=>{r.gatewayName.trim()||(e.gateways[r.id]="Choose a gateway.")});const n=t.gateways.reduce((r,a)=>r+a.split,0);return n!==100&&(e.total=`Splits must sum to 100 (currently ${n}).`),e}const cu=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function gX({gateways:t}){const e=t.filter(r=>r.gatewayName.trim());if(e.length===0)return i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No gateways yet — add at least one to split traffic across."});const n=e.reduce((r,a)=>r+a.split,0);return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex h-3 w-full gap-0.5 overflow-hidden rounded-full",children:e.map((r,a)=>i.jsx("div",{className:"h-full",style:{flex:`${n>0?r.split:1} 1 0`,backgroundColor:cu[a%cu.length]},title:`${r.gatewayName}: ${r.split}%`},r.id))}),i.jsx("div",{className:"space-y-1.5",children:e.map((r,a)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:cu[a%cu.length]}}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-700 dark:text-slate-200",title:r.gatewayName,children:r.gatewayName}),r.gatewayId&&i.jsx("span",{className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-[#78849a] leading-4",title:r.gatewayId,children:r.gatewayId}),i.jsxs("span",{className:"ml-auto shrink-0 pl-2 font-semibold tabular-nums text-slate-700 dark:text-slate-200",children:[r.split,"%"]})]},r.id))}),n!==100&&i.jsxs("p",{className:"text-[11px] font-medium text-amber-700 dark:text-amber-400 leading-4",children:["Splits total ",n,"% — must add up to 100%."]})]})}function Pk(){return Math.random().toString(36).slice(2)}function EF(){return[{id:Pk(),gatewayName:"",gatewayId:"",split:50},{id:Pk(),gatewayName:"",gatewayId:"",split:50}]}function xX(t){return Number.isNaN(t)?0:Math.min(100,Math.max(0,Math.round(t)))}function eN(t){if(t.length===0)return t;const e=t.slice(0,-1),n=e.reduce((s,o)=>s+o.split,0),r=xX(100-n),a=t[t.length-1];return[...e,{...a,split:r}]}function AF(){var R;const t=Ro(),e=Kr(),{id:n}=f7(),[r]=Nl(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=Er(),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(()=>EF()),[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState({gateways:{}}),w=g.useRef(null),{data:j,mutate:k}=ut(o?`/routing/list/${o}`:null,()=>Ve(`/routing/list/${o}`)),{data:_}=ut(o?`/routing/list/active/${o}`:null,()=>Ve(`/routing/list/active/${o}`)),S=n||a,N=S?(j||[]).find(z=>z.id===S):void 0,E=s&&(_||[]).some(z=>z.id===n),P=s&&!_,M=g.useRef(null),A=g.useRef(null);g.useEffect(()=>{if(!N||M.current===N.id)return;const z=v2(N);z&&(M.current=N.id,c(s?z.name:`copy-of-${z.name}`),d(z.description&&z.description!=="N/A"?z.description:""),z.gateways.length>0&&h(z.gateways),A.current=JSON.stringify([(s?z.name:`copy-of-${z.name}`).trim(),z.description&&z.description!=="N/A"?z.description:"",z.gateways.length>0?z.gateways:f]))},[N,s]);const O=A.current!==null&&A.current!==JSON.stringify([l.trim(),u,f]),D=N&&l.trim()===N.name?`copy-of-${N.name}`:l.trim(),I=((R=f[f.length-1])==null?void 0:R.id)??null,X=I?f.filter(z=>z.id!==I).reduce((z,U)=>z+U.split,0):0,Q=Math.max(0,X-100),V=f.reduce((z,U)=>z+U.split,0);function Y(z,U,ee){h(pe=>eN(pe.map(re=>re.id!==z?re:U==="split"?{...re,split:xX(Number(ee))}:{...re,[U]:ee})))}function H(){h(z=>eN([...z,{id:Pk(),gatewayName:"",gatewayId:"",split:0}]))}function G(z){h(U=>{const ee=U.filter(pe=>pe.id!==z);return eN(ee.length?ee:[{id:Pk(),gatewayName:"",gatewayId:"",split:100}])})}function $(){c(""),d(""),h(EF()),y(null),v({gateways:{}})}async function F(z){var ee;if(z.preventDefault(),!o){y("Set a merchant ID first");return}const U=HLe({ruleName:l,gateways:f});if(v(U),WLe(U)){y("Fix the highlighted fields before saving."),U.ruleName&&((ee=w.current)==null||ee.focus());return}m(!0),y(null);try{s&&!E?await Ve("/routing/update",{created_by:o,routing_algorithm_id:n,name:l.trim(),description:u,algorithm:uX(f)}):await Ve("/routing/create",mLe({ruleName:E?D:l,description:u,gateways:f},o)),await k(),e("/routing/volume")}catch(pe){y(pe instanceof Error?pe.message:"Failed to save rule")}finally{m(!1)}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/volume"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Split Routing"]}),i.jsx(qr,{title:s?"Edit Volume Split Rule":"Create Volume Split Rule",description:"Divide traffic across gateways by percentage. The last row absorbs whatever the others leave.",className:"truncate"})]}),s&&!N&&j&&i.jsx(_t,{error:"That rule no longer exists for this merchant."}),E&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:D||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:F,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"volume-rule-name",ref:w,value:l,onChange:z=>{c(z.target.value),b.ruleName&&v(U=>({...U,ruleName:void 0}))},placeholder:"e.g. ab-test-split","aria-invalid":!!b.ruleName,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${PG(!!b.ruleName)}`}),i.jsx(ek,{message:b.ruleName})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"volume-rule-description",value:u,onChange:z=>d(z.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Traffic Distribution"}),i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] gap-3 px-1 text-xs font-medium text-slate-500 md:grid",children:[i.jsx("span",{children:"Gateway Name"}),i.jsx("span",{children:"Gateway ID"}),i.jsx("span",{children:"Split %"}),i.jsx("span",{})]}),f.map((z,U)=>{const ee=z.id===I,pe=z.gatewayName.trim()||`Gateway ${U+1}`;return i.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] md:items-center",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx(Gy,{value:z.gatewayName,onChange:(re,he)=>{Y(z.id,"gatewayName",re),Y(z.id,"gatewayId",(he==null?void 0:he.gatewayId)??""),b.gateways[z.id]&&v(q=>{const{[z.id]:W,...ue}=q.gateways;return{...q,gateways:ue}})},placeholder:"e.g. stripe",options:am([],f.filter(re=>re.id!==z.id).map(re=>re.gatewayName),f.filter(re=>re.id!==z.id).map(re=>re.gatewayId)),className:"min-w-0"}),i.jsx(ek,{message:b.gateways[z.id]})]}),i.jsx("input",{value:z.gatewayId,onChange:re=>Y(z.id,"gatewayId",re.target.value),placeholder:"optional gateway_id",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-lg border border-slate-200 bg-transparent px-2.5 py-2 focus-within:border-brand-500 dark:border-[#222226]",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:cu[U%cu.length]}}),i.jsx("input",{type:"range",min:0,max:100,value:z.split,disabled:ee,onChange:re=>Y(z.id,"split",Number(re.target.value)),"aria-label":`${pe} allocation slider`,className:"h-2 min-w-0 flex-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",style:{accentColor:cu[U%cu.length]}}),i.jsx("input",{type:"number",min:0,max:100,value:z.split,onChange:re=>Y(z.id,"split",Number(re.target.value)),disabled:ee,"aria-label":`${pe} split percentage`,className:"w-12 border-0 bg-transparent p-0 text-right text-sm tabular-nums focus:outline-none disabled:cursor-not-allowed disabled:opacity-70"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),ee&&f.length>1&&i.jsx("span",{className:"rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-600 dark:bg-[#1a1a22] dark:text-slate-300 leading-4",children:"Auto"})]}),i.jsx("button",{type:"button",onClick:()=>G(z.id),disabled:f.length===1,"aria-label":`Remove ${pe}`,className:"text-slate-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(Cn,{size:15})})]},z.id)}),i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("button",{type:"button",onClick:H,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:14})," Add Gateway"]}),i.jsxs("span",{role:b.total?"alert":void 0,className:`text-xs font-medium ${V===100?"text-emerald-700":"text-red-600"}`,children:["Total: ",V,"%",Q?` (reduce fixed splits by ${Q}%)`:V!==100?" (must be 100)":""]})]})]})]})}),i.jsx(_t,{error:x}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{type:"submit",disabled:p||!o||!t||P||E&&!O,title:E&&!O?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):E?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(ke,{type:"button",variant:"secondary",size:"sm",onClick:$,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/volume"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:l.trim()||"Untitled rule"})]}),i.jsx(gX,{gateways:f})]})})})})]})]})}const GLe={"15m":{detail:"Last 15 mins",badge:"Live 15m"},"1h":{detail:"Last hour",badge:"Live 1h"},"12h":{detail:"Last 12 hours",badge:"Live 12h"},"1d":{detail:"Last 1 day",badge:"Live 1d"},"1w":{detail:"Last 1 week",badge:"Live 1w"}};function Mg(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:t&&t<100?1:0}).format(t||0)}function OF(t){return t==null||Number.isNaN(t)?"0%":`${t.toFixed(t>=100?0:1)}%`}function qLe(t){const e=Date.now()-t;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}function KLe(t){return t>=.85?{dot:"bg-emerald-500",text:"text-emerald-700 dark:text-emerald-400"}:t>=.7?{dot:"bg-amber-500",text:"text-amber-700 dark:text-amber-400"}:{dot:"bg-red-500",text:"text-red-600 dark:text-red-400"}}function YLe(){return i.jsxs("div",{className:"grid gap-5 lg:grid-cols-[1.1fr_0.9fr]",children:[i.jsxs(Te,{className:"p-7",children:[i.jsx(an,{children:"Merchant session required"}),i.jsx("h2",{className:"mt-4 max-w-xl text-3xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Sign in with a merchant account to turn this into a live overview."}),i.jsx("p",{className:"mt-4 max-w-xl text-sm leading-7 text-slate-600 dark:text-[#b2bdd1]",children:"Analytics use your signed-in merchant account. After sign-in, the overview shows service health, active routing, request count, and gateway activity."})]}),i.jsx(Te,{className:"p-7",children:i.jsx("div",{className:"space-y-5",children:[{icon:Gp,title:"System status",text:"Check whether the service is reachable."},{icon:qj,title:"Routing setup",text:"See whether a strategy is configured."},{icon:Oo,title:"Gateway activity",text:"View recent request distribution by gateway."}].map(t=>i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-3 dark:border-[#2a303a] dark:bg-[#161b24]",children:i.jsx(t.icon,{className:"h-5 w-5 text-brand-600 dark:text-sky-300"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:t.title}),i.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600 dark:text-[#b2bdd1]",children:t.text})]})]},t.title))})})]})}function XLe(){var $,F,R,z,U,ee,pe,re,he,q,W,ue;const{merchantId:t}=Er(),e=xr(te=>{var ie;return((ie=te.user)==null?void 0:ie.merchantId)||""}),n=t||e,[r,a]=g.useState("1d"),[s,o]=g.useState(()=>Fs(au("1d").start_ms)),[l,c]=g.useState(()=>Fs(Date.now())),u=g.useMemo(()=>r==="custom"?Yp(s,l):void 0,[l,s,r]),{data:d}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`),{shouldRetryOnError:!1}),{data:f}=ut(n?["/rule/get","successRate",n]:null,()=>Ve("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1}),h=Iy(n),p=Al(n||void 0),m=r==="custom"?u?`range=1h&start_ms=${u.start_ms}&end_ms=${u.end_ms}`:null:`range=${r}`,x=m?`/analytics/overview?${m}`:null,y=m?`/analytics/routing-stats?${m}`:null,b=ut(x,Lt,{shouldRetryOnError:!1,keepPreviousData:!0}),v=ut(y,Lt,{shouldRetryOnError:!1,keepPreviousData:!0}),w=(d==null?void 0:d[0])||null,j=(d||[]).some(te=>{var ie;return((ie=te.algorithm_data||te.algorithm)==null?void 0:ie.type)==="advanced"}),_=((F=((($=b.data)==null?void 0:$.route_hits)||[]).find(te=>te.route==="/decide_gateway"))==null?void 0:F.count)||0,S=((z=(R=b.data)==null?void 0:R.top_errors)==null?void 0:z.reduce((te,ie)=>te+ie.count,0))||0,N=((U=b.data)==null?void 0:U.top_errors)||[],E=g.useMemo(()=>{var ie;const te=new Map;for(const me of((ie=b.data)==null?void 0:ie.top_scores)||[]){const ve=te.get(me.gateway)??{scoreSum:0,txSum:0};ve.scoreSum+=me.score_value*me.transaction_count,ve.txSum+=me.transaction_count,te.set(me.gateway,ve)}return Array.from(te.entries()).map(([me,ve])=>({gateway:me,score:ve.txSum>0?ve.scoreSum/ve.txSum:0,txCount:ve.txSum})).sort((me,ve)=>ve.txCount-me.txCount)},[b.data]),P=g.useMemo(()=>{var me;const te=new Map;for(const ve of((me=v.data)==null?void 0:me.gateway_share)||[])te.set(ve.gateway,(te.get(ve.gateway)||0)+ve.count);const ie=Array.from(te.values()).reduce((ve,Ne)=>ve+Ne,0);return Array.from(te.entries()).map(([ve,Ne])=>({gateway:ve,count:Ne,share:ie?Ne/ie*100:0})).sort((ve,Ne)=>Ne.count-ve.count)},[v.data]),M=((ee=P[0])==null?void 0:ee.gateway)||((he=(re=(pe=b.data)==null?void 0:pe.top_scores)==null?void 0:re[0])==null?void 0:he.gateway),A=r==="custom"?{detail:u?`${Qw(u.start_ms)} — ${Qw(u.end_ms)}`:"Custom window",badge:"Custom"}:GLe[r],O=!!(((q=f==null?void 0:f.config)==null?void 0:q.type)==="successRate"&&f.config.data&&f.merchant_id===n),D=p.isEnabled("autopilot"),I=O||D,X=h.isEnabled,Q=[!!w,I,j,X].filter(Boolean).length,V=[{label:"Routing strategy",description:w?w.name:"None configured",state:w?"Configured":"Not set",icon:qj,required:!0,href:"../routing"},{label:"Multi-objective config",description:D?"Autopilot mode enabled":O?"Configured":"Not configured",state:D?"Auto-pilot":O?"Configured":"Not set",icon:Kj,required:!0,href:"../routing/sr"},{label:"Rule-based routing",description:j?"Enabled":"Not enabled",state:j?"Enabled":"Optional",icon:Wj,required:!1,href:"../routing/rules"},{label:"Debit routing",description:h.isLoading?"Checking…":X?"Enabled":"Not enabled",state:h.isLoading?"Checking":X?"Enabled":"Optional",icon:Oo,required:!1,href:"../routing/debit"}],Y=!b.data&&b.isLoading||!v.data&&v.isLoading,H=!Y&&(b.isValidating||v.isValidating),G=["#38bdf8","#60a5fa","#22c55e","#f59e0b"];return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsxs("header",{className:"relative flex flex-wrap items-start justify-between gap-4",children:[i.jsx(qr,{title:"Overview",badge:(W=b.data)!=null&&W.merchant_id||n?i.jsx(Pe,{variant:"blue",children:((ue=b.data)==null?void 0:ue.merchant_id)||n}):null}),i.jsx("div",{className:"flex flex-wrap items-center gap-2 md:justify-end",children:i.jsx(ET,{range:r,customStart:s,customEnd:l,onRangeChange:te=>{if(a(te),te!=="custom"){const ie=au(te);o(Fs(ie.start_ms)),c(Fs(ie.end_ms))}},onCustomChange:(te,ie)=>{o(te),c(ie)}})}),i.jsx("div",{className:`absolute bottom-0 left-0 right-0 h-[2px] overflow-hidden transition-opacity duration-500 ${Y||H?"opacity-100":"opacity-0"}`,children:i.jsx("div",{className:"h-full origin-left animate-[analytics-progress_1.8s_ease-in-out_infinite] bg-brand-500"})})]}),n?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:`grid gap-4 sm:grid-cols-3 transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-5",children:[i.jsx(an,{children:"Requests"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:Mg(_)}),i.jsxs("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:["/decide-gateway · ",A.detail.toLowerCase()]})]}),i.jsxs(Te,{className:`p-5 transition-colors ${S>0?"border-red-300/60 dark:border-red-500/30":""}`,children:[i.jsx(an,{children:"Errors"}),i.jsx("p",{className:`mt-3 text-[2rem] font-semibold leading-none tracking-tight ${S>0?"text-red-600 dark:text-red-400":"text-slate-950 dark:text-white"}`,children:Mg(S)}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:S>0?"Issues detected in window":"No issues in window"})]}),i.jsxs(Te,{className:"p-5",children:[i.jsx(an,{children:"Top gateway"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:(M==null?void 0:M.toUpperCase())||"—"}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa] max-w-[57ch]",children:P[0]?`${OF(P[0].share)} of traffic`:"No activity yet"})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-[1.1fr_0.9fr] transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Gateway activity"}),i.jsx(Pe,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-6 space-y-3",children:P.length?P.slice(0,4).map((te,ie)=>i.jsxs("div",{className:"rounded-[20px] border border-slate-200 bg-slate-50/80 p-4 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-2.5 w-2.5 flex-shrink-0 rounded-full",style:{backgroundColor:G[ie]||G[0]}}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:te.gateway.toUpperCase()}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#98a3b8]",children:[Mg(te.count)," requests"]})]})]}),i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:OF(te.share)})]}),i.jsx("div",{className:"mt-3 h-1.5 rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(4,te.share)}%`,backgroundColor:G[ie]||G[0]}})})]},te.gateway)):i.jsxs("div",{className:"rounded-[20px] border border-dashed border-slate-200 px-5 py-12 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No gateway activity yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#a6b0c3]",children:"Traffic by gateway will appear here once requests flow through."})]})})]}),i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Setup"}),i.jsxs(Pe,{variant:Q>=2?"green":"orange",children:[Q,"/4 ready"]})]}),i.jsx("div",{className:"mt-4 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full bg-emerald-500 transition-all duration-500",style:{width:`${Q/4*100}%`}})}),i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:V.map(te=>{const ie=te.state==="Live"||te.state==="Configured"||te.state==="Enabled"||te.state==="Auto-pilot",me=te.state==="Issue"?"text-red-600":ie?"text-emerald-700":"text-slate-500 dark:text-[#78849a]",ve=ie?"green":te.state==="Issue"?"red":te.state==="Checking"?"gray":te.required?"orange":"gray",Ne=i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[i.jsx(te.icon,{className:`h-4 w-4 flex-shrink-0 ${me}`}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:te.label}),i.jsx("p",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.description})]})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[i.jsx(Pe,{variant:ve,children:te.state}),te.href&&i.jsx(Xi,{className:"h-3.5 w-3.5 text-slate-500 dark:text-[#78849a]"})]})]}),je="flex items-center justify-between gap-3 py-3.5 rounded-lg -mx-2 px-2";return te.href?i.jsx(ef,{to:te.href,relative:"path",className:`${je} transition-colors hover:bg-slate-50 dark:hover:bg-[#13192a]`,children:Ne},te.label):i.jsx("div",{className:je,children:Ne},te.label)})})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-2 transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Gateway health"}),i.jsx(Pe,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-5 space-y-2",children:E.length?E.slice(0,5).map(te=>{const ie=KLe(te.score);return i.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsx("span",{className:`h-2 w-2 flex-shrink-0 rounded-full ${ie.dot}`}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-slate-950 dark:text-white",children:te.gateway.toUpperCase()}),i.jsxs("span",{className:`text-sm font-semibold tabular-nums ${ie.text}`,children:[(te.score*100).toFixed(1),"%"]})]},te.gateway)}):i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No score data yet"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"SR scores appear once gateways handle traffic."})]})})]}),i.jsxs(Te,{className:`p-6 transition-colors ${S>0?"border-red-300/40 dark:border-red-500/20":""}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Recent errors"}),S>0?i.jsxs(Pe,{variant:"red",children:[Mg(S)," total"]}):i.jsx(Pe,{variant:"green",children:"Clean"})]}),N.length?i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:N.slice(0,5).map((te,ie)=>i.jsxs("div",{className:"flex items-start justify-between gap-3 py-3",children:[i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"rounded bg-red-50 px-1.5 py-0.5 font-mono text-[11px] font-medium text-red-700 dark:bg-red-500/10 dark:text-red-400 leading-4",children:te.error_code}),i.jsx("span",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.route})]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.error_message})]}),i.jsxs("div",{className:"flex-shrink-0 text-right",children:[i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Mg(te.count)}),i.jsx("p",{className:"text-[11px] text-slate-500 dark:text-[#78849a] leading-4",children:qLe(te.last_seen_ms)})]})]},ie))}):i.jsxs("div",{className:"mt-5 flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx(Gp,{className:"h-8 w-8 text-emerald-700"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:"No errors in window"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"All requests resolved without errors."})]})]})]})]}):i.jsx(YLe,{})]})}function qy({text:t,label:e,size:n=10,className:r=""}){const[a,s]=g.useState(!1);function o(l){l.stopPropagation(),navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),2e3)}return i.jsx("button",{type:"button",onClick:o,title:a?"Copied!":e??"Copy to clipboard",className:`shrink-0 transition-colors text-slate-500 hover:text-slate-500 dark:text-[#78849a] dark:hover:text-[#8090a8] ${r}`,children:a?i.jsx(gi,{size:n,className:"text-emerald-700"}):i.jsx(lf,{size:n})})}const JLe=[{value:"",label:"Any status"},{value:"success",label:"Success"},{value:"failure",label:"Failure"}],ZLe=[{value:"",label:"Any route"},{value:"decide_gateway",label:"Decide Gateway"},{value:"update_gateway_score",label:"Update Gateway"},{value:"routing_evaluate",label:"Rule Evaluate"}],QLe=["summary","input","response","raw"],e8e={summary:"Summary",input:"Request",response:"Response",raw:"Raw JSON"},YP="NTW_BASED_ROUTING",TF={transactions:"Multi-objective",rule_based:"Rule based / Volume based",debit_routing:"Debit routing"},PF={paymentId:"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""};function vd(t){const e=t.paymentId.trim()||t.requestId.trim(),n=t8e(e)?e:"";return{paymentId:n?"":e,requestId:n,gateway:t.gateway.trim(),route:t.route,status:t.status,flowType:t.flowType.trim(),errorCode:t.errorCode.trim()}}function t8e(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^req[_-]/i.test(t)}function XP(t){return t.flow_type||""}function n8e(t){return t.endsWith("_error")}function yX(t){return t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"}function vX(t){return t==="decide_gateway_rule_hit"}function r8e(t){return t.startsWith("update_gateway_score_")||t.startsWith("update_score_legacy_")}function bX(t){return t.startsWith("decide_gateway_")&&!vX(t)}function U5(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function MF(t,e,n,r,a,s,o,l){const c=vd(a),u={range:e==="custom"?"1h":e,page:n,page_size:r,start_ms:s==null?void 0:s.start_ms,end_ms:s==null?void 0:s.end_ms,payment_id:c.paymentId||void 0,request_id:c.requestId||void 0,gateway:c.gateway||void 0,route:c.route||void 0,status:c.status||void 0,flow_type:c.flowType||void 0,routing_approach:o,exclude_routing_approach:l,error_code:c.errorCode||void 0},d=U5(u);return d?`${t}?${d}`:t}function a8e(t){return t==="debit_routing"?"debit_routing":t==="rule_based"?"rule_based":"transactions"}function RF(t){return t==="debit_routing"?YP:void 0}function DF(t){return t==="transactions"?YP:void 0}function s8e(t){return vd({paymentId:t.get("payment_id")||t.get("request_id")||"",requestId:"",gateway:t.get("gateway")||"",route:t.get("route")||"",status:t.get("status")||"",flowType:t.get("flow_type")||t.get("event_type")||"",errorCode:t.get("error_code")||""})}function i8e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function IF(t){const e=Math.max(0,Math.round((Date.now()-t)/6e4));if(e<1)return"just now";if(e<60)return`${e}m ago`;const n=Math.round(e/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`}function Id(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function o8e(t){return t.filter(Boolean).join(" · ")}function l8e(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Id(t):"Unknown route"}function tN(t){const e=XP(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||yX(e)?"Decision Result":n8e(e)?"Errors":Id(t.event_stage||e)}function c8e(t){const e=XP(t);return bX(e)||t.event_stage==="gateway_decided"?"Decide Gateway":vX(e)||t.event_stage==="rule_applied"?"Rule Evaluate":yX(e)||t.event_stage==="preview_evaluated"?"Rule Decision":r8e(e)||t.event_stage==="score_updated"?"Update Gateway":"Errors"}function u8e(t){const e=XP(t);return bX(e)||t.event_stage==="gateway_decided"}function dh(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":e==="HIT"?"purple":"gray"}function d8e(t){const e=dh(t);return e==="green"?"bg-emerald-500":e==="red"?"bg-red-500":e==="purple"?"bg-purple-500":"bg-slate-300 dark:bg-[#3a4150]"}function f8e(t){const e=(t.gateways||[]).filter(Boolean);return e.length<2?null:(t.latest_gateway&&e.includes(t.latest_gateway)?[...e.filter(r=>r!==t.latest_gateway),t.latest_gateway]:e).join(" → ")}function nN({tone:t,label:e,detail:n}){return i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#a7b2c6]",title:n||void 0,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t}`}),e]})}function rN({label:t,value:e}){return i.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[t,":"]}),i.jsx("span",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:e})]})}function bd(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function aN(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function h8e(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function p8e(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function V5(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7] dark:placeholder:text-[#555f6e]"}function sN(){return`${V5()} appearance-none pr-9 bg-[url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")] bg-no-repeat bg-[right_12px_center]`}function ip({title:t,body:e}){return i.jsxs(bA,{className:"!rounded-2xl border-dashed border-slate-200 bg-slate-50/70 px-5 py-8 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#b2bdd1] leading-[18px]",children:e})]})}function wX({rows:t}){return t.length?i.jsx("div",{className:"grid gap-x-8 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0",children:t.map(e=>i.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-slate-100 py-3 dark:border-[#1b2029]",children:[i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e.label}),i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:e.value}),e.copyText&&i.jsx(qy,{text:e.copyText,size:12})]})]},`${e.label}-${e.value}`))}):null}function JP({value:t}){return i.jsx("pre",{className:"overflow-x-auto rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 font-mono text-[13px] leading-[21px] text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:h8e(t)})}function gy({title:t,children:e}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),e]})}function Rb({title:t,value:e,emptyMessage:n}){return i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})})}function m8e(t){if(!bd(t))return null;const e=Object.keys(t),n=Object.entries(t).filter(r=>typeof r[1]=="number"&&Number.isFinite(r[1]));return n.length&&n.length===e.length?n:null}function g8e(t){if(!bd(t))return null;const e=Object.entries(t);return e.length&&e.every(([,r])=>r===null||["string","number","boolean"].includes(typeof r))?e:null}function x8e(t){return t===null?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?t.toLocaleString(void 0,{maximumFractionDigits:6}):t}function y8e({title:t,value:e,emptyMessage:n,selectedGateway:r}){const a=m8e(e);if(!a)return i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})});const s=[...a].sort((d,f)=>f[1]-d[1]),o=Math.max(...s.map(([,d])=>d)),l=o<=1,c=l?1:o||1,u=r&&s.some(([d])=>d===r)?r:s[0][0];return i.jsx(gy,{title:t,children:i.jsx("div",{className:"space-y-3 rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0b1017]",children:s.map(([d,f])=>{const h=d===u,p=Number((f/c*100).toFixed(1)),m=Math.max(3,Math.min(100,p));return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:d}),h?i.jsx("span",{className:"shrink-0 rounded-md bg-brand-500/10 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-brand-600 dark:text-brand-300 leading-4",children:"Selected"}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] font-semibold tabular-nums text-slate-700 dark:text-[#d8e1ef] leading-[18px]",children:l?`${(f*100).toFixed(1)}%`:f.toLocaleString(void 0,{maximumFractionDigits:4})})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-200/70 dark:bg-[#1e2330]",children:i.jsx("div",{className:"h-full rounded-full transition-all",style:{width:`${m}%`,backgroundColor:h?"#0069ED":"#94a3b8"}})})]},d)})})})}function v8e({title:t,value:e,emptyMessage:n}){const r=g8e(e);return r?i.jsx(gy,{title:t,children:i.jsx(wX,{rows:r.map(([a,s])=>({label:Id(a),value:x8e(s)}))})}):i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})})}function b8e(t){if(!t)return null;const e=bd(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??aN({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??aN({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=bd(n)?n:null,o=bd(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:c8e(t)},{label:"Route",value:l8e(t.route)},...t.payment_id?[{label:"Payment ID",value:t.payment_id,copyText:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id,copyText:t.request_id}]:[]],d=aN(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:bd(r)&&!Object.keys(r).length?null:r,responsePayload:bd(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function w8e(){var Ut,Un,Vt,Kt,dt,le,Ie,Ge,nt,Nt;const[t,e]=Nl(),n=t.get("routing_approach")===YP?"debit_routing":a8e(t.get("mode")),r=t.get("start_ms")&&t.get("end_ms")?"custom":UEe(t.get("range")),a=s8e(t),s=Math.max(1,Number(t.get("page")||"1")),o=t.get("selected")||"",l=Number(t.get("start_ms")||"0"),c=Number(t.get("end_ms")||"0"),u=l>0&&c>l?{start_ms:l,end_ms:c}:au("1d"),[d,f]=g.useState(n),[h,p]=g.useState(r),[m,x]=g.useState(a),[y,b]=g.useState(a),[v,w]=g.useState(s),[j,k]=g.useState(o),[_,S]=g.useState(!!o),[N,E]=g.useState(null),[P,M]=g.useState("summary"),[A,O]=g.useState(!1),[D,I]=g.useState(()=>Fs(u.start_ms)),[X,Q]=g.useState(()=>Fs(u.end_ms)),V=12,Y=g.useMemo(()=>h==="custom"?Yp(D,X):void 0,[X,D,h]),H=d==="rule_based"?"/analytics/preview-trace":"/analytics/payment-audit",G=RF(d),$=DF(d),F=h!=="custom"||Y?MF(H,h,v,V,y,Y,G,$):null,R=ut(F,Lt,{revalidateOnFocus:!1,dedupingInterval:5e3}),z=h!=="custom"||Y?`/analytics/gateway-scores?${U5({range:h==="custom"?"1h":h,start_ms:Y==null?void 0:Y.start_ms,end_ms:Y==null?void 0:Y.end_ms})}`:null,U=ut(z,Lt,{revalidateOnFocus:!1,dedupingInterval:6e4}),ee=g.useMemo(()=>{var st;const ge=((st=R.data)==null?void 0:st.results)||[];return ge.find(pt=>pt.lookup_key===j)||ge[0]||null},[(Ut=R.data)==null?void 0:Ut.results,j]);g.useEffect(()=>{var st,pt;if(ee!=null&&ee.lookup_key){k(ee.lookup_key);return}const ge=(pt=(st=R.data)==null?void 0:st.results)==null?void 0:pt[0];ge!=null&&ge.lookup_key&&k(ge.lookup_key)},[(Un=R.data)==null?void 0:Un.results,ee==null?void 0:ee.lookup_key]);const pe=g.useMemo(()=>ee?{paymentId:ee.payment_id||ee.request_id||"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""}:null,[ee]),re=pe?MF(H,h,1,50,pe,Y,G,$):null,he=ut(re,Lt,{revalidateOnFocus:!1,dedupingInterval:5e3}),q=((Vt=he.data)==null?void 0:Vt.timeline)||[],W=g.useMemo(()=>q.find(ge=>ge.id===N)||q[0]||null,[N,q]);g.useEffect(()=>{if(W!=null&&W.id){E(W.id);return}const ge=q[0];ge!=null&&ge.id&&E(ge.id)},[W==null?void 0:W.id,q]);const ue=g.useMemo(()=>b8e(W),[W]),te=W?u8e(W):!1,ie=((Kt=R.error)==null?void 0:Kt.message)||((dt=he.error)==null?void 0:dt.message)||null,me=R.isLoading,ve=((le=R.data)==null?void 0:le.results)||[],Ne=((Ie=R.data)==null?void 0:Ie.total_results)||0,je=q.length,Me=((Ge=R.data)==null?void 0:Ge.total_success)??ve.filter(ge=>dh(ge.latest_status)==="green").length,Be=((nt=R.data)==null?void 0:nt.total_failure)??ve.filter(ge=>dh(ge.latest_status)==="red").length,tt=Array.from(new Set(ve.flatMap(ge=>{var st;return(st=ge.gateways)!=null&&st.length?ge.gateways.filter(Boolean):ge.latest_gateway?[ge.latest_gateway]:[]}))),B=tt.length,se=Object.values(m).some(Boolean),de=Array.from(new Set([...(((Nt=U.data)==null?void 0:Nt.snapshots)||[]).map(ge=>ge.gateway),...tt,y.gateway].filter(Boolean))).sort((ge,st)=>ge.localeCompare(st)),Ce=d==="rule_based"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a decision from the left column to see the full rule evaluation trace.",noMatchesTitle:"No matching decisions found",noMatchesBody:"Try widening the time range or searching by a decision payment ID, request ID, or gateway."}:d==="debit_routing"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a debit-routing payment from the left column to see the full decision trail.",noMatchesTitle:"No debit-routing decisions found",noMatchesBody:"Run the Debit Routing tab in Decision Explorer, or widen the time range."}:{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a payment from the left column to see the full transaction trail.",noMatchesTitle:"No matching payments found",noMatchesBody:"Try widening the time range or searching by a single payment ID, request ID, or error code."};function fe(ge,st,pt,Ht,gn,sn){const xn=vd(Ht),_a=U5({mode:ge==="transactions"?void 0:ge,range:st,page:pt>1?pt:void 0,start_ms:st==="custom"?sn==null?void 0:sn.start_ms:void 0,end_ms:st==="custom"?sn==null?void 0:sn.end_ms:void 0,payment_id:xn.paymentId||void 0,request_id:xn.requestId||void 0,gateway:xn.gateway||void 0,route:xn.route||void 0,status:xn.status||void 0,flow_type:xn.flowType||void 0,routing_approach:RF(ge),exclude_routing_approach:DF(ge),error_code:xn.errorCode||void 0,selected:gn||void 0});e(_a)}function be(ge,st){x(pt=>vd({...pt,[ge]:st}))}function we(){const st=vd({...m,route:d==="transactions"?m.route:""});w(1),S(!1),E(null),x(st),b(st),fe(d,h,1,st,void 0,Y)}function Le(ge,st){const Ht=vd({...m,[ge]:st});w(1),S(!1),E(null),x(Ht),b(Ht),fe(d,h,1,Ht,void 0,Y)}function Oe(){const st={...PF,route:d==="transactions"?PF.route:""};w(1),S(!1),E(null),x(st),b(st),fe(d,h,1,st,void 0,Y)}function He(){R.mutate(),he.mutate()}function vt(ge){const pt=ge==="custom"?(()=>{const Ht=G0(D),gn=G0(X),sn=Date.now();return Ht!==null&&gn!==null&&gn>Ht&&Ht<=sn&&gn<=sn?{start_ms:Ht,end_ms:gn}:void 0})():void 0;if(p(ge),w(1),S(!1),E(null),ge!=="custom"){const Ht=au(ge);I(Fs(Ht.start_ms)),Q(Fs(Ht.end_ms))}fe(d,ge,1,y,j,pt)}function bt(ge,st){I(ge),Q(st),w(1),S(!1),E(null),fe(d,"custom",1,y,j,Yp(ge,st))}function Bt(ge,st){k(ge),E(null),st!==1&&S(!0),fe(d,h,v,y,ge,Y)}function wt(){S(!1),E(null),fe(d,h,v,y,void 0,Y)}function zt(ge){const pt=vd({...m,route:ge==="transactions"?m.route:""});f(ge),w(1),k(""),E(null),S(!1),x(pt),b(pt),fe(ge,h,1,pt,void 0,Y)}return i.jsxs("div",{className:"flex min-h-[620px] flex-col gap-5 xl:h-[calc(100vh-140px)]",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx(qr,{title:Ce.title}),i.jsx("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:Object.keys(TF).map(ge=>i.jsx(ke,{size:"sm",variant:"secondary",className:p8e(d===ge),onClick:()=>zt(ge),children:TF[ge]},ge))}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(ET,{range:h,customStart:D,customEnd:X,onRangeChange:vt,onCustomChange:bt}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:He,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(As,{className:"h-4 w-4"})})]})]}),i.jsxs("form",{className:"flex flex-wrap items-center gap-3",onSubmit:ge=>{ge.preventDefault(),we()},children:[i.jsxs("div",{className:`relative ${A?"min-w-[240px] flex-1":"min-w-[300px] flex-[1.618]"}`,children:[i.jsx(Kp,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-[#78849a]"}),i.jsx("input",{className:`${V5()} pl-11 ${se?"pr-20":""}`,value:m.paymentId||m.requestId,onChange:ge=>be("paymentId",ge.target.value),placeholder:d==="rule_based"?"Search by decision payment ID or request ID…":"Search by payment ID or request ID…","aria-label":d==="rule_based"?"Decision payment ID":"Payment ID"}),se?i.jsx("button",{type:"button",onClick:Oe,className:"absolute right-4 top-1/2 -translate-y-1/2 text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:"Clear"}):null]}),i.jsxs("div",{className:"flex min-w-[300px] flex-1 items-center gap-3",children:[A&&d==="transactions"?i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:sN(),value:m.route,onChange:ge=>Le("route",ge.target.value),"aria-label":"Route",children:ZLe.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}):null,A?i.jsx("div",{className:"flex-1",children:i.jsx("input",{className:V5(),value:m.errorCode,onChange:ge=>be("errorCode",ge.target.value),placeholder:"Error code","aria-label":"Error code"})}):null,i.jsx("div",{className:"flex-1",children:i.jsxs("select",{className:sN(),value:m.gateway,onChange:ge=>Le("gateway",ge.target.value),"aria-label":"Gateway",children:[i.jsx("option",{value:"",children:"Any gateway"}),de.map(ge=>i.jsx("option",{value:ge,children:ge},ge))]})}),i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:sN(),value:m.status,onChange:ge=>Le("status",ge.target.value),"aria-label":"Status",children:JLe.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}),i.jsx(ke,{type:"button",variant:"secondary",onClick:()=>O(ge=>!ge),"aria-label":"More filters",title:"More filters",className:`h-11 !px-3 ${A?"!text-brand-600 dark:!text-brand-600":""}`,children:i.jsx(Hi,{className:"h-4 w-4"})})]}),i.jsx("button",{type:"submit",className:"sr-only",children:"Search"})]}),i.jsx(_t,{error:ie}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-[13px] leading-[18px]",children:[me?i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:14}),"Loading decision audit data…"]}):i.jsxs("span",{className:"font-semibold text-slate-900 dark:text-white",children:[Ne.toLocaleString()," ",Ne===1?"match":"matches"," found"]}),R.data?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"h-4 w-px bg-slate-200 dark:bg-[#2a303a]"}),i.jsx(nN,{tone:"bg-emerald-500",label:`${Me.toLocaleString()} successful ${Me===1?"selection":"selections"}`}),i.jsx(nN,{tone:"bg-red-500",label:`${Be.toLocaleString()} ${Be===1?"failure":"failures"}`}),i.jsx(nN,{tone:"bg-brand-500",label:`${B} ${B===1?"connector":"connectors"}`,detail:tt.slice(0,3).join(", ")})]}):null]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-5 xl:grid-cols-[minmax(360px,1fr)_minmax(0,1.618fr)]",children:[i.jsxs(Te,{className:"h-full overflow-hidden !rounded-2xl",children:[_?i.jsxs("div",{className:"shrink-0 border-b border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:wt,className:"mb-3",children:[i.jsx(Hp,{className:"h-3.5 w-3.5"}),"Back to results"]}),i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:(ee==null?void 0:ee.payment_id)||(ee==null?void 0:ee.request_id)||(ee==null?void 0:ee.lookup_key)||"Selected payment"}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[je," event",je===1?"":"s"]}),ee!=null&&ee.latest_status?i.jsx(Pe,{variant:dh(ee.latest_status),children:Id(ee.latest_status)}):null]})]})]}):null,_?i.jsx("div",{className:"min-h-0 flex-1 space-y-1.5 overflow-y-auto p-3",children:q.length?q.map((ge,st)=>{const pt=(W==null?void 0:W.id)===ge.id;return i.jsxs("button",{type:"button",onClick:()=>{E(ge.id),M("summary")},className:`relative w-full overflow-hidden rounded-2xl px-4 py-3 text-left transition-all ${pt?"bg-brand-50 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[pt&&i.jsx("span",{className:"absolute inset-y-2.5 left-0 w-[3px] rounded-full bg-brand-500"}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[13px] font-bold ${pt?"bg-brand-500/15 text-brand-500 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1e2330] dark:text-[#8a8a93]"} leading-[18px]`,children:st+1}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:tN(ge)}),i.jsx("p",{className:"mt-2 truncate text-[13px] text-slate-500 dark:text-[#78849a] max-w-[57ch] leading-[18px]",children:o8e([ge.gateway||null,ge.routing_approach||null,ge.payment_method_type||null])}),ge.error_message?i.jsx("p",{className:"mt-2 truncate text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:ge.error_message}):null]}),i.jsxs("div",{className:"shrink-0 space-y-1 text-right",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:IF(ge.created_at_ms)}),ge.status?i.jsx(Pe,{variant:dh(ge.status),children:Id(ge.status)}):null]})]})]},ge.id)}):i.jsx(ip,{title:"No timeline selected yet",body:Ce.summaryEmpty})}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 flex items-center justify-between gap-3 px-5 pb-3 pt-5",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Ce.matchingLabel}),i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[ve.length," of ",Ne.toLocaleString()]})]}),i.jsx("div",{className:"min-h-0 flex-1 divide-y divide-slate-100 overflow-y-auto border-t border-slate-100 dark:divide-[#1b2029] dark:border-[#1b2029]",children:ve.length>0?ve.map(ge=>{const st=(ee==null?void 0:ee.lookup_key)===ge.lookup_key,pt=f8e(ge);return i.jsxs("button",{type:"button",onClick:()=>Bt(ge.lookup_key,ge.event_count),className:`relative w-full px-5 py-3 text-left transition-colors ${st?"bg-brand-50/70 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[st&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-[3px] bg-brand-500"}),i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate font-mono text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:ge.payment_id||ge.request_id||ge.lookup_key}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:IF(ge.last_seen_ms)})]}),i.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${d8e(ge.latest_status)}`,title:Id(ge.latest_status)||"Unknown"}),ge.latest_gateway?i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#a7b2c6] leading-[18px]",children:ge.latest_gateway}):null,i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["· ",ge.event_count," event",ge.event_count===1?"":"s"]})]}),pt?i.jsx("span",{className:"shrink-0 truncate rounded-md bg-orange-500/10 px-2 py-0.5 text-[13px] font-medium text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300 leading-[18px]",children:pt}):null]})]},ge.lookup_key)}):i.jsx("div",{className:"p-5",children:i.jsx(ip,{title:Ce.noMatchesTitle,body:Ce.noMatchesBody})})}),i.jsxs("div",{className:"shrink-0 flex items-center gap-2 border-t border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsx(ke,{size:"sm",variant:"secondary",disabled:v<=1,onClick:()=>{const ge=Math.max(1,v-1);w(ge),S(!1),fe(d,h,ge,y,j)},children:"Prev"}),i.jsx(ke,{size:"sm",variant:"secondary",disabled:ve.length{const ge=v+1;w(ge),S(!1),fe(d,h,ge,y,j)},children:"Next"}),i.jsxs("span",{className:"ml-auto text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["Page ",v]})]})]})]}),i.jsx(Te,{className:"h-full overflow-hidden !rounded-2xl",children:W&&ue?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 space-y-2 px-5 pb-0 pt-5",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("h2",{className:"truncate font-mono text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:W.payment_id||W.request_id||tN(W)}),W.payment_id||W.request_id?i.jsx(qy,{text:W.payment_id||W.request_id||"",size:14}):null]}),W.status?i.jsx(Pe,{variant:dh(W.status),children:Id(W.status)}):null]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[i.jsx(rN,{label:"Gateway",value:W.gateway||"Unknown"}),i.jsx(rN,{label:"Stage",value:tN(W)}),i.jsx(rN,{label:"Time",value:i8e(W.created_at_ms)})]}),i.jsx("div",{className:"!mt-5 flex flex-wrap items-center gap-5 border-b border-slate-200 dark:border-[#2a303a]",children:QLe.map(ge=>i.jsx("button",{type:"button",onClick:()=>M(ge),className:`-mb-px border-b-2 pb-3 text-[13px] font-medium transition ${P===ge?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-900 dark:text-[#a7b2c6] dark:hover:text-white"} leading-[18px]`,children:e8e[ge]},ge))})]}),i.jsxs("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-5",children:[P==="summary"?i.jsxs("div",{className:"space-y-5",children:[te?i.jsx(y8e,{title:"Connector scores",value:ue.scoreContext,selectedGateway:W.gateway,emptyMessage:"No connector score map was captured for this event."}):null,ue.summaryRows.length?i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:"Decision metadata"}),i.jsx(wX,{rows:ue.summaryRows})]}):null,i.jsx(v8e,{title:"Selection reason",value:ue.selectionReason,emptyMessage:"No explicit selection reason was captured for this event."}),te?i.jsx(Rb,{title:"Details",value:ue.signalRecord,emptyMessage:"This event did not capture additional scoring or rule metadata."}):null]}):null,P==="input"?i.jsx(Rb,{title:"Request",value:ue.requestPayload,emptyMessage:"No dedicated request payload was captured for this event."}):null,P==="response"?i.jsx(Rb,{title:"Response",value:ue.responsePayload,emptyMessage:"No dedicated response payload was captured for this event."}):null,P==="raw"?i.jsx(Rb,{title:"Raw JSON",value:ue.rawEvent,emptyMessage:"No raw payload is available for this event."}):null]})]}):i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4",children:i.jsx(ip,{title:"No event selected",body:"Select a timeline event to view scores, routing details, request payload, and response payload."})})})]})]})}const k8e=[{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"}],W5={leader_changed:{label:"Leader change",badge:"blue",icon:V0},calibration_applied:{label:"Autopilot tuning",badge:"purple",icon:Hi}},$F=Object.keys(W5);function j8e(t){return new Date(t).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function S8e(t){return[t.payment_method_type,t.payment_method].filter(Boolean).join(" / ")||"all"}function _8e(){const[t,e]=g.useState("12h"),[n,r]=g.useState(new Set($F)),{events:a,isLoading:s,isUnavailable:o,markAllSeen:l,unseenCount:c}=FT(t),u=g.useMemo(()=>a.filter(f=>n.has(f.event_type)),[a,n]);function d(f){r(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsx("div",{children:i.jsx(qr,{title:"Routing events",description:"Live changes in success-rate based routing — leader flips, plus autopilot retunes where self-tuning is on."})}),i.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&i.jsxs("button",{onClick:l,className:"text-[13px] font-medium text-brand-600 hover:underline leading-[18px]",children:["Mark all read (",c,")"]}),i.jsx("select",{value:t,onChange:f=>e(f.target.value),className:"h-9 rounded-lg border border-[#e6e6ee] bg-white px-3 text-[13px] font-medium text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 leading-[18px]",children:k8e.map(f=>i.jsx("option",{value:f.value,children:f.label},f.value))})]})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:$F.map(f=>{const h=W5[f];if(!h)return null;const p=n.has(f);return i.jsxs("button",{onClick:()=>d(f),className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors ${p?"border-brand-600/40 bg-brand-50 text-brand-700 dark:border-sky-400/40 dark:bg-sky-400/10 dark:text-sky-200":"border-[#e6e6ee] bg-white text-slate-500 hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-400 dark:hover:bg-[#18181f]"} leading-4`,children:[i.jsx(h.icon,{size:13}),h.label]},f)})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:[u.length," event",u.length===1?"":"s"]}),i.jsx("p",{className:"text-[12px] text-slate-500 leading-4",children:"Refreshes every 30 seconds"})]})}),i.jsx(ze,{className:"p-0",children:s?i.jsx("div",{className:"flex items-center justify-center py-16",children:i.jsx(mt,{})}):o?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(Zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"Routing events are unavailable"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 leading-[18px]",children:"The analytics pipeline (Kafka → ClickHouse) is offline or disabled for this environment."})]}):u.length===0?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(Zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"No routing events in this window"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 mx-auto max-w-[57ch] leading-[18px]",children:"Events appear once success-rate feedback flows through update-gateway-score and gateway scores start shifting."})]}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1f2a]",children:u.map(f=>{const h=W5[f.event_type];return h?i.jsxs("li",{className:"flex items-start gap-4 px-6 py-4",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Pe,{variant:h.badge,children:h.label})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-800 dark:text-slate-200",children:BT(f)}),i.jsxs("p",{className:"mt-0.5 text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[j8e(f.bucket_ms)," · dimension ",S8e(f),f.transaction_count!=null&&` · ${f.transaction_count} txns in SR window`]})]})]},f.id):null})})})]})]})}const LF={"auth-rate":"Multi-Objective Configuration",rules:"Rule-Based Routing",volume:"Volume Split Routing",debit:"Debit Routing","ab-test":"A/B Testing"};function N8e(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(t)}function Qf(t){var e;return((e=(t==null?void 0:t.algorithm_data)||(t==null?void 0:t.algorithm))==null?void 0:e.type)||""}function FF(t){return t==="advanced"||t==="priority"||t==="single"}function BF(t){return t==="configured"?"Configured":t==="autopilot"?"Auto-pilot":"Enabled"}function C8e(){var $,F;const{mutate:t}=ej(),e=Er(R=>R.merchantId),n=xr(R=>{var z;return((z=R.user)==null?void 0:z.merchantId)||""}),r=e||n,a=Iy(r),s=Al(r||void 0),[o,l]=g.useState(null),[c,u]=g.useState(null),[d,f]=g.useState(null),[h,p]=g.useState(null),{data:m,isLoading:x,mutate:y}=ut(r?`/routing/list/active/${r}`:null,()=>Ve(`/routing/list/active/${r}`)),{data:b,isLoading:v,mutate:w}=ut(r?["/rule/get","successRate",r]:null,()=>Ve("/rule/get",{merchant_id:r,algorithm:"successRate"})),{data:j}=ut(r?"/analytics/overview?range=1d":null,Lt,{shouldRetryOnError:!1}),k=m==null?void 0:m[0],_=(($=b==null?void 0:b.config)==null?void 0:$.data)??(b==null?void 0:b.data),S=!!_,N=s.isEnabled("autopilot"),E=(m||[]).some(R=>FF(Qf(R))),P=(m||[]).some(R=>Qf(R)==="volume_split"),M=a.isEnabled,A=(m||[]).some(R=>Qf(R)==="ab_test"),O=x||v||a.isLoading||s.isLoading,D=(m||[]).find(R=>FF(Qf(R))),I=(m||[]).find(R=>Qf(R)==="volume_split");async function X(R){r&&u(R)}async function Q(R){l(R),f(null),p(null);try{R==="auth-rate"?(S&&(await Ve("/rule/delete",{merchant_id:r,algorithm:"successRate"}),await w(void 0,{revalidate:!1})),N&&(await s.setFeatureEnabled("autopilot",!1),await s.setFeatureEnabled("elimination",!1),await s.setFeatureEnabled("multi-objective-routing",!1),await s.setFeatureEnabled("auto-calibration",!1))):R==="rules"&&D?(await Ve("/routing/deactivate",{created_by:r,routing_algorithm_id:D.id}),await Promise.all([y(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):R==="volume"&&I?(await Ve("/routing/deactivate",{created_by:r,routing_algorithm_id:I.id}),await Promise.all([y(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):R==="debit"&&await a.setDebitRoutingEnabled(!1),f(`${LF[R]} deactivated.`)}catch(z){p(z instanceof Error?z.message:String(z))}finally{l(null)}}const V=[{id:"auth-rate",title:"Multi-objective",description:"Steers traffic toward the best authorization rate using live connector score signals.",useCase:"Use when you want automatic gateway selection driven by real-time success-rate data.",icon:Kj,state:S?"configured":N?"autopilot":"not_set",canDeactivate:S||N,href:"sr"},{id:"rules",title:"Rule based",description:"Evaluates explicit business conditions before traffic reaches connector selection.",useCase:"Use for BIN, network, country, amount, metadata, or merchant policy overrides.",icon:Wj,state:E?"enabled":"not_set",canDeactivate:!!D,href:"rules"},{id:"volume",title:"Volume split",description:"Distributes payments by configured percentages across gateways.",useCase:"Use for ramp-ups, new gateway rollout, traffic balancing, or controlled migrations.",icon:cf,state:P?"enabled":"not_set",canDeactivate:!!I,href:"volume"},{id:"debit",title:"Debit routing",description:"Enables debit-network decisions for co-badged card payment flows.",useCase:"Use when debit network cost, issuer country, or regulated-card behavior matters.",icon:Oo,state:M?"enabled":"not_set",canDeactivate:M,href:"debit"},{id:"ab-test",title:"A/B Testing",description:"Tests two routing strategies against each other with statistical significance reporting.",useCase:"Use when validating a new algorithm, rule, or gateway before full rollout.",icon:qp,state:A?"enabled":"not_set",canDeactivate:!1,href:"ab-testing"}],Y=V.filter(R=>R.state!=="not_set"),H=(j==null?void 0:j.top_rules)||[],G=k!=null&&k.name?k:null;return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsx(qs,{open:c!==null,title:`Deactivate ${c?LF[c]:""}?`,description:"This will stop routing decisions from using this strategy. You can reactivate it at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const R=c;u(null),Q(R)},onCancel:()=>u(null)}),i.jsx("header",{children:i.jsx(qr,{title:"Routing Hub"})}),h&&i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-sm text-red-600 dark:text-red-400",children:h}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:d}),i.jsxs("div",{className:"grid gap-6 xl:grid-cols-[1.3fr_0.7fr]",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"p-0",children:[i.jsx("div",{className:"px-6 pt-5",children:i.jsx(an,{children:"Routing strategies"})}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:V.map(R=>{const z=R.icon,U=R.state!=="not_set";return i.jsxs("div",{className:`flex items-center gap-4 px-6 py-4 ${U?"bg-emerald-500/[0.04] dark:bg-emerald-500/[0.06]":""}`,children:[i.jsx("div",{className:`rounded-xl border p-2.5 flex-shrink-0 ${U?"border-emerald-200/60 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400":"border-slate-200 bg-slate-50 text-slate-500 dark:border-[#273141] dark:bg-[#0c1119] dark:text-[#6d778a]"}`,children:i.jsx(z,{size:17})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:R.title}),R.state!=="not_set"?i.jsx(Pe,{variant:"green",children:BF(R.state)}):i.jsx(Pe,{variant:"gray",children:"Not set"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:R.description}),i.jsx("p",{className:"mt-0.5 text-xs leading-5 text-slate-500 dark:text-[#78849a]",children:R.useCase})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[R.canDeactivate&&i.jsxs(ke,{size:"sm",variant:"danger",onClick:()=>X(R.id),disabled:o===R.id,children:[i.jsx(Tm,{size:13}),o===R.id?"Deactivating":"Deactivate"]}),i.jsxs(ef,{to:R.href,className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#2a303a] dark:bg-[#11151d] dark:text-[#c4cfdf] dark:hover:bg-[#161b26]",children:["Configure",i.jsx(Xi,{size:13,className:"text-slate-500 dark:text-[#78849a]"})]})]})]},R.id)})})]})}),i.jsx(Te,{children:i.jsxs(ze,{className:"p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx(an,{children:"Active strategies"}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:Y.length>0?Y.map(R=>{const z=R.icon;return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2.5",children:[i.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[i.jsx(z,{size:14,className:"flex-shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:R.title})]}),i.jsx(Pe,{variant:"green",children:BF(R.state)})]},R.id)}):i.jsx("p",{className:"py-2 text-sm text-slate-500 dark:text-[#8d96aa]",children:O?"Checking…":"No active strategies yet"})})]}),G&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsx(an,{children:"Running algorithm"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:G.name}),G.description&&i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:G.description}),i.jsx("div",{className:"mt-2",children:i.jsx(Pe,{variant:"blue",children:Qf(G).replace(/_/g," ")})})]}),i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(an,{children:"Rules triggered"}),i.jsx(Pe,{variant:"blue",children:"Last 24h"})]}),H.length>0?i.jsx("div",{className:"mt-3 space-y-2",children:H.slice(0,5).map(R=>i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("span",{className:"truncate text-xs text-slate-700 dark:text-[#c4cfdf]",children:R.rule_name}),i.jsx("span",{className:"flex-shrink-0 text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:N8e(R.count)})]},R.rule_name))}):i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:"No rule hits in the last 24 hours."})]}),S&&_&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(an,{children:"Multi-objective config"}),i.jsx(Pe,{variant:"green",children:"Configured"})]}),i.jsxs("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:[i.jsx(ud,{label:"Score window",value:`${_.defaultBucketSize} requests`}),_.defaultHedgingPercent!=null&&i.jsx(ud,{label:"Hedging",value:`${_.defaultHedgingPercent}%`}),_.margin!=null&&i.jsx(ud,{label:"Margin",value:`${_.margin*100}%`}),_.defaultLatencyThreshold!=null&&i.jsx(ud,{label:"Latency threshold",value:`${_.defaultLatencyThreshold} ms`}),_.defaultLowerResetFactor!=null&&i.jsx(ud,{label:"Lower reset",value:String(_.defaultLowerResetFactor)}),_.defaultUpperResetFactor!=null&&i.jsx(ud,{label:"Upper reset",value:String(_.defaultUpperResetFactor)}),(((F=_.subLevelInputConfig)==null?void 0:F.length)??0)>0&&i.jsx(ud,{label:"Payment method overrides",value:`${_.subLevelInputConfig.length}`})]})]})]})})]})]})}function ud({label:t,value:e}){return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:t}),i.jsx("span",{className:"text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:e})]})}var Ky=t=>t.type==="checkbox",$d=t=>t instanceof Date,Os=t=>t==null;const kX=t=>typeof t=="object";var $r=t=>!Os(t)&&!Array.isArray(t)&&kX(t)&&!$d(t),E8e=t=>$r(t)&&t.target?Ky(t.target)?t.target.checked:t.target.value:t,A8e=(t,e)=>e.split(".").some((n,r,a)=>!isNaN(Number(n))&&t.has(a.slice(0,r).join("."))),O8e=t=>{const e=t.constructor&&t.constructor.prototype;return $r(e)&&e.hasOwnProperty("isPrototypeOf")},ZP=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function rr(t){if(t instanceof Date)return new Date(t);const e=typeof FileList<"u"&&t instanceof FileList;if(ZP&&(t instanceof Blob||e))return t;const n=Array.isArray(t);if(!n&&!($r(t)&&O8e(t)))return t;const r=n?[]:Object.create(Object.getPrototypeOf(t));for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=rr(t[a]));return r}var w2=t=>/^\w*$/.test(t),Ln=t=>t===void 0,k2=t=>Array.isArray(t)?t.filter(Boolean):[],QP=t=>k2(t.replace(/["|']|\]/g,"").split(/\.|\[/)),Je=(t,e,n)=>{if(!e||!$r(t))return n;const r=(w2(e)?[e]:QP(e)).reduce((a,s)=>Os(a)?a:a[s],t);return Ln(r)||r===t?Ln(t[e])?n:t[e]:r},Xo=t=>typeof t=="boolean",bo=t=>typeof t=="function",jn=(t,e,n)=>{let r=-1;const a=w2(e)?[e]:QP(e),s=a.length,o=s-1;for(;++rJ.useContext(SX);var P8e=(t,e,n,r=!0)=>{const a={defaultValues:e._defaultValues};for(const s in t)Object.defineProperty(a,s,{get:()=>{const o=s;return e._proxyFormState[o]!==Ii.all&&(e._proxyFormState[o]=!r||Ii.all),t[o]}});return a};const _X=typeof window<"u"?J.useLayoutEffect:J.useEffect;var ds=t=>typeof t=="string",M8e=(t,e,n,r,a)=>ds(t)?(r&&e.watch.add(t),Je(n,t,a)):Array.isArray(t)?t.map(s=>(r&&e.watch.add(s),Je(n,s))):(r&&(e.watchAll=!0),n),H5=t=>Os(t)||!kX(t);function Jc(t,e,n=new WeakSet){if(H5(t)||H5(e))return Object.is(t,e);if($d(t)&&$d(e))return Object.is(t.getTime(),e.getTime());const r=Object.keys(t),a=Object.keys(e);if(r.length!==a.length)return!1;if(n.has(t)||n.has(e))return!0;n.add(t),n.add(e);for(const s of r){const o=t[s];if(!a.includes(s))return!1;if(s!=="ref"){const l=e[s];if($d(o)&&$d(l)||($r(o)||Array.isArray(o))&&($r(l)||Array.isArray(l))?!Jc(o,l,n):!Object.is(o,l))return!1}}return!0}const R8e=J.createContext(null);R8e.displayName="HookFormContext";var NX=(t,e,n,r,a)=>e?{...n[t],types:{...n[t]&&n[t].types?n[t].types:{},[r]:a||!0}}:{},zs=t=>Array.isArray(t)?t:[t],zF=()=>{let t=[];return{get observers(){return t},next:a=>{for(const s of t)s.next&&s.next(a)},subscribe:a=>(t.push(a),{unsubscribe:()=>{t=t.filter(s=>s!==a)}}),unsubscribe:()=>{t=[]}}};function CX(t,e){const n={};for(const r in t)if(t.hasOwnProperty(r)){const a=t[r],s=e[r];if(a&&$r(a)&&s){const o=CX(a,s);$r(o)&&(n[r]=o)}else t[r]&&(n[r]=s)}return n}var Ga=t=>$r(t)&&!Object.keys(t).length,eM=t=>t.type==="file",Mk=t=>{if(!ZP)return!1;const e=t?t.ownerDocument:0;return t instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},EX=t=>t.type==="select-multiple",tM=t=>t.type==="radio",D8e=t=>tM(t)||Ky(t),oN=t=>Mk(t)&&t.isConnected;function I8e(t,e){const n=e.slice(0,-1).length;let r=0;for(;r{for(const e in t)if(bo(t[e]))return!0;return!1};function AX(t){return Array.isArray(t)||$r(t)&&!L8e(t)}function G5(t,e={}){for(const n in t){const r=t[n];AX(r)?(e[n]=Array.isArray(r)?[]:{},G5(r,e[n])):Ln(r)||(e[n]=!0)}return e}function lx(t,e,n){n||(n=G5(e));for(const r in t){const a=t[r];if(AX(a))Ln(e)||H5(n[r])?n[r]=G5(a,Array.isArray(a)?[]:{}):lx(a,Os(e)?{}:e[r],n[r]);else{const s=e[r];n[r]=!Jc(a,s)}}return n}const UF={value:!1,isValid:!1},VF={value:!0,isValid:!0};var OX=t=>{if(Array.isArray(t)){if(t.length>1){const e=t.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:e,isValid:!!e.length}}return t[0].checked&&!t[0].disabled?t[0].attributes&&!Ln(t[0].attributes.value)?Ln(t[0].value)||t[0].value===""?VF:{value:t[0].value,isValid:!0}:VF:UF}return UF},TX=(t,{valueAsNumber:e,valueAsDate:n,setValueAs:r})=>Ln(t)?t:e?t===""?NaN:t&&+t:n&&ds(t)?new Date(t):r?r(t):t;const WF={isValid:!1,value:null};var PX=t=>Array.isArray(t)?t.reduce((e,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:e,WF):WF;function HF(t){const e=t.ref;return eM(e)?e.files:tM(e)?PX(t.refs).value:EX(e)?[...e.selectedOptions].map(({value:n})=>n):Ky(e)?OX(t.refs).value:TX(Ln(e.value)?t.ref.value:e.value,t)}var F8e=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,B8e=(t,e,n,r)=>{const a={};for(const s of t){const o=Je(e,s);o&&jn(a,s,o._f)}return{criteriaMode:n,names:[...t],fields:a,shouldUseNativeValidation:r}},Rk=t=>t instanceof RegExp,Rg=t=>Ln(t)?t:Rk(t)?t.source:$r(t)?Rk(t.value)?t.value.source:t.value:t,Lh=t=>({isOnSubmit:!t||t===Ii.onSubmit,isOnBlur:t===Ii.onBlur,isOnChange:t===Ii.onChange,isOnAll:t===Ii.all,isOnTouch:t===Ii.onTouched});const GF="AsyncFunction";var z8e=t=>!!t&&!!t.validate&&!!(bo(t.validate)&&t.validate.constructor.name===GF||$r(t.validate)&&Object.values(t.validate).find(e=>e.constructor.name===GF)),U8e=t=>t.mount&&(t.required||t.min||t.max||t.maxLength||t.minLength||t.pattern||t.validate),q5=(t,e,n)=>!n&&(e.watchAll||e.watch.has(t)||[...e.watch].some(r=>t.startsWith(r)&&/^\.\w+/.test(t.slice(r.length))));const op=(t,e,n,r)=>{for(const a of n||Object.keys(t)){const s=Je(t,a);if(s){const{_f:o,...l}=s;if(o){if(o.refs&&o.refs[0]&&e(o.refs[0],a)&&!r)return!0;if(o.ref&&e(o.ref,o.name)&&!r)return!0;if(op(l,e))break}else if($r(l)&&op(l,e))break}}};function qF(t,e,n){const r=Je(t,n);if(r||w2(n))return{error:r,name:n};const a=n.split(".");for(;a.length;){const s=a.join("."),o=Je(e,s),l=Je(t,s);if(o&&!Array.isArray(o)&&n!==s)return{name:n};if(l&&l.type)return{name:s,error:l};if(l&&l.root&&l.root.type)return{name:`${s}.root`,error:l.root};a.pop()}return{name:n}}var V8e=(t,e,n,r)=>{n(t);const{name:a,...s}=t;return Ga(s)||Object.keys(s).length>=Object.keys(e).length||Object.keys(s).find(o=>e[o]===(!r||Ii.all))},W8e=(t,e,n)=>!t||!e||t===e||zs(t).some(r=>r&&(n?r===e:r.startsWith(e)||e.startsWith(r))),H8e=(t,e,n,r,a)=>a.isOnAll?!1:!n&&a.isOnTouch?!(e||t):(n?r.isOnBlur:a.isOnBlur)?!t:(n?r.isOnChange:a.isOnChange)?t:!0,G8e=(t,e)=>!k2(Je(t,e)).length&&Pr(t,e),MX=(t,e,n)=>{const r=zs(Je(t,n));return jn(r,jX,e[n]),jn(t,n,r),t};function KF(t,e,n="validate"){if(ds(t)||Array.isArray(t)&&t.every(ds)||Xo(t)&&!t)return{type:n,message:ds(t)?t:"",ref:e}}var th=t=>$r(t)&&!Rk(t)?t:{value:t,message:""},K5=async(t,e,n,r,a,s)=>{const{ref:o,refs:l,required:c,maxLength:u,minLength:d,min:f,max:h,pattern:p,validate:m,name:x,valueAsNumber:y,mount:b}=t._f,v=Je(n,x);if(!b||e.has(x))return{};const w=l?l[0]:o,j=A=>{a&&w.reportValidity&&(w.setCustomValidity(Xo(A)?"":A||""),w.reportValidity())},k={},_=tM(o),S=Ky(o),N=_||S,E=(y||eM(o))&&Ln(o.value)&&Ln(v)||Mk(o)&&o.value===""||v===""||Array.isArray(v)&&!v.length,P=NX.bind(null,x,r,k),M=(A,O,D,I=fo.maxLength,X=fo.minLength)=>{const Q=A?O:D;k[x]={type:A?I:X,message:Q,ref:o,...P(A?I:X,Q)}};if(s?!Array.isArray(v)||!v.length:c&&(!N&&(E||Os(v))||Xo(v)&&!v||S&&!OX(l).isValid||_&&!PX(l).isValid)){const{value:A,message:O}=ds(c)?{value:!!c,message:c}:th(c);if(A&&(k[x]={type:fo.required,message:O,ref:w,...P(fo.required,O)},!r))return j(O),k}if(!E&&(!Os(f)||!Os(h))){let A,O;const D=th(h),I=th(f);if(!Os(v)&&!isNaN(v)){const X=o.valueAsNumber||v&&+v;Os(D.value)||(A=X>D.value),Os(I.value)||(O=Xnew Date(new Date().toDateString()+" "+H),V=o.type=="time",Y=o.type=="week";ds(D.value)&&v&&(A=V?Q(v)>Q(D.value):Y?v>D.value:X>new Date(D.value)),ds(I.value)&&v&&(O=V?Q(v)+A.value,I=!Os(O.value)&&v.length<+O.value;if((D||I)&&(M(D,A.message,O.message),!r))return j(k[x].message),k}if(p&&!E&&ds(v)){const{value:A,message:O}=th(p);if(Rk(A)&&!v.match(A)&&(k[x]={type:fo.pattern,message:O,ref:o,...P(fo.pattern,O)},!r))return j(O),k}if(m){if(bo(m)){const A=await m(v,n),O=KF(A,w);if(O&&(k[x]={...O,...P(fo.validate,O.message)},!r))return j(O.message),k}else if($r(m)){let A={};for(const O in m){if(!Ga(A)&&!r)break;const D=KF(await m[O](v,n),w,O);D&&(A={...D,...P(O,D.message)},j(D.message),r&&(k[x]=A))}if(!Ga(A)&&(k[x]={ref:w,...A},!r))return k}}return j(!0),k};const q8e={mode:Ii.onSubmit,reValidateMode:Ii.onChange,shouldFocusError:!0};function K8e(t={}){let e={...q8e,...t},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:bo(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},r={},a=$r(e.defaultValues)||$r(e.values)?rr(e.defaultValues||e.values)||{}:{},s=e.shouldUnregister?{}:rr(a),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,u=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},f={...d};let h={...f};const p={array:zF(),state:zF()},m=e.criteriaMode===Ii.all,x=B=>se=>{clearTimeout(u),u=setTimeout(B,se)},y=async B=>{if(!o.keepIsValid&&!e.disabled&&(f.isValid||h.isValid||B)){let se;e.resolver?(se=Ga((await E()).errors),b()):se=await A({fields:r,onlyCheckValid:!0,eventType:eh.VALID}),se!==n.isValid&&p.state.next({isValid:se})}},b=(B,se)=>{!e.disabled&&(f.isValidating||f.validatingFields||h.isValidating||h.validatingFields)&&((B||Array.from(l.mount)).forEach(de=>{de&&(se?jn(n.validatingFields,de,se):Pr(n.validatingFields,de))}),p.state.next({validatingFields:n.validatingFields,isValidating:!Ga(n.validatingFields)}))},v=B=>{const se=lx(a,s),de=F8e(B);jn(n.dirtyFields,de,Je(se,de))},w=(B,se=[],de,Ce,fe=!0,be=!0)=>{if(Ce&&de&&!e.disabled){if(o.action=!0,be&&Array.isArray(Je(r,B))){const we=de(Je(r,B),Ce.argA,Ce.argB);fe&&jn(r,B,we)}if(be&&Array.isArray(Je(n.errors,B))){const we=de(Je(n.errors,B),Ce.argA,Ce.argB);fe&&jn(n.errors,B,we),G8e(n.errors,B)}if((f.touchedFields||h.touchedFields)&&be&&Array.isArray(Je(n.touchedFields,B))){const we=de(Je(n.touchedFields,B),Ce.argA,Ce.argB);fe&&jn(n.touchedFields,B,we)}(f.dirtyFields||h.dirtyFields)&&v(B),p.state.next({name:B,isDirty:D(B,se),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else jn(s,B,se)},j=(B,se)=>{jn(n.errors,B,se),p.state.next({errors:n.errors})},k=B=>{n.errors=B,p.state.next({errors:n.errors,isValid:!1})},_=(B,se,de,Ce)=>{const fe=Je(r,B);if(fe){const be=Je(s,B,Ln(de)?Je(a,B):de);Ln(be)||Ce&&Ce.defaultChecked||se?jn(s,B,se?be:HF(fe._f)):Q(B,be),o.mount&&!o.action&&y()}},S=(B,se,de,Ce,fe)=>{let be=!1,we=!1;const Le={name:B};if(!e.disabled){if(!de||Ce){(f.isDirty||h.isDirty)&&(we=n.isDirty,n.isDirty=Le.isDirty=D(),be=we!==Le.isDirty);const Oe=Jc(Je(a,B),se);we=!!Je(n.dirtyFields,B),Oe?Pr(n.dirtyFields,B):jn(n.dirtyFields,B,!0),Le.dirtyFields=n.dirtyFields,be=be||(f.dirtyFields||h.dirtyFields)&&we!==!Oe}if(de){const Oe=Je(n.touchedFields,B);Oe||(jn(n.touchedFields,B,de),Le.touchedFields=n.touchedFields,be=be||(f.touchedFields||h.touchedFields)&&Oe!==de)}be&&fe&&p.state.next(Le)}return be?Le:{}},N=(B,se,de,Ce)=>{const fe=Je(n.errors,B),be=(f.isValid||h.isValid)&&Xo(se)&&n.isValid!==se;if(e.delayError&&de?(c=x(()=>j(B,de)),c(e.delayError)):(clearTimeout(u),c=null,de?jn(n.errors,B,de):Pr(n.errors,B)),(de?!Jc(fe,de):fe)||!Ga(Ce)||be){const we={...Ce,...be&&Xo(se)?{isValid:se}:{},errors:n.errors,name:B};n={...n,...we},p.state.next(we)}},E=async B=>(b(B,!0),await e.resolver(s,e.context,B8e(B||l.mount,r,e.criteriaMode,e.shouldUseNativeValidation))),P=async B=>{const{errors:se}=await E(B);if(b(B),B)for(const de of B){const Ce=Je(se,de);Ce?jn(n.errors,de,Ce):Pr(n.errors,de)}else n.errors=se;return se},M=async({name:B,eventType:se})=>{if(t.validate){const de=await t.validate({formValues:s,formState:n,name:B,eventType:se});if($r(de))for(const Ce in de)de[Ce]&&U(`${iN}.${Ce}`,{message:ds(de.message)?de.message:"",type:fo.validate});else ds(de)||!de?U(iN,{message:de||"",type:fo.validate}):z(iN);return de}return!0},A=async({fields:B,onlyCheckValid:se,name:de,eventType:Ce,context:fe={valid:!0,runRootValidation:!1}})=>{if(t.validate&&(fe.runRootValidation=!0,!await M({name:de,eventType:Ce})&&(fe.valid=!1,se)))return fe.valid;for(const be in B){const we=B[be];if(we){const{_f:Le,...Oe}=we;if(Le){const He=l.array.has(Le.name),vt=we._f&&z8e(we._f);vt&&f.validatingFields&&b([Le.name],!0);const bt=await K5(we,l.disabled,s,m,e.shouldUseNativeValidation&&!se,He);if(vt&&f.validatingFields&&b([Le.name]),bt[Le.name]&&(fe.valid=!1,se)||(!se&&(Je(bt,Le.name)?He?MX(n.errors,bt,Le.name):jn(n.errors,Le.name,bt[Le.name]):Pr(n.errors,Le.name)),t.shouldUseNativeValidation&&bt[Le.name]))break}!Ga(Oe)&&await A({context:fe,onlyCheckValid:se,fields:Oe,name:be,eventType:Ce})}}return fe.valid},O=()=>{for(const B of l.unMount){const se=Je(r,B);se&&(se._f.refs?se._f.refs.every(de=>!oN(de)):!oN(se._f.ref))&&he(B)}l.unMount=new Set},D=(B,se)=>!e.disabled&&(B&&se&&jn(s,B,se),!Jc(F(),a)),I=(B,se,de)=>M8e(B,l,{...o.mount?s:Ln(se)?a:ds(B)?{[B]:se}:se},de,se),X=B=>k2(Je(o.mount?s:a,B,e.shouldUnregister?Je(a,B,[]):[])),Q=(B,se,de={})=>{const Ce=Je(r,B);let fe=se;if(Ce){const be=Ce._f;be&&(!be.disabled&&jn(s,B,TX(se,be)),fe=Mk(be.ref)&&Os(se)?"":se,EX(be.ref)?[...be.ref.options].forEach(we=>we.selected=fe.includes(we.value)):be.refs?Ky(be.ref)?be.refs.forEach(we=>{(!we.defaultChecked||!we.disabled)&&(Array.isArray(fe)?we.checked=!!fe.find(Le=>Le===we.value):we.checked=fe===we.value||!!fe)}):be.refs.forEach(we=>we.checked=we.value===fe):eM(be.ref)?be.ref.value="":(be.ref.value=fe,be.ref.type||p.state.next({name:B,values:rr(s)})))}(de.shouldDirty||de.shouldTouch)&&S(B,fe,de.shouldTouch,de.shouldDirty,!0),de.shouldValidate&&$(B)},V=(B,se,de)=>{for(const Ce in se){if(!se.hasOwnProperty(Ce))return;const fe=se[Ce],be=B+"."+Ce,we=Je(r,be);(l.array.has(B)||$r(fe)||we&&!we._f)&&!$d(fe)?V(be,fe,de):Q(be,fe,de)}},Y=(B,se,de={})=>{const Ce=Je(r,B),fe=l.array.has(B),be=rr(se);jn(s,B,be),fe?(p.array.next({name:B,values:rr(s)}),(f.isDirty||f.dirtyFields||h.isDirty||h.dirtyFields)&&de.shouldDirty&&(v(B),p.state.next({name:B,dirtyFields:n.dirtyFields,isDirty:D(B,be)}))):Ce&&!Ce._f&&!Os(be)?V(B,be,de):Q(B,be,de),q5(B,l)?p.state.next({...n,name:B,values:rr(s)}):p.state.next({name:o.mount?B:void 0,values:rr(s)})},H=async B=>{o.mount=!0;const se=B.target;let de=se.name,Ce=!0;const fe=Je(r,de),be=Oe=>{Ce=Number.isNaN(Oe)||$d(Oe)&&isNaN(Oe.getTime())||Jc(Oe,Je(s,de,Oe))},we=Lh(e.mode),Le=Lh(e.reValidateMode);if(fe){let Oe,He;const vt=se.type?HF(fe._f):E8e(B),bt=B.type===eh.BLUR||B.type===eh.FOCUS_OUT,Bt=!U8e(fe._f)&&!t.validate&&!e.resolver&&!Je(n.errors,de)&&!fe._f.deps||H8e(bt,Je(n.touchedFields,de),n.isSubmitted,Le,we),wt=q5(de,l,bt);jn(s,de,vt),bt?(!se||!se.readOnly)&&(fe._f.onBlur&&fe._f.onBlur(B),c&&c(0)):fe._f.onChange&&fe._f.onChange(B);const zt=S(de,vt,bt),Ut=!Ga(zt)||wt;if(!bt&&p.state.next({name:de,type:B.type,values:rr(s)}),Bt)return(f.isValid||h.isValid)&&(e.mode==="onBlur"?bt&&y():bt||y()),Ut&&p.state.next({name:de,...wt?{}:zt});if(!e.resolver&&t.validate&&await M({name:de,eventType:B.type}),!bt&&wt&&p.state.next({...n}),e.resolver){const{errors:Un}=await E([de]);if(b([de]),be(vt),Ce){const Vt=qF(n.errors,r,de),Kt=qF(Un,r,Vt.name||de);Oe=Kt.error,de=Kt.name,He=Ga(Un)}}else b([de],!0),Oe=(await K5(fe,l.disabled,s,m,e.shouldUseNativeValidation))[de],b([de]),be(vt),Ce&&(Oe?He=!1:(f.isValid||h.isValid)&&(He=await A({fields:r,onlyCheckValid:!0,name:de,eventType:B.type})));Ce&&(fe._f.deps&&(!Array.isArray(fe._f.deps)||fe._f.deps.length>0)&&$(fe._f.deps),N(de,He,Oe,zt))}},G=(B,se)=>{if(Je(n.errors,se)&&B.focus)return B.focus(),1},$=async(B,se={})=>{let de,Ce;const fe=zs(B);if(e.resolver){const be=await P(Ln(B)?B:fe);de=Ga(be),Ce=B?!fe.some(we=>Je(be,we)):de}else B?(Ce=(await Promise.all(fe.map(async be=>{const we=Je(r,be);return await A({fields:we&&we._f?{[be]:we}:we,eventType:eh.TRIGGER})}))).every(Boolean),!(!Ce&&!n.isValid)&&y()):Ce=de=await A({fields:r,name:B,eventType:eh.TRIGGER});return p.state.next({...!ds(B)||(f.isValid||h.isValid)&&de!==n.isValid?{}:{name:B},...e.resolver||!B?{isValid:de}:{},errors:n.errors}),se.shouldFocus&&!Ce&&op(r,G,B?fe:l.mount),Ce},F=(B,se)=>{let de={...o.mount?s:a};return se&&(de=CX(se.dirtyFields?n.dirtyFields:n.touchedFields,de)),Ln(B)?de:ds(B)?Je(de,B):B.map(Ce=>Je(de,Ce))},R=(B,se)=>({invalid:!!Je((se||n).errors,B),isDirty:!!Je((se||n).dirtyFields,B),error:Je((se||n).errors,B),isValidating:!!Je(n.validatingFields,B),isTouched:!!Je((se||n).touchedFields,B)}),z=B=>{const se=B?zs(B):void 0;se==null||se.forEach(de=>Pr(n.errors,de)),se?se.forEach(de=>{p.state.next({name:de,errors:n.errors})}):p.state.next({errors:{}})},U=(B,se,de)=>{const Ce=(Je(r,B,{_f:{}})._f||{}).ref,fe=Je(n.errors,B)||{},{ref:be,message:we,type:Le,...Oe}=fe;jn(n.errors,B,{...Oe,...se,ref:Ce}),p.state.next({name:B,errors:n.errors,isValid:!1}),de&&de.shouldFocus&&Ce&&Ce.focus&&Ce.focus()},ee=(B,se)=>bo(B)?p.state.subscribe({next:de=>"values"in de&&B(I(void 0,se),de)}):I(B,se,!0),pe=B=>p.state.subscribe({next:se=>{W8e(B.name,se.name,B.exact)&&V8e(se,B.formState||f,Me,B.reRenderRoot)&&B.callback({values:{...s},...n,...se,defaultValues:a})}}).unsubscribe,re=B=>(o.mount=!0,h={...h,...B.formState},pe({...B,formState:{...d,...B.formState}})),he=(B,se={})=>{for(const de of B?zs(B):l.mount)l.mount.delete(de),l.array.delete(de),se.keepValue||(Pr(r,de),Pr(s,de)),!se.keepError&&Pr(n.errors,de),!se.keepDirty&&Pr(n.dirtyFields,de),!se.keepTouched&&Pr(n.touchedFields,de),!se.keepIsValidating&&Pr(n.validatingFields,de),!e.shouldUnregister&&!se.keepDefaultValue&&Pr(a,de);p.state.next({values:rr(s)}),p.state.next({...n,...se.keepDirty?{isDirty:D()}:{}}),!se.keepIsValid&&y()},q=({disabled:B,name:se})=>{if(Xo(B)&&o.mount||B||l.disabled.has(se)){const fe=l.disabled.has(se)!==!!B;B?l.disabled.add(se):l.disabled.delete(se),fe&&o.mount&&!o.action&&y()}},W=(B,se={})=>{let de=Je(r,B);const Ce=Xo(se.disabled)||Xo(e.disabled),fe=!l.registerName.has(B)&&de&&!de._f.mount;return jn(r,B,{...de||{},_f:{...de&&de._f?de._f:{ref:{name:B}},name:B,mount:!0,...se}}),l.mount.add(B),de&&!fe?q({disabled:Xo(se.disabled)?se.disabled:e.disabled,name:B}):_(B,!0,se.value),{...Ce?{disabled:se.disabled||e.disabled}:{},...e.progressive?{required:!!se.required,min:Rg(se.min),max:Rg(se.max),minLength:Rg(se.minLength),maxLength:Rg(se.maxLength),pattern:Rg(se.pattern)}:{},name:B,onChange:H,onBlur:H,ref:be=>{if(be){l.registerName.add(B),W(B,se),l.registerName.delete(B),de=Je(r,B);const we=Ln(be.value)&&be.querySelectorAll&&be.querySelectorAll("input,select,textarea")[0]||be,Le=D8e(we),Oe=de._f.refs||[];if(Le?Oe.find(He=>He===we):we===de._f.ref)return;jn(r,B,{_f:{...de._f,...Le?{refs:[...Oe.filter(oN),we,...Array.isArray(Je(a,B))?[{}]:[]],ref:{type:we.type,name:B}}:{ref:we}}}),_(B,!1,void 0,we)}else de=Je(r,B,{}),de._f&&(de._f.mount=!1),(e.shouldUnregister||se.shouldUnregister)&&!(A8e(l.array,B)&&o.action)&&l.unMount.add(B)}}},ue=()=>e.shouldFocusError&&op(r,G,l.mount),te=B=>{Xo(B)&&(p.state.next({disabled:B}),op(r,(se,de)=>{const Ce=Je(r,de);Ce&&(se.disabled=Ce._f.disabled||B,Array.isArray(Ce._f.refs)&&Ce._f.refs.forEach(fe=>{fe.disabled=Ce._f.disabled||B}))},0,!1))},ie=(B,se)=>async de=>{let Ce;de&&(de.preventDefault&&de.preventDefault(),de.persist&&de.persist());let fe=rr(s);if(p.state.next({isSubmitting:!0}),e.resolver){const{errors:be,values:we}=await E();b(),n.errors=be,fe=rr(we)}else await A({fields:r,eventType:eh.SUBMIT});if(l.disabled.size)for(const be of l.disabled)Pr(fe,be);if(Pr(n.errors,jX),Ga(n.errors)){p.state.next({errors:{}});try{await B(fe,de)}catch(be){Ce=be}}else se&&await se({...n.errors},de),ue(),setTimeout(ue);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Ga(n.errors)&&!Ce,submitCount:n.submitCount+1,errors:n.errors}),Ce)throw Ce},me=(B,se={})=>{Je(r,B)&&(Ln(se.defaultValue)?Y(B,rr(Je(a,B))):(Y(B,se.defaultValue),jn(a,B,rr(se.defaultValue))),se.keepTouched||Pr(n.touchedFields,B),se.keepDirty||(Pr(n.dirtyFields,B),n.isDirty=se.defaultValue?D(B,rr(Je(a,B))):D()),se.keepError||(Pr(n.errors,B),f.isValid&&y()),p.state.next({...n}))},ve=(B,se={})=>{const de=B?rr(B):a,Ce=rr(de),fe=Ga(B),be=fe?a:Ce;if(se.keepDefaultValues||(a=de),!se.keepValues){if(se.keepDirtyValues){const we=new Set([...l.mount,...Object.keys(lx(a,s))]);for(const Le of Array.from(we)){const Oe=Je(n.dirtyFields,Le),He=Je(s,Le),vt=Je(be,Le);Oe&&!Ln(He)?jn(be,Le,He):!Oe&&!Ln(vt)&&Y(Le,vt)}}else{if(ZP&&Ln(B))for(const we of l.mount){const Le=Je(r,we);if(Le&&Le._f){const Oe=Array.isArray(Le._f.refs)?Le._f.refs[0]:Le._f.ref;if(Mk(Oe)){const He=Oe.closest("form");if(He){He.reset();break}}}}if(se.keepFieldsRef)for(const we of l.mount)Y(we,Je(be,we));else r={}}s=e.shouldUnregister?se.keepDefaultValues?rr(a):{}:rr(be),p.array.next({values:{...be}}),p.state.next({values:{...be}})}l={mount:se.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!f.isValid||!!se.keepIsValid||!!se.keepDirtyValues||!e.shouldUnregister&&!Ga(be),o.watch=!!e.shouldUnregister,o.keepIsValid=!!se.keepIsValid,o.action=!1,se.keepErrors||(n.errors={}),p.state.next({submitCount:se.keepSubmitCount?n.submitCount:0,isDirty:fe?!1:se.keepDirty?n.isDirty:!!(se.keepDefaultValues&&!Jc(B,a)),isSubmitted:se.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:fe?{}:se.keepDirtyValues?se.keepDefaultValues&&s?lx(a,s):n.dirtyFields:se.keepDefaultValues&&B?lx(a,B):se.keepDirty?n.dirtyFields:{},touchedFields:se.keepTouched?n.touchedFields:{},errors:se.keepErrors?n.errors:{},isSubmitSuccessful:se.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:a})},Ne=(B,se)=>ve(bo(B)?B(s):B,{...e.resetOptions,...se}),je=(B,se={})=>{const de=Je(r,B),Ce=de&&de._f;if(Ce){const fe=Ce.refs?Ce.refs[0]:Ce.ref;fe.focus&&setTimeout(()=>{fe.focus(),se.shouldSelect&&bo(fe.select)&&fe.select()})}},Me=B=>{n={...n,...B}},tt={control:{register:W,unregister:he,getFieldState:R,handleSubmit:ie,setError:U,_subscribe:pe,_runSchema:E,_updateIsValidating:b,_focusError:ue,_getWatch:I,_getDirty:D,_setValid:y,_setFieldArray:w,_setDisabledField:q,_setErrors:k,_getFieldArray:X,_reset:ve,_resetDefaultValues:()=>bo(e.defaultValues)&&e.defaultValues().then(B=>{Ne(B,e.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:O,_disableForm:te,_subjects:p,_proxyFormState:f,get _fields(){return r},get _formValues(){return s},get _state(){return o},set _state(B){o=B},get _defaultValues(){return a},get _names(){return l},set _names(B){l=B},get _formState(){return n},get _options(){return e},set _options(B){e={...e,...B}}},subscribe:re,trigger:$,register:W,handleSubmit:ie,watch:ee,setValue:Y,getValues:F,reset:Ne,resetField:me,clearErrors:z,unregister:he,setError:U,setFocus:je,getFieldState:R};return{...tt,formControl:tt}}var $c=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=(Math.random()*16+t)%16|0;return(e=="x"?n:n&3|8).toString(16)})},lN=(t,e,n={})=>n.shouldFocus||Ln(n.shouldFocus)?n.focusName||`${t}.${Ln(n.focusIndex)?e:n.focusIndex}.`:"",cN=(t,e)=>[...t,...zs(e)],uN=t=>Array.isArray(t)?t.map(()=>{}):void 0;function dN(t,e,n){return[...t.slice(0,e),...zs(n),...t.slice(e)]}var fN=(t,e,n)=>Array.isArray(t)?(Ln(t[n])&&(t[n]=void 0),t.splice(n,0,t.splice(e,1)[0]),t):[],hN=(t,e)=>[...zs(e),...zs(t)];function Y8e(t,e){let n=0;const r=[...t];for(const a of e)r.splice(a-n,1),n++;return k2(r).length?r:[]}var pN=(t,e)=>Ln(e)?[]:Y8e(t,zs(e).sort((n,r)=>n-r)),mN=(t,e,n)=>{[t[e],t[n]]=[t[n],t[e]]},YF=(t,e,n)=>(t[e]=n,t);function X8e(t){const e=T8e(),{control:n=e,name:r,keyName:a="id",shouldUnregister:s,rules:o}=t,[l,c]=J.useState(n._getFieldArray(r)),u=J.useRef(n._getFieldArray(r).map($c)),d=J.useRef(!1);n._names.array.add(r),J.useMemo(()=>o&&l.length>=0&&n.register(r,o),[n,r,l.length,o]),_X(()=>n._subjects.array.subscribe({next:({values:j,name:k})=>{if(k===r||!k){const _=Je(j,r);Array.isArray(_)&&(c(_),u.current=_.map($c))}}}).unsubscribe,[n,r]);const f=J.useCallback(j=>{d.current=!0,n._setFieldArray(r,j)},[n,r]),h=(j,k)=>{const _=zs(rr(j)),S=cN(n._getFieldArray(r),_);n._names.focus=lN(r,S.length-1,k),u.current=cN(u.current,_.map($c)),f(S),c(S),n._setFieldArray(r,S,cN,{argA:uN(j)})},p=(j,k)=>{const _=zs(rr(j)),S=hN(n._getFieldArray(r),_);n._names.focus=lN(r,0,k),u.current=hN(u.current,_.map($c)),f(S),c(S),n._setFieldArray(r,S,hN,{argA:uN(j)})},m=j=>{const k=pN(n._getFieldArray(r),j);u.current=pN(u.current,j),f(k),c(k),!Array.isArray(Je(n._fields,r))&&jn(n._fields,r,void 0),n._setFieldArray(r,k,pN,{argA:j})},x=(j,k,_)=>{const S=zs(rr(k)),N=dN(n._getFieldArray(r),j,S);n._names.focus=lN(r,j,_),u.current=dN(u.current,j,S.map($c)),f(N),c(N),n._setFieldArray(r,N,dN,{argA:j,argB:uN(k)})},y=(j,k)=>{const _=n._getFieldArray(r);mN(_,j,k),mN(u.current,j,k),f(_),c(_),n._setFieldArray(r,_,mN,{argA:j,argB:k},!1)},b=(j,k)=>{const _=n._getFieldArray(r);fN(_,j,k),fN(u.current,j,k),f(_),c(_),n._setFieldArray(r,_,fN,{argA:j,argB:k},!1)},v=(j,k)=>{const _=rr(k),S=YF(n._getFieldArray(r),j,_);u.current=[...S].map((N,E)=>!N||E===j?$c():u.current[E]),f(S),c([...S]),n._setFieldArray(r,S,YF,{argA:j,argB:_},!0,!1)},w=j=>{const k=zs(rr(j));u.current=k.map($c),f([...k]),c([...k]),n._setFieldArray(r,[...k],_=>_,{},!0,!1)};return J.useEffect(()=>{if(n._state.action=!1,q5(r,n._names)&&n._subjects.state.next({...n._formState}),d.current&&(!Lh(n._options.mode).isOnSubmit||n._formState.isSubmitted)&&!Lh(n._options.reValidateMode).isOnSubmit)if(n._options.resolver)n._runSchema([r]).then(j=>{n._updateIsValidating([r]);const k=Je(j.errors,r),_=Je(n._formState.errors,r);(_?!k&&_.type||k&&(_.type!==k.type||_.message!==k.message):k&&k.type)&&(k?jn(n._formState.errors,r,k):Pr(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{const j=Je(n._fields,r);j&&j._f&&!(Lh(n._options.reValidateMode).isOnSubmit&&Lh(n._options.mode).isOnSubmit)&&K5(j,n._names.disabled,n._formValues,n._options.criteriaMode===Ii.all,n._options.shouldUseNativeValidation,!0).then(k=>!Ga(k)&&n._subjects.state.next({errors:MX(n._formState.errors,k,r)}))}n._subjects.state.next({name:r,values:rr(n._formValues)}),n._names.focus&&op(n._fields,(j,k)=>{if(n._names.focus&&k.startsWith(n._names.focus)&&j.focus)return j.focus(),1}),n._names.focus="",n._setValid(),d.current=!1},[l,r,n]),J.useEffect(()=>(!Je(n._formValues,r)&&n._setFieldArray(r),()=>{const j=(k,_)=>{const S=Je(n._fields,k);S&&S._f&&(S._f.mount=_)};n._options.shouldUnregister||s?n.unregister(r):j(r,!1)}),[r,n,a,s]),{swap:J.useCallback(y,[f,r,n]),move:J.useCallback(b,[f,r,n]),prepend:J.useCallback(p,[f,r,n]),append:J.useCallback(h,[f,r,n]),remove:J.useCallback(m,[f,r,n]),insert:J.useCallback(x,[f,r,n]),update:J.useCallback(v,[f,r,n]),replace:J.useCallback(w,[f,r,n]),fields:J.useMemo(()=>l.map((j,k)=>({...j,[a]:u.current[k]||$c()})),[l,a])}}function J8e(t={}){const e=J.useRef(void 0),n=J.useRef(void 0),[r,a]=J.useState({isDirty:!1,isValidating:!1,isLoading:bo(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,isReady:!1,defaultValues:bo(t.defaultValues)?void 0:t.defaultValues});if(!e.current)if(t.formControl)e.current={...t.formControl,formState:r},t.defaultValues&&!bo(t.defaultValues)&&t.formControl.reset(t.defaultValues,t.resetOptions);else{const{formControl:o,...l}=K8e(t);e.current={...l,formState:r}}const s=e.current.control;return s._options=t,_X(()=>{const o=s._subscribe({formState:s._proxyFormState,callback:()=>a({...s._formState}),reRenderRoot:!0});return a(l=>({...l,isReady:!0})),s._formState.isReady=!0,o},[s]),J.useEffect(()=>s._disableForm(t.disabled),[s,t.disabled]),J.useEffect(()=>{t.mode&&(s._options.mode=t.mode),t.reValidateMode&&(s._options.reValidateMode=t.reValidateMode)},[s,t.mode,t.reValidateMode]),J.useEffect(()=>{t.errors&&(s._setErrors(t.errors),s._focusError())},[s,t.errors]),J.useEffect(()=>{t.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,t.shouldUnregister]),J.useEffect(()=>{if(s._proxyFormState.isDirty){const o=s._getDirty();o!==r.isDirty&&s._subjects.state.next({isDirty:o})}},[s,r.isDirty]),J.useEffect(()=>{var o;t.values&&!Jc(t.values,n.current)?(s._reset(t.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((o=s._options.resetOptions)===null||o===void 0)&&o.keepIsValid||s._setValid(),n.current=t.values,a(l=>({...l}))):s._resetDefaultValues()},[s,t.values]),J.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),e.current.formState=J.useMemo(()=>P8e(r,s),[s,r]),e.current}const XF=(t,e,n)=>{if(t&&"reportValidity"in t){const r=Je(n,e);t.setCustomValidity(r&&r.message||""),t.reportValidity()}},RX=(t,e)=>{for(const n in e.fields){const r=e.fields[n];r&&r.ref&&"reportValidity"in r.ref?XF(r.ref,n,t):r.refs&&r.refs.forEach(a=>XF(a,n,t))}},Z8e=(t,e)=>{e.shouldUseNativeValidation&&RX(t,e);const n={};for(const r in t){const a=Je(e.fields,r),s=Object.assign(t[r]||{},{ref:a&&a.ref});if(Q8e(e.names||Object.keys(t),r)){const o=Object.assign({},Je(n,r));jn(o,"root",s),jn(n,r,o)}else jn(n,r,s)}return n},Q8e=(t,e)=>t.some(n=>n.startsWith(e+"."));var e6e=function(t,e){for(var n={};t.length;){var r=t[0],a=r.code,s=r.message,o=r.path.join(".");if(!n[o])if("unionErrors"in r){var l=r.unionErrors[0].errors[0];n[o]={message:l.message,type:l.code}}else n[o]={message:s,type:a};if("unionErrors"in r&&r.unionErrors.forEach(function(d){return d.errors.forEach(function(f){return t.push(f)})}),e){var c=n[o].types,u=c&&c[r.code];n[o]=NX(o,e,n,a,u?[].concat(u,r.message):r.message)}t.shift()}return n},t6e=function(t,e,n){return n===void 0&&(n={}),function(r,a,s){try{return Promise.resolve(function(o,l){try{var c=Promise.resolve(t[n.mode==="sync"?"parse":"parseAsync"](r,e)).then(function(u){return s.shouldUseNativeValidation&&RX({},s),{errors:{},values:n.raw?r:u}})}catch(u){return l(u)}return c&&c.then?c.then(void 0,l):c}(0,function(o){if(function(l){return Array.isArray(l==null?void 0:l.errors)}(o))return{values:{},errors:Z8e(e6e(o.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw o}))}catch(o){return Promise.reject(o)}}};const JF=[420,260,180,140,130,210,480,950,1700,2400,2900,3200,3400,3300,3100,2950,3050,3350,3600,3450,2800,1900,1100,640],n6e=t=>Math.round(t/25)*25;function ZF(t,e,n,r){return n<=1||t<=0?100:Math.max(100,n6e(5*Math.sqrt(t*e/(n-1))))}function QF(t,e,n,r){const a=(.1+.2*n)/Math.max(1,r-1),s=e*n,o=s>0?t/s:a;return Math.max(.01,Math.min(o,a))}function e9(t){return Number.isFinite(t)?t<=60?"text-emerald-700":t<=120?"text-amber-700":"text-red-600":"text-slate-500"}function t9(t){const e=t.filter(n=>Number.isFinite(n)&&n>=0);if(e.length===24)return{hours:e,note:"Loaded 24 hourly values."};if(e.length>24&&e.length%24===0){const n=e.length/24;return{hours:Array.from({length:24},(a,s)=>{let o=0;for(let l=0;l24?{hours:e.slice(0,24),note:`Using first 24 of ${e.length} values.`}:{error:`Expected 24 values — found ${e.length}. Paste one day (row/column) or N×24.`}}function r6e(t){const e=t.trim();if(!e)return{error:"Paste hourly volumes or upload a CSV."};const n=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>/\d/.test(r));if(n.length>=12){const r=n.map(a=>{const s=a.match(/-?\d+(?:\.\d+)?/g);return s?Number(s[s.length-1]):NaN}).filter(a=>Number.isFinite(a));return t9(r)}return t9((e.match(/-?\d+(?:\.\d+)?/g)||[]).map(Number))}async function a6e(t,e){const n=t.stream().pipeThrough(new TextDecoderStream).getReader();let r=!1,a=!1,s=[],o="",l=0,c=!0,u=-1,d=-1,f=!1,h="",p="";const m=new Map;let x=0;const y=E=>a&&(E===u||E===d),b=()=>{a?l===u?h=o:l===d&&(p=o):s.push(o),o=""},v=()=>{if(!a)u=s.indexOf("Booking Date"),d=s.indexOf("Record Type"),f=u>=0&&d>=0,a=!0,s=[];else if(f){if(x++,p==="Received"&&h.length>=13){const E=(h.charCodeAt(11)-48)*10+(h.charCodeAt(12)-48);if(E>=0&&E<24){const P=h.slice(0,10);let M=m.get(P);M||(M=new Array(24).fill(0),m.set(P,M)),M[E]++}}x%2e5===0&&e(x)}l=0,c=!a||y(0),h="",p=""};for(;;){const{done:E,value:P}=await n.read();if(E)break;const M=P;for(let A=0;A0)&&(b(),v()),!f)return{error:'Not a PAR export (no "Booking Date" / "Record Type" columns).'};if(m.size===0)return{error:'PAR parsed, but found no "Received" rows.'};const w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j=E=>new Date(`${E}T00:00:00Z`).getUTCDay();let k="",_=new Array(24).fill(0),S=-1,N=!1;for(const[E,P]of m){const M=P.reduce((D,I)=>D+I,0),A=j(E)>=1&&j(E)<=5;(S<0||A&&!N||A===N&&M>S)&&(k=E,_=P,S=M,N=A)}return{hours:_.slice(),note:`PAR detected — busiest weekday ${k} (${w[j(k)]}): ${S.toLocaleString()} Received attempts (of ${m.size} day(s) scanned).`}}function s6e(){const[t,e]=g.useState(3),[n,r]=g.useState(100),a=5,s=0,[o,l]=g.useState(JF),[c,u]=g.useState("bucket"),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null),[y,b]=g.useState("Sample day"),[v,w]=g.useState(null),j=g.useRef(null),k=Math.min(1,Math.max(0,n/100)),_=()=>{l(JF),b("Sample day"),w(null),x(null)},S=g.useMemo(()=>{const O=o,D=Math.max(1,t-1),I=O.map((te,ie)=>({v:te,h:ie})).filter(({v:te})=>te>0&&te>=s),X=I.length?Math.min(...I.map(te=>te.v)):0,Q=I.length?Math.min(...I.map(te=>ZF(te.v,k,t))):100,V=QF(Q,X||1,k,t),Y=(te,ie,me)=>{const ve=me*k,Ne=ie*D,je=ve*Math.max(0,1-Ne),Me=ve*ie;return{bucket:te,h:ie,noise:Math.sqrt(1875/te),bestRefresh:je>0?te/je*60:1/0,worstRefresh:Me>0?te/Me*60:1/0,hedged:ve*Ne}},H=O.map((te,ie)=>{const me=te>0&&te>=s,ve=me?ZF(te,k,t):Q,Ne=me?QF(ve,te,k,t):V;return{v:te,hour:ie,on:me,static:Y(Q,V,te),auto:Y(ve,Ne,te)}}),G=H.filter(te=>te.on),$=te=>G.reduce((ie,me)=>ie+te(me),0),F=$(te=>te.v),R=te=>F>0?$(ie=>ie.v*ie[te].noise)/F:0,z=te=>$(ie=>ie[te].hedged),U=G.map(te=>te.auto.bucket),ee=G.map(te=>te.auto.h),pe=z("static"),re=z("auto"),he=pe-re,q=he*(Math.max(0,a)/100/2),W=O.reduce((te,ie)=>te+ie,0),ue=O.reduce((te,ie,me)=>ie>te.v?{v:ie,h:me}:te,{v:0,h:0});return{rows:H,staticB:Q,staticH:V,autoBMin:U.length?Math.min(...U):Q,autoBMax:U.length?Math.max(...U):Q,autoHMin:ee.length?Math.min(...ee):V,autoHMax:ee.length?Math.max(...ee):V,staticNoise:R("static"),autoNoise:R("auto"),staticHedged:pe,autoHedged:re,hedgedSaved:he,recovered:q,nHedged:D,totalDay:W,avgV:O.length?W/O.length:0,peak:ue,activeCount:G.length,hoursCount:O.length}},[o,t,k,a,s]),N=async O=>{w(null);let D=!1;try{const X=((await O.slice(0,65536).text()).split(/\r?\n/,1)[0]??"").split(",").map(Q=>Q.trim());D=X.includes("Booking Date")&&X.includes("Record Type")}catch{D=!1}if(D){x("Crunching PAR…");try{const I=await a6e(O,X=>x(`Crunching PAR… ${X.toLocaleString()} rows`));"hours"in I?(l(I.hours.map(X=>Math.round(X))),b(I.note)):w(I.error)}catch{w("Could not read the file (too large for the browser? try a smaller slice).")}finally{x(null)}return}if(x(null),O.size>2e6){w("Unrecognised large file — expected a PAR export or a small 24-value CSV.");return}try{const I=r6e(await O.text());"hours"in I?(l(I.hours),b(`Loaded ${O.name}`)):w(I.error)}catch{w("Could not read the file.")}},E=S.rows.map(O=>({hour:`${String(O.hour).padStart(2,"0")}`,volume:O.v,staticBucket:O.static.bucket,autoBucket:O.auto.bucket,staticHedge:O.static.h*100,autoHedge:O.auto.h*100,staticNoise:O.static.noise,autoNoise:O.auto.noise})),P={bucket:{label:"Bucket B",staticKey:"staticBucket",autoKey:"autoBucket",unit:"",fmt:O=>O.toFixed(0)},hedge:{label:"Hedge %/PG",staticKey:"staticHedge",autoKey:"autoHedge",unit:"%",fmt:O=>O.toFixed(1)},noise:{label:"Noise ±pp",staticKey:"staticNoise",autoKey:"autoNoise",unit:"pp",fmt:O=>O.toFixed(2)}},M=P[c],A="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100";return i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsx("div",{className:"mb-3",children:i.jsx("h3",{className:"text-sm font-semibold text-slate-800 dark:text-white",children:"Auto-tuning — Static vs Automatic"})}),i.jsxs("div",{className:"flex flex-wrap items-end gap-4",children:[i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(an,{children:"Processors (N)"}),i.jsx("input",{type:"number",min:2,max:12,value:t,onChange:O=>e(Math.max(2,Math.min(12,parseInt(O.target.value||"2",10)))),className:`${A} w-[90px]`})]}),i.jsx("button",{type:"button",onClick:()=>p(O=>!O),className:"self-end pb-1.5 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:h?"▾ Advanced":"▸ Advanced"}),h&&i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(an,{children:"SRV3 split %"}),i.jsx("input",{type:"number",min:1,max:100,value:n,onChange:O=>r(Math.max(1,Math.min(100,parseInt(O.target.value||"100",10)))),className:`${A} w-[90px]`})]})]}),i.jsxs("div",{className:"mt-4 flex flex-col gap-3 sm:flex-row sm:items-stretch",children:[i.jsxs("div",{onClick:()=>{var O;return(O=j.current)==null?void 0:O.click()},onDragOver:O=>O.preventDefault(),onDrop:O=>{var I;O.preventDefault();const D=(I=O.dataTransfer.files)==null?void 0:I[0];D&&N(D)},className:"flex flex-1 cursor-pointer flex-col items-center justify-center gap-1 rounded-xl border border-dashed border-slate-300 bg-slate-50/60 px-4 py-4 text-center text-xs text-slate-500 hover:border-brand-400 hover:bg-brand-50/30 dark:border-[#222226] dark:bg-[#0b0b10] dark:text-slate-400",children:[i.jsx("input",{ref:j,type:"file",accept:".csv,.txt,text/csv,text/plain",className:"hidden",onChange:O=>{var I;const D=(I=O.target.files)==null?void 0:I[0];D&&N(D)}}),i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:"Drop a CSV or click to browse"}),i.jsx("span",{children:"A raw PAR export (auto-detected — busiest weekday), or any 24-value layout — row, column, N×24, time-column."}),m&&i.jsx("span",{className:"mt-1 font-medium text-amber-700 dark:text-amber-400",children:m})]}),i.jsx("button",{type:"button",onClick:_,className:"shrink-0 rounded-xl border border-slate-200 px-4 py-2 text-sm font-medium text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-slate-300 dark:hover:bg-[#0d0d13] sm:self-stretch",children:"Load sample day"})]}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:v?i.jsx("span",{className:"text-red-600",children:v}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:y})," · ","Total ",S.totalDay.toLocaleString()," · avg ",S.avgV.toFixed(0),"/hr · peak ",S.peak.v.toLocaleString()," @ ",S.peak.h,"h · active ",S.activeCount,"/",S.hoursCount,"h"]})})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"mb-2 flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:["Daily volume & ",M.label.toLowerCase()]}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:"Bars = traffic. Lines = the static (flat) vs automatic (per-hour) value — watch automatic track the volume."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:["bucket","hedge","noise"].map(O=>i.jsx("button",{type:"button",onClick:()=>u(O),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${c===O?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:P[O].label},O))})]}),i.jsx("div",{className:"h-[300px] w-full",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:E,margin:{top:8,right:8,bottom:4,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"hour",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:16}),i.jsx(wa,{yAxisId:"vol",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:48,tickFormatter:O=>O>=1e3?`${(O/1e3).toFixed(1)}k`:`${O}`}),i.jsx(wa,{yAxisId:"ov",orientation:"right",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:44,tickFormatter:O=>`${M.fmt(O)}${M.unit}`}),i.jsx(Vr,{formatter:(O,D)=>D==="Volume"?[Math.round(O).toLocaleString(),D]:[`${M.fmt(O)}${M.unit}`,D],labelFormatter:O=>`${O}:00`,contentStyle:{fontSize:12,borderRadius:8}}),i.jsx(ml,{wrapperStyle:{fontSize:11}}),i.jsx(xs,{yAxisId:"vol",dataKey:"volume",name:"Volume",fill:"#c7d2fe",radius:[3,3,0,0],isAnimationActive:!1}),i.jsx(fi,{yAxisId:"ov",dataKey:M.staticKey,name:`Static ${M.label}`,stroke:"#94a3b8",strokeWidth:2,strokeDasharray:"5 4",dot:!1,isAnimationActive:!1}),i.jsx(fi,{yAxisId:"ov",dataKey:M.autoKey,name:`Auto ${M.label}`,stroke:"#10b981",strokeWidth:2.5,dot:!1,isAnimationActive:!1})]})})})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-white px-4 py-3 dark:border-[#1c1c24] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-slate-600 dark:text-slate-300 leading-[18px]",children:"Static"}),i.jsx("span",{className:"rounded bg-slate-100 px-2 py-0.5 text-[11px] font-medium text-slate-500 dark:bg-[#1f1f29] dark:text-slate-400 leading-4",children:"sized for leanest hour"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:S.staticB}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(S.staticH*100).toFixed(1),"% ",i.jsxs("span",{className:"text-slate-500",children:["(tot ",(S.staticH*S.nHedged*100).toFixed(0),"%)"]})]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(S.staticHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",S.staticNoise.toFixed(2),"pp"]})]})]}),i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50/40 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/20",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-emerald-700 dark:text-emerald-300 leading-[18px]",children:"Automatic"}),i.jsx("span",{className:"rounded bg-emerald-100 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-200 leading-4",children:"per-hour sizing"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:S.autoBMin===S.autoBMax?S.autoBMin:`${S.autoBMin}–${S.autoBMax}`}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(S.autoHMin*100).toFixed(1),"–",(S.autoHMax*100).toFixed(1),"%"]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(S.autoHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",S.autoNoise.toFixed(2),"pp"]})]})]})]}),i.jsxs("div",{className:"mt-3 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 text-sm text-slate-700 dark:border-[#1c1c24] dark:bg-[#0b0b10] dark:text-slate-200",children:["Automatic trims ",i.jsx("strong",{className:"font-mono",children:Math.round(S.hedgedSaved).toLocaleString()})," hedged txns/day (≈ ",i.jsx("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:Math.round(S.recovered).toLocaleString()})," recovered approvals) and cuts volume-weighted noise from",i.jsxs("strong",{className:"font-mono",children:[" ±",S.staticNoise.toFixed(2),"pp"]})," → ",i.jsxs("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:["±",S.autoNoise.toFixed(2),"pp"]})," by enlarging buckets in busy hours."," ","Lean-hour refresh is volume-limited, so both stay equal there — the win is the over-hedge trim and busy-hour accuracy."]}),i.jsxs("button",{type:"button",onClick:()=>f(O=>!O),className:"mt-3 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:[d?"Hide":"Show"," per-hour breakdown"]}),d&&i.jsx("div",{className:"mt-2 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-right text-xs tabular-nums",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Hour"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"B (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"h% (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Noise (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Worst refresh (S→A)"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-slate-300",children:S.rows.filter(O=>O.on).map(O=>i.jsxs("tr",{className:"border-b border-slate-100 dark:border-[#141418]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left font-mono",children:[String(O.hour).padStart(2,"0"),":00"]}),i.jsx("td",{className:"py-1 pr-3 font-mono",children:Math.round(O.v).toLocaleString()}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[O.static.bucket," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:O.auto.bucket})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[(O.static.h*100).toFixed(1)," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:(O.auto.h*100).toFixed(1)})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:["±",O.static.noise.toFixed(1)," → ",i.jsxs("span",{className:"text-slate-800 dark:text-slate-100",children:["±",O.auto.noise.toFixed(1)]})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[i.jsx("span",{className:e9(O.static.worstRefresh),children:O.static.worstRefresh.toFixed(0)})," → ",i.jsx("span",{className:e9(O.auto.worstRefresh),children:O.auto.worstRefresh.toFixed(0)}),i.jsx("span",{className:"text-slate-500",children:" min"})]})]},O.hour))})]})})]})})]})}function i6e({merchantId:t}){const{coverage:e,error:n,isLoading:r}=Zj(t),a=!!e&&e.total_clusters>0;return t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-2 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading breakdown…"]}):n?i.jsx("p",{className:"text-sm text-red-600",children:"Failed to load coverage."}):!a||!e?i.jsx("p",{className:"text-sm text-slate-500",children:"The breakdown appears once a settlement report has been fitted."}):i.jsx("div",{className:"space-y-4",children:i.jsx(o6e,{coverage:e})})}function o6e({coverage:t}){const e=[{verdict:"GOOD",note:"trustworthy cost model",dot:"bg-emerald-500",txns:t.good_txns,gross:t.good_gross},{verdict:"Tiered",note:"priced per amount tier — capped or tiered interchange",dot:"bg-sky-500",txns:t.tiered_txns,gross:t.tiered_gross,hideWhenEmpty:!0},{verdict:"THIN",note:"too few txns — safe fallback",dot:"bg-slate-400",txns:t.thin_txns,gross:t.thin_gross},{verdict:"Poor fit",note:"no single rate and no clean tiers — set a contract rate",dot:"bg-amber-500",txns:t.non_linear_txns,gross:t.non_linear_gross,hideWhenEmpty:!0}].filter(a=>!a.hideWhenEmpty||a.txns>0||a.gross>0),n=a=>t.total_txns>0?a/t.total_txns*100:0,r=a=>t.total_gross>0?a/t.total_gross*100:0;return i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[520px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Verdict"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txn %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Vol %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Avg ticket"})]})}),i.jsx("tbody",{children:e.map(a=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsxs("td",{className:"py-2 pr-3",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx("span",{className:`h-2 w-2 rounded-full ${a.dot}`}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-[#c7cfdd]",children:a.verdict})]}),i.jsx("span",{className:"ml-4 text-xs text-slate-500",children:a.note})]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns.toLocaleString()}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[n(a.txns).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:l6e(a.gross)}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[r(a.gross).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns>0?c6e(a.gross/a.txns):"—"})]},a.verdict))})]})})}function l6e(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function c6e(t){return t.toLocaleString(void 0,{maximumFractionDigits:0})}const u6e=[{key:"card_network",label:"Network"},{key:"variant",label:"Program"},{key:"funding",label:"Type"},{key:"issuer_country",label:"Country"},{key:"currency",label:"Currency"},{key:"ic_category",label:"Category"},{key:"verdict",label:"Fit"}],d6e="flex w-full items-center justify-between gap-1 rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-700 hover:border-slate-300 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-[#c7cede] dark:hover:border-[#2e3545]",f6e="w-full rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white dark:placeholder:text-[#5c6577]";function h6e({label:t,selected:e,options:n,onChange:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(""),c=g.useRef(null);g.useEffect(()=>{if(!a)return;function h(m){c.current&&!c.current.contains(m.target)&&s(!1)}function p(m){m.key==="Escape"&&s(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[a]);const u=g.useMemo(()=>{const h=o.trim().toLowerCase(),p=h?n.filter(y=>y.value.toLowerCase().includes(h)):n,m=new Set(e);return[...e.filter(y=>!p.some(b=>b.value===y)).map(y=>({dim:"",value:y,txns:0})),...p].slice(0,300).map(y=>({...y,on:m.has(y.value)}))},[n,o,e]);function d(h){r(e.includes(h)?e.filter(p=>p!==h):[...e,h])}const f=e.length===0?t:e.length===1?`${t}: ${e[0]}`:`${t} · ${e.length}`;return i.jsxs("div",{className:"relative",ref:c,children:[i.jsxs("button",{type:"button",className:d6e,"aria-label":`Filter by ${t}`,"aria-expanded":a,onClick:()=>s(h=>!h),children:[i.jsx("span",{className:`truncate ${e.length?"font-medium":"text-slate-500 dark:text-[#78849a]"}`,children:f}),i.jsx(wn,{size:13,className:"shrink-0 opacity-60"})]}),a&&i.jsxs("div",{className:"absolute z-30 mt-1 w-[260px] rounded-lg border border-slate-200 bg-white p-2 shadow-lg dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("input",{autoFocus:!0,className:f6e,value:o,placeholder:`Search ${t.toLowerCase()}…`,onChange:h=>l(h.target.value)}),e.length>0&&i.jsxs("button",{type:"button",className:"mt-1 w-full rounded px-1 py-0.5 text-left text-[11px] text-brand-600 hover:underline dark:text-brand-400 leading-4",onClick:()=>r([]),children:["Clear ",e.length," selected"]}),i.jsxs("div",{className:"mt-1 max-h-56 overflow-y-auto",children:[u.length===0&&i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matching values."}),u.map(h=>i.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 rounded px-1 py-1 text-left text-[12px] text-slate-700 hover:bg-slate-100 dark:text-[#c7cede] dark:hover:bg-[#141a24] leading-4",onClick:()=>d(h.value),children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${h.on?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#39414f]"}`,children:h.on&&i.jsx(gi,{size:10,strokeWidth:3})}),i.jsx("span",{className:"min-w-0 flex-1 truncate",title:h.value,children:h.value}),h.txns>0&&i.jsx("span",{className:"shrink-0 text-[11px] text-slate-500 leading-4",children:h.txns.toLocaleString()})]},h.value))]})]})]})}function DX({filters:t,facets:e,onChange:n,rightSlot:r}){const a=IT(t);return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a>0&&i.jsxs(ke,{variant:"ghost",onClick:()=>n({}),children:[i.jsx(Hr,{size:14})," Clear ",a," filter",a===1?"":"s"]}),r]}),i.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-7",children:u6e.map(s=>i.jsx(h6e,{label:s.label,selected:t[s.key]??[],options:e[s.key]??[],onChange:o=>n({...t,[s.key]:o})},s.key))})]})}const n9=[{value:"adyen",label:"Adyen"},{value:"braintree",label:"Braintree"},{value:"chase",label:"Chase"},{value:"checkout",label:"Checkout"},{value:"stripe",label:"Stripe"}],Us="w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function _o({label:t,hint:e,children:n}){return i.jsxs("label",{className:"block space-y-1.5",children:[i.jsx("span",{className:ts,children:t}),n,e&&i.jsx("span",{className:`block ${ku}`,children:e})]})}const p6e={blue:"bg-blue-50 text-blue-600 dark:bg-blue-500/12 dark:text-blue-300",purple:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300",teal:"bg-teal-50 text-teal-700 dark:bg-teal-500/12 dark:text-teal-300",orange:"bg-orange-50 text-orange-700 dark:bg-orange-500/12 dark:text-orange-300",red:"bg-rose-50 text-rose-600 dark:bg-rose-500/12 dark:text-rose-300",gray:"bg-slate-100 text-slate-600 dark:bg-white/[0.06] dark:text-slate-300"};function IX({variant:t,children:e}){return i.jsx("span",{className:`inline-flex max-w-full items-center truncate rounded-md px-2 py-0.5 text-xs font-semibold ${p6e[t]}`,children:e})}const Gc="w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white disabled:opacity-50",m6e={adyen:"blue",stripe:"purple",checkout:"green","checkout.com":"green",braintree:"orange",authorizenet:"teal","authorize.net":"teal",chase:"blue",paypal:"blue",worldpay:"red"},g6e={visa:"blue",mastercard:"red",amex:"purple","american express":"purple",discover:"orange",ideal:"orange",jcb:"green",diners:"gray",rupay:"green",unionpay:"red"},r9=["blue","purple","green","teal","orange","red"];function x6e(t){let e=0;for(let n=0;n>>0;return r9[e%r9.length]}function y6e(t){const e=t.toLowerCase().trim();return m6e[e]??x6e(e)}function v6e(t){return g6e[t.toLowerCase().trim()]??"gray"}const b6e={usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",inr:"₹",jpy:"¥",aed:"AED "};function Yy(t){return t?b6e[t.toLowerCase()]??`${t.toUpperCase()} `:"$"}function nM(t){return t.interchange_bps+t.scheme_bps+t.markup_bps}function _u(t){return`${(t/100).toFixed(2)}%`}function rM(t){return Number.isFinite(t)?Math.round(t/100*1e4)/1e4:0}function aM(t){return Number.isFinite(t)?Math.round(t*100*100)/100:0}function $X(t,e){const n=_u(nM(t));return t.fixed?`${n} + ${Yy(t.transaction_currency)}${t.fixed.toFixed(2)}`:n}function uu(t,e,{currency:n,perTxn:r=!1}={}){if(t==null&&e==null)return"—";const a=_u(t??0);return e&&e>0?`${a} + ${Yy(n)}${e.toFixed(2)}${r?"/txn":""}`:a}const w6e=["standard","premium","ultra_premium","commercial"];function k6e(t){return{psp:t,card_network:"",payment_method_type:"",card_type:"",transaction_currency:"",card_issuing_country:"",interchange_bps:0,scheme_bps:0,markup_bps:0,fixed:0,label:"",example_amount:null,is_default:!1,effective_pct_bps:0}}function j6e({row:t,busy:e,disabled:n,onEdit:r}){var a;return i.jsxs("tr",{className:"border-b border-slate-100 transition-colors last:border-0 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"px-5 py-3 text-slate-700 dark:text-[#c7cfdd]",children:t.is_default?i.jsx(Pe,{variant:"gray",children:"Default"}):t.label||"—"}),i.jsx("td",{className:"py-3 pr-3",children:t.card_network?i.jsx(IX,{variant:v6e(t.card_network),children:t.card_network}):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.payment_method_type||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_type?t.card_type.replace(/_/g," "):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((a=t.transaction_currency)==null?void 0:a.toUpperCase())||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_issuing_country||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.interchange_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.scheme_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.markup_bps)}),i.jsxs("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[Yy(t.transaction_currency),t.fixed.toFixed(2)]}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right tabular-nums font-semibold text-brand-700 dark:bg-brand-500/[0.1] dark:text-brand-300",children:$X(t)}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-5 text-right dark:bg-brand-500/[0.1]",children:i.jsx("button",{type:"button",onClick:r,disabled:n||e,title:"Edit scenario","aria-label":"Edit scenario",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-emerald-600 transition-colors hover:bg-emerald-500/10 disabled:opacity-40 dark:text-emerald-400",children:i.jsx(El,{size:14})})})]})}function S6e({initial:t,isNew:e,busy:n,saveError:r,onSave:a,onRemove:s,onClose:o}){const[l,c]=g.useState(t),[u,d]=g.useState(null),f=g.useRef(null),h=m=>c(x=>({...x,...m}));g.useEffect(()=>{var x;(x=f.current)==null||x.focus();function m(y){y.key==="Escape"&&!n&&o()}return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[n,o]);function p(){if(!l.psp.trim()){d("Enter a connector (PSP).");return}for(const m of[l.interchange_bps,l.scheme_bps,l.markup_bps,l.fixed])if(!Number.isFinite(m)||m<0){d("Fees must be non-negative numbers.");return}d(null),a(l)}return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!n&&o()}),i.jsxs("div",{ref:f,tabIndex:-1,className:"relative w-full max-w-lg rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e?"Add scenario":"Edit scenario"}),i.jsx("button",{type:"button",onClick:o,disabled:n,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Hr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(uo,{label:"Scenario name",children:l.is_default?i.jsx("div",{className:"flex h-[34px] items-center",children:i.jsx(Pe,{variant:"gray",children:"Default"})}):i.jsx("input",{className:Gc,value:l.label??"",placeholder:"e.g. Visa credit — US",onChange:m=>h({label:m.target.value})})}),i.jsx(uo,{label:"PSP",children:i.jsx("div",{className:"flex h-[34px] items-center",children:l.psp?i.jsx(IX,{variant:y6e(l.psp),children:l.psp}):"—"})})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Applies to ",i.jsx("span",{className:"font-normal text-slate-500",children:"(blank = any card)"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(uo,{label:"Network",children:i.jsx("input",{className:Gc,value:l.card_network??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_network:m.target.value})})}),i.jsx(uo,{label:"Funding",children:i.jsx("input",{className:Gc,value:l.payment_method_type??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({payment_method_type:m.target.value})})}),i.jsx(uo,{label:"Program",children:i.jsxs("select",{className:Gc,value:l.card_type??"",disabled:l.is_default,onChange:m=>h({card_type:m.target.value}),children:[i.jsx("option",{value:"",children:"any"}),w6e.map(m=>i.jsx("option",{value:m,children:m},m))]})}),i.jsx(uo,{label:"Currency",children:i.jsx("input",{className:`${Gc} uppercase`,value:l.transaction_currency??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({transaction_currency:m.target.value})})}),i.jsx(uo,{label:"Region",children:i.jsx("input",{className:Gc,value:l.card_issuing_country??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_issuing_country:m.target.value})})})]})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Fees ",i.jsx("span",{className:"font-normal text-slate-500",children:"(rates in %, fixed per transaction)"})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[i.jsx(uo,{label:"Interchange",children:i.jsx(v1,{bps:l.interchange_bps,onChange:m=>h({interchange_bps:m})})}),i.jsx(uo,{label:"Scheme",children:i.jsx(v1,{bps:l.scheme_bps,onChange:m=>h({scheme_bps:m})})}),i.jsx(uo,{label:"Markup",children:i.jsx(v1,{bps:l.markup_bps,onChange:m=>h({markup_bps:m})})}),i.jsx(uo,{label:"Fixed",children:i.jsx(_6e,{value:l.fixed,step:.01,onChange:m=>h({fixed:m})})})]})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg bg-slate-50 px-3 py-2 text-sm dark:bg-[#0b1017]",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#8d96aa]",children:"Effective rate"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-white",children:$X(l)})]}),i.jsx(_t,{error:u??r})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e?i.jsx("span",{}):i.jsxs(ke,{variant:"danger",size:"sm",onClick:s,disabled:n,children:[i.jsx(Cn,{size:13})," Remove"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:o,disabled:n,children:"Cancel"}),i.jsxs(ke,{variant:"primary",size:"sm",onClick:p,disabled:n,children:[n?i.jsx(mt,{size:13}):null," Save"]})]})]})]})]})}function uo({label:t,children:e}){return i.jsxs("label",{className:"block space-y-1",children:[i.jsx("span",{className:"block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),e]})}function _6e({value:t,step:e=1,onChange:n}){return i.jsx("input",{className:`${Gc} text-right tabular-nums`,type:"number",min:"0",step:e,value:Number.isFinite(t)?t:0,onChange:r=>{const a=parseFloat(r.target.value);n(Number.isFinite(a)?a:0)}})}function v1({bps:t,onChange:e}){const n=rM(t);return i.jsxs("div",{className:"relative",children:[i.jsx("input",{className:`${Gc} pr-6 text-right tabular-nums`,type:"number",min:"0",step:.01,value:n,onChange:r=>{e(aM(parseFloat(r.target.value)))}}),i.jsx("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-500",children:"%"})]})}const N6e=["adyen","stripe","checkout","worldpay","braintree","chase","cybersource"],C6e=2e3,Db=10,Y5={mc:"Mastercard",mastercard:"Mastercard",visa:"Visa",amex:"Amex",mada:"Mada",diners:"Diners",discover:"Discover",jcb:"JCB"};function wl(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function E6e(t){const e=Number(t);return!t||!Number.isFinite(e)||e<=0?"—":_u(e)}function A6e(t){return Y5[t.toLowerCase()]??t.toUpperCase()}function O6e(t){var r;if((r=t.card_network)!=null&&r.trim())return A6e(t.card_network);const e=(t.variant??"").trim().toLowerCase();if(!e)return"—";const n=Object.keys(Y5).find(a=>e.startsWith(a));return n?Y5[n]:wl(e)}function cx(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function a9(t){const e=t.toUpperCase();return e==="GOOD"?"green":e==="THIN"?"orange":"red"}function LX(t){var e;return(e=t.find(({row:n})=>n.is_default)??t[0])==null?void 0:e.row}function FX(t,e){return(t==null?void 0:t.source)==="override"?"override":(t==null?void 0:t.model_pct_bps)!=null?"reports":e?"contract":"none"}const BX={override:"MANUAL OVERRIDE",reports:"FROM REPORTS",contract:"CONTRACT BASELINE",none:"NO FEE SET"},T6e={indigo:"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/12 dark:text-indigo-300",violet:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",slate:"bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-slate-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300"};function j2({tone:t,children:e}){return i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-md px-2 py-1 text-[11px] font-semibold uppercase tracking-wide ${T6e[t]} leading-4`,children:e})}const zX={override:"violet",reports:"indigo",contract:"slate",none:"slate"};function P6e({merchantId:t}){const{fees:e,isLoading:n,error:r,mutate:a}=dG(t),[s,o]=g.useState({}),{clusters:l,mutate:c}=$T(t,{limit:C6e,order:"gross_sum",filters:s}),{facets:u}=fG(t),{rows:d,error:f,mutate:h}=pG(t),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(null),[k,_]=g.useState(!1),[S,N]=g.useState(null),[E,P]=g.useState(!1),M=g.useMemo(()=>{const q=new Map;for(const W of l){const ue=q.get(W.connector);ue?ue.push(W):q.set(W.connector,[W])}return q},[l]),A=g.useMemo(()=>{const q=new Map;return d.forEach((W,ue)=>{const te=q.get(W.psp);te?te.push({row:W,index:ue}):q.set(W.psp,[{row:W,index:ue}])}),q},[d]),O=e.map(q=>q.connector),D=new Set(O),I=Array.from(A.keys()).filter(q=>q&&!D.has(q)),X=[...O,...I],Q=new Set([...D,...A.keys()]),V=N6e.filter(q=>!Q.has(q)),Y=p&&X.includes(p)?p:X[0]??null,H=e.find(q=>q.connector===Y),G=Y?A.get(Y)??[]:[],$=Y?M.get(Y)??[]:[];async function F(){await Promise.all([a(),c(),h()])}function R(q){m(q),y(null)}async function z(q){if(t){_(!0),N(null);try{await r5e(t,q),await h(),j(null)}catch(W){N(W instanceof Error?W.message:"Failed to save contract rates")}finally{_(!1)}}}function U(q){if(!w)return;const W=w.index===null?[...d,q]:d.map((ue,te)=>te===w.index?q:ue);z(W)}function ee(){!w||w.index===null||z(d.filter((q,W)=>W!==w.index))}async function pe(){if(t){P(!0),N(null);try{await a5e(t),await h()}catch(q){N(q instanceof Error?q.message:"Failed to reset contract rates")}finally{P(!1)}}}function re(q){const W=e.find(te=>te.connector===q),ue=LX(A.get(q)??[]);v({connector:q,isNew:!1,initialPctBps:(W==null?void 0:W.override_pct_bps)??(W==null?void 0:W.model_pct_bps)??(ue?nM(ue):0),initialFixed:(W==null?void 0:W.override_fixed)??(W==null?void 0:W.model_fixed)??(ue==null?void 0:ue.fixed)??0,canClear:(W==null?void 0:W.source)==="override"})}const he=d.length>0;return i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Costs"}),i.jsx("p",{className:"mt-1 max-w-2xl text-sm text-slate-500 dark:text-[#9ca7ba]",children:"What each connector costs at decide time, and where that number comes from. Pick a connector to override a learned fee or edit its contract baseline."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[t&&he&&i.jsxs(ke,{variant:"secondary",size:"sm",onClick:pe,disabled:E,children:[E?i.jsx(mt,{size:13}):i.jsx(bH,{size:13})," Reset contract rates"]}),t&&V.length>0&&i.jsxs(ke,{variant:"primary",size:"sm",onClick:()=>v({connector:V[0],connectors:V,isNew:!0,initialPctBps:0,initialFixed:0,canClear:!1}),children:[i.jsx(Qn,{size:14})," Add connector"]})]})]}),i.jsx(M6e,{}),t?n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading connectors…"]}):X.length===0?i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500 max-w-[57ch]",children:"No connectors yet. Add one to set its fee or contract baseline, or configure ingestion below to learn fees from settlement reports."})}):i.jsxs(i.Fragment,{children:[i.jsx(Te,{className:"!rounded-2xl overflow-hidden",children:i.jsx("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c23]",children:X.map(q=>{const W=e.find(te=>te.connector===q),ue=A.get(q)??[];return i.jsx(R6e,{connector:q,fee:W,clusters:M.get(q)??[],seedRows:ue,isSelected:q===Y,onSelect:()=>R(q),onEditFee:()=>re(q)},q)})})}),Y&&i.jsx(D6e,{merchantId:t,connector:Y,fee:H,clusters:$,seedRows:G,filters:s,facets:u,onFiltersChange:o,editingKey:x,setEditingKey:y,onRefresh:F,onAddScenario:()=>{N(null),j({connector:Y,index:null,row:k6e(Y)})},onEditScenario:q=>{N(null),j({connector:Y,index:q,row:{...d[q]}})}})]}):i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500",children:"Set a merchant ID to view connector costs."})}),i.jsx("p",{className:"px-1 text-xs text-slate-500 max-w-[57ch]",children:"Rates are a percentage of the transaction amount; fit error stays in basis points (100 bps = 1%) because it is a residual, not a rate. Contract-baseline rates are the last-resort fallback used when a connector has no learned or overridden fee."}),i.jsx(_t,{error:S??(r instanceof Error?r.message:r?"Failed to load connectors":null)??(f instanceof Error?f.message:f?"Failed to load contract rates":null)}),b&&t&&i.jsx(L6e,{merchantId:t,state:b,onClose:()=>v(null),onSaved:async()=>{v(null),await F()}}),w&&i.jsx(S6e,{initial:w.row,isNew:w.index===null,busy:k,saveError:S,onSave:U,onRemove:ee,onClose:()=>{j(null),N(null)}})]})}function M6e(){const t=["override","reports","contract"];return i.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa]",children:"Active fee"}),i.jsx("span",{className:"text-sm font-semibold text-slate-400 dark:text-[#5c6577]",children:"="}),t.map((e,n)=>i.jsxs(g.Fragment,{children:[n>0&&i.jsx(Au,{size:13,"aria-hidden":"true",className:"text-slate-300 dark:text-[#3a3a44]"}),i.jsx(j2,{tone:zX[e],children:BX[e]})]},e)),i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:"— the first one set wins."})]})}function R6e({connector:t,fee:e,clusters:n,seedRows:r,isSelected:a,onSelect:s,onEditFee:o}){var h;const l=LX(r),c=FX(e,r.length>0),u=(e==null?void 0:e.effective_pct_bps)??(l?nM(l):null),d=(e==null?void 0:e.effective_fixed)??(l==null?void 0:l.fixed)??null,f=(l==null?void 0:l.transaction_currency)||((h=n[0])==null?void 0:h.currency)||null;return i.jsxs("div",{role:"button",tabIndex:0,"aria-pressed":a,onClick:s,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),s())},className:`relative flex cursor-pointer items-center gap-3 px-5 py-3.5 transition-colors ${a?"bg-brand-500/[0.06] dark:bg-brand-500/[0.09]":"hover:bg-slate-50 dark:hover:bg-[#0f131b]"}`,children:[a&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-1 bg-brand-500","aria-hidden":!0}),i.jsx("p",{className:"w-28 shrink-0 truncate text-sm font-semibold text-slate-900 dark:text-white",children:wl(t)}),i.jsx(j2,{tone:zX[c],children:BX[c]}),(e==null?void 0:e.account)&&i.jsxs("p",{className:"hidden min-w-0 truncate text-xs text-slate-500 dark:text-[#8d96aa] sm:block",children:["Account ",e.account]}),i.jsx("span",{className:"ml-auto shrink-0 tabular-nums text-sm font-semibold text-slate-900 dark:text-white",children:uu(u,d,{currency:f,perTxn:!0})}),i.jsx("button",{type:"button",onClick:p=>{p.stopPropagation(),o()},title:"Set a manual override for this connector","aria-label":`Set a manual override for ${wl(t)}`,className:"shrink-0 rounded-md border border-transparent p-1 text-slate-400 transition-colors hover:border-brand-500/40 hover:bg-brand-500/10 hover:text-brand-600 dark:text-[#78849a] dark:hover:text-brand-400",children:i.jsx(El,{size:14})}),i.jsx(Xi,{size:16,"aria-hidden":"true",className:`shrink-0 ${a?"text-brand-500":"text-slate-300 dark:text-[#3a3a44]"}`})]})}function D6e({merchantId:t,connector:e,fee:n,clusters:r,seedRows:a,filters:s,facets:o,onFiltersChange:l,editingKey:c,setEditingKey:u,onRefresh:d,onAddScenario:f,onEditScenario:h}){const[p,m]=g.useState(null),x=p??(r.length>0?"reports":"contract"),[y,b]=g.useState(0);g.useEffect(()=>{m(null),b(0)},[e]),g.useEffect(()=>{b(0)},[x]);const v=FX(n,a.length>0),w=x==="reports"?r.length:a.length,j=Math.max(1,Math.ceil(w/Db)),k=Math.min(y,j-1),_=k*Db,S=r.slice(_,_+Db),N=a.slice(_,_+Db),E=r.reduce((D,I)=>D+I.gross_sum,0),P=r.reduce((D,I)=>D+I.n,0),M=x==="reports"?S.length:N.length,A=x==="reports"?"active learned fees":"contract scenarios",O=w===0?`No ${A}`:j>1?`Showing ${_+1}–${_+M} of ${w} ${A}`:`Showing ${w} ${A}`;return i.jsxs(Te,{className:"!rounded-2xl overflow-hidden",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("span",{className:"h-4 w-1 rounded-full bg-brand-500","aria-hidden":!0}),i.jsxs("h3",{className:"text-base font-semibold text-slate-900 dark:text-white",children:[wl(e)," Detail"]}),i.jsx(j2,{tone:v==="none"?"slate":"green",children:v==="none"?"NO FEE":"ACTIVE"}),r.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:[cx(E)," settled · ",P.toLocaleString()," txns"]})]}),i.jsxs("div",{className:"flex items-center gap-1 rounded-lg border border-slate-200 bg-slate-50 p-1 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsxs(s9,{active:x==="reports",onClick:()=>m("reports"),children:["From reports (",r.length,")"]}),i.jsxs(s9,{active:x==="contract",onClick:()=>m("contract"),children:["Contract baseline (",a.length,")"]})]})]}),x==="reports"?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:i.jsx(DX,{filters:s,facets:o,onChange:l})}),r.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:bg-[#0e131b] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"w-16 py-2 pl-5 pr-3"}),i.jsx("th",{className:"w-28 py-2 pr-3 text-left font-semibold",children:"Network"}),i.jsx("th",{className:"w-24 py-2 pr-3 text-left font-semibold",children:"Type"}),i.jsx("th",{className:"w-16 py-2 pr-3 text-left font-semibold",children:"Country"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-left font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 text-left font-semibold",children:"Category"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),i.jsx("th",{className:"py-2 pr-5"})]})}),i.jsx("tbody",{children:S.map(D=>i.jsx($6e,{merchantId:t,c:D,isEditing:c===D.key,editingActive:c!==null,onEdit:()=>u(D.key),onCancel:()=>u(null),onSaved:async()=>{u(null),await d()}},D.key))})]})}):i.jsx("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:IT(s)>0?"No segments match these filters — clear one to widen the search.":`No settlement data yet for ${wl(e)}. Ingest a report below to learn its fees, or set a contract baseline.`})]}):i.jsx(I6e,{connector:e,rows:N,onAdd:f,onEdit:h}),i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:O}),j>1&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:["Page ",k+1," of ",j]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>b(k-1),disabled:k===0,children:"Previous"}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>b(k+1),disabled:k>=j-1,children:"Next"})]})]})]})}function s9({active:t,onClick:e,children:n}){return i.jsx("button",{type:"button",onClick:e,"aria-current":t?"true":void 0,className:`rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors ${t?"bg-white text-brand-600 shadow-sm dark:bg-[#161c26] dark:text-brand-400":"text-slate-500 hover:text-slate-700 dark:text-[#8d96aa] dark:hover:text-white"} leading-[18px]`,children:n})}function I6e({connector:t,rows:e,onAdd:n,onEdit:r}){return i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#232833]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-2.5",children:[i.jsxs("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:["Your contract rate per card scenario — the last-resort fallback when ",wl(t)," ","has no learned or overridden fee. A blank dimension matches any card."]}),i.jsxs(ke,{variant:"secondary",size:"sm",onClick:n,children:[i.jsx(Qn,{size:13})," Add scenario"]})]}),e.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[12px] font-semibold text-slate-500 dark:border-[#232833] dark:bg-[#0b0e14] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"px-5 py-3",children:"Scenario"}),i.jsx("th",{className:"py-3 pr-3",children:"Network"}),i.jsx("th",{className:"py-3 pr-3",children:"Funding"}),i.jsx("th",{className:"py-3 pr-3",children:"Program"}),i.jsx("th",{className:"py-3 pr-3",children:"Currency"}),i.jsx("th",{className:"py-3 pr-3",children:"Region"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Interchange"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Scheme"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Markup"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Fixed"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right dark:bg-brand-500/[0.1]",children:"Total rate"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-5 dark:bg-brand-500/[0.1]"})]})}),i.jsx("tbody",{children:e.map(({row:a,index:s})=>i.jsx(j6e,{row:a,busy:!1,disabled:!1,onEdit:()=>r(s)},s))})]})}):i.jsxs("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:["No contract baseline for ",wl(t)," yet. Add a scenario to price it when no learned data is available."]})]})}function $6e({merchantId:t,c:e,isEditing:n,editingActive:r,onEdit:a,onCancel:s,onSaved:o}){var E,P,M;const l=e.source==="override",c=(((E=e.segments)==null?void 0:E.length)??0)>0,u=()=>String(rM(e.effective_pct_bps??e.override_pct_bps??e.model_pct_bps??0)),d=()=>String(e.effective_fixed??e.override_fixed??e.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(!1),[k,_]=g.useState(!1);g.useEffect(()=>{n&&(h(u()),m(d()),v(null))},[n]);async function S(){const A=parseFloat(f),O=parseFloat(p);if(!isFinite(A)||A<0||!isFinite(O)||O<0){v("Enter non-negative numbers for the rate and fixed fee.");return}y("save"),v(null);try{await hG(t,e.key,{pct_bps:aM(A),fixed:O}),await o()}catch(D){v(D instanceof Error?D.message:"Failed to save fee")}finally{y(null)}}async function N(){y("clear"),v(null);try{await n5e(t,e.key),await o()}catch(A){v(A instanceof Error?A.message:"Failed to clear override")}finally{y(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 hover:bg-slate-50/70 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"w-16 py-3.5 pl-5 pr-3",children:i.jsx("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-lg bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-[#8d96aa]",children:i.jsx(MCe,{size:15})})}),i.jsx("td",{className:"w-28 py-3.5 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:O6e(e)}),i.jsx("td",{className:"w-24 py-3.5 pr-3 font-semibold capitalize text-slate-800 dark:text-white",children:e.funding||"—"}),i.jsx("td",{className:"w-16 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((P=e.issuer_country)==null?void 0:P.toUpperCase())||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((M=e.currency)==null?void 0:M.toUpperCase())||"—"}),i.jsx("td",{className:"py-3.5 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:e.ic_category||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 text-right tabular-nums font-medium text-slate-600 dark:text-[#9ca7ba]",children:e.n.toLocaleString()}),i.jsx("td",{className:"py-3.5 pr-3 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${i9} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:A=>h(A.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${i9} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:A=>m(A.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[c&&i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[e.segments.length," tiers"]}),l&&i.jsx(j2,{tone:"indigo",children:"OVERRIDE"}),i.jsxs("div",{children:[i.jsx("span",{className:`block tabular-nums font-semibold ${l?"text-brand-600 dark:text-brand-400":"text-slate-800 dark:text-[#c7cfdd]"}`,children:uu(e.effective_pct_bps,e.effective_fixed,{currency:e.currency})}),l&&e.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:uu(e.model_pct_bps,e.model_fixed,{currency:e.currency})})]})]})}),i.jsx("td",{className:"w-[120px] py-3.5 pr-5 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:S,disabled:x!==null,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(mt,{size:13}):i.jsx(gi,{size:14})}),l&&i.jsx("button",{type:"button",onClick:N,disabled:x!==null,title:"Remove override","aria-label":"Remove override",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-rose-50 hover:text-rose-600 disabled:opacity-40 dark:hover:bg-rose-500/10",children:x==="clear"?i.jsx(mt,{size:13}):i.jsx(Hr,{size:14})}),!l&&i.jsx("button",{type:"button",onClick:s,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{className:"flex items-center justify-end gap-0.5",children:[i.jsx(gN,{title:"Edit segment fee",disabled:r,onClick:a,icon:i.jsx(El,{size:15})}),i.jsx(gN,{title:"Show the evidence behind this fee",expanded:k,onClick:()=>_(A=>!A),icon:i.jsx(Ef,{size:15})}),c&&i.jsx(gN,{title:"Show per-segment rates",expanded:w,onClick:()=>j(A=>!A),icon:w?i.jsx(wn,{size:16,className:"text-brand-600 dark:text-brand-400"}):i.jsx(Xi,{size:16,className:"text-brand-600 dark:text-brand-400"})})]})})]}),k&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsx("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:i.jsxs("div",{className:"flex flex-wrap gap-x-10 gap-y-3 rounded-lg border border-slate-200 bg-white px-4 py-3 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx(Dg,{label:"Learned",value:uu(e.model_pct_bps,e.model_fixed,{currency:e.currency})}),i.jsx(Dg,{label:"Override",value:e.override_pct_bps!=null?uu(e.override_pct_bps,e.override_fixed,{currency:e.currency}):"—"}),i.jsx(Dg,{label:"Txns",value:e.n.toLocaleString()}),i.jsx(Dg,{label:"Volume",value:cx(e.gross_sum)}),i.jsx(Dg,{label:"Program",value:E6e(e.card_product)}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fit"}),i.jsx("div",{className:"mt-1",children:e.verdict?i.jsx(Pe,{variant:a9(e.verdict),children:e.verdict}):i.jsx("span",{className:"text-[13px] text-slate-500 leading-[18px]",children:"no fitted rate"})})]})]})})}),w&&c&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsxs("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:[i.jsx("p",{className:"mb-0.5 text-sm font-semibold text-slate-700 dark:text-[#c7cfdd]",children:"Per-segment rates"}),i.jsx("p",{className:"mb-2 text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:"Optimized tiers dynamically calculated based on historical card activity and fit-error thresholds."}),i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 bg-white dark:border-[#232833] dark:bg-[#0b0e14]",children:i.jsxs("table",{className:"w-full min-w-[560px] text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Amount range"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:e.segments.map(A=>i.jsxs("tr",{className:"border-b border-slate-100 tabular-nums text-slate-600 last:border-0 dark:border-[#1c1c23] dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"px-3 py-2 text-left",children:[cx(A.lo)," - ",cx(A.hi)]}),i.jsx("td",{className:"py-2 pr-3 text-right font-medium",children:A.pct_bps!=null?_u(A.pct_bps):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.fixed!=null?`${Yy(e.currency)}${A.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.n.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right",children:cx(A.gross_sum)}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.bps_rmse!=null?A.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:i.jsx(Pe,{variant:a9(A.verdict),children:A.verdict})})]},A.seg_idx))})]})})]})}),n&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:9,className:"px-5 pb-2",children:i.jsx(_t,{error:b})})})]})}function gN({title:t,icon:e,onClick:n,disabled:r=!1,expanded:a}){return i.jsx("button",{type:"button",onClick:n,disabled:r,title:t,"aria-label":t,"aria-expanded":a,className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:opacity-40 dark:hover:bg-[#121214] dark:hover:text-white",children:e})}function Dg({label:t,value:e}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("p",{className:"mt-1 truncate text-[13px] tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd] leading-[18px]",children:e})]})}const i9="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function L6e({merchantId:t,state:e,onClose:n,onSaved:r}){const[a,s]=g.useState(e.connector),[o,l]=g.useState(e.initialPctBps),[c,u]=g.useState(String(e.initialFixed)),[d,f]=g.useState(null),[h,p]=g.useState(null);g.useEffect(()=>{function v(w){w.key==="Escape"&&!d&&n()}return document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)},[d,n]);async function m(){const v=parseFloat(c);if(o<0||!isFinite(v)||v<0){p("Enter non-negative numbers for the rate and fixed fee.");return}f("save"),p(null);try{await e5e(t,a,{pct_bps:o,fixed:v}),await r()}catch(w){p(w instanceof Error?w.message:"Failed to save fee")}finally{f(null)}}async function x(){f("clear"),p(null);try{await t5e(t,a),await r()}catch(v){p(v instanceof Error?v.message:"Failed to clear override")}finally{f(null)}}const y="block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa]";return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!d&&n()}),i.jsxs("div",{className:"relative w-full max-w-md rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e.isNew?"Add connector fee":`${wl(a)} manual override`}),i.jsx("button",{type:"button",onClick:n,disabled:d!==null,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Hr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-4",children:[e.isNew&&e.connectors&&i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Connector"}),i.jsx("select",{className:`${Us} mt-1`,value:a,onChange:v=>s(v.target.value),children:e.connectors.map(v=>i.jsx("option",{value:v,children:wl(v)},v))})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Rate"}),i.jsx("div",{className:"mt-1",children:i.jsx(v1,{bps:o,onChange:l})})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Fixed per txn"}),i.jsx("input",{className:"mt-1 w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",type:"number",step:"0.01",min:"0",value:c,onChange:v=>u(v.target.value)})]})]}),i.jsxs("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:["Applied to every economic-value calculation for ",wl(a)," from now on, overriding the learned model and contract baseline for this connector."]}),i.jsx(_t,{error:h})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.canClear?i.jsxs(ke,{variant:"danger",size:"sm",onClick:x,disabled:d!==null,children:[d==="clear"?i.jsx(mt,{size:13}):null," Remove override"]}):i.jsx("span",{}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:n,disabled:d!==null,children:"Cancel"}),i.jsxs(ke,{variant:"primary",size:"sm",onClick:m,disabled:d!==null,children:[d==="save"?i.jsx(mt,{size:13}):null," Save fee"]})]})]})]})]})}function F6e({merchantId:t}){const{sources:e,mutate:n}=s5e(t),[r,a]=g.useState("adyen"),[s,o]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(null);function k(){c(""),d("")}function _(){h(null),o(""),k()}const S=r==="checkout",N=S?"Checkout":"Adyen",E=t?qCe(`/webhooks/settlement/${encodeURIComponent(t)}/${r}`):null;async function P(){if(!t){v("Set a merchant ID first");return}if(!s||!l||!u){v("Account, webhook secret and download auth are all required");return}const O={account:s,webhook_secret:l,download_auth:u};m(!0),v(null),j(null);try{await i5e(t,r,O),j(`Saved credentials for ${r} / ${s}.`),_(),await n()}catch(D){v(D instanceof Error?D.message:"Failed to save credentials")}finally{m(!1)}}function M(O){h(O),a(O.connector),o(O.account),c(""),d(""),v(null),j(null)}async function A(O){if(!t||!window.confirm(`Delete credentials for ${O.connector} / ${O.account}?`))return;const D=`${O.connector}:${O.account}`;y(D),v(null),j(null);try{await o5e(t,O.connector,O.account),f&&s===O.account&&r===O.connector&&_(),await n()}catch(I){v(I instanceof Error?I.message:"Failed to delete credentials")}finally{y(null)}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(yT,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Settlement report access"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsx(_o,{label:"Connector",children:i.jsxs("select",{className:Us,value:r,onChange:O=>{a(O.target.value),v(null)},children:[i.jsx("option",{value:"adyen",children:"Adyen"}),i.jsx("option",{value:"checkout",children:"Checkout"})]})}),E&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("span",{className:`block ${ts}`,children:"Webhook URL"}),i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsx("code",{className:"min-w-0 flex-1 break-all font-mono text-[13px] text-slate-700 dark:text-[#c7cfdd]",children:E}),i.jsx(qy,{text:E,size:14,label:"Copy webhook URL",className:"mt-0.5"})]}),i.jsxs("span",{className:`block ${ku}`,children:["Register this in your ",N," dashboard as the settlement-report notification endpoint. It's public - deliveries are authenticated by the webhook secret below."]})]}),i.jsx(_o,{label:"Account",hint:f?"Editing an existing source — account is locked":S?"Checkout entity id the report relates to (ent_…)":"Connector-side account (e.g. Adyen merchantAccountCode)",children:i.jsx("input",{className:Us,value:s,onChange:O=>o(O.target.value),placeholder:S?"ent_r7nge7vl53crsa3ozjxzoiykj4":"AcmeMerchantEU",disabled:f!==null})}),i.jsx(_o,{label:"Webhook secret",hint:f?"Enter a new value to replace the stored secret":S?"Checkout webhook signature key (HMAC-SHA256 over the raw body, sent as Cko-Signature)":"Used to verify inbound webhook signatures (HMAC key)",children:i.jsx("input",{className:Us,type:"password",value:l,onChange:O=>c(O.target.value),placeholder:(f==null?void 0:f.webhook_secret_hint)||"••••••••"})}),i.jsx(_o,{label:"Report download auth",hint:f?"Enter a new value to replace the stored auth":S?'Checkout secret key (sk_…). Or JSON {"secret_key":"sk_…","api_base_url":"…"} for a sandbox/regional host.':"Report-user Basic auth as user:password, or a Report Service API key on its own",children:i.jsx("input",{className:Us,type:"password",value:u,onChange:O=>d(O.target.value),placeholder:(f==null?void 0:f.download_auth_hint)||"••••••••"})}),i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(ke,{onClick:P,disabled:!t||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Saving..."]}):f?"Update credentials":"Save credentials"}),f&&i.jsx(ke,{variant:"ghost",size:"sm",onClick:_,disabled:p,children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:"Secrets are encrypted at rest."})]}),i.jsx(_t,{error:b}),w&&i.jsx("p",{className:"text-sm text-emerald-700",children:w}),e.length>0&&i.jsxs("div",{className:"mt-2 border-t border-slate-100 pt-4 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Configured"}),i.jsx("ul",{className:"mt-2 space-y-1 text-sm text-slate-600 dark:text-[#9ca7ba]",children:e.map(O=>{const D=`${O.connector}:${O.account}`;return i.jsxs("li",{className:"flex items-center justify-between gap-2 py-0.5",children:[i.jsxs("span",{children:[O.connector," · ",O.account]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",title:"Edit credentials",onClick:()=>M(O),className:"rounded p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(El,{size:14})}),i.jsx("button",{type:"button",title:"Delete credentials",disabled:x===D,onClick:()=>A(O),className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:x===D?i.jsx(mt,{size:14}):i.jsx(Cn,{size:14})})]})]},D)})})]})]})]})}function B6e({merchantId:t,connector:e,account:n,preflight:r,sampleText:a,truncated:s,initialMapping:o,onSaved:l,onCancel:c}){const[u,d]=g.useState(o??{}),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(!1),[b,v]=g.useState(null),[w,j]=g.useState(!1),k=g.useMemo(()=>U6e(a,r.found),[a,r.found]);g.useEffect(()=>{if(o&&Object.keys(o).length>0)return;const A=new Set,O={};for(const D of r.missing){const I=V6e(D,r.found,A);I&&(O[D]=I,A.add(I))}Object.keys(O).length>0&&d(D=>({...O,...D}))},[r.missing,r.found,o]);const _=r.missing.filter(A=>!u[A]),S=_.length===0,N=g.useCallback((A,O)=>{h(null),v(null),d(D=>{const I={...D};return O?I[A]=O:delete I[A],I})},[]),E=new Set(Object.values(u));async function P(){m(!0),v(null);try{h(await u5e(t,e,u,a,s))}catch(A){h(null),v(A instanceof Error?A.message:"Could not preview this mapping")}finally{m(!1)}}async function M(){y(!0),v(null);try{await f5e(t,e,n,u,a,s),l()}catch(A){v(A instanceof Error?A.message:"Could not save this mapping")}finally{y(!1)}}return i.jsxs("div",{className:"space-y-4 rounded-lg border border-amber-200 bg-amber-50/50 p-4 dark:border-amber-900/40 dark:bg-amber-950/20",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(Pm,{size:16,className:"mt-0.5 shrink-0 text-amber-700"}),i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-slate-800 dark:text-white",children:["This file's columns don't match ",e]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#9ca7ba] max-w-[57ch]",children:[r.missing.length," required"," ",r.missing.length===1?"column is":"columns are"," missing. Map them to the matching columns in your file below — we'll remember this mapping for future"," ",e," / ",n," reports."]})]})]}),r.suggested_connectors.length>0&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-900/40 dark:bg-blue-950/30",children:[i.jsx(Qu,{size:15,className:"mt-0.5 shrink-0 text-blue-600"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-300",children:["This file matches all"," ",r.suggested_connectors[0].matched_required," columns of"," ",i.jsx("strong",{children:r.suggested_connectors[0].connector}),". If it's a"," ",r.suggested_connectors[0].connector," report, switch the connector above instead of mapping columns — mapping it as ",e," would produce a wrong cost model."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] gap-3 px-1 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:[i.jsx("span",{children:"Your column"}),i.jsx("span",{}),i.jsxs("span",{children:["Maps to (",e,")"]})]}),r.missing.map(A=>{const O=u[A]??"",D=O?k[O]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Us,value:O,onChange:I=>N(A,I.target.value),children:[i.jsx("option",{value:"",children:"— Select your column —"}),r.found.map(I=>i.jsx("option",{value:I,disabled:E.has(I)&&I!==O,children:I},I))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:O?D?`e.g. ${D}`:"no example value in this file":" "})]}),i.jsx(Au,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm font-medium text-slate-700 dark:border-[#232833] dark:bg-[#141a24] dark:text-[#c7cfdd]",children:A}),i.jsx("p",{className:"mt-1 text-xs text-amber-700 dark:text-amber-500",children:"Required"})]})]},A)})]}),r.optional_missing.length>0&&i.jsxs("details",{className:"rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("summary",{className:"cursor-pointer text-sm text-slate-600 dark:text-[#9ca7ba]",children:[r.optional_missing.length," optional"," ",r.optional_missing.length===1?"column is":"columns are"," also missing — not required, but they improve the model"]}),i.jsx("div",{className:"mt-3 space-y-2",children:r.optional_missing.map(A=>{const O=u[A]??"",D=O?k[O]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-100 p-2 dark:border-[#1a1f29]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Us,value:O,onChange:I=>N(A,I.target.value),children:[i.jsx("option",{value:"",children:"— Not in my file —"}),r.found.map(I=>i.jsx("option",{value:I,disabled:E.has(I)&&I!==O,children:I},I))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:O&&D?`e.g. ${D}`:" "})]}),i.jsx(Au,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx(Fa,{tone:"info",children:A}),i.jsx("p",{className:"mt-1 text-xs text-slate-500",children:"Optional"})]})]},A)})})]}),r.matched.length>0&&i.jsxs("div",{children:[i.jsxs("button",{type:"button",onClick:()=>j(A=>!A),className:"flex items-center gap-1.5 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(gi,{size:14,className:"text-emerald-700"}),r.matched.length," required"," ",r.matched.length===1?"column":"columns"," already matched",i.jsx("span",{className:"text-xs",children:w?"▲":"▼"})]}),w&&i.jsx("ul",{className:"mt-2 grid gap-1 sm:grid-cols-2",children:r.matched.map(A=>i.jsxs("li",{className:"flex items-center gap-2 rounded-md bg-white px-2.5 py-1.5 text-xs text-slate-600 dark:bg-[#0b1017] dark:text-[#9ca7ba]",children:[i.jsx(gi,{size:12,className:"shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate",children:A})]},A))})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[i.jsx(ke,{variant:"secondary",onClick:P,disabled:!S||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Checking…"]}):"Preview result"}),i.jsx(ke,{onClick:M,disabled:!f||x,children:x?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Saving…"]}):"Save mapping"}),i.jsx("button",{type:"button",onClick:c,className:"text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:S?f?"Applied to this and future reports for this account":"Preview your mapping before saving":`${_.length} still to map`})]}),i.jsx(_t,{error:b}),f&&i.jsx(z6e,{preview:f})]})}function z6e({preview:t}){return i.jsxs("div",{className:"space-y-2 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium text-slate-700 dark:text-[#c7cfdd]",children:"Result of this mapping"}),t.median_effective_pct!=null&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#9ca7ba]",children:["median effective fee"," ",i.jsxs("strong",{className:"text-slate-700 dark:text-white",children:[t.median_effective_pct.toFixed(3),"%"]})]})]}),t.warning&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-900/40 dark:bg-red-950/30",children:[i.jsx(Pm,{size:15,className:"mt-0.5 shrink-0 text-red-600"}),i.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:t.warning})]}),t.rows.length>0?i.jsxs("div",{className:"overflow-x-auto",children:[i.jsxs("table",{className:"w-full text-left text-xs",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{children:[i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Network"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Currency"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Gross"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fee"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Effective"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-[#c7cfdd]",children:t.rows.map((e,n)=>i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1f29]",children:[i.jsx("td",{className:"py-1 pr-3",children:e.card_network||"—"}),i.jsx("td",{className:"py-1 pr-3",children:e.currency||"—"}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.gross.toFixed(2)}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.total_fee.toFixed(2)}),i.jsxs("td",{className:"py-1 text-right tabular-nums",children:[e.effective_pct.toFixed(3),"%"]})]},n))})]}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 max-w-[57ch]",children:"Gross, Fee and Effective are derived from the columns you mapped — check they look right for your business before saving."})]}):i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba]",children:"No rows were produced from this file sample."})]})}function U6e(t,e){const n={};if(e.length===0)return n;const r=t.split(/\r?\n/),a=r.findIndex(o=>{const l=o9(o);return l.length===e.length&&l[0]===e[0]});if(a<0)return n;const s=o9(r[a+1]??"");return e.forEach((o,l)=>{const c=(s[l]??"").trim();c&&(n[o]=c.length>40?`${c.slice(0,40)}…`:c)}),n}function o9(t){const e=[];let n="",r=!1;for(let a=0;a0&&(e[0]=e[0].replace(/^/,"")),e}function V6e(t,e,n){const r=l9(t);if(r.length===0)return;let a,s=0;for(const o of e){if(n.has(o))continue;const l=new Set(l9(o)),u=r.filter(d=>l.has(d)).length/r.length;u>s&&(s=u,a=o)}return s>.5?a:void 0}function l9(t){return t.toLowerCase().replace(/\(.*?\)/g," ").split(/[^a-z0-9]+/).filter(e=>e.length>1)}const W6e="development".trim().toLowerCase(),sM=W6e==="production",iM=!sM,oM=!sM,c9=!sM;function H6e({merchantId:t}){var U;const{mutate:e}=Zj(t),{ingestions:n,mutate:r}=LT(t),a=g.useRef(null),[s,o]=g.useState(c9?"sample":"upload"),[l,c]=g.useState("adyen"),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(0),[b,v]=g.useState(null),[w,j]=g.useState(null),[k,_]=g.useState(null),[S,N]=g.useState(""),[E,P]=g.useState(!1),[M,A]=g.useState(!1),[O,D]=g.useState(!1),{connectors:I}=d5e(),X=(I.length>0?I.map(ee=>ee.id):n9.map(ee=>ee.value)).map(ee=>{var pe;return{value:ee,label:((pe=n9.find(re=>re.value===ee))==null?void 0:pe.label)??ee.charAt(0).toUpperCase()+ee.slice(1)}}),Q=((U=X.find(ee=>ee.value===l))==null?void 0:U.label)??l,V=w!=null?n.find(ee=>ee.id===w):void 0;g.useEffect(()=>{(V==null?void 0:V.status)==="completed"&&e()},[V==null?void 0:V.status,e]),g.useEffect(()=>{f&&Y(f)},[l,u]);const Y=g.useCallback(async ee=>{if(t){D(!0),_(null),v(null);try{const pe=ee.slice(0,FL),re=await pe.text();N(re),P(ee.size>FL),A(!1),_(await c5e(t,l,pe,u||void 0))}catch(pe){_(null),v(pe instanceof Error?pe.message:"Could not check this file’s columns")}finally{D(!1)}}},[t,l,u]);function H(ee){h(ee),_(null),N(""),A(!1),v(null),ee&&Y(ee)}async function G(){if(!t){v("Set a merchant ID first");return}if(!u||!f){v("Account and a report file are both required");return}m(!0),y(0),v(null),j(null);try{const ee=await l5e(t,l,u,f,pe=>{pe.phase==="uploading"?y(pe.total?Math.round(pe.loaded/pe.total*100):0):y(100)});j(ee.id),h(null),a.current&&(a.current.value=""),await r()}catch(ee){v(ee instanceof Error?ee.message:"Failed to upload report")}finally{m(!1)}}async function $(){if(!t){v("Set a merchant ID first");return}m(!0),y(100),v(null),j(null);try{const ee=await h5e(t,l);j(ee.id),await r()}catch(ee){const pe=ee instanceof Error?ee.message:"";v(/404|not found|no sample/i.test(pe)?`No sample report available for ${Q}.`:pe||"Failed to run sample report")}finally{m(!1)}}const F=(V==null?void 0:V.status)==="processing",R=(V==null?void 0:V.status)==="completed",z=(V==null?void 0:V.status)==="failed";return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(_H,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Upload a settlement report"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[c9&&i.jsx("div",{className:"inline-flex rounded-lg border border-slate-200 p-0.5 dark:border-[#2a3344]",children:[["sample","Use a sample file"],["upload","Upload a file"]].map(([ee,pe])=>i.jsx("button",{type:"button",onClick:()=>{o(ee),v(null)},className:"rounded-md px-3 py-1.5 text-sm font-medium transition-colors "+(s===ee?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white"),children:pe},ee))}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:s==="upload"?"Upload a settlement report file directly - no webhook needed. Processing runs in the background (the upload won't hang on large files). Watch progress below and in the history.":`No report file? Run a curated ${Q} sample report through the exact same fit, so you can see the ingest → cost-coverage flow end to end. Progress shows below and in the history.`}),i.jsx(_o,{label:"Connector",children:i.jsx("select",{className:Us,value:l,onChange:ee=>c(ee.target.value),children:X.map(ee=>i.jsx("option",{value:ee.value,children:ee.label},ee.value))})}),s==="upload"&&i.jsxs(i.Fragment,{children:[i.jsx(_o,{label:"Account",hint:"Connector-side account the report belongs to",children:i.jsx("input",{className:Us,value:u,onChange:ee=>d(ee.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(_o,{label:"Report file",hint:"The connector's settlement / PAR report (CSV)",children:i.jsx("input",{ref:a,type:"file",accept:".csv,text/csv,text/plain",className:Us,onChange:ee=>{var pe;return H(((pe=ee.target.files)==null?void 0:pe[0])??null)}})}),O&&i.jsxs("p",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx(mt,{size:14}),"Checking this file's columns…"]}),(k==null?void 0:k.ok)&&i.jsxs(Fa,{tone:"success",children:["All ",k.required.length," required columns found — this file is ready to upload."]}),k&&!k.ok&&!M&&t&&u&&i.jsx(B6e,{merchantId:t,connector:l,account:u,preflight:k,sampleText:S,truncated:E,onCancel:()=>A(!0),onSaved:()=>{f&&Y(f)}}),k&&!k.ok&&M&&u&&i.jsxs(Fa,{tone:"warning",children:["This file is still missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",", so it can't be uploaded."," ",i.jsx("button",{type:"button",onClick:()=>A(!1),className:"font-medium underline underline-offset-2",children:"Map columns"})," ","or choose a different file."]}),k&&!k.ok&&!u&&i.jsxs(Fa,{tone:"warning",children:["This file is missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",". Enter the account above to map your columns to ",l,"'s."]})]}),i.jsxs("div",{className:"flex items-center gap-3",children:[s==="upload"?i.jsx(ke,{onClick:G,disabled:!t||p||F||O||(k==null?void 0:k.ok)===!1,children:p||F?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),p?"Uploading…":"Processing…"]}):"Upload & fit"}):i.jsx(ke,{onClick:$,disabled:!t||p||F,children:p||F?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),p?"Starting…":"Processing…"]}):"Run sample"}),i.jsx("span",{className:"text-xs text-slate-500",children:s==="upload"?"Runs in the background after upload.":"Fetches the sample and runs in the background."})]}),s==="upload"&&p&&i.jsx(u9,{label:`Uploading report… ${x}%`,pct:x,showPct:!1}),F&&V&&i.jsx(u9,{label:`Processing — ${V.staged_rows.toLocaleString()} rows staged…`,pct:100,pulse:!0}),i.jsx(_t,{error:b}),R&&V&&i.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-900/40 dark:bg-emerald-950/30",children:[i.jsxs("p",{className:"text-sm font-medium text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:["Ingested ",V.staged_rows.toLocaleString()," rows for ",V.connector," /"," ",V.account,V.period_start&&V.period_end?` (${V.period_start} → ${V.period_end})`:"","."]}),i.jsxs("p",{className:"mt-1 text-sm text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:[V.good_clusters," of ",V.total_clusters," clusters graded GOOD ·"," ",V.currency_count," currencies · ",V.country_count," countries.",V.good_clusters===0&&" No trustworthy cost model yet — this volume still falls back to SR routing."]})]}),z&&V&&i.jsx(_t,{error:V.last_error||"Ingestion failed"})]})]})}function u9({label:t,pct:e,pulse:n,showPct:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex justify-between text-xs text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx("span",{children:t}),r&&i.jsxs("span",{children:[e,"%"]})]}),i.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full bg-brand-500 transition-all duration-200 ${n?"animate-pulse":""}`,style:{width:`${e}%`}})})]})}const G6e=[{value:"adyen",label:"Adyen"}];function lp(t,e,n=2){const r=e?{style:"currency",currency:e,maximumFractionDigits:n}:{maximumFractionDigits:n};try{return new Intl.NumberFormat(void 0,r).format(t)}catch{return`${t.toFixed(n)}${e?` ${e}`:""}`}}const q6e={flat_per_txn:"Flat per transaction",periodic:"Periodic / non-transactional",credit:"Credit",already_modeled:"Already in report",volume:"Turnover"};function K6e({merchantId:t}){const{addons:e,mutate:n}=m5e(t),r=g.useRef(null),[a,s]=g.useState("adyen"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(null),[h,p]=g.useState(!1),[m,x]=g.useState(null),[y,b]=g.useState(null);async function v(){if(!t)return x("Set a merchant ID first");if(!o||!d)return x("Account and an invoice file are both required");p(!0),x(null),b(null);try{const j=await g5e(t,a,o,d,c||void 0);b(j),f(null),r.current&&(r.current.value=""),await n()}catch(j){x(j instanceof Error?j.message:"Failed to process invoice")}finally{p(!1)}}async function w(j){if(t)try{await x5e(t,j),await n(),(y==null?void 0:y.connector)===j&&b(null)}catch(k){x(k instanceof Error?k.message:"Failed to remove add-on")}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(mH,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Upload a connector invoice"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:"The settlement report only carries a transaction's core fees, so our model was structurally missing ~9% of the true cost — flat per-transaction fees, periodic fees and credits that only appear on the monthly invoice. Upload that invoice and we'll identify those missing fees and start applying them to every routing decision."}),i.jsx(_o,{label:"Connector",children:i.jsx("select",{className:Us,value:a,onChange:j=>s(j.target.value),children:G6e.map(j=>i.jsx("option",{value:j.value,children:j.label},j.value))})}),i.jsx(_o,{label:"Account",hint:"Connector-side account the invoice covers",children:i.jsx("input",{className:Us,value:o,onChange:j=>l(j.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(_o,{label:"Invoice number",hint:"Optional — for your records",children:i.jsx("input",{className:Us,value:c,onChange:j=>u(j.target.value),placeholder:"NL2025…"})}),i.jsx(_o,{label:"Invoice file",hint:"The monthly invoice — a PDF (as downloaded from Adyen) or a CSV export",children:i.jsx("input",{ref:r,type:"file",accept:".pdf,application/pdf,.csv,text/csv,text/plain",className:Us,onChange:j=>{var k;return f(((k=j.target.files)==null?void 0:k[0])??null)}})}),i.jsx("div",{className:"flex items-center gap-3",children:i.jsx(ke,{onClick:v,disabled:!t||h,children:h?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Reading invoice…"]}):"Upload & identify fees"})}),i.jsx(_t,{error:m})]})]}),y&&i.jsx(Y6e,{result:y}),e.length>0&&i.jsx(J6e,{addons:e,onRemove:w})]})}function Y6e({result:t}){const e=t.currency,n=t.breakdown.filter(a=>a.added),r=t.breakdown.filter(a=>!a.added);return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"rounded-xl border border-brand-500/30 bg-brand-500/5 p-5",children:[i.jsxs("div",{className:"flex items-center gap-2 text-brand-600 dark:text-brand-400",children:[i.jsx(gi,{size:16}),i.jsx("span",{className:"text-sm font-medium",children:"We understood the fees missing from your settlement report"})]}),i.jsxs("p",{className:"mt-3 text-3xl font-semibold text-slate-900 dark:text-white",children:["+",lp(t.total_addon_per_txn,e,4),i.jsx("span",{className:"ml-2 text-base font-normal text-slate-500 dark:text-[#9ca7ba]",children:"additional cost per transaction"})]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#c7cfdd]",children:["Now applied on top of the learned model for"," ",i.jsxs("span",{className:"font-medium",children:[t.connector," / ",t.account]})," ","in every economic-value calculation."]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[i.jsxs(Ib,{children:["+",lp(t.fixed_addon,e,4)," flat / txn"]}),i.jsxs(Ib,{children:["+",t.pct_addon_bps.toFixed(3)," bps on amount"]}),t.subtotal_ex_tax!=null&&i.jsxs(Ib,{muted:!0,children:["Invoice subtotal ",lp(t.subtotal_ex_tax,e)]}),t.txn_count!=null&&i.jsxs(Ib,{muted:!0,children:[t.txn_count.toLocaleString()," transactions"]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-medium text-slate-800 dark:text-white",children:"Fees we identified and are now applying"}),i.jsx(d9,{lines:n,ccy:e,showPerTxn:!0})]}),r.length>0&&i.jsxs("details",{className:"group",children:[i.jsxs("summary",{className:"flex cursor-pointer items-center gap-2 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(Qu,{size:14}),r.length," line",r.length===1?"":"s"," already captured by your settlement report — ignored so nothing is double-counted"]}),i.jsx("div",{className:"mt-3",children:i.jsx(d9,{lines:r,ccy:e,showPerTxn:!1})})]})]})})}function d9({lines:t,ccy:e,showPerTxn:n}){return t.length===0?i.jsx("p",{className:"text-sm text-slate-500",children:"No lines in this group."}):i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Fee"}),i.jsx("th",{className:"px-3 py-2 font-medium",children:"Category"}),i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"On invoice"}),n&&i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"Per transaction"})]})}),i.jsx("tbody",{children:t.map((r,a)=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"px-3 py-2 capitalize text-slate-800 dark:text-[#e7ecf3]",children:r.description}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(X6e,{kind:r.kind,added:r.added})}),i.jsx("td",{className:"px-3 py-2 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:lp(r.amount,e)}),n&&i.jsx("td",{className:"px-3 py-2 text-right font-medium tabular-nums text-slate-900 dark:text-white",children:r.per_txn!==0?`${r.per_txn<0?"−":"+"}${lp(Math.abs(r.per_txn),e,4)}`:"—"})]},`${r.kind}-${r.description}-${a}`))})]})})}function X6e({kind:t,added:e}){const n=q6e[t]??t,r=e?"bg-brand-500/10 text-brand-600 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1c1c23] dark:text-[#9ca7ba]";return i.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${r}`,children:n})}function Ib({children:t,muted:e}){const n=e?"border-slate-200 text-slate-500 dark:border-[#232833] dark:text-[#9ca7ba]":"border-brand-500/30 text-brand-600 dark:text-brand-400";return i.jsx("span",{className:`rounded-full border px-2.5 py-1 font-medium ${n}`,children:t})}function J6e({addons:t,onRemove:e}){return i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h3",{className:La,children:"Active invoice add-ons"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Currently applied to routing."})]}),i.jsx(ze,{className:"space-y-2",children:t.map(n=>i.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-slate-200 px-3 py-2.5 dark:border-[#232833]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:n.connector}),i.jsxs("p",{className:"text-xs text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:["+",lp(n.fixed_addon,n.currency,4)," / txn · +",n.pct_addon_bps.toFixed(3)," bps",n.invoice_ref?` · invoice ${n.invoice_ref}`:""]})]}),i.jsxs("button",{type:"button",onClick:()=>e(n.connector),className:"flex shrink-0 items-center gap-1 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs text-slate-500 hover:border-rose-300 hover:text-rose-600 dark:border-[#232833] dark:hover:border-rose-900/50",children:[i.jsx(Cn,{size:13}),"Remove"]})]},n.connector))})]})}const f9="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",Z6e={mc:"Mastercard",visa:"Visa",amex:"Amex",diners:"Diners",discover:"Discover",jcb:"JCB"};function Fx(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function Q6e(t){return Z6e[t.toLowerCase()]??Fx(t)}const eFe=["world elite","ultra premium","superpremium","infinite","signature","platinum","purchasing","corporate","business","premium","classic","standard","world","gold"];function UX(t){var o,l;let e=(t.variant??"").toLowerCase();if(e.includes("_")){const c=e.split("_").slice(1).join(" ");return c.includes("apple")?"Apple Pay":c.includes("google")?"Google Pay":Fx(c)}const n=((o=t.card_network)==null?void 0:o.toLowerCase())??"",r=((l=t.funding)==null?void 0:l.toLowerCase())??"";if(n&&e.startsWith(n)&&(e=e.slice(n.length)),r&&e.endsWith(r)&&(e=e.slice(0,e.length-r.length)),e)return Fx(e);const a=(t.ic_category??"").toLowerCase(),s=eFe.find(c=>a.includes(c));return s?s.split(" ").map(Fx).join(" "):"—"}function tFe(t){const e=Number(t.card_product);if(!(!t.card_product||!Number.isFinite(e)||e<=0))return`Issuer BIN's dominant interchange rate: ${(e/100).toFixed(2)}%`}function $b(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const VX={GOOD:{label:"Good",variant:"green",hint:"Enough transactions and a tight fit — this rate is trusted at decide time."},THIN:{label:"Thin",variant:"orange",hint:"Too few transactions to pin the rate confidently. Override it with your contract rate."},NON_LINEAR:{label:"Poor fit",variant:"red",hint:"A single rate can't price this segment — its cost isn't one straight line, and no clean set of amount tiers could be recovered either. Override it with your contract rate."}};function nFe({merchantId:t,editable:e,limit:n=500,scope:r,defaultSort:a="gross_sum"}){const[s,o]=g.useState({}),l=IT(s),{clusters:c,isLoading:u,error:d,mutate:f}=$T(t,{limit:n,order:a,filters:s,...r}),{facets:h}=fG(t,r),[p,m]=g.useState(null),[x,y]=g.useState(a),[b,v]=g.useState("desc"),w=g.useMemo(()=>{const S=[...c];return S.sort((N,E)=>{const P=N[x]-E[x];return b==="desc"?-P:P}),S},[c,x,b]),j=g.useMemo(()=>c.some(S=>UX(S)!=="—"),[c]);function k(S){S===x?v(N=>N==="desc"?"asc":"desc"):(y(S),v("desc"))}const _=i.jsx(DX,{filters:s,facets:h,onChange:o,rightSlot:i.jsxs("span",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:[c.length.toLocaleString()," segment",c.length===1?"":"s",c.length>=n&&" (capped — narrow the filters to see the rest)"]})});return t&&u?i.jsxs("div",{className:"space-y-3",children:[_,i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading segments…"]})]}):c.length?i.jsxs("div",{className:"space-y-3",children:[_,i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Network"}),j&&i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Program"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Type"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Country"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Category"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Fit"}),i.jsx(h9,{label:"Volume",active:x==="gross_sum",dir:b,onClick:()=>k("gross_sum")}),i.jsx(h9,{label:"Txns",active:x==="n",dir:b,onClick:()=>k("n")}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),e&&i.jsx("th",{className:"py-2 pr-3"})]})}),i.jsx("tbody",{children:w.map(S=>i.jsx(aFe,{c:S,editable:e,showProgram:j,merchantId:t,isEditing:p===S.key,onEdit:()=>m(S.key),onCancel:()=>m(null),onSaved:()=>{m(null),f()}},S.key))})]})}),i.jsx(_t,{error:d instanceof Error?d.message:d?"Failed to load segments":null})]}):i.jsxs("div",{className:"space-y-3",children:[_,i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:l>0?"No segments match these filters — clear one to widen the search.":"No fitted segments yet — they appear once a settlement report has been ingested."})]})}function rFe({verdict:t,segments:e}){const n=(e==null?void 0:e.length)??0;if(n>0){const a=e.filter(s=>{var o;return((o=s.verdict)==null?void 0:o.toUpperCase())!=="GOOD"}).length;return a===0?i.jsx("span",{title:`One rate couldn't price this segment, so it was split into ${n} amount tiers — each one fits tightly. The tiered rates are what the Fee column expands to.`,children:i.jsx(Pe,{variant:"green",children:"Tiered"})}):i.jsx("span",{title:`Split into ${n} amount tiers, but ${a} of them still don't fit well. Worth overriding with your contract rate.`,children:i.jsx(Pe,{variant:"orange",children:"Tiered"})})}const r=VX[(t==null?void 0:t.toUpperCase())??""];return r?i.jsx("span",{title:r.hint,children:i.jsx(Pe,{variant:r.variant,children:r.label})}):i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"—"})}function h9({label:t,active:e,dir:n,onClick:r}){return i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:i.jsxs("button",{type:"button",onClick:r,"aria-sort":e?n==="desc"?"descending":"ascending":"none",className:`inline-flex items-center gap-1 transition-colors hover:text-slate-600 dark:hover:text-slate-200 ${e?"text-slate-600 dark:text-slate-200":""}`,children:[t,e?n==="desc"?i.jsx(wn,{size:12}):i.jsx(Ds,{size:12}):i.jsx(wn,{size:12,className:"opacity-30"})]})})}function aFe({c:t,editable:e,showProgram:n,merchantId:r,isEditing:a,onEdit:s,onCancel:o,onSaved:l}){var S,N,E;const c=t.source==="override",u=()=>String(rM(t.effective_pct_bps??t.override_pct_bps??t.model_pct_bps??0)),d=()=>String(t.effective_fixed??t.override_fixed??t.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(!1),k=(((S=t.segments)==null?void 0:S.length)??0)>0;g.useEffect(()=>{a&&(h(u()),m(d()),v(null))},[a]);async function _(){if(!r)return;const P=parseFloat(f),M=parseFloat(p);if(!isFinite(P)||P<0||!isFinite(M)||M<0){v("Enter non-negative numbers for the rate and fixed fee.");return}y("save"),v(null);try{await hG(r,t.key,{pct_bps:aM(P),fixed:M}),l()}catch(A){v(A instanceof Error?A.message:"Failed to save fee")}finally{y(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:Fx(t.connector)}),i.jsx("td",{className:"py-2 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:Q6e(t.card_network)}),n&&i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",title:tFe(t),children:UX(t)}),i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.funding||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((N=t.issuer_country)==null?void 0:N.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((E=t.currency)==null?void 0:E.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:t.ic_category||"—"}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(rFe,{verdict:t.verdict,segments:t.segments})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:t.gross_sum>0?$b(t.gross_sum):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:t.n>0?t.n.toLocaleString():"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${f9} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:P=>h(P.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${f9} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:P=>m(P.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):k?i.jsxs("button",{type:"button",onClick:()=>j(P=>!P),className:"ml-auto flex items-center justify-end gap-1.5",title:"Show per-segment rates","aria-expanded":w,children:[i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[t.segments.length," tiers"]}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:uu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})}),w?i.jsx(Ds,{size:12}):i.jsx(wn,{size:12})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[c&&i.jsx(Pe,{variant:"purple",children:"Override"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:uu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})})]}),c&&t.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:uu(t.model_pct_bps,t.model_fixed,{currency:t.currency})})]})}),e&&i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:_,disabled:x!==null||!r,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(mt,{size:13}):i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:o,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Hr,{size:14})})]}):i.jsxs(ke,{variant:"ghost",size:"sm",onClick:s,children:[i.jsx(El,{size:13})," Edit"]})})]}),w&&k&&i.jsx("tr",{className:"bg-slate-50/60 dark:bg-[#15151a]",children:i.jsxs("td",{colSpan:10+(n?1:0)+(e?1:0),className:"px-3 pb-3 pt-1",children:[i.jsx("div",{className:"mb-1 text-[11px] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Per-segment rates — this cluster’s interchange is capped or tiered, so one rate can’t price it. Each tier below is priced separately by transaction amount."}),i.jsxs("table",{className:"w-full text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-slate-500 dark:text-[#78849a]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Amount range"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:t.segments.map(P=>{var M,A;return i.jsxs("tr",{className:"tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left",children:[$b(P.lo),"–",$b(P.hi)]}),i.jsx("td",{className:"py-1 pr-3 text-right font-medium",children:P.pct_bps!=null?_u(P.pct_bps):"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.fixed!=null?`${Yy(t.currency)}${P.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.n.toLocaleString()}),i.jsx("td",{className:"py-1 pr-3 text-right",children:$b(P.gross_sum)}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.bps_rmse!=null?P.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-1 text-right text-slate-500 dark:text-[#9ca7ba]",children:((A=VX[((M=P.verdict)==null?void 0:M.toUpperCase())??""])==null?void 0:A.label)??P.verdict})]},P.seg_idx)})})]})]})}),a&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:10+(n?1:0)+(e?1:0),className:"pb-2 pr-3",children:i.jsx(_t,{error:b})})})]})}function sFe({merchantId:t}){const{ingestions:e,isLoading:n,mutate:r}=LT(t),{mutate:a}=Zj(t),[s,o]=g.useState(new Set),[l,c]=g.useState(null);function u(f){o(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}async function d(f){const h=f.period_start&&f.period_end?`${f.connector} / ${f.account} (${f.period_start} → ${f.period_end})`:`${f.connector} / ${f.account}`;if(!(!t||!window.confirm(`Delete this ingestion? + +${h} + +This removes its fitted cost models and staged rows. Coverage reverts to the previous snapshot. This cannot be undone.`))){c(f.id);try{await p5e(t,f.id),await Promise.all([r(),a()])}catch(p){window.alert(p instanceof Error?p.message:"Failed to delete ingestion")}finally{c(null)}}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(FCe,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Reports ingested"})})]})}),i.jsx(ze,{children:t&&n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Loading history..."]}):e.length===0?i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:"No ingestions yet. Upload a report or configure a webhook connector."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-2 font-semibold"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Ingested"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Source"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector · Account"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Period"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Status"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Rows"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ccy"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ctry"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",title:"Segments whose fitted rate graded GOOD, out of all fitted segments. Expand a row to see every segment with its grade.",children:"GOOD"}),i.jsx("th",{className:"py-2 pr-2 font-semibold"})]})}),i.jsx("tbody",{children:e.map(f=>i.jsx(iFe,{merchantId:t,job:f,open:s.has(f.id),onToggle:()=>u(f.id),onDelete:()=>d(f),deleting:l===f.id},f.id))})]})})})]})}function iFe({merchantId:t,job:e,open:n,onToggle:r,onDelete:a,deleting:s}){const o=e.period_start&&e.period_end?`${e.period_start} → ${e.period_end}`:"—";return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"cursor-pointer border-b border-slate-100 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0b1017]",onClick:r,children:[i.jsx("td",{className:"py-2 pr-2 text-slate-500",children:n?i.jsx(wn,{size:14}):i.jsx(Xi,{size:14})}),i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:lFe(e.created_at)}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx("span",{className:"rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]",children:e.source})}),i.jsxs("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:[e.connector," · ",e.account]}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:o}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(oFe,{status:e.status})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.staged_rows.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.currency_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.country_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.status==="completed"?`${e.good_clusters}/${e.total_clusters}`:"—"}),i.jsx("td",{className:"py-2 pr-2 text-right",children:e.status!=="processing"&&i.jsx("button",{type:"button",title:"Delete ingestion",disabled:s,onClick:l=>{l.stopPropagation(),a()},className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:s?i.jsx(mt,{size:14}):i.jsx(Cn,{size:14})})})]}),n&&i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/60 dark:border-[#1c1c23] dark:bg-[#0b1017]",children:[i.jsx("td",{}),i.jsxs("td",{colSpan:10,className:"py-3 pr-3",children:[i.jsxs("dl",{className:"grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2",children:[i.jsx(Ig,{label:"Settled volume",value:cFe(e.total_gross)}),i.jsx(Ig,{label:"Report date",value:e.report_date??"—"}),i.jsx(Ig,{label:`Currencies (${e.currency_count})`,value:e.currencies.length?e.currencies.join(", "):"—"}),i.jsx(Ig,{label:`Countries (${e.country_count})`,value:e.countries.length?e.countries.join(", "):"—"}),e.last_error&&i.jsx(Ig,{label:"Error",value:e.last_error,error:!0})]}),e.status==="completed"&&e.report_date&&i.jsxs("div",{className:"mt-4 border-t border-slate-200 pt-3 dark:border-[#232833]",children:[i.jsx("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fitted segments (top by txns) — edit any rate to override it"}),i.jsx(nFe,{merchantId:t,editable:!1,limit:2e3,defaultSort:"n",scope:{connector:e.connector,account:e.account,reportDate:e.report_date,ingestionId:e.id}})]})]})]})]})}function Ig({label:t,value:e,error:n}){return i.jsxs("div",{children:[i.jsx("dt",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("dd",{className:`mt-0.5 break-words text-sm ${n?"text-red-600":"text-slate-600 dark:text-[#c7cfdd]"}`,children:e})]})}function oFe({status:t}){const e={completed:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/40 dark:text-emerald-400",processing:"bg-amber-100 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400 animate-pulse",failed:"bg-red-100 text-red-700 dark:bg-red-950/40 dark:text-red-400",pending:"bg-slate-100 text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]"},n=e[t]??e.pending;return i.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs ${n}`,children:t})}function lFe(t){const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}function cFe(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const uFe=["ingestion","data","costs"],WX=[{id:"automatic",label:"Automatic"},{id:"manual",label:"Manual"},{id:"invoice",label:"Invoice"}],dFe=[{id:"ingestion",icon:xA,title:"Data ingestion",blurb:"Connect a settlement source or upload a report"},{id:"data",icon:xH,title:"Ingested data",blurb:"What we learned — coverage & history"},{id:"costs",icon:pH,title:"Costs",blurb:"Effective fees per connector — overrides, learned rates & contract baseline"}];function fFe({merchantId:t}){const[e,n]=Nl(),r=e.get("section"),a=uFe.includes(r)?r:"costs",s=e.get("source"),o=a==="ingestion"&&WX.some(c=>c.id===s)?s:"automatic",l=(c,u=o)=>{n(d=>{const f=new URLSearchParams(d);return c==="costs"?f.delete("section"):f.set("section",c),c!=="ingestion"||u==="automatic"?f.delete("source"):f.set("source",u),f},{replace:!0})};return g.useEffect(()=>{(r!==(a==="costs"?null:a)||s!==(a==="ingestion"&&o!=="automatic"?o:null))&&l(a,o)},[a,r,o,s]),i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(hFe,{merchantId:t,active:a,onSelect:c=>l(c),ingestMode:o,onSelectIngestMode:c=>l("ingestion",c)}),i.jsxs("div",{className:"min-w-0",children:[a==="ingestion"&&i.jsx(mFe,{merchantId:t,mode:o}),a==="data"&&i.jsx(pFe,{merchantId:t}),a==="costs"&&i.jsx(P6e,{merchantId:t})]})]})}function hFe({merchantId:t,active:e,onSelect:n,ingestMode:r,onSelectIngestMode:a}){const{coverage:s}=Zj(t),{ingestions:o}=LT(t),l={ingestion:o.length>0?`${o.length} report${o.length===1?"":"s"}`:"Not set up",data:s&&s.total_clusters>0?`${s.priced_gross_pct.toFixed(1)}% volume covered`:"No data yet",costs:void 0};return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:dFe.map(({id:c,icon:u,title:d,blurb:f})=>{const h=e===c;return i.jsxs("div",{className:"shrink-0 lg:w-full",children:[i.jsxs("button",{type:"button",onClick:()=>n(c),"aria-current":h?"page":void 0,className:`flex w-full items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors ${h?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(u,{size:18,className:`mt-0.5 shrink-0 ${h?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:d}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:l[c]??f})]})]}),c==="ingestion"&&h&&i.jsx("div",{className:"ml-[1.3125rem] mt-1 flex flex-col gap-0.5 border-l border-slate-200 pl-2 dark:border-[#2a3344]",children:WX.map(p=>{const m=r===p.id;return i.jsx("button",{type:"button",onClick:()=>a(p.id),"aria-current":m?"true":void 0,className:`rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors ${m?"bg-brand-500/10 font-medium text-brand-600 dark:text-brand-400":"text-slate-500 hover:bg-slate-50 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:bg-[#141923] dark:hover:text-white"}`,children:p.label},p.id)})})]},c)})})}function HX({title:t,subtitle:e}){return i.jsxs("div",{className:"mb-5",children:[i.jsx("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-1 max-w-[57ch] text-sm text-slate-500 dark:text-[#9ca7ba]",children:e})]})}function pFe({merchantId:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx(HX,{title:"Ingested data",subtitle:"What your settlement reports taught us: how much volume we can cost accurately, and — inside each report below — the fee learned for every segment."}),!1,i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h3",{className:La,children:"Cost model coverage"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"How much volume we can cost accurately."})]}),i.jsx(ze,{children:i.jsx(i6e,{merchantId:t})})]}),i.jsx(sFe,{merchantId:t})]})}function mFe({merchantId:t,mode:e}){return i.jsxs("div",{children:[i.jsx(HX,{title:"Data ingestion",subtitle:"Connect a settlement source so reports flow in automatically, or upload a report file manually. Add the monthly invoice to also recover the fees the report can't carry."}),e==="automatic"&&i.jsx(F6e,{merchantId:t}),e==="manual"&&i.jsx(H6e,{merchantId:t}),e==="invoice"&&i.jsx(K6e,{merchantId:t})]})}const tr="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-brand-500 dark:border-[#222226]",gFe=["adyen","stripe","checkout","worldpay","braintree","paypal","chase","cybersource","globalpay","nuvei","rapyd","fiserv","authorizedotnet"],xFe=["USD","EUR","GBP","INR","JPY","AUD","CAD","SGD","AED","BHD","KWD"],yFe=["UTC","America/New_York","America/Chicago","America/Los_Angeles","Europe/London","Europe/Amsterdam","Europe/Berlin","Asia/Kolkata","Asia/Singapore","Asia/Tokyo","Australia/Sydney"],vFe={calendar_month:"Day of month the cycle starts (1–30)",calendar_quarter:"Month within the quarter the cycle starts (1–3)",calendar_year:"Month the cycle starts (1–12)",test_minutes:"Cycle length in minutes (2–240) — one minute per contract day"};let bFe=1;function GX(t){return{kind:"retroactive",bps:"",threshold:"",targeted:t,rebateLagDays:"0",rebateSettlement:"cash"}}function xN(){return{key:bFe++,id:"",connector:"",status:"active",cycleType:"calendar_month",anchor:"1",timezone:"UTC",archetype:"lumpsum",target:"",rewardKind:"flat",flatAmount:"",rebateBps:"",tiers:[GX(!0)]}}function Lb(t){return t.trim()}function wFe(t){const e=t.created_at?CG(t.created_at):0;if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}function kFe(t){var a,s;if(!((a=t==null?void 0:t.volume_contracts)!=null&&a.length))return[];const e=t.metric==="volume"?null:(s=t.currency)==null?void 0:s.denomination,n=o=>es(Number(o??0),e),r=o=>o.kind==="flat"?`${n(o.value.flat_amount)} flat`:`${o.value.rebate_bps/100}% rebate`;return t.volume_contracts.map(o=>{const l=o.status??"active";if(o.archetype==="lumpsum")return{connector:o.connector,promise:n(o.terms.target),reward:r(o.terms.reward),status:l};if(o.archetype==="tiered"){const c=o.terms.tiers.find(d=>d.targeted)??o.terms.tiers[0],u=c?"rebate_bps"in c.rate?c.rate.rebate_bps:c.rate.rate_bps:0;return{connector:o.connector,promise:c?n(c.threshold):"—",reward:`${u/100}% ${(c==null?void 0:c.kind)==="marginal"?"marginal":"retroactive"} · ${o.terms.tiers.length} tier${o.terms.tiers.length===1?"":"s"}`,status:l}}return{connector:o.connector,promise:n(o.terms.floor),reward:r(o.terms.reward),status:l}})}function jFe(t){var r,a;const e=t.metric==="volume"?null:(r=t.currency)==null?void 0:r.denomination,n=t.tolerance_bps??(t.tolerance?parseFloat(t.tolerance):void 0);return[{label:"Routing mode",value:t.routing_mode==="pace_guarded"?"Pace‑guarded (auth‑rate first)":"Volume‑commitment first"},{label:"Tolerance",value:n!=null?`${(n/100).toFixed(n%100?2:0)} pp`:"—"},{label:"Metric",value:t.metric==="volume"?"Transaction count":"GMV"},{label:"Currency",value:((a=t.currency)==null?void 0:a.denomination)??"—"},{label:"Expected daily traffic",value:es(Number(t.expected_daily_traffic??0),e)},{label:"Forecast interval",value:t.forecast_interval_secs?`${t.forecast_interval_secs}s`:"default"},{label:"Steering interval",value:t.steering_interval_secs?`${t.steering_interval_secs}s`:"default"},{label:"Billing cycle",value:qX(t)}]}function SFe(t){switch(t.type){case"test_minutes":return`${t.anchor}-minute test cycle`;case"calendar_month":return`Monthly from day ${t.anchor}`;case"calendar_quarter":return`Quarterly from month ${t.anchor}`;case"calendar_year":return`Yearly from month ${t.anchor}`;default:return String(t.type)}}function _Fe({config:t}){var o;const[e,n]=g.useState(!1);if(!t)return i.jsx("p",{className:"text-sm text-slate-500",children:"This document has no readable configuration."});const r=t.metric==="volume"?null:(o=t.currency)==null?void 0:o.denomination,a=l=>es(Number(l??0),r),s=kFe(t);return i.jsxs("div",{className:"space-y-4",children:[i.jsx("dl",{className:"grid grid-cols-2 gap-x-6 gap-y-3 sm:grid-cols-4 lg:grid-cols-8",children:jFe(t).map(l=>i.jsxs("div",{className:"min-w-0",children:[i.jsx("dt",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-400 dark:text-[#78849a]",children:l.label}),i.jsx("dd",{className:"mt-0.5 truncate text-sm text-slate-800 dark:text-slate-200",title:l.value,children:l.value})]},l.label))}),i.jsx("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330]",children:i.jsxs("table",{className:"w-full text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/70 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:bg-[#11151d] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-4 py-2.5",children:"PSP"}),i.jsx("th",{className:"px-4 py-2.5",children:"Promise"}),i.jsx("th",{className:"px-4 py-2.5",children:"Reward"}),i.jsx("th",{className:"px-4 py-2.5",children:"Cycle"}),i.jsx("th",{className:"px-4 py-2.5",children:"Timezone"}),i.jsx("th",{className:"px-4 py-2.5",children:"Status"})]})}),i.jsx("tbody",{children:t.volume_contracts.map((l,c)=>{const u=s[c];return i.jsxs("tr",{className:"border-b border-slate-100 last:border-b-0 dark:border-[#1e2330]",children:[i.jsx("td",{className:"px-4 py-2.5 font-medium text-slate-900 dark:text-white",children:l.connector}),i.jsx("td",{className:"px-4 py-2.5 tabular-nums text-slate-800 dark:text-slate-200",children:u==null?void 0:u.promise}),i.jsxs("td",{className:"px-4 py-2.5 text-slate-800 dark:text-slate-200",children:[u==null?void 0:u.reward,l.archetype==="tiered"&&i.jsx("span",{className:"mt-1 block text-xs text-slate-500 dark:text-[#8d96a8]",children:l.terms.tiers.map(d=>`${a(d.threshold)} → ${("rebate_bps"in d.rate?d.rate.rebate_bps:d.rate.rate_bps)/100}%${d.targeted?" (target)":""}`).join(" · ")})]}),i.jsx("td",{className:"px-4 py-2.5 text-slate-800 dark:text-slate-200",children:SFe(l.billing_cycle)}),i.jsx("td",{className:"px-4 py-2.5 text-slate-600 dark:text-[#8d96a8]",children:l.billing_cycle.timezone}),i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold leading-4 ${(l.status??"active")==="active"?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"}`,children:(l.status??"active")==="active"?"Active":"Inactive"})})]},l.id||l.connector)})})]})}),i.jsxs("div",{children:[i.jsx("button",{type:"button",onClick:()=>n(l=>!l),className:"text-xs font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:e?"Hide JSON":"Show JSON"}),e&&i.jsx("pre",{className:"mt-2 max-h-80 overflow-auto rounded-lg border border-slate-200 bg-white p-3 text-[11px] leading-relaxed text-slate-600 dark:border-[#1e2330] dark:bg-[#0a0d12] dark:text-[#9ca7ba]",children:JSON.stringify(t,null,2)})]})]})}function qX(t){var n,r;const e=(r=(n=t==null?void 0:t.volume_contracts)==null?void 0:n[0])==null?void 0:r.billing_cycle;if(!e)return"—";switch(e.type){case"test_minutes":return`${e.anchor}-minute test cycle`;case"calendar_month":return`Monthly from day ${e.anchor} (${e.timezone})`;case"calendar_quarter":return`Quarterly from month ${e.anchor} (${e.timezone})`;case"calendar_year":return`Yearly from month ${e.anchor} (${e.timezone})`;default:return String(e.type)}}function NFe({embedded:t=!1}={}){const e=Er(le=>le.merchantId),n=Ro(),{mutate:r}=ej(),{data:a,isLoading:s}=ut(e?`/routing/list/${e}`:null,le=>Ve(le),{revalidateOnFocus:!1}),{data:o}=ut(e?`/routing/list/active/${e}`:null,le=>Ve(le),{revalidateOnFocus:!1}),l=g.useMemo(()=>(a??[]).filter(le=>le.algorithm_for==="volume_commitment").sort((le,Ie)=>new Date(Ie.created_at??0).getTime()-new Date(le.created_at??0).getTime()),[a]),c=g.useMemo(()=>{var le;return((le=(o??[]).find(Ie=>Ie.algorithm_for==="volume_commitment"))==null?void 0:le.id)??null},[o]);function u(){r(`/routing/list/${e}`),r(`/routing/list/active/${e}`)}const[d,f]=g.useState(""),[h,p]=g.useState(""),[m,x]=g.useState("5"),[y,b]=g.useState("USD"),[v,w]=g.useState("major"),[j,k]=g.useState(""),[_,S]=g.useState(""),[N,E]=g.useState(""),[P,M]=g.useState([xN()]),A=e?`vc_merchant_settings_${e}`:null,O=g.useMemo(()=>{var Ie;const le=l.find(Ge=>Ge.id===c);return(Ie=(le==null?void 0:le.algorithm_data)??(le==null?void 0:le.algorithm))==null?void 0:Ie.data},[l,c]);function D(le){le.tolerancePp!=null&&x(le.tolerancePp),le.currency!=null&&b(le.currency),le.amountUnits&&w(le.amountUnits),le.expectedDailyTraffic!=null&&k(le.expectedDailyTraffic),le.forecastInterval!=null&&S(le.forecastInterval),le.steeringInterval!=null&&E(le.steeringInterval)}g.useEffect(()=>{var Ie,Ge;if(!A)return;let le=null;try{const nt=window.localStorage.getItem(A);le=nt?JSON.parse(nt):null}catch{le=null}if(le){D(le);return}if(O){const nt=O.tolerance_bps??(O.tolerance?parseFloat(O.tolerance):void 0);D({tolerancePp:nt!=null?String(nt/100):"5",currency:((Ie=O.currency)==null?void 0:Ie.denomination)??"USD",amountUnits:((Ge=O.currency)==null?void 0:Ge.amount_units)==="minor"?"minor":"major",expectedDailyTraffic:O.expected_daily_traffic!=null?String(O.expected_daily_traffic):"",forecastInterval:O.forecast_interval_secs!=null?String(O.forecast_interval_secs):"",steeringInterval:O.steering_interval_secs!=null?String(O.steering_interval_secs):""})}},[A,O]);function I(){if(!A)return;const le={tolerancePp:m,currency:y,amountUnits:v,expectedDailyTraffic:j,forecastInterval:_,steeringInterval:N};try{window.localStorage.setItem(A,JSON.stringify(le))}catch{}G("Merchant settings saved — every new contract document will use them."),Vt()}const[X,Q]=g.useState(!1),[V,Y]=g.useState(null),[H,G]=g.useState(null),[$,F]=Nl(),[R,z]=g.useState(""),[U,ee]=g.useState("all"),[pe,re]=g.useState(null),[he,q]=g.useState(null),[W,ue]=g.useState(null),[te,ie]=g.useState(null),[me,ve]=g.useState(null),[Ne,je]=g.useState(null),[Me,Be]=g.useState(null),[tt,B]=g.useState(null);function se(le,Ie){M(Ge=>Ge.map(nt=>nt.key===le?{...nt,...Ie}:nt))}function de(le,Ie,Ge){M(nt=>nt.map(Nt=>{if(Nt.key!==le)return Nt;const ge=Nt.tiers.map((st,pt)=>Ge.targeted===!0?pt===Ie?{...st,...Ge}:{...st,targeted:!1}:pt===Ie?{...st,...Ge}:st);return{...Nt,tiers:ge}}))}function Ce(){const le={schema_version:1,routing_mode:"pace_guarded",tolerance:`${Math.round(parseFloat(m||"0")*100)}bps`,metric:"gmv",currency:{denomination:y.trim().toUpperCase(),amount_units:v},expected_daily_traffic:Lb(j),volume_contracts:P.map(Ie=>{const Ge={id:Ie.id.trim(),connector:Ie.connector.trim(),status:Ie.status,billing_cycle:{type:Ie.cycleType,anchor:parseInt(Ie.anchor,10)||0,timezone:Ie.timezone.trim()}};return Ie.archetype==="lumpsum"?{...Ge,archetype:"lumpsum",terms:{target:Lb(Ie.target),reward:Ie.rewardKind==="flat"?{kind:"flat",value:{flat_amount:Lb(Ie.flatAmount)}}:{kind:"percentage",value:{rebate_bps:parseInt(Ie.rebateBps,10)||0}}}}:{...Ge,archetype:"tiered",terms:{tiers:Ie.tiers.map(nt=>({kind:nt.kind,rate:nt.kind==="retroactive"?{rebate_bps:parseInt(nt.bps,10)||0}:{rate_bps:parseInt(nt.bps,10)||0},threshold:Lb(nt.threshold),targeted:nt.targeted,rebate_lag_days:parseInt(nt.rebateLagDays,10)||0,rebate_settlement:nt.rebateSettlement}))}}})};return _.trim()&&(le.forecast_interval_secs=parseInt(_,10)),N.trim()&&(le.steering_interval_secs=parseInt(N,10)),le}function fe(){f(""),p(""),M([xN()])}async function be(){if(e){Q(!0),Y(null),G(null);try{const le={name:d.trim(),description:h.trim()||`Volume commitments for ${e}`,created_by:e,algorithm_for:"volume_commitment",algorithm:{type:"volume_contract",data:Ce()}};await Ve("/routing/create",le),G(`“${d.trim()}” created — activate it from the list to hand it to the routing engine.`),fe(),u(),Vt()}catch(le){Y(le instanceof Error?le.message:"Failed to create contract document")}finally{Q(!1)}}}async function we(le){q(le),B(null);try{await Ve("/routing/activate",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to activate")}finally{q(null)}}async function Le(le){ue(le),B(null);try{await Ve("/routing/deactivate",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to deactivate")}finally{ue(null)}}async function Oe(le){ie(le),B(null);try{await Ve("/routing/delete",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to delete")}finally{ie(null)}}function He(le,Ie){return i.jsxs("div",{className:"mb-1.5 flex items-baseline justify-between gap-2",children:[i.jsx("span",{className:ts,children:le}),Ie?i.jsx("span",{className:"text-[11px] text-slate-400 dark:text-[#8d96aa]",children:Ie}):null]})}const vt=`${v} ${y.toUpperCase()} units`,bt=$.get("contract"),Bt=bt==="new",wt=bt==="settings";function zt(le){F(Ie=>{const Ge=new URLSearchParams(Ie);return Ge.set("contract",le),Ge})}function Ut(){zt("new")}function Un(){zt("settings")}function Vt(){F(le=>{const Ie=new URLSearchParams(le);return Ie.delete("contract"),Ie})}const Kt=l.filter(le=>{const Ie=le.id===c;if(U==="active"&&!Ie||U==="inactive"&&Ie)return!1;if(R.trim()){const Ge=R.trim().toLowerCase();if(!le.name.toLowerCase().includes(Ge)&&!le.id.toLowerCase().includes(Ge))return!1}return!0}),dt=i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[He("Routing mode","only supported mode"),i.jsx(Yo,{triggerClassName:tr,value:"pace_guarded",onChange:()=>{},disabled:!0,options:[{value:"pace_guarded",label:"Pace-guarded (auth-rate first)"}]})]}),i.jsxs("div",{children:[He("Tolerance","percentage points"),i.jsx("input",{className:tr,type:"number",min:0,step:.5,placeholder:"5",value:m,onChange:le=>x(le.target.value)})]}),i.jsxs("div",{children:[He("Metric","only supported metric"),i.jsx(Yo,{triggerClassName:tr,value:"gmv",onChange:()=>{},disabled:!0,options:[{value:"gmv",label:"GMV (money processed)"}]})]}),i.jsxs("div",{children:[He("Currency"),i.jsx(Cx,{className:tr,value:y,onChange:b,options:xFe,placeholder:"USD"})]}),i.jsxs("div",{children:[He("Amount units"),i.jsx(Yo,{triggerClassName:tr,value:v,onChange:le=>w(le),options:[{value:"major",label:"Major (6000000 = $6M)"},{value:"minor",label:"Minor (600000000 = $6M in cents)"}]})]}),i.jsxs("div",{children:[He("Expected daily traffic",vt),i.jsx("input",{className:tr,placeholder:"800000",value:j,onChange:le=>k(le.target.value)})]}),i.jsxs("div",{children:[He("Forecast interval","seconds, optional"),i.jsx("input",{className:tr,type:"number",min:60,placeholder:"engine default",value:_,onChange:le=>S(le.target.value)})]}),i.jsxs("div",{children:[He("Steering interval","seconds, optional"),i.jsx("input",{className:tr,type:"number",min:60,placeholder:"engine default",value:N,onChange:le=>E(le.target.value)})]})]});return wt?i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-start justify-between gap-4",children:i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:Vt,className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Contracts"]}),i.jsx(qr,{title:"Merchant Settings",description:"How the engine treats every volume contract for this merchant — routing mode, approval tolerance, units and expected traffic. Applied to each new contract document.",className:"truncate"})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[i.jsx(Hi,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ts,children:"Merchant-level settings"})]}),dt]})}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{onClick:I,disabled:!e||!n,children:"Save settings"}),i.jsx("button",{type:"button",onClick:Vt,className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"max-w-[57ch] text-sm text-slate-500 dark:text-[#78849a]",children:"Existing documents keep the settings they were created with."})]})]}):Bt?i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-start justify-between gap-4",children:i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:Vt,className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Contracts"]}),i.jsx(qr,{title:"Create Contract Document",description:"Express PSP volume-commitment contracts — goals, rebates and billing cycles. Nothing here changes routing until the document is activated.",className:"truncate"})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsx(bA,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Hi,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ts,children:"Merchant-level settings"}),i.jsx("span",{className:"text-sm text-slate-500 dark:text-[#8d96aa]",children:j.trim()?"— applied to this document when it is created.":"— expected daily traffic is not set yet; the document cannot be created without it."})]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:Un,children:"Edit settings"})]})}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[He("Name"),i.jsx("input",{className:tr,placeholder:"q3_volume_contracts",value:d,onChange:le=>f(le.target.value)})]}),i.jsxs("div",{children:[He("Description"),i.jsx("input",{className:tr,placeholder:"Q3 PSP volume commitments",value:h,onChange:le=>p(le.target.value)})]})]}),i.jsxs("div",{className:"space-y-4",children:[P.map((le,Ie)=>i.jsxs(bA,{children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsxs("span",{className:ts,children:["Contract ",Ie+1]}),P.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>M(Ge=>Ge.filter(nt=>nt.key!==le.key)),"aria-label":"Remove contract",children:i.jsx(Cn,{size:14})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[He("Contract ID"),i.jsx("input",{className:tr,placeholder:"adyen_2026_lumpsum",value:le.id,onChange:Ge=>se(le.key,{id:Ge.target.value})})]}),i.jsxs("div",{children:[He("Connector","exact gateway name"),i.jsx(Cx,{className:tr,value:le.connector,onChange:Ge=>se(le.key,{connector:Ge}),options:gFe,placeholder:"adyen"})]}),i.jsxs("div",{children:[He("Status"),i.jsx(Yo,{triggerClassName:tr,value:le.status,onChange:Ge=>se(le.key,{status:Ge}),options:[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}]})]}),i.jsxs("div",{children:[He("Billing cycle"),i.jsx(Yo,{triggerClassName:tr,value:le.cycleType,onChange:Ge=>se(le.key,{cycleType:Ge}),options:[{value:"calendar_month",label:"Calendar month"},{value:"calendar_quarter",label:"Calendar quarter"},{value:"calendar_year",label:"Calendar year"},{value:"test_minutes",label:"Test cycle (minutes)"}]})]}),i.jsxs("div",{children:[He("Anchor",vFe[le.cycleType]),i.jsx("input",{className:tr,type:"number",min:1,value:le.anchor,onChange:Ge=>se(le.key,{anchor:Ge.target.value})})]}),le.cycleType==="test_minutes"&&i.jsx("div",{className:"sm:col-span-3",children:i.jsxs("p",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-400",children:["Testing only. The cycle lasts ",le.anchor||"?"," minutes and each minute counts as one contract day, so a full period — pacing, elimination, steering — plays out while you watch. Drive traffic at it from the Decision Simulator; timezone is ignored."]})}),i.jsxs("div",{children:[He("Timezone","IANA"),i.jsx(Cx,{className:tr,value:le.timezone,onChange:Ge=>se(le.key,{timezone:Ge}),options:yFe,placeholder:"UTC"})]})]}),i.jsxs("div",{className:"mt-4",children:[He("Archetype"),i.jsx("div",{className:"flex gap-2",children:[["lumpsum","Lumpsum — reward on hitting a target"],["tiered","Tiered — rebate ladder by threshold"]].map(([Ge,nt])=>i.jsx("button",{type:"button",onClick:()=>se(le.key,{archetype:Ge}),className:`rounded-full border px-4 py-1.5 text-xs font-medium transition-colors ${le.archetype===Ge?"border-brand-600 bg-brand-600 text-white":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-[#9ca7ba] dark:hover:bg-[#151518]"}`,children:nt},Ge))})]}),le.archetype==="lumpsum"?i.jsxs("div",{className:"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-3",children:[i.jsxs("div",{children:[He("Target",vt),i.jsx("input",{className:tr,placeholder:"6000000",value:le.target,onChange:Ge=>se(le.key,{target:Ge.target.value})})]}),i.jsxs("div",{children:[He("Reward kind"),i.jsx(Yo,{triggerClassName:tr,value:le.rewardKind,onChange:Ge=>se(le.key,{rewardKind:Ge}),options:[{value:"flat",label:"Flat amount"},{value:"percentage",label:"Percentage rebate"}]})]}),le.rewardKind==="flat"?i.jsxs("div",{children:[He("Flat amount",vt),i.jsx("input",{className:tr,placeholder:"15000",value:le.flatAmount,onChange:Ge=>se(le.key,{flatAmount:Ge.target.value})})]}):i.jsxs("div",{children:[He("Rebate","basis points"),i.jsx("input",{className:tr,type:"number",min:1,max:1e4,placeholder:"25",value:le.rebateBps,onChange:Ge=>se(le.key,{rebateBps:Ge.target.value})})]})]}):i.jsxs("div",{className:"mt-4 space-y-3",children:[le.tiers.map((Ge,nt)=>i.jsxs("div",{className:"rounded-xl border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] font-medium text-slate-600 dark:text-[#9ca7ba]",children:[i.jsx("input",{type:"radio",name:`targeted-${le.key}`,checked:Ge.targeted,onChange:()=>de(le.key,nt,{targeted:!0}),disabled:Ge.kind==="marginal"}),"Targeted tier (the goal the engine steers for)"]}),le.tiers.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>se(le.key,{tiers:le.tiers.filter((Nt,ge)=>ge!==nt)}),"aria-label":"Remove tier",children:i.jsx(Cn,{size:13})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-5",children:[i.jsxs("div",{children:[He("Kind"),i.jsx(Yo,{triggerClassName:tr,value:Ge.kind,onChange:Nt=>de(le.key,nt,{kind:Nt,...Nt==="marginal"?{targeted:!1}:{}}),options:[{value:"retroactive",label:"Retroactive (whole period)"},{value:"marginal",label:"Marginal (above threshold)"}]})]}),i.jsxs("div",{children:[He("Threshold",vt),i.jsx("input",{className:tr,placeholder:"8000000",value:Ge.threshold,onChange:Nt=>de(le.key,nt,{threshold:Nt.target.value})})]}),i.jsxs("div",{children:[He(Ge.kind==="retroactive"?"Rebate":"Rate","bps"),i.jsx("input",{className:tr,type:"number",min:1,max:1e4,placeholder:"20",value:Ge.bps,onChange:Nt=>de(le.key,nt,{bps:Nt.target.value})})]}),i.jsxs("div",{children:[He("Rebate lag","days"),i.jsx("input",{className:tr,type:"number",min:0,max:365,value:Ge.rebateLagDays,onChange:Nt=>de(le.key,nt,{rebateLagDays:Nt.target.value})})]}),i.jsxs("div",{children:[He("Settlement"),i.jsx(Yo,{triggerClassName:tr,value:Ge.rebateSettlement,onChange:Nt=>de(le.key,nt,{rebateSettlement:Nt}),options:[{value:"cash",label:"Cash"},{value:"credit_note",label:"Credit note"}]})]})]})]},nt)),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>se(le.key,{tiers:[...le.tiers,GX(!1)]}),children:[i.jsx(Qn,{size:13})," Add tier"]})]})]},le.key)),i.jsxs(ke,{variant:"secondary",onClick:()=>M(le=>[...le,xN()]),children:[i.jsx(Qn,{size:14})," Add PSP contract"]})]})]}),i.jsx(_t,{error:V}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsxs(ke,{onClick:be,disabled:X||!e||!d.trim()||!j.trim()||!n,children:[X?i.jsx(mt,{size:14}):null," ",X?"Saving...":"Create Contract"]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:fe,disabled:X,children:"Clear"}),i.jsx("button",{type:"button",onClick:Vt,className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"max-w-[57ch] text-sm text-slate-500 dark:text-[#78849a]",children:j.trim()?"A new document is created inactive — activate it from the contracts list.":"Set the expected daily traffic under Merchant settings before creating a document."})]})]}):i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:t?i.jsx("p",{className:gc,children:"PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic."}):i.jsx(qr,{title:"Volume Contracts",description:"PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic."})}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(ke,{variant:"secondary",onClick:Un,disabled:!n,children:[i.jsx(Hi,{size:15})," Merchant settings"]}),i.jsxs(ke,{onClick:Ut,disabled:!n,children:[i.jsx(Qn,{size:15})," Create Contract"]})]})]}),tt&&i.jsx(_t,{error:tt}),H&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:H}),i.jsx(Te,{className:"!rounded-[18px]",children:e?s?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):l.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No contract documents yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase leading-4 tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Document Name & ID",value:R,onChange:z,ariaLabel:"Filter documents by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:U,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:le=>ee(le),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Billing Cycle"}),i.jsx("th",{className:"px-5 py-3.5",children:"Created"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Kt.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No documents match these filters."}),i.jsx("button",{type:"button",onClick:()=>{ee("all"),z("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Kt.map(le=>{var st,pt,Ht;const Ie=le.id===c,Ge=pe===le.id,nt=(st=le.algorithm_data??le.algorithm)==null?void 0:st.data,Nt=wFe(le),ge=Ie?"Deactivate this document first":n?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{onClick:()=>re(Ge?null:le.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${Ie?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4 align-top",children:i.jsxs("div",{className:"flex items-start gap-2",children:[Ge?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:le.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:le.id})]})]})}),i.jsx("td",{className:"px-5 py-4 align-top",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold leading-4 ${Ie?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"}`,children:Ie?"Active":"Inactive"})}),i.jsxs("td",{className:"max-w-[260px] px-5 py-4 align-top",children:[i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",children:qX(nt)}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#78849a]",children:[((pt=nt==null?void 0:nt.volume_contracts)==null?void 0:pt.length)??0," PSP commitment",(((Ht=nt==null?void 0:nt.volume_contracts)==null?void 0:Ht.length)??0)===1?"":"s"]})]}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 align-top text-[13px] leading-[18px] text-slate-500 dark:text-[#78849a]",children:Nt?i.jsxs("span",{title:Nt.full,children:[Nt.date,i.jsx("span",{className:"block text-[12px] leading-4 text-slate-500 dark:text-[#78849a]",children:Nt.time})]}):"—"}),i.jsx("td",{className:"px-5 py-4 align-top",onClick:gn=>gn.stopPropagation(),children:i.jsx(HT,{items:[Ie?{label:W===le.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>je(le.id),disabled:W===le.id||!n}:{label:he===le.id?"Activating…":"Activate",icon:bT,tone:"positive",onSelect:()=>c?ve(le.id):we(le.id),disabled:he===le.id||!n},{label:te===le.id?"Deleting…":"Delete",icon:Cn,tone:"danger",onSelect:()=>Be(le.id),disabled:!!ge||te===le.id,hint:ge}]})})]},le.id),Ge?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsx("td",{colSpan:5,className:"bg-slate-50/60 px-5 py-5 dark:bg-[#0d1017]",children:i.jsx(_Fe,{config:nt})})},`${le.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load contract documents."})}),i.jsx(qs,{open:me!=null,title:"Replace the active document?",description:"Another contract document is currently active. Activating this one hands the engine this document instead.",confirmLabel:"Activate",variant:"primary",onConfirm:()=>{me&&we(me),ve(null)},onCancel:()=>ve(null)}),i.jsx(qs,{open:Ne!=null,title:"Deactivate this document?",description:"The routing engine stops receiving volume-commitment configuration until another document is activated.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{Ne&&Le(Ne),je(null)},onCancel:()=>je(null)}),i.jsx(qs,{open:Me!=null,title:"Delete this document?",description:"This permanently removes the contract document. Only inactive documents can be deleted.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{Me&&Oe(Me),Be(null)},onCancel:()=>Be(null)})]})}const Bx="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function p9(t,e){return e&&!t.includes(e)?[e,...t]:[...t]}const CFe=[{key:"card_network",label:"Card network"},{key:"currency",label:"Currency"},{key:"country",label:"Country"},{key:"auth_type",label:"Auth type"},{key:"card_is_in",label:"Card BIN",note:"High cardinality — not auto-calibrated"}],EFe=["card_network","currency","country","auth_type"];async function AFe(t){var a,s;let e=[],n=[];try{const o=await Lt(`/config-sr-dimension/${t}`);e=((a=o==null?void 0:o.paymentInfo)==null?void 0:a.fields)??[],n=((s=o==null?void 0:o.paymentInfo)==null?void 0:s.udfs)??[]}catch{}const r=Array.from(new Set([...e,...EFe]));await Ve("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:n,fields:r}})}const $g=Dd(t=>t===""||t===null||t===void 0?null:t,qd().nullable()),OFe=b2({paymentMethodType:qd().min(1),paymentMethod:qd().min(1),cardNetwork:$g,currency:$g,country:$g,authType:$g,source:$g,bucketSize:mX.number().int().positive(),hedgingPercent:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),latencyThreshold:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable())}),TFe=b2({defaultBucketSize:mX.number().int().positive(),defaultSuccessRate:Dd(t=>t===""||t===null?null:Number(t),Rd().min(0).max(1).nullable()),defaultLatencyThreshold:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),defaultHedgingPercent:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),margin:Dd(t=>t===""||t===null?null:Number(t),Rd().min(0).max(100).nullable()),subLevelInputConfig:pX(OFe)}),PFe=["autopilot","manual","flags","cost","volume"],MFe=["manual","cost","volume"],RFe=["scoring","elimination","dimensions"],DFe=[{id:"scoring",icon:Hi,title:"Scoring defaults",blurb:"Bucket size, hedging & per-payment-type overrides"},{id:"elimination",icon:dH,title:"Elimination",blurb:"Drop a PSP whose auth rate falls too low"},{id:"dimensions",icon:xT,title:"SR Dimensions",blurb:"Attributes scoring splits clusters on"}];function IFe(){const t=Er(R=>R.merchantId),e=xr(R=>{var z;return((z=R.user)==null?void 0:z.merchantId)||""}),n=t||e,a=Al(n??void 0).isEnabled("autopilot"),[s,o]=Nl(),l=s.get("tab"),c=PFe.includes(l)?l:"autopilot",u=R=>{o(z=>{const U=new URLSearchParams(z);return R==="autopilot"?U.delete("tab"):U.set("tab",R),U},{replace:!0})},d=s.get("section"),f=RFe.includes(d)?d:"scoring",h=R=>{o(z=>{const U=new URLSearchParams(z);return R==="scoring"?U.delete("section"):U.set("section",R),U},{replace:!0})};g.useEffect(()=>{if(c!=="manual")return;d!==(f==="scoring"?null:f)&&h(f)},[c,f,d]);const[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState(!1),[w,j]=g.useState(!1),{data:k,isLoading:_,mutate:S}=ut(n?["/rule/get","successRate",n]:null,()=>Ve("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{register:N,control:E,handleSubmit:P,reset:M,watch:A,formState:{errors:O}}=J8e({resolver:t6e(TFe),defaultValues:{defaultBucketSize:200,defaultSuccessRate:.5,defaultLatencyThreshold:null,defaultHedgingPercent:null,margin:null,subLevelInputConfig:[]}});g.useEffect(()=>{var R;if((R=k==null?void 0:k.config)!=null&&R.data){const z=k.config.data,U=(z.subLevelInputConfig??[]).map(ee=>({paymentMethodType:ee.paymentMethodType,paymentMethod:ee.paymentMethod,cardNetwork:ee.cardNetwork??null,currency:ee.currency??null,country:ee.country??null,authType:ee.authType??null,source:ee.source??null,bucketSize:ee.bucketSize,hedgingPercent:ee.hedgingPercent??null,latencyThreshold:ee.latencyThreshold??null}));M({defaultBucketSize:z.defaultBucketSize??200,defaultSuccessRate:z.defaultSuccessRate??.5,defaultLatencyThreshold:z.defaultLatencyThreshold??null,defaultHedgingPercent:z.defaultHedgingPercent??null,margin:z.margin!=null?z.margin*100:null,subLevelInputConfig:U}),j(U.length>0)}},[k,M]);const{fields:D,append:I,remove:X}=X8e({control:E,name:"subLevelInputConfig"}),Q=A("subLevelInputConfig"),V=w||D.length>0;function Y(){j(!0),I({paymentMethodType:"card",paymentMethod:"credit",cardNetwork:null,currency:null,country:null,authType:null,source:null,bucketSize:20,hedgingPercent:null,latencyThreshold:null})}function H(R){X(R),D.length<=1&&j(!1)}async function G(){try{await Ve("/merchant-account/create",{merchant_id:n,gateway_success_rate_based_decider_input:null})}catch{}}async function $(R){if(!n){y("Set a Merchant ID first.");return}m(!0),y(null),v(!1);try{k||await G(),await Ve(k?"/rule/update":"/rule/create",{merchant_id:n,config:{type:"successRate",data:{defaultBucketSize:R.defaultBucketSize,defaultSuccessRate:R.defaultSuccessRate,defaultLatencyThreshold:R.defaultLatencyThreshold,defaultHedgingPercent:R.defaultHedgingPercent,subLevelInputConfig:R.subLevelInputConfig.length>0?R.subLevelInputConfig:null}}}),v(!0),S()}catch(z){y(z instanceof Error?z.message:String(z))}finally{m(!1)}}const F=R=>`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${c===R?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-700 dark:hover:text-slate-300"}`;return i.jsxs("div",{className:`space-y-6 ${MFe.includes(c)?"w-full":"max-w-4xl"}`,children:[i.jsx("div",{children:i.jsx(qr,{title:"Multi Objective Routing",description:"Dynamic gateway scoring based on real-time success rates."})}),!n&&i.jsx(Fa,{tone:"warning",children:"Set a Merchant ID in the top bar to load and save configuration."}),i.jsx("div",{className:"border-b border-slate-200 dark:border-[#1c1c23]",children:i.jsxs("nav",{className:"-mb-px flex gap-1",children:[i.jsx("button",{type:"button",className:F("autopilot"),onClick:()=>u("autopilot"),children:"Autopilot"}),i.jsx("button",{type:"button",className:F("manual"),onClick:()=>u("manual"),children:"Manual"}),i.jsx("button",{type:"button",className:F("flags"),onClick:()=>u("flags"),children:"Feature Flags"}),i.jsx("button",{type:"button",className:F("cost"),onClick:()=>u("cost"),children:"Cost Estimation"}),i.jsxs("button",{type:"button",className:`${F("volume")} inline-flex items-center gap-1.5`,onClick:()=>u("volume"),children:["Volume Contracts",i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase leading-4 tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400",children:"Beta"})]})]})}),_?i.jsx("div",{className:"flex justify-center py-12",children:i.jsx(mt,{})}):i.jsxs(i.Fragment,{children:[c==="autopilot"&&i.jsx(FFe,{merchantId:n}),c==="manual"&&i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx($Fe,{active:f,onSelect:h}),i.jsxs("div",{className:"min-w-0 space-y-6",children:[f==="scoring"&&i.jsx("div",{className:"space-y-6",children:i.jsxs("form",{onSubmit:P($),className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"Scoring defaults"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Applied to every payment type unless an override below replaces them."})]}),i.jsxs(ze,{className:"grid gap-6 md:grid-cols-3",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Bucket size"}),i.jsx("input",{type:"number",placeholder:"50–200",...N("defaultBucketSize"),className:Bx}),O.defaultBucketSize&&i.jsx("p",{className:"text-[13px] text-red-600 leading-[18px]",children:O.defaultBucketSize.message}),i.jsx("p",{className:ku,children:"Recent payments per gateway score. Lower adapts faster, higher stays steadier."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Hedging %"}),i.jsx("input",{type:"number",step:"0.1",...N("defaultHedgingPercent"),placeholder:"10",className:Bx}),i.jsx("p",{className:ku,children:"Traffic share sent to non-top gateways to keep their scores fresh. Needs Explore-exploit on."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Latency threshold (s)"}),i.jsx("input",{type:"number",...N("defaultLatencyThreshold"),placeholder:"300",className:Bx}),i.jsx("p",{className:ku,children:"Timeouts inside this window count as outages, outside it as slow performance."})]})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h2",{className:La,children:"Sub-level overrides"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Optional per payment-method-type overrides for the settings above."})]}),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",onClick:Y,children:[i.jsx(Qn,{size:14})," Add Override"]})]}),V&&i.jsx(ze,{className:"overflow-x-auto p-0",children:D.length?i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] border-b border-slate-200 dark:border-[#1c1c24] bg-slate-50 dark:bg-[#0a0a0f] leading-4",children:[i.jsx("th",{className:"px-4 py-2",children:"Source"}),i.jsx("th",{className:"px-4 py-2",children:"Method Type"}),i.jsx("th",{className:"px-4 py-2",children:"Method"}),i.jsx("th",{className:"px-4 py-2",children:"Card Network"}),i.jsx("th",{className:"px-4 py-2",children:"Currency"}),i.jsx("th",{className:"px-4 py-2",children:"Country"}),i.jsx("th",{className:"px-4 py-2",children:"Auth Type"}),i.jsx("th",{className:"px-4 py-2",children:"Bucket Size"}),i.jsx("th",{className:"px-4 py-2",children:"Hedging %"}),i.jsx("th",{className:"px-4 py-2",children:"Latency Threshold (s)"}),i.jsx("th",{className:"px-4 py-2"})]})}),i.jsx("tbody",{children:D.map((R,z)=>{var ve,Ne,je,Me;const U=((ve=Q==null?void 0:Q[z])==null?void 0:ve.paymentMethodType)||"",ee=((Ne=Q==null?void 0:Q[z])==null?void 0:Ne.paymentMethod)||"",pe=CAe[U.toLowerCase()]||["credit","debit"],re=p9(NAe,U),he=p9(pe,ee),q=a&&((je=Q==null?void 0:Q[z])==null?void 0:je.source)==="autopilot",W=q?"Managed by Autopilot — turn Autopilot off to edit":void 0,ue="text-sm text-slate-600 dark:text-slate-300",te=Q==null?void 0:Q[z],ie=Be=>Be==null||Be===""?"Any":Be,me=Be=>Be==null||Be===""?"—":String(Be);return i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24] hover:bg-slate-50 dark:bg-[#0f0f16] transition-colors",children:[i.jsxs("td",{className:"px-4 py-2",children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.source`)}),((Me=Q==null?void 0:Q[z])==null?void 0:Me.source)==="autopilot"?i.jsx(Pe,{variant:"green",children:"Auto"}):i.jsx(Pe,{variant:"gray",children:"Manual"})]}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.paymentMethodType`)}),i.jsx("span",{className:ue,title:W,children:U||"—"})]}):i.jsx("select",{...N(`subLevelInputConfig.${z}.paymentMethodType`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:re.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.paymentMethod`)}),i.jsx("span",{className:ue,title:W,children:ee||"—"})]}):i.jsx("select",{...N(`subLevelInputConfig.${z}.paymentMethod`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:he.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.cardNetwork`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.cardNetwork)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.cardNetwork`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.currency`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.currency)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.currency`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.country`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.country)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.country`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.authType`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.authType)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.authType`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.bucketSize`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.bucketSize)})]}):i.jsx("input",{type:"number",...N(`subLevelInputConfig.${z}.bucketSize`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.hedgingPercent`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.hedgingPercent)})]}):i.jsx("input",{type:"number",step:"0.1",...N(`subLevelInputConfig.${z}.hedgingPercent`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.latencyThreshold`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.latencyThreshold)})]}):i.jsx("input",{type:"number",...N(`subLevelInputConfig.${z}.latencyThreshold`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsx("span",{className:"text-slate-500 dark:text-slate-400",title:"Managed by Autopilot — turn Autopilot off to remove",children:i.jsx(Cn,{size:14})}):i.jsx("button",{type:"button",onClick:()=>H(z),className:"text-slate-500 hover:text-red-600",children:i.jsx(Cn,{size:14})})})]},R.id)})})]}):i.jsx("div",{className:"px-4 py-6 text-sm text-slate-500",children:"No overrides yet — defaults apply to all payment types."})})]}),i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Configuration saved."}),i.jsx(ke,{type:"submit",disabled:p||!n,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save changes"})]})}),f==="elimination"&&i.jsx(UFe,{merchantId:n}),f==="dimensions"&&i.jsx(BFe,{merchantId:n})]})]}),c==="flags"&&i.jsx(zFe,{merchantId:n}),c==="cost"&&i.jsx(fFe,{merchantId:n}),c==="volume"&&i.jsx(NFe,{embedded:!0})]})]})}function $Fe({active:t,onSelect:e}){return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:DFe.map(({id:n,icon:r,title:a,blurb:s})=>{const o=t===n;return i.jsxs("button",{type:"button",onClick:()=>e(n),"aria-current":o?"page":void 0,className:`flex shrink-0 items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors lg:w-full ${o?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(r,{size:18,className:`mt-0.5 shrink-0 ${o?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:a}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:s})]})]},n)})})}function LFe({on:t,onClick:e,disabled:n}){return i.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:n,onClick:e,className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${t?"bg-brand-500":"bg-slate-300 dark:bg-slate-600"}`,children:i.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${t?"translate-x-6":"translate-x-1"}`})})}function FFe({merchantId:t}){const e=Al(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null),[c,u]=g.useState(!1),d=e.isEnabled("autopilot");async function f(p){r("master"),s(null),l(null);try{await e.setFeatureEnabled("autopilot",p),p?(await e.setFeatureEnabled("multi-objective-routing",!0),await e.setFeatureEnabled("auto-calibration",!0),t&&await AFe(t)):(await e.setFeatureEnabled("elimination",!1),await e.setFeatureEnabled("multi-objective-routing",!1),await e.setFeatureEnabled("auto-calibration",!1)),l(p?"Autopilot on — the engine self-tunes to your traffic (cost savings also enabled).":"Autopilot off — routing uses your Manual configuration.")}catch(m){s(m instanceof Error?m.message:String(m))}finally{r(null)}}const h=!t||e.isLoading;return i.jsxs("div",{className:"space-y-4",children:[a&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:a}),o&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:o}),i.jsx(Te,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:La,children:"Autopilot mode"}),d?i.jsx(Pe,{variant:"green",children:"On"}):i.jsx(Pe,{variant:"gray",children:"Off"}),d&&i.jsx("button",{type:"button",onClick:()=>u(p=>!p),"aria-expanded":c,"aria-label":"Show static vs automatic tuning illustration",className:`inline-flex items-center rounded-full p-0.5 transition-colors ${c?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300"}`,children:i.jsx(Qu,{className:"h-4 w-4"})})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb] max-w-[57ch]",children:"Let the engine self-tune routing to your traffic — it auto-configures the Learning window and Discovery share from your volume. Turn off to route purely by your Manual configuration."})]}),i.jsx(LFe,{on:d,disabled:h||n!==null,onClick:()=>f(!d)})]})}),i.jsx(Te,{className:d?"":"opacity-60",children:i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Always route to the best-performing PSP"}),i.jsx(Pe,{variant:"gray",children:"SRv3"}),i.jsx(Pe,{variant:"green",children:"Active"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb]",children:"Real-time success-rate routing. Always on — it is the base routing path."})]})})}),d&&c&&i.jsx(s6e,{})]})}const m9=[{feature:"gsm-scoring-filter",title:"GSM scoring filter",description:"Skip gateway penalization for failures classified by GSM as user or issuer-originated. Keeps gateway scores accurate by excluding faults that are not the gateway's responsibility."},{feature:"explore-exploit-srv3",title:"Explore-exploit on SRv3 (Card)",description:"Keeps all gateway ratings fresh by regularly sending a small share of payments to every gateway — not just the top performer. This ensures the system can quickly detect when a backup gateway becomes better than the current top, and reroute accordingly. The Hedging % setting controls how large this share is."},{feature:"ab-test-real-payments",title:"A/B test on real payments",description:"Routes live production traffic through the active A/B test algorithm. When enabled, each payment is deterministically assigned to a control or variant arm based on its payment ID. Disable at any time to fall back to standard SR routing with no impact on in-flight payments."},{feature:"multi-objective-routing",title:"Cost savings (optimize for economic value)",description:"Multi-objective routing: alongside approval rate, weighs each PSP's expected cost and picks the highest expected-value option. Works with either the Autopilot or Manual scoring config.",docsUrl:"https://docs.hyperswitch.io/integration-guide/workflows/intelligent-routing/routing-strategies/multi-objective-routing"},{feature:"sticky-routing",title:"Sticky routing (pin returning customers)",description:"Routes each returning customer to the connector of their last successful payment for that payment method. Successes are counted per customer and method from payment feedback; the pin only applies when that connector is eligible and healthy, and explicit priority rules always take precedence."},{feature:"volume-contracts",title:"Volume contracts (meet PSP commitments)",description:"Multi-objective routing: keeps approval-rate routing in charge, but when a contracted volume commitment is drifting behind pace, steers a little extra volume to that PSP — only onto payments where it approves about as well, so approvals barely move. Runs alongside Cost savings; when both are on, a behind-pace commitment takes priority for eligible payments."}];function BFe({merchantId:t}){const e=Ro(),{data:n,mutate:r}=ut(t?`/config-sr-dimension/${t}`:null,Lt,{revalidateOnFocus:!1,shouldRetryOnError:!1}),[a,s]=g.useState(null),[o,l]=g.useState([]),[c,u]=g.useState(!1),[d,f]=g.useState(null),[h,p]=g.useState(!1);g.useEffect(()=>{var b,v;n&&(s(((b=n.paymentInfo)==null?void 0:b.fields)??[]),l(((v=n.paymentInfo)==null?void 0:v.udfs)??[]))},[n]);const m=a??[];function x(b){p(!1),s(v=>{const w=v??[];return w.includes(b)?w.filter(j=>j!==b):[...w,b]})}async function y(){if(!(!t||a==null)){u(!0),f(null),p(!1);try{await Ve("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:o,fields:a}}),p(!0),r()}catch(b){f(b instanceof Error?b.message:String(b))}finally{u(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"SR scoring dimensions"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Attributes SR scoring splits clusters on. More dimensions = finer, more responsive scores, but more clusters (each needs its own volume to score well). Changing this re-buckets scores. Autopilot enables the low-cardinality dimensions automatically."})]}),i.jsx(ze,{className:"space-y-1",children:CFe.map(({key:b,label:v,note:w})=>i.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none py-1.5",children:[i.jsx("input",{type:"checkbox",checked:m.includes(b),onChange:()=>x(b),disabled:!t||a==null,className:"rounded border-slate-300 dark:border-slate-600 disabled:cursor-not-allowed"}),i.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-200",children:v}),w&&i.jsx("span",{className:"text-[11px] text-amber-700 leading-4",children:w})]},b))})]}),i.jsx(_t,{error:d}),h&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"SR dimensions saved."}),i.jsx(ke,{onClick:y,disabled:c||!t||a==null||!e,children:c?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save SR Dimensions"})]})}function zFe({merchantId:t}){const e=Al(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null);async function c(u,d){var f;r(u),s(null),l(null);try{await e.setFeatureEnabled(u,d);const h=((f=m9.find(p=>p.feature===u))==null?void 0:f.title)??u;s(`${h} ${d?"enabled":"disabled"}.`)}catch(h){l(h instanceof Error?h.message:String(h))}finally{r(null)}}return i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h2",{className:La,children:"Scoring behaviour flags"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Merchant-level toggles that affect how SR scores are computed and how traffic is explored."})]}),o&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:o}),a&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:a}),i.jsx(Te,{children:m9.map(({feature:u,title:d,description:f,docsUrl:h},p)=>{const m=e.isEnabled(u);return i.jsxs("div",{className:`flex flex-wrap items-center justify-between gap-4 px-5 py-4 ${p>0?"border-t border-slate-100 dark:border-[#222226]":""}`,children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:d}),h&&i.jsx("a",{href:h,target:"_blank",rel:"noreferrer","aria-label":`${d} — documentation`,title:"Learn more",className:"inline-flex items-center rounded-full p-0.5 text-slate-500 transition-colors hover:text-brand-600 dark:text-slate-400 dark:hover:text-brand-400",children:i.jsx(Qu,{className:"h-4 w-4"})}),e.isLoading?i.jsx(Pe,{variant:"gray",children:"Checking"}):m?i.jsx(Pe,{variant:"green",children:"Enabled"}):null]}),i.jsx("p",{className:`mt-1 ${ku} max-w-[68ch]`,children:f})]}),i.jsx("div",{children:m?i.jsxs(ke,{size:"sm",variant:"danger",onClick:()=>c(u,!1),disabled:!t||n===u||e.isLoading,children:[i.jsx(Tm,{size:13}),n===u?"Disabling":"Disable"]}):i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>c(u,!0),disabled:!t||n===u||e.isLoading,children:n===u?"Enabling":"Enable"})})]},u)})})]})}function UFe({merchantId:t}){var j;const e=Ro(),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),{data:y,mutate:b}=ut(t?["rule-elimination",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});g.useEffect(()=>{var k,_;if((k=y==null?void 0:y.config)!=null&&k.data){const S=y.config.data;r(String(S.threshold)),s(((_=S.txnLatency)==null?void 0:_.gatewayLatency)!=null?String(S.txnLatency.gatewayLatency):"")}},[y]);async function v(){if(!t)return;const k=parseFloat(n);if(isNaN(k)||k<0||k>1){u("Threshold must be a number between 0 and 1.");return}l(!0),u(null),f(!1);try{const _=y?"/rule/update":"/rule/create",S=a!==""?parseFloat(a):null;await Ve(_,{merchant_id:t,config:{type:"elimination",data:{threshold:k,txnLatency:S!=null?{gatewayLatency:S}:null}}}),f(!0),b()}catch(_){u(_ instanceof Error?_.message:String(_))}finally{l(!1)}}async function w(){if(t){p(!0);try{await Ve("/rule/delete",{merchant_id:t,algorithm:"elimination"}),r(""),s(""),b(void 0,{revalidate:!1})}catch(k){u(k instanceof Error?k.message:String(k))}finally{p(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[t&&((j=y==null?void 0:y.config)==null?void 0:j.data)&&i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:La,children:"Elimination Configuration"}),i.jsxs("p",{className:`mt-1 ${gc}`,children:["Elimination routing is active · threshold ",y.config.data.threshold]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Pe,{variant:"green",children:"Active"}),i.jsxs(ke,{type:"button",variant:"ghost",size:"sm",onClick:()=>x(k=>!k),children:[i.jsx(Ef,{size:14,className:"mr-1"}),m?"Hide":"View"]}),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",disabled:h||!e,onClick:()=>{confirm("Clear the Elimination configuration?")&&w()},children:[i.jsx(Cn,{size:14,className:"mr-1"}),h?"Clearing…":"Clear"]})]})]}),m&&i.jsx(ze,{className:"border-t border-slate-100 dark:border-[#222226] text-xs text-slate-600 dark:text-[#b2bdd1]",children:i.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-3 font-mono text-xs dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef]",children:JSON.stringify(y.config,null,2)})})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"Elimination"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Each gateway carries a health score that decays on consecutive failures and recovers on successes. Below the threshold, it drops out of routing until it recovers."})]}),i.jsxs(ze,{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsxs("span",{className:ts,children:["Threshold ",i.jsx("span",{className:"text-red-600",children:"*"})]}),i.jsx("input",{type:"number",step:"0.01",min:"0",max:"1",value:n,onChange:k=>r(k.target.value),placeholder:"0.05",className:Bx}),i.jsx("p",{className:ku,children:"Health score from 0 to 1, not success rate. Lower tolerates more failures before dropping a gateway."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Gateway latency threshold (ms)"}),i.jsx("input",{type:"number",value:a,onChange:k=>s(k.target.value),placeholder:"5000",className:Bx}),i.jsx("p",{className:ku,children:"Gateways slower than this are eliminated too. Leave blank to disable."})]})]})]}),i.jsx(_t,{error:c}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Elimination configuration saved successfully."}),i.jsx(ke,{onClick:v,disabled:o||!t||n===""||!e,children:o?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save Elimination Config"})]})}function VFe(t){var r;const n=(((r=v2(t))==null?void 0:r.gateways)??[]).filter(a=>a.gatewayName.trim());return n.length===0?"No gateways configured":n.map(a=>`${a.gatewayName} ${a.split}%`).join(" / ")}function g9(t){var e;return(((e=v2(t))==null?void 0:e.gateways)??[]).map(n=>n.gatewayName.trim()).filter(Boolean)}function WFe(){const t=Ro(),e=Kr(),{merchantId:n}=Er(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState("all"),[k,_]=g.useState("all"),[S,N]=g.useState(""),{data:E,mutate:P}=ut(n?`/routing/list/${n}`:null,()=>Ve(`/routing/list/${n}`)),{data:M,mutate:A}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`)),O=new Set((M||[]).map(R=>R.id)),D=(M||[]).find(R=>{var U;const z=(U=R.algorithm_data||R.algorithm)==null?void 0:U.type;return z&&z!=="volume_split"}),I=(E||[]).filter(R=>{var z;return((z=R.algorithm_data||R.algorithm)==null?void 0:z.type)==="volume_split"}).sort((R,z)=>K0(z)-K0(R)),X=Array.from(new Set(I.flatMap(g9))).sort(),Q=I.filter(R=>{if(w==="active"&&!O.has(R.id)||w==="inactive"&&O.has(R.id)||k!=="all"&&!g9(R).includes(k))return!1;if(S.trim()){const z=S.trim().toLowerCase();if(!R.name.toLowerCase().includes(z)&&!R.id.toLowerCase().includes(z))return!1}return!0});function V(R){a(z=>{const U=new Set(z);return U.has(R)?U.delete(R):U.add(R),U})}async function Y(R){if(n){if(D){o(R);return}await H(R)}}async function H(R){h(!0),y(null),v(null);try{await Ve("/routing/activate",{created_by:n,routing_algorithm_id:R}),v("Rule activated."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to activate")}finally{h(!1)}}async function G(R){m(R),y(null),v(null);try{await Ve("/routing/deactivate",{created_by:n,routing_algorithm_id:R}),v("Rule deactivated."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to deactivate")}finally{m(null)}}async function $(R){if(n){y(null),v(null);try{await Ve("/routing/delete",{created_by:n,routing_algorithm_id:R}),v("Rule deleted."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to delete")}finally{d(null)}}}const F=I.find(R=>R.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(qs,{open:s!==null,title:"Switch to Volume Split Routing?",description:`"${D==null?void 0:D.name}" is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const R=s;o(null),H(R)},onCancel:()=>o(null)}),i.jsx(qs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const R=l;c(null),G(R)},onCancel:()=>c(null)}),i.jsx(qs,{open:u!==null,title:"Delete this rule?",description:`"${F==null?void 0:F.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>$(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(qr,{title:"Volume Split Routing",description:"Divide payment traffic across gateways by fixed percentages, independent of transaction attributes."})}),i.jsxs(ke,{onClick:()=>e("/routing/volume/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?I.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No volume split rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Rule Name & ID",value:S,onChange:N,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:R=>j(R),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Distribution",value:k,options:[{value:"all",label:"All gateways"},...X.map(R=>({value:R,label:R}))],onChange:_,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Q.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),_("all"),N("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Q.map(R=>{var re;const z=O.has(R.id),U=r.has(R.id),ee=VFe(R),pe=z?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":R.name,onClick:()=>V(R.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${z?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[U?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:R.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:R.id})]})]})}),i.jsx("td",{className:"px-5 py-4",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${z?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:z?"Active":"Inactive"})}),i.jsx("td",{className:"max-w-[320px] px-5 py-4",children:i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",title:ee,children:ee})}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const he=EG(R);return he?i.jsxs("span",{title:he.full,children:[he.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:he.time})]}):"—"})()}),i.jsx("td",{className:"px-5 py-4",onClick:he=>he.stopPropagation(),children:i.jsx(HT,{items:[z?{label:p===R.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>c(R.id),disabled:p===R.id||!t}:{label:"Activate",icon:bT,tone:"positive",onSelect:()=>Y(R.id),disabled:f||!t},{label:"Edit",icon:El,onSelect:()=>e(`/routing/volume/${R.id}/edit`),disabled:!!pe,hint:pe},{label:"Duplicate",icon:lf,onSelect:()=>e(`/routing/volume/new?cloneFrom=${R.id}`),disabled:!t},{label:"Delete",icon:Cn,tone:"danger",onSelect:()=>d(R.id),disabled:!!pe,hint:pe}]})})]},R.id),U?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:5,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[R.description&&R.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:R.description}),i.jsx(gX,{gateways:((re=v2(R))==null?void 0:re.gateways)??[]})]})},`${R.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs(Fa,{tone:"warning",children:[i.jsxs("strong",{children:["“",D.name,"” is active"]})," — activating a volume split rule will automatically deactivate it."]})]})}function HFe(t){if(!t.name.trim())return"Enter an experiment name";if(t.experimentType==="sr_config_tuning"){const e=t.variantSrConfig;if(e.hedgingPercent!==null&&(e.hedgingPercent<0||e.hedgingPercent>100))return"Hedging % must be between 0 and 100";if(e.eliminationThreshold!==null&&(e.eliminationThreshold<0||e.eliminationThreshold>1))return"Elimination threshold must be between 0 and 1";if(e.hedgingPercent===null&&e.eliminationThreshold===null)return"Set at least one parameter override for the variant arm"}else{if(!t.controlAlgorithmId)return"Select a control strategy";if(!t.variantAlgorithmId)return"Select a variant strategy";if(t.controlAlgorithmId===t.variantAlgorithmId)return"Control and variant must be different strategies"}return t.variantSplitPct<5||t.variantSplitPct>30?"Variant traffic must be between 5% and 30%":t.minSampleSize<100?"Minimum sample size must be at least 100 transactions":t.guardrailThresholdPp<=0||t.guardrailThresholdPp>20?"Guardrail threshold must be between 0.1 and 20 percentage points":null}function GFe(t){const e={};return t.hedgingPercent!==null&&(e.hedging_percent=t.hedgingPercent),t.eliminationThreshold!==null&&(e.elimination_threshold=t.eliminationThreshold),e}const qFe={sr_config_tuning:t=>`SR config tuning: ${t}% variant traffic`,algorithm_comparison:t=>`A/B test: ${t}% variant traffic`};function x9(t){switch(t){case"sr_auth":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!1}};case"sr_auth_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!0}};case"sr_mo_manual":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!1}};case"sr_mo_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!0}};default:return{id:t}}}function KFe(t,e){const n={variant_split_pct:t.variantSplitPct,min_sample_size:t.minSampleSize,guardrail_threshold_pp:t.guardrailThresholdPp};let r;if(t.experimentType==="sr_config_tuning")r={...n,control_algorithm_id:"sr_routing",variant_algorithm_id:"sr_routing",variant_sr_config:GFe(t.variantSrConfig)};else{const a=x9(t.controlAlgorithmId),s=x9(t.variantAlgorithmId);r={...n,control_algorithm_id:a.id,variant_algorithm_id:s.id,...a.config&&{control_sr_config:a.config},...s.config&&{variant_sr_config:s.config}}}return{name:t.name.trim(),description:qFe[t.experimentType](t.variantSplitPct),created_by:e,algorithm_for:"payment",metadata:{},algorithm:{type:"ab_test",data:r}}}const lM={sr_auth:"Maximize approvals · manual tuning",sr_auth_autopilot:"Maximize approvals · auto-tuned",sr_mo_manual:"Approvals + save on fees · manual",sr_mo_autopilot:"Approvals + save on fees · auto-tuned"},YFe={hedgingPercent:null,eliminationThreshold:null};function XFe(t){const e=t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function y9(t,e){return t!=="sr_routing"?t:(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth"}function v9(t){var r,a;const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="ab_test")return null;const n=e.data;return{name:t.name,experimentType:XFe(n),controlAlgorithmId:y9(n.control_algorithm_id,n.control_sr_config),variantAlgorithmId:y9(n.variant_algorithm_id,n.variant_sr_config),variantSplitPct:n.variant_split_pct,minSampleSize:n.min_sample_size,guardrailThresholdPp:n.guardrail_threshold_pp,variantSrConfig:{hedgingPercent:((r=n.variant_sr_config)==null?void 0:r.hedging_percent)??null,eliminationThreshold:((a=n.variant_sr_config)==null?void 0:a.elimination_threshold)??null}}}const b9=[1e3,5e3,1e4,5e4],JFe={algorithm_comparison:"Compare any two routing strategies — SR (auth), SR cost-aware (manual/autopilot), rule-based, or volume split.",sr_config_tuning:"Same SR algorithm, different hedging % or elimination threshold on the variant."};function KX(t){const e=t==null?void 0:t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function ZFe(t){var e,n;return((e=t==null?void 0:t.control_sr_config)==null?void 0:e.enable_multi_objective)===!0||((n=t==null?void 0:t.variant_sr_config)==null?void 0:n.enable_multi_objective)===!0}function QFe({kind:t}){return t==="sr_config_tuning"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-violet-100 text-violet-700 dark:bg-violet-900/30 dark:text-violet-300 leading-4",children:[i.jsx(kH,{size:9})," SR Config Tuning"]}):null}function xy(t,e,n){if(t==="sr_routing"){const r=(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth";return lM[r]}return n(t)}function X5({algorithmId:t,algorithms:e}){const n=e.find(o=>o.id===t);if(!n)return null;const r=n.algorithm_data||n.algorithm,a=r==null?void 0:r.type,s=r==null?void 0:r.data;if(a==="advanced")return i.jsx(YT,{algo:n});if(a==="priority"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-xs font-medium text-brand-700 dark:text-brand-300",children:[c+1,". ",l.gateway_name]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connectors configured."})}if(a==="volume_split"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300",children:[l.output.gateway_name," ",l.split,"%"]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No splits configured."})}if(a==="single"){const o=s;return o?i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-xs font-medium text-slate-600 dark:text-[#8090a8]",children:o.gateway_name}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connector configured."})}return null}function vf({text:t}){const[e,n]=g.useState(null);return i.jsxs("span",{tabIndex:0,"aria-label":t,className:"inline-flex cursor-help align-middle text-slate-500 hover:text-slate-600 focus:text-slate-600 focus:outline-none dark:text-slate-400 dark:hover:text-slate-300 dark:focus:text-slate-300 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-brand-500/60",onMouseEnter:r=>n({x:r.clientX,y:r.clientY}),onMouseLeave:()=>n(null),onFocus:r=>{const a=r.currentTarget.getBoundingClientRect();n({x:a.left+a.width/2,y:a.bottom})},onBlur:()=>n(null),children:[i.jsx(Qu,{size:12}),e&&fs.createPortal(i.jsx("span",{role:"tooltip",style:{position:"fixed",left:Math.min(e.x+14,window.innerWidth-252),top:e.y+16,maxWidth:240},className:"pointer-events-none z-[200] block w-max rounded-lg bg-slate-900 px-2.5 py-1.5 text-xs font-normal leading-snug text-white shadow-lg dark:bg-slate-700",children:t}),document.body)]})}function yN({children:t,hint:e,required:n}){return i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:[t,n&&i.jsx("span",{className:"text-slate-500",children:"*"}),e&&i.jsx(vf,{text:e})]})}const cp="border border-slate-200 bg-transparent rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function vN({children:t,divide:e}){return i.jsx("section",{className:`space-y-4 ${e?"border-t border-slate-200 dark:border-[#262d3a] pt-6":""}`,children:t})}const w9={advanced:"Rule-based",volume_split:"Volume split",priority:"Priority list",single:"Single connector"},YX=Object.keys(lM),Lg=t=>YX.includes(t);function k9({label:t,help:e,accent:n,algorithms:r,value:a,excludeId:s,allowedSrStrategies:o,liveSrConfig:l,onChange:c}){var b;const u=YX.filter(v=>o.includes(v)||a===v),d=v=>{var j;if(Lg(v))return v;const w=r.find(k=>k.id===v);return w?((j=w.algorithm_data||w.algorithm)==null?void 0:j.type)??"":""},[f,h]=g.useState(()=>d(a));g.useEffect(()=>{const v=d(a);v&&h(v)},[a,r]);const p=Array.from(new Set(r.map(v=>{var w;return(w=v.algorithm_data||v.algorithm)==null?void 0:w.type}).filter(Boolean))),m=f&&!Lg(f)?r.filter(v=>{var w;return((w=v.algorithm_data||v.algorithm)==null?void 0:w.type)===f}):[];function x(v){if(h(v),Lg(v)){c(v);return}if(!v){c("");return}const w=r.filter(j=>{var k;return((k=j.algorithm_data||j.algorithm)==null?void 0:k.type)===v});c(w.length===1?w[0].id:"")}const y=`w-full ${cp}`;return i.jsxs("div",{className:`rounded-xl border p-3 ${n?"border-brand-200 bg-brand-50/40 dark:border-brand-800/50 dark:bg-brand-900/10":"border-slate-200 bg-slate-50/50 dark:border-[#222226] dark:bg-[#0c0c10]"}`,children:[i.jsxs("div",{className:"mb-2 flex items-center gap-1.5",children:[i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:t}),i.jsx(vf,{text:e})]}),i.jsxs("select",{className:y,value:f,onChange:v=>x(v.target.value),children:[i.jsx("option",{value:"",children:"Select strategy"}),u.map(v=>i.jsx("option",{value:v,disabled:s===v,children:lM[v]},v)),p.map(v=>i.jsx("option",{value:v,children:w9[v]??v},v))]}),m.length>1&&i.jsxs("select",{className:`${y} mt-2`,value:a,onChange:v=>c(v.target.value),children:[i.jsxs("option",{value:"",children:["Select ",((b=w9[f])==null?void 0:b.toLowerCase())??"config"]}),m.map(v=>i.jsx("option",{value:v.id,disabled:v.id===s,children:v.name},v.id))]}),m.length===1&&i.jsxs("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:["Using ",i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:m[0].name})]}),a&&!Lg(a)&&i.jsx("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:i.jsx(X5,{algorithmId:a,algorithms:r})}),a&&Lg(a)&&i.jsxs("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] mb-1.5 leading-4",children:"Base SR config"}),i.jsx(n9e,{hedging:l.hedging,elimination:l.elimination,bucketSize:l.bucketSize,autopilotSegmentCount:l.autopilotSegmentCount,autopilotFeatureOn:l.autopilotFeatureOn,honorsAutopilot:a==="sr_mo_autopilot"||a==="sr_auth_autopilot"})]})]})}function j9(t){return`${t>0?"+":""}${t.toFixed(2)}pp`}function Fb(t){return`${(t*100).toFixed(2)}%`}function e9e({verdict:t}){return t==="collecting_data"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(hH,{size:11})," Collecting data"]}):t==="variant_wins"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[i.jsx(Gp,{size:11})," Variant wins"]}):t==="variant_loses"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Hj,{size:11})," Variant loses"]}):t==="guardrail_breached"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Pm,{size:11})," Guardrail breached"]}):t==="not_significant"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(Gp,{size:11})," No significant difference"]}):null}const t9e="autopilot";function XX(t){var r,a,s,o,l,c,u,d;const{data:e}=ut(t?["rule-sr-live",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{data:n}=ut(t?["rule-elim-live",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});return{liveHedging:((a=(r=e==null?void 0:e.config)==null?void 0:r.data)==null?void 0:a.defaultHedgingPercent)??null,liveElimination:((o=(s=n==null?void 0:n.config)==null?void 0:s.data)==null?void 0:o.threshold)??null,liveBucketSize:((c=(l=e==null?void 0:e.config)==null?void 0:l.data)==null?void 0:c.defaultBucketSize)??null,autopilotSegmentCount:(((d=(u=e==null?void 0:e.config)==null?void 0:u.data)==null?void 0:d.subLevelInputConfig)??[]).filter(f=>f.source===t9e).length}}function n9e({hedging:t,elimination:e,bucketSize:n,autopilotSegmentCount:r,honorsAutopilot:a,autopilotFeatureOn:s}){return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Hedging %"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:t!==null?`${t}%`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Elimination threshold"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:e!==null?`Drops below ${(e*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket size"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:n!==null?`${n} requests`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),a&&s&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-amber-700 dark:text-amber-400 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Auto-tunes bucket size and hedging % per segment, based on your traffic volume.",i.jsx(vf,{text:r>0?`Autopilot is tuning ${r} segment${r===1?"":"s"} (by payment method / network / currency / country) — bucket size and hedging % can differ per segment and over time, so the values above are just the base config.`:"Autopilot will start tuning bucket size and hedging % per segment once enough traffic flows through it. Until then, every transaction uses the base config shown above."})]}),a&&!s&&r>0&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-slate-500 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Autopilot is off — ",r," segment",r===1?"":"s"," from earlier tuning",i.jsx(vf,{text:`Autopilot (auto-calibration) is currently disabled for this merchant. ${r} segment${r===1?"":"s"} still carry values it tuned before being turned off, but nothing is being actively adjusted right now — every transaction uses the base config shown above.`})]})]})}function r9e(t){return t==="variant_wins"||t==="variant_loses"||t==="guardrail_breached"}function a9e({verdict:t}){return t==="not_significant"?i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-slate-300 bg-slate-50 px-4 py-3 dark:border-slate-600/40 dark:bg-slate-500/10",children:[i.jsx(Qu,{size:16,className:"mt-0.5 shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("p",{className:"text-[13px] text-slate-700 dark:text-slate-300 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-slate-900 dark:text-slate-100",children:"Sample target reached — no significant difference."})," ","Control and variant are statistically tied: the delta below sits within the 95% confidence interval, so neither strategy is a proven winner. Collecting more traffic won't change this unless the true gap is larger than the current split can detect — a wider variant allocation would tighten the interval faster."]})]}):i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(Pm,{size:16,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("p",{className:"text-[13px] text-amber-800 dark:text-amber-300/90 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-amber-900 dark:text-amber-200",children:"Not statistically significant yet."})," ","The deltas below are still within noise — let the experiment reach its sample target before drawing conclusions."]})]})}function Dk({label:t,pct:e,accent:n}){return i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:[t," · ",e,"%"]})}function s9e({abData:t,isTuning:e,controlPct:n,variantPct:r,live:a,autopilotOn:s,algorithmName:o,algorithms:l}){var x,y,b,v;const c=t.control_algorithm_id==="sr_routing",u=t.variant_algorithm_id==="sr_routing",d=w=>i.jsx("span",{className:"italic text-slate-500",children:w}),f=i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"—"}),h=w=>i.jsx("span",{className:"font-medium text-brand-600 dark:text-brand-400",children:w}),p=w=>`Drops below ${(w*100).toFixed(0)}% score`,m=[{label:"Strategy",control:xy(t.control_algorithm_id,t.control_sr_config,o),variant:xy(t.variant_algorithm_id,t.variant_sr_config,o)}];if(e){const w=(x=t.variant_sr_config)==null?void 0:x.hedging_percent,j=(y=t.variant_sr_config)==null?void 0:y.elimination_threshold;m.push({label:"Hedging %",control:a.hedging!=null?`${a.hedging}%`:d("Uses default"),variant:typeof w=="number"?h(`${w}%`):d("Same as control")}),m.push({label:"Elimination threshold",control:a.elimination!=null?p(a.elimination):d("Uses default"),variant:typeof j=="number"?h(p(j)):d("Same as control")})}else{if(c||u){const w=c&&((b=t.control_sr_config)==null?void 0:b.use_autopilot)!==!1&&s,j=u&&((v=t.variant_sr_config)==null?void 0:v.use_autopilot)!==!1&&s,k=(N,E)=>N?E?d("Auto-tuned per segment"):a.hedging!=null?`${a.hedging}%`:d("Uses default"):f,_=(N,E)=>N?E?d("Auto-tuned per segment"):a.bucketSize!=null?`${a.bucketSize} requests`:d("Uses default"):f,S=N=>N?a.elimination!=null?p(a.elimination):d("Uses default"):f;m.push({label:"Hedging %",control:k(c,w),variant:k(u,j)}),m.push({label:"Elimination threshold",control:S(c),variant:S(u)}),m.push({label:"Bucket size",control:_(c,w),variant:_(u,j)})}(!c||!u)&&m.push({label:"Routing rule",control:c?d("SR scoring"):i.jsx(X5,{algorithmId:t.control_algorithm_id,algorithms:l}),variant:u?d("SR scoring"):i.jsx(X5,{algorithmId:t.variant_algorithm_id,algorithms:l})})}return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"w-[28%] px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Attribute"}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(Dk,{label:"Control",pct:n})}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(Dk,{label:"Variant",pct:r,accent:!0})})]})}),i.jsx("tbody",{children:m.map((w,j)=>i.jsxs("tr",{className:j>0?"border-t border-slate-100 dark:border-[#1a1a22]":"",children:[i.jsx("td",{className:"px-4 py-2.5 align-top text-[13px] font-medium text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:w.label}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.control}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.variant})]},w.label))})]})})}function i9e({results:t,controlPct:e,variantPct:n,costKind:r,significant:a}){const s=t.control,o=t.variant,l=(o.auth_rate-s.auth_rate)*100,c=(o.first_attempt_auth_rate-s.first_attempt_auth_rate)*100,u=(o.total_cost_saved??0)-(s.total_cost_saved??0),d=p=>a?p>0?"text-emerald-700 dark:text-emerald-400":p<0?"text-red-600":"text-slate-500":"text-slate-500 dark:text-slate-400",f="px-4 py-2.5 text-right text-slate-700 dark:text-slate-200",h=(p,m)=>i.jsxs("td",{className:"px-4 py-2.5",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:p})," ",i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:m})]});return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm [font-variant-numeric:tabular-nums]",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Metric"}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(Dk,{label:"Control",pct:e})}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(Dk,{label:"Variant",pct:n,accent:!0})}),i.jsx("th",{className:"px-4 py-2.5 text-right text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Delta"})]})}),i.jsxs("tbody",{children:[i.jsxs("tr",{children:[h("Net auth rate","NAR"),i.jsx("td",{className:f,children:Fb(s.auth_rate)}),i.jsx("td",{className:f,children:Fb(o.auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(l)}`,children:j9(l)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("First-attempt rate","FAAR"),i.jsx("td",{className:f,children:Fb(s.first_attempt_auth_rate)}),i.jsx("td",{className:f,children:Fb(o.first_attempt_auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(c)}`,children:j9(c)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Transactions","count"),i.jsx("td",{className:f,children:s.transaction_count.toLocaleString()}),i.jsx("td",{className:f,children:o.transaction_count.toLocaleString()}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Outcome","success / fail"),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:s.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:s.failure_count.toLocaleString()})]}),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:o.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:o.failure_count.toLocaleString()})]}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),r&&i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Cost saved","TCS"),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:s.total_cost_saved!=null?s.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:o.total_cost_saved!=null?o.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(u)}`,children:`${u>0?"+":""}${u.toLocaleString(void 0,{maximumFractionDigits:2})}`})]})]})]})})}function o9e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t))}function l9e({algorithm:t,isActive:e,merchantId:n,algorithmName:r,algorithms:a,onActivate:s,onStop:o,onEdit:l,onDelete:c,onClone:u,realPaymentsOn:d}){var ee,pe;const f=Ro(),h=(ee=t.algorithm_data||t.algorithm)==null?void 0:ee.data,p=KX(h),m=p==="sr_config_tuning",x=ZFe(h),{liveHedging:y,liveElimination:b,liveBucketSize:v}=XX(n||void 0),w=Al(n||void 0),j=w.isEnabled("auto-calibration")||w.isEnabled("autopilot"),k=(pe=h==null?void 0:h.variant_sr_config)==null?void 0:pe.margin,_=h?`/analytics/experiment/${t.id}/results?min_sample_size=${h.min_sample_size}&guardrail_threshold_pp=${h.guardrail_threshold_pp}${k!==void 0?`&evaluation_margin=${k}`:""}`:null,{data:S,isLoading:N}=ut(n&&_?_:null,Lt,{refreshInterval:6e4}),E=20,[P,M]=g.useState(1),A=`/analytics/experiment/${t.id}/transactions?page_size=${E}&page=${P}`,{data:O,isLoading:D}=ut(n?A:null,Lt,{refreshInterval:6e4});function I(re){if(!h)return"—";const he=re==="control"?h.control_algorithm_id:h.variant_algorithm_id,q=re==="control"?h.control_sr_config:h.variant_sr_config;return he==="sr_routing"&&m?re==="variant"?"SR Routing (custom params)":"SR Routing (live config)":xy(he,q,r)}function X(re,he){if(!(he==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing"))return;const W=`/audit?range=1d&exclude_routing_approach=NTW_BASED_ROUTING&payment_id=${encodeURIComponent(re)}`;window.open(W,"_blank")}function Q(re,he){if(he<=7)return Array.from({length:he},(me,ve)=>ve+1);const W=Math.floor(5/2);let ue=re-W,te=re+W;ue<2&&(te+=2-ue,ue=2),te>he-1&&(ue-=te-(he-1),te=he-1),ue=Math.max(2,ue),te=Math.min(he-1,te);const ie=[1];ue>2&&ie.push(null);for(let me=ue;me<=te;me++)ie.push(me);return te{if(F!=="active"||V<=0||V>=Y)return null;const re=t.modified_at?Date.parse(t.modified_at):NaN;if(!Number.isFinite(re))return null;const he=Date.now()-re;if(he<=0)return null;const W=he/V*(Y-V)/36e5;if(!Number.isFinite(W)||W<=0)return null;const ue="at current volume";return W<1?`~${Math.max(1,Math.round(W*60))} min remaining ${ue}`:W<48?`~${Math.round(W)} hrs remaining ${ue}`:`~${Math.round(W/24)} days remaining ${ue}`})(),U=h?[{label:"Traffic split",value:`${G}% / ${$}%`},{label:"Sample target",value:`${Y.toLocaleString()} txns`},{label:"Guardrail",value:`${h.guardrail_threshold_pp}pp`}]:[];return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white px-5 py-5 dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx("div",{className:"min-w-0",children:i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h2",{className:"text-lg font-semibold tracking-tight text-slate-900 dark:text-white",children:t.name}),i.jsx(QFe,{kind:p}),F==="active"&&i.jsx(Pe,{variant:"green",children:"Active"}),F==="paused"&&i.jsx(Pe,{variant:"orange",children:"Not collecting"}),F==="inactive"&&i.jsx(Pe,{variant:"gray",children:"Inactive"})]})}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:e?i.jsxs(i.Fragment,{children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(lf,{size:13})," Duplicate"]}),i.jsxs(ke,{size:"sm",variant:"danger",onClick:o,disabled:!f,children:[i.jsx(Tm,{size:13})," Stop"]})]}):i.jsxs(i.Fragment,{children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(lf,{size:13})," Duplicate"]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:l,disabled:!f,children:[i.jsx(El,{size:13})," Edit"]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:c,disabled:!f,children:[i.jsx(Cn,{size:13})," Delete"]}),i.jsx(ke,{size:"sm",variant:"primary",onClick:s,disabled:!f,children:"Activate"})]})})]}),U.length>0&&i.jsx("div",{className:"mt-4 flex flex-wrap gap-y-3",children:U.map((re,he)=>i.jsxs("div",{className:`min-w-[8rem] pr-6 ${he>0?"border-l border-slate-200 pl-6 dark:border-[#222226]":""}`,children:[i.jsx("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:re.label}),i.jsx("p",{className:"mt-0.5 text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:re.value})]},re.label))}),S&&i.jsxs("div",{className:"mt-5 space-y-2 border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"flex items-end justify-between",children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Transactions collected"}),i.jsxs("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:[V.toLocaleString()," ",i.jsxs("span",{className:"text-slate-500",children:["/ ",Y.toLocaleString()]})]})]}),i.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${R?"bg-emerald-500":"bg-brand-500"}`,style:{width:`${H}%`}})}),i.jsxs("p",{className:"text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[H,"% of the ",Y.toLocaleString(),"-transaction target",z?` · ${z}`:""]})]})]}),h&&i.jsxs("section",{className:"space-y-2.5 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsx("h3",{className:La,children:"Configuration"}),i.jsx(s9e,{abData:h,isTuning:m,controlPct:G,variantPct:$,live:{hedging:y,elimination:b,bucketSize:v},autopilotOn:j,algorithmName:r,algorithms:a})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:La,children:"Results"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:"Updates every 60 seconds"})]}),S&&i.jsx(e9e,{verdict:S.verdict})]}),N&&!S?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[i.jsx(mt,{size:14})," Loading stats…"]}):S?i.jsxs("div",{className:"space-y-4",children:[!R&&i.jsx(a9e,{verdict:S.verdict}),i.jsx(i9e,{results:S,controlPct:G,variantPct:$,costKind:x,significant:R}),S.verdict==="guardrail_breached"&&i.jsxs(Fa,{tone:"danger",children:[i.jsx(zCe,{size:12}),"Variant auth rate dropped ",Math.abs(S.delta_pp).toFixed(2),"pp below control — beyond the ",h==null?void 0:h.guardrail_threshold_pp,"pp guardrail. Consider stopping the experiment."]})]}):i.jsx("p",{className:"text-sm italic text-slate-500",children:"Stats unavailable — analytics pipeline may not be configured in this environment."})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:La,children:"Transactions"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:O?`${O.total.toLocaleString()} decisions`:"Loading…"})]}),D&&i.jsx(mt,{size:14})]}),i.jsxs("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:[i.jsx("table",{className:"w-full text-sm",children:i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-xs text-slate-500 bg-slate-50 dark:bg-[#0c0c10] border-b border-slate-200 dark:border-[#222226]",children:[i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Arm"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Routing"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Payment ID"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Gateway"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Status"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Time"})]})})}),i.jsxs("div",{className:"max-h-[400px] overflow-y-auto",children:[i.jsx("table",{className:"w-full text-base",children:i.jsx("tbody",{children:O!=null&&O.transactions.length?O.transactions.map((re,he)=>{const q=re.variant_arm==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing";return i.jsxs("tr",{onClick:()=>X(re.payment_id,re.variant_arm),title:q?"Open in Decision Audit":"Audit trail not available for static arm payments",className:`border-b border-slate-50 dark:border-[#131318] transition-colors ${q?"cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f16]":"cursor-default opacity-60"}`,children:[i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-semibold ${re.variant_arm==="control"?"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300":"bg-brand-100 text-brand-700 dark:bg-brand-900/30 dark:text-brand-300"} leading-4`,children:re.variant_arm==="control"?"Control":"Variant"})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 dark:text-slate-400 whitespace-nowrap",children:I(re.variant_arm)}),i.jsx("td",{className:"px-4 py-3 font-mono text-sm text-slate-600 dark:text-slate-400 max-w-[180px] truncate",children:re.payment_id}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-700 dark:text-slate-300",children:re.gateway??"—"}),i.jsx("td",{className:"px-4 py-3",children:re.status==="success"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400 leading-4",children:"success"}):re.status==="failure"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400 leading-4",children:"failure"}):i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 leading-4",title:"Payment was routed but no outcome was recorded — counted against auth rate",children:[i.jsx(hH,{size:9})," no outcome"]})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 whitespace-nowrap",children:o9e(re.created_at_ms)})]},`${re.payment_id}-${he}`)}):i.jsx("tr",{children:i.jsx("td",{colSpan:6,className:"px-4 py-8 text-base text-slate-500 text-center",children:D?"Loading…":"No transactions logged yet for this experiment."})})})}),O&&O.total>E&&(()=>{const re=Math.ceil(O.total/E);return i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-t border-slate-100 dark:border-[#1e2330]",children:[i.jsxs("p",{className:"text-sm text-slate-500",children:["Page ",P," of ",re," · ",O.total.toLocaleString()," total"]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",onClick:()=>M(he=>Math.max(1,he-1)),disabled:P===1||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"← Prev"}),Q(P,re).map((he,q)=>he===null?i.jsx("span",{className:"px-1 text-sm text-slate-500",children:"…"},`ellipsis-${q}`):i.jsx("button",{type:"button",onClick:()=>M(he),disabled:D,className:`min-w-[28px] px-2 py-1 rounded-md border text-sm transition-colors ${he===P?"border-brand-500 bg-brand-500 text-white":"border-slate-200 dark:border-[#222226] text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22]"}`,children:he},he)),i.jsx("button",{type:"button",onClick:()=>M(he=>Math.min(re,he+1)),disabled:P===re||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"Next →"})]})]})})()]})]})]})]})}function c9e({label:t,splitPct:e,config:n,onChange:r}){return i.jsxs("div",{className:"rounded-xl border border-brand-200 dark:border-brand-800/50 bg-brand-50/30 dark:bg-brand-900/10 px-4 py-4 space-y-3",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-brand-100 px-2 py-0.5 text-[11px] font-semibold text-brand-700 dark:bg-brand-900/40 dark:text-brand-300 leading-4",children:[t," (",e,"%)"]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:["Hedging %",i.jsx(vf,{text:"Share of traffic sent to non-top gateways to keep their scores fresh (the explore-exploit tradeoff)."})]}),i.jsx("input",{type:"number",min:0,max:100,step:1,value:n.hedgingPercent??"",placeholder:"e.g. 5",onChange:a=>r(s=>({...s,hedgingPercent:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${cp}`})]}),i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:["Elimination threshold (0–1)",i.jsx(vf,{text:"SR score (0–1) below which a gateway is dropped from routing."})]}),i.jsx("input",{type:"number",min:0,max:1,step:.01,value:n.eliminationThreshold??"",placeholder:"e.g. 0.70",onChange:a=>r(s=>({...s,eliminationThreshold:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${cp}`})]})]})]})}function S9({form:t,setForm:e,eligibleAlgorithms:n,saving:r,error:a,success:s,createdId:o,merchantId:l,isEditing:c,onCreate:u,onActivateCreated:d,onCancel:f}){const h=Ro(),p=Al(l||void 0),m=p.isEnabled("multi-objective-routing"),x=p.isEnabled("auto-calibration")||p.isEnabled("autopilot"),y=["sr_auth",...x?["sr_auth_autopilot"]:[],...m?["sr_mo_manual"]:[],...m&&x?["sr_mo_autopilot"]:[]],{liveHedging:b,liveElimination:v,liveBucketSize:w,autopilotSegmentCount:j}=XX(l||void 0),[k,_]=g.useState(!b9.includes(t.minSampleSize)),S=N=>`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors ${t.experimentType===N?"bg-white text-slate-900 shadow-sm dark:bg-[#2a3140] dark:text-white":"text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-white"}`;return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h2",{className:La,children:c?"Edit experiment":"New experiment"})}),i.jsxs(ze,{className:"space-y-6",children:[c&&i.jsxs("div",{children:[i.jsx(yN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${cp}`,value:t.name,onChange:N=>e(E=>({...E,name:N.target.value}))}),i.jsx("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:"Only the name can be changed. To test a different routing setup, create a new experiment."})]}),!c&&i.jsxs(i.Fragment,{children:[i.jsxs(vN,{children:[i.jsxs("div",{children:[i.jsx("label",{className:`mb-2 block ${ts}`,children:"Experiment type"}),i.jsxs("div",{className:"inline-flex rounded-lg border border-slate-200 bg-slate-100 p-0.5 dark:border-[#222226] dark:bg-[#14181f]",children:[i.jsxs("button",{type:"button",className:S("algorithm_comparison"),onClick:()=>e(N=>({...N,experimentType:"algorithm_comparison"})),children:[i.jsx($Ce,{size:13})," Algorithm comparison"]}),i.jsxs("button",{type:"button",className:S("sr_config_tuning"),onClick:()=>e(N=>({...N,experimentType:"sr_config_tuning"})),children:[i.jsx(kH,{size:13})," SR config tuning"]})]}),i.jsxs("div",{className:"mt-2.5 flex items-start gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-[#14181f]",children:[i.jsx(Qu,{size:14,className:"mt-0.5 shrink-0 text-slate-500"}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:JFe[t.experimentType]})]})]}),i.jsxs("div",{children:[i.jsx(yN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${cp}`,placeholder:t.experimentType==="sr_config_tuning"?"e.g. Hedging 10% vs 5%":"e.g. Stripe vs Checkout.com",value:t.name,onChange:N=>e(E=>({...E,name:N.target.value}))})]}),t.experimentType==="algorithm_comparison"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i.jsx(k9,{label:"Control",help:"Your current strategy — the baseline.",algorithms:n,value:t.controlAlgorithmId,excludeId:t.variantAlgorithmId,allowedSrStrategies:y,liveSrConfig:{hedging:b,elimination:v,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:N=>e(E=>({...E,controlAlgorithmId:N}))}),i.jsx(k9,{label:"Variant",help:"The new strategy you want to test.",accent:!0,algorithms:n,value:t.variantAlgorithmId,excludeId:t.controlAlgorithmId,allowedSrStrategies:y,liveSrConfig:{hedging:b,elimination:v,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:N=>e(E=>({...E,variantAlgorithmId:N}))})]}),t.experimentType==="sr_config_tuning"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-slate-50/50 dark:bg-[#0c0c10] px-4 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold text-slate-600 dark:bg-slate-700 dark:text-slate-200 leading-4",children:["Control (",100-t.variantSplitPct,"%)"]}),i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:"current config"})]}),i.jsxs("div",{className:"space-y-2.5",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Hedging %"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:b!==null?`${b}%`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Elimination threshold"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:v!==null?`Drops below ${(v*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]})]}),i.jsxs("p",{className:"text-[12px] text-slate-500 pt-1 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Edit in ",i.jsx("span",{className:"font-medium",children:"SR Routing → Scoring / Elimination"})]})]}),i.jsx(c9e,{label:"Variant",splitPct:t.variantSplitPct,config:t.variantSrConfig,onChange:N=>e(E=>({...E,variantSrConfig:N(E.variantSrConfig)}))})]})]}),i.jsxs(vN,{divide:!0,children:[i.jsxs("div",{children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("span",{className:ts,children:"Traffic allocation"}),i.jsxs("span",{className:"text-[13px] tabular-nums text-slate-500 dark:text-slate-400 leading-[18px]",children:[100-t.variantSplitPct,"% control",i.jsx("span",{className:"mx-1.5 text-slate-500 dark:text-slate-400",children:"/"}),i.jsxs("span",{className:"font-semibold text-brand-600 dark:text-brand-400",children:[t.variantSplitPct,"% variant"]})]})]}),i.jsxs("div",{className:"relative rounded-full py-2 focus-within:ring-2 focus-within:ring-brand-500/40",children:[i.jsxs("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full",children:[i.jsx("div",{className:"bg-slate-200 dark:bg-[#232833] transition-all duration-100",style:{width:`${100-t.variantSplitPct}%`}}),i.jsx("div",{className:"flex-1 bg-brand-500"})]}),i.jsx("div",{className:"pointer-events-none absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-brand-500 bg-white shadow-sm dark:bg-slate-900",style:{left:`${100-t.variantSplitPct}%`}}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:100-t.variantSplitPct,onChange:N=>{const E=Math.min(30,Math.max(5,100-Number(N.target.value)));e(P=>({...P,variantSplitPct:E}))},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":"Control traffic percentage"})]})]}),i.jsxs("div",{children:[i.jsx(yN,{hint:"Transactions the experiment collects before it reports a significance verdict.",children:"Sample target"}),i.jsxs("div",{className:"inline-flex flex-wrap items-center gap-0.5 rounded-lg border border-slate-200 p-0.5 dark:border-[#222226]",children:[b9.map(N=>{const E=!k&&t.minSampleSize===N;return i.jsx("button",{type:"button",onClick:()=>{_(!1),e(P=>({...P,minSampleSize:N}))},className:`rounded-md px-3 py-1.5 text-xs font-medium tabular-nums transition-colors ${E?"bg-brand-500 text-white":"text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white"}`,children:N.toLocaleString()},N)}),k?i.jsx("input",{type:"text",inputMode:"numeric",autoFocus:!0,placeholder:"Custom",className:"w-24 rounded-md bg-transparent px-2.5 py-1.5 text-xs tabular-nums focus:outline-none focus:border-brand-500",value:t.minSampleSize?t.minSampleSize.toLocaleString():"",onChange:N=>e(E=>({...E,minSampleSize:Number(N.target.value.replace(/[^\d]/g,""))}))}):i.jsx("button",{type:"button",onClick:()=>_(!0),className:"rounded-md px-3 py-1.5 text-xs font-medium text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",children:"Custom…"})]})]})]}),i.jsx(vN,{divide:!0,children:i.jsxs("label",{className:"flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-slate-700 dark:text-[#c7cfdd]",children:[i.jsx("span",{children:"Flag if variant auth drops by"}),i.jsx("input",{type:"number",min:.5,max:20,step:.5,className:`w-16 ${cp}`,value:t.guardrailThresholdPp,onChange:N=>e(E=>({...E,guardrailThresholdPp:Number(N.target.value)}))}),i.jsx("span",{children:"percentage points below control"}),i.jsx(vf,{text:"Percentage points, not percent — a 3 here flags the test when the variant's auth rate is 3+ points under control (say 89% vs 92%)."})]})})]}),i.jsx(_t,{error:a}),s&&i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-emerald-200 bg-emerald-50 px-5 py-4 text-base text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200",children:[i.jsx("span",{children:s}),o&&i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>d(o),disabled:!h,children:"Activate now"})]}),i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-slate-100 dark:border-[#1e2330] pt-5",children:[f&&i.jsx(ke,{variant:"secondary",onClick:f,disabled:r,children:"Cancel"}),i.jsx(ke,{variant:"primary",onClick:u,disabled:r||!l||!h,children:r?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," ",c?"Saving…":"Creating…"]}):c?"Save changes":"Create experiment"})]})]})]})}const Fg={name:"",experimentType:"algorithm_comparison",controlAlgorithmId:"",variantAlgorithmId:"",variantSplitPct:10,minSampleSize:5e3,guardrailThresholdPp:3,variantSrConfig:{...YFe}};function u9e(){const t=Ro(),{merchantId:e}=Er(),{mutate:n}=ej(),{data:r,mutate:a}=ut(e?["routing-list",e]:null,()=>Ve(`/routing/list/${e}`)),{data:s,mutate:o}=ut(e?["active-routing",e]:null,()=>Ve(`/routing/list/active/${e}`)),l=Al(e||void 0),c=l.isEnabled("ab-test-real-payments"),u=s==null?void 0:s.find(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)==="ab_test"}),d=(r==null?void 0:r.filter(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)==="ab_test"}))??[],f=(r==null?void 0:r.filter(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)!=="ab_test"}))??[],[h,p]=Nl(),m=h.get("experiment"),[x,y]=g.useState(!1),b=d.find(ie=>ie.id===m)??null,[v,w]=g.useState({...Fg}),[j,k]=g.useState(!1),[_,S]=g.useState(null),[N,E]=g.useState(null),[P,M]=g.useState(null),[A,O]=g.useState(null),[D,I]=g.useState(null),[X,Q]=g.useState(null),[V,Y]=g.useState(!1),[H,G]=g.useState(null);g.useEffect(()=>{!m&&!x&&u&&p({experiment:u.id},{replace:!0})},[u==null?void 0:u.id]);function $(ie){p({experiment:ie},{replace:!0}),y(!1)}function F(){p({},{replace:!0}),y(!0),G(null),w({...Fg}),E(null),S(null)}function R(ie){const me=v9(ie);me&&(w(me),G(ie.id),y(!0),E(null),S(null))}function z(ie){const me=v9(ie);me&&(p({},{replace:!0}),w({...me,name:`${me.name} (copy)`}),G(null),y(!0),E(null),S(null))}function U(){y(!1),G(null),w({...Fg}),S(null),E(null),u&&p({experiment:u.id},{replace:!0})}async function ee(){if(!e)return;if(H){if(!v.name.trim()){S("Enter an experiment name");return}const me=d.find(Ne=>Ne.id===H),ve=me&&(me.algorithm_data||me.algorithm);if(!me||!ve){S("Could not load the experiment to edit");return}k(!0),S(null),E(null);try{await Ve("/routing/update",{created_by:e,routing_algorithm_id:H,name:v.name.trim(),description:me.description??"",algorithm:ve}),await a(),E(`"${v.name.trim()}" updated.`),p({experiment:H},{replace:!0}),G(null),w({...Fg}),y(!1)}catch(Ne){S(Ne instanceof Error?Ne.message:"Failed to update experiment")}finally{k(!1)}return}const ie=HFe(v);if(ie){S(ie);return}k(!0),S(null),E(null);try{const me=KFe(v,e),ve=await Ve("/routing/create",me),Ne=ve.rule_id||ve.id;M(Ne),E(`"${v.name}" created.`),w({...Fg}),await a(),p({experiment:Ne},{replace:!0}),y(!1)}catch(me){S(me instanceof Error?me.message:"Failed to create experiment")}finally{k(!1)}}async function pe(ie){if(e)try{await Ve("/routing/delete",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a()]),m===ie&&p({},{replace:!0})}catch(me){S(me instanceof Error?me.message:"Failed to delete experiment")}finally{Q(null)}}async function re(ie){if(!!(u&&u.id!==ie)||!c){O(ie);return}await he(ie)}async function he(ie){if(e)try{c||await l.setFeatureEnabled("ab-test-real-payments",!0),await Ve("/routing/activate",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a()]),M(null),E(null)}catch(me){S(me instanceof Error?me.message:"Failed to activate experiment")}}async function q(ie){Y(!0),S(null);try{await l.setFeatureEnabled("ab-test-real-payments",ie)}catch(me){S(me instanceof Error?me.message:"Failed to enable A/B testing on live traffic")}finally{Y(!1)}}async function W(ie){if(e)try{await Ve("/routing/deactivate",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a(),n(["active-routing",e])])}catch(me){S(me instanceof Error?me.message:"Failed to stop experiment")}finally{I(null)}}function ue(ie){var me;return ie==="sr_routing"?"SR Routing (Dynamic)":((me=r==null?void 0:r.find(ve=>ve.id===ie))==null?void 0:me.name)??ie}const te=x?"create":b?"detail":d.length===0?"create":"empty";return i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("div",{children:i.jsx(qr,{title:"A/B Testing",description:"Compare routing strategies on live traffic with statistical significance."})}),te!=="create"&&i.jsxs(ke,{variant:"secondary",size:"sm",onClick:F,disabled:!t,children:[i.jsx(Qn,{size:14})," New experiment"]})]}),u&&l.data&&!c&&i.jsxs("div",{className:"flex flex-wrap items-start gap-3 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(Pm,{size:18,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-sm font-medium text-amber-900 dark:text-amber-200",children:["“",u.name,"” is active but not collecting results"]}),i.jsx("p",{className:"mt-0.5 text-[13px] text-amber-800/90 dark:text-amber-300/90 max-w-[57ch] leading-[18px]",children:"“A/B test on real payments” is off, so live traffic isn’t being split between the arms. Turn it back on to resume recording stats."})]}),i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>q(!0),disabled:V,children:V?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:13})," Enabling…"]}):"Enable live-traffic testing"})]}),e&&r&&d.length===0?i.jsx("div",{className:"mx-auto w-full max-w-3xl",children:i.jsx(S9,{form:v,setForm:w,eligibleAlgorithms:f,saving:j,error:_,success:N,createdId:P,merchantId:e,isEditing:H!==null,onCreate:ee,onActivateCreated:ie=>re(ie)})}):i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[280px_1fr] gap-5",children:[i.jsx("div",{className:"space-y-1",children:e?r?i.jsx("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] overflow-hidden",children:d.map((ie,me)=>{var Be;const ve=(Be=ie.algorithm_data||ie.algorithm)==null?void 0:Be.data,Ne=(u==null?void 0:u.id)===ie.id,je=m===ie.id,Me=KX(ve);return i.jsxs("button",{type:"button",onClick:()=>$(ie.id),className:`relative w-full text-left pl-4 pr-3 py-3 transition-colors ${me>0?"border-t border-slate-100 dark:border-[#1e2330]":""} ${je?"bg-brand-50 dark:bg-brand-900/20":"hover:bg-slate-50 dark:hover:bg-[#0f0f16]"}`,children:[je&&i.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-brand-500"}),i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[i.jsx("p",{className:`truncate text-base font-medium ${je?"text-brand-700 dark:text-brand-300":"text-slate-800 dark:text-white"}`,children:ie.name}),Ne&&i.jsx("span",{className:"shrink-0 inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[11px] font-semibold bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 leading-4",children:"● Active"})]}),ve&&i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] mt-0.5 truncate max-w-[57ch] leading-[18px]",children:Me==="sr_config_tuning"?"SR config tuning":`${xy(ve.control_algorithm_id,ve.control_sr_config,ue)} → ${xy(ve.variant_algorithm_id,ve.variant_sr_config,ue)}`})]},ie.id)})}):i.jsx("p",{className:"px-2 py-2 text-sm text-slate-500",children:"Loading…"}):i.jsx("p",{className:"px-2 py-2 text-base text-slate-500",children:"Set merchant ID to load experiments."})}),i.jsxs("div",{children:[te==="detail"&&b&&e&&i.jsx(l9e,{algorithm:b,isActive:(u==null?void 0:u.id)===b.id,merchantId:e,algorithmName:ue,algorithms:r??[],onActivate:()=>re(b.id),onStop:()=>I(b.id),onEdit:()=>R(b),onClone:()=>z(b),onDelete:()=>Q(b.id),realPaymentsOn:c}),te==="create"&&i.jsx(S9,{form:v,setForm:w,eligibleAlgorithms:f,saving:j,error:_,success:N,createdId:P,merchantId:e,isEditing:H!==null,onCreate:ee,onActivateCreated:ie=>re(ie),onCancel:U}),te==="empty"&&i.jsxs("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 dark:border-[#222226] py-16 text-center",children:[i.jsx(qp,{size:26,className:"text-slate-500 dark:text-slate-400 mb-2"}),i.jsx("p",{className:"text-base text-slate-500",children:"Select an experiment to view details"})]})]})]}),(()=>{const ie=!!(A&&u&&u.id!==A),me=!c,ve=[ie?"An experiment is already running — activating this one replaces it.":null,me?"This also turns on “A/B test on real payments”, so live traffic is split between the arms and results start collecting. You can stop the experiment at any time to revert to standard routing.":null].filter(Boolean).join(" ");return i.jsx(qs,{open:A!==null,title:ie?"Switch active experiment?":"Route live traffic through this experiment?",description:ve,confirmLabel:me?"Enable & activate":"Yes, activate",variant:"primary",onConfirm:()=>{const Ne=A;O(null),he(Ne)},onCancel:()=>O(null)})})(),i.jsx(qs,{open:D!==null,title:"Stop experiment?",description:"This will deactivate the experiment and restore default routing. Results will remain available.",confirmLabel:"Stop experiment",variant:"danger",onConfirm:()=>{W(D)},onCancel:()=>I(null)}),i.jsx(qs,{open:X!==null,title:"Delete experiment?",description:"This permanently deletes the experiment definition. Any results already collected remain in analytics. This cannot be undone.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{pe(X)},onCancel:()=>Q(null)})]})}const JX="theme";function ZX(){if(typeof window>"u")return null;const t=window.localStorage.getItem(JX);return t==="dark"||t==="light"?t:null}function d9e(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function zm(){return ZX()??d9e()}function cM(t=zm()){typeof document>"u"||document.documentElement.classList.toggle("dark",t==="dark")}function Xy(t){typeof window<"u"&&window.localStorage.setItem(JX,t),cM(t)}function f9e(){const t=_l(),e=Kr(),{user:n,clearAuth:r}=xr(),[a,s]=g.useState(null),[o,l]=g.useState(()=>zm()==="dark"),[c,u]=g.useState(!1),d=g.useRef(null),f=a??t.pathname,h=n!=null&&n.email?n.email.slice(0,2).toUpperCase():"ME";g.useEffect(()=>{function x(y){d.current&&!d.current.contains(y.target)&&u(!1)}return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]),g.useEffect(()=>{if(typeof window.matchMedia!="function")return;const x=window.matchMedia("(prefers-color-scheme: dark)"),y=()=>{if(ZX())return;const b=x.matches;l(b),cM(b?"dark":"light")};return y(),x.addEventListener("change",y),()=>x.removeEventListener("change",y)},[]);async function p(){u(!1);try{await la("/auth/logout",{method:"POST"})}catch{}r(),e("/login",{replace:!0})}function m(){const x=o?"light":"dark";l(x==="dark"),Xy(x)}return g.useLayoutEffect(()=>{if(!a)return;(t.pathname===a||t.pathname.startsWith(`${a}/`))&&s(null)},[t.pathname,a]),i.jsxs("aside",{className:"relative z-20 flex h-screen w-64 shrink-0 flex-col border-r border-slate-200 bg-white transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d]",children:[i.jsx("div",{className:"flex h-[78px] shrink-0 items-center border-b border-slate-200 px-4 transition-colors duration-300 dark:border-[#22262f]",children:i.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 434 56",fill:"none",className:"h-14 w-auto","aria-label":"Juspay Decision Engine",role:"img",children:[i.jsx("defs",{children:i.jsx("style",{children:".de-brand{font-family:'Google Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:30px;dominant-baseline:central}.de-bold{font-weight:700;letter-spacing:-0.02em}.de-semi{font-weight:600;letter-spacing:-0.01em}"})}),i.jsxs("g",{transform:"translate(0, 1)",children:[i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2375 54.3079C25.9366 54.3441 24.6718 54.2355 23.3708 54.0545C19.8655 53.5477 16.577 52.4255 13.5414 50.5792C6.81987 46.5246 2.51952 40.6238 0.748782 32.8766C0.35127 31.139 0.170583 29.3651 0.170583 27.5912C0.134446 20.4957 2.44724 14.2691 7.1451 8.98363C11.2286 4.42224 16.2879 1.63472 22.2505 0.476271C23.9129 0.150457 25.5752 -0.0305508 27.2375 0.0418522C27.2375 2.75697 27.2375 5.43588 27.2375 8.15099C27.1652 8.18719 27.093 8.2234 27.0207 8.2958C26.045 8.98363 25.0693 9.70766 24.1297 10.4679C21.9976 12.2056 19.9739 14.0518 18.2754 16.2601C15.9988 19.1925 14.481 22.4144 14.2642 26.2156C14.1558 28.0256 14.3726 29.7995 14.9508 31.501C16.3601 35.7366 20.7328 40.1169 26.8761 40.2255C27.2375 40.2255 27.3098 40.298 27.3098 40.6962C27.2736 42.5424 27.2736 46.235 27.2736 46.235C27.2736 46.235 27.2736 46.4522 27.2736 46.5608C27.2375 49.1311 27.2375 51.7014 27.2375 54.3079Z",fill:"#0099FF"}),i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2368 8.11469C27.2368 8.11469 27.2368 2.72066 27.2368 0.00554404C28.7184 -0.0306575 30.1639 0.114149 31.6094 0.331358C34.3197 0.765776 36.9216 1.56221 39.379 2.82926C44.4743 5.47197 48.4856 9.23693 51.1959 14.3775C52.7498 17.3461 53.7617 20.4956 54.1592 23.7899C54.6289 27.6635 54.2676 31.5009 53.1112 35.2296C51.7741 39.4652 49.5336 43.194 46.3896 46.3435C42.5591 50.1447 38.0057 52.6064 32.7297 53.7286C30.9228 54.0906 29.0798 54.3078 27.2368 54.2716C27.2368 51.6651 27.2368 49.0948 27.2368 46.4883C27.2368 46.3797 27.2368 46.1987 27.2368 46.1987C27.2368 46.1987 27.3452 46.1263 27.3813 46.0901C30.2001 44.099 32.8742 41.9269 35.187 39.3204C36.7048 37.6189 38.0057 35.8088 38.9092 33.7092C40.174 30.7406 40.6799 27.6997 40.0294 24.4778C38.873 18.6131 33.6331 14.2327 27.5982 14.0879C27.2007 14.0879 27.2368 13.7621 27.2368 13.7621V8.11469Z",fill:"#0561E2"})]}),i.jsx("text",{x:"72",y:"28",className:"de-brand de-bold fill-[#0F172A] dark:fill-white",children:"JUSPAY"}),i.jsx("text",{x:"200",y:"28",className:"de-brand de-semi fill-[#475569] dark:fill-[#9CA3AF]",children:"Decision Engine"})]})}),i.jsxs("nav",{className:"flex-1 space-y-0.5 overflow-y-auto px-4 py-4",children:[i.jsx(ri,{to:"/",icon:gH,end:!0,selectedPath:f,onNavigate:s,children:"Overview"}),i.jsx(ri,{to:"/analytics",icon:a1,selectedPath:f,onNavigate:s,children:"Analytics"}),i.jsx(ri,{to:"/audit",icon:Xh,selectedPath:f,onNavigate:s,children:"Decision Audit"}),i.jsx(ri,{to:"/events",icon:Zw,selectedPath:f,onNavigate:s,children:"Routing Events"}),i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Routing"})}),i.jsx(ri,{to:"/routing",icon:qj,end:!0,selectedPath:f,onNavigate:s,children:"Routing Hub"}),i.jsx(ri,{to:"/routing/sr",icon:Kj,indent:!0,selectedPath:f,onNavigate:s,children:"Multi Objective"}),i.jsx(ri,{to:"/routing/rules",icon:Wj,indent:!0,selectedPath:f,onNavigate:s,children:"Rule-Based"}),i.jsx(ri,{to:"/routing/volume",icon:cf,indent:!0,selectedPath:f,onNavigate:s,children:"Volume Split"}),i.jsx(ri,{to:"/routing/debit",icon:Oo,indent:!0,selectedPath:f,onNavigate:s,children:"Debit Routing"}),i.jsx(ri,{to:"/routing/ab-testing",icon:qp,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"A/B Testing"}),oM?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Simulation"})}),i.jsx(ri,{to:"/decisions/simulator",icon:qp,selectedPath:f,onNavigate:s,children:"Decision Simulator"})]}):null,i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Settings"})}),i.jsx(ri,{to:"/members",icon:vT,selectedPath:f,onNavigate:s,children:"Members"}),i.jsx(ri,{to:"/api-keys",icon:gT,selectedPath:f,onNavigate:s,children:"API Keys"})]}),i.jsxs("div",{ref:d,className:"relative border-t border-slate-200 bg-white px-4 py-4 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#0a0d12]",children:[c?i.jsxs("div",{className:"absolute bottom-full left-4 right-4 mb-3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_20px_60px_-36px_rgba(15,23,42,0.35)] dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-3 py-3 dark:border-[#242b36]",children:[i.jsx("p",{className:"break-all text-sm font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Signed-in user"}),n!=null&&n.merchantId?i.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate text-xs text-slate-500 dark:text-[#8a8a93]",children:n.merchantId}),i.jsx(qy,{text:n.merchantId,label:"Copy merchant ID",size:13,className:"rounded-md p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:text-[#6d768a] dark:hover:bg-[#151b24] dark:hover:text-white"})]}):null]}),i.jsxs("button",{type:"button",onClick:()=>{u(!1),e("/account")},className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:text-slate-300 dark:hover:bg-white/5",children:[i.jsx(mT,{size:16}),"Change password"]}),i.jsxs("button",{type:"button",onClick:p,className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-red-600 transition-colors hover:bg-red-50 dark:text-red-300 dark:hover:bg-red-950/25",children:[i.jsx(yH,{size:16}),"Logout"]})]}):null,i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("button",{type:"button",onClick:()=>u(x=>!x),"aria-haspopup":"menu","aria-expanded":c,title:(n==null?void 0:n.email)||"Account",className:"flex min-w-0 flex-1 items-center gap-2 rounded-2xl px-1.5 py-2 text-left transition-colors hover:bg-slate-100 dark:hover:bg-[#151b24]",children:[i.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:h}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx("span",{className:"block truncate text-xs font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Account"})}),i.jsx(wn,{size:13,className:`shrink-0 text-slate-500 transition-transform ${c?"rotate-180":""}`})]}),i.jsx("button",{type:"button",onClick:m,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-[#1a1f2a] dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Dy,{size:15}):i.jsx(Ry,{size:15})})]})]})]})}function ri({to:t,icon:e,children:n,end:r,indent:a,beta:s,selectedPath:o,onNavigate:l}){const c=Kr(),u=r?o===t:o===t||o.startsWith(`${t}/`);return i.jsxs("button",{type:"button","aria-current":u?"page":void 0,onMouseDown:d=>{d.detail>0&&d.preventDefault()},onClick:d=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),l==null||l(t),d.currentTarget.blur(),c(t)},className:`group relative flex w-full appearance-none items-center gap-3 rounded-[16px] border-0 px-4 py-2.5 text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[#3b82f6]/40 focus-visible:ring-offset-0 ${a?"pl-8":""} ${u?"bg-transparent text-slate-950 dark:text-white":"bg-transparent text-slate-500 hover:bg-slate-900/[0.025] hover:text-slate-900 dark:text-[#8d96aa] dark:hover:bg-white/[0.035] dark:hover:text-white"} leading-5`,children:[i.jsx("span",{"aria-hidden":"true",className:`absolute left-1 top-1/2 h-7 w-[3px] -translate-y-1/2 rounded-full transition-all duration-150 ${u?"bg-brand-600 opacity-100 dark:bg-sky-300":"opacity-0"}`}),i.jsx(e,{size:18,className:`transition-colors duration-200 ${u?"text-brand-600 dark:text-sky-300":"text-slate-500 group-hover:text-slate-700 dark:text-[#78849a] dark:group-hover:text-white"}`,strokeWidth:u?2.5:2}),i.jsx("span",{className:"flex-1 text-left",children:n}),s&&i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400 leading-4",children:"Beta"})]})}const h9e={leader_changed:V0,gateway_entered_auth_band:jH,gateway_exited_auth_band:SH,calibration_applied:Hi},p9e={leader_changed:"text-sky-700 dark:text-sky-300",gateway_entered_auth_band:"text-emerald-700 dark:text-emerald-300",gateway_exited_auth_band:"text-amber-700 dark:text-amber-300",calibration_applied:"text-violet-600 dark:text-violet-300"};function m9e(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function g9e(){const t=Kr(),[e,n]=g.useState(!1),{events:r,unseenCount:a,markAllSeen:s,isUnavailable:o}=FT("1h",{enabled:e}),l=g.useRef(null);g.useEffect(()=>{function u(d){l.current&&!l.current.contains(d.target)&&n(!1)}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[]);const c=r.slice(0,8);return i.jsxs("div",{className:"relative shrink-0",ref:l,children:[i.jsxs("button",{onClick:()=>n(u=>!u),"aria-label":"Routing events",className:"relative flex items-center justify-center h-8 w-8 rounded-lg border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] hover:bg-slate-50 dark:hover:bg-[#18181f] transition-colors text-slate-700 dark:text-slate-300",children:[i.jsx(OCe,{size:14,className:"text-slate-500"}),a>0&&i.jsx("span",{className:"absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-brand-600 px-1 text-[11px] font-semibold text-white leading-4",children:a>99?"99+":a})]}),e&&i.jsxs("div",{className:"absolute right-0 top-10 w-96 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg py-1 z-50",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 leading-4",children:"Routing events"}),r.length>0&&i.jsx("button",{onClick:s,className:"text-[11px] font-medium text-brand-600 hover:underline leading-4",children:"Mark all read"})]}),c.length===0?i.jsx("p",{className:"px-3 py-4 text-[12px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-4",children:o?"Routing events are unavailable — analytics pipeline is offline.":"No routing events in the last hour."}):c.map(u=>{const d=h9e[u.event_type];return i.jsxs("div",{className:"flex items-start gap-2.5 px-3 py-2 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(d,{size:14,className:p9e[u.event_type]})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-[12px] text-slate-700 dark:text-slate-300 leading-4",children:BT(u)}),i.jsx("p",{className:"text-[11px] text-slate-500 leading-4",children:m9e(u.bucket_ms)})]})]},u.id)}),i.jsx("div",{className:"border-t border-[#e6e6ee] dark:border-[#1a1a24] mt-1 pt-1",children:i.jsx("button",{onClick:()=>{n(!1),t("/events")},className:"w-full px-3 py-2 text-left text-[13px] font-medium text-brand-600 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors leading-[18px]",children:"View all events"})})]})]})}var _9=1,x9e=.9,y9e=.8,v9e=.17,bN=.1,wN=.999,b9e=.9999,w9e=.99,k9e=/[\\\/_+.#"@\[\(\{&]/,j9e=/[\\\/_+.#"@\[\(\{&]/g,S9e=/[\s-]/,QX=/[\s-]/g;function J5(t,e,n,r,a,s,o){if(s===e.length)return a===t.length?_9:w9e;var l=`${a},${s}`;if(o[l]!==void 0)return o[l];for(var c=r.charAt(s),u=n.indexOf(c,a),d=0,f,h,p,m;u>=0;)f=J5(t,e,n,r,u+1,s+1,o),f>d&&(u===a?f*=_9:k9e.test(t.charAt(u-1))?(f*=y9e,p=t.slice(a,u-1).match(j9e),p&&a>0&&(f*=Math.pow(wN,p.length))):S9e.test(t.charAt(u-1))?(f*=x9e,m=t.slice(a,u-1).match(QX),m&&a>0&&(f*=Math.pow(wN,m.length))):(f*=v9e,a>0&&(f*=Math.pow(wN,u-a))),t.charAt(u)!==e.charAt(s)&&(f*=b9e)),(ff&&(f=h*bN)),f>d&&(d=f),u=n.indexOf(c,u+1);return o[l]=d,d}function N9(t){return t.toLowerCase().replace(QX," ")}function _9e(t,e,n){return t=n&&n.length>0?`${t+" "+n.join(" ")}`:t,J5(t,e,N9(t),N9(e),0,0,{})}var N9e=Object.defineProperty,Um=(t,e)=>N9e(t,"name",{value:e,configurable:!0}),eJ=!!(typeof window<"u"&&window.document&&window.document.createElement);function Kd(t,e,{checkForDefaultPrevented:n=!0}={}){return Um(function(a){if(t==null||t(a),n===!1||!a||!a.defaultPrevented)return e==null?void 0:e(a)},"handleEvent")}Um(Kd,"composeEventHandlers");function C9e(t){var e;if(!eJ)throw new Error("Cannot access window outside of the DOM");return((e=t==null?void 0:t.ownerDocument)==null?void 0:e.defaultView)??window}Um(C9e,"getOwnerWindow");function Z5(t){if(!eJ)throw new Error("Cannot access document outside of the DOM");return(t==null?void 0:t.ownerDocument)??document}Um(Z5,"getOwnerDocument");function tJ(t,e=!1){const{activeElement:n}=Z5(t);if(!(n!=null&&n.nodeName))return null;if(nJ(n)&&n.contentDocument)return tJ(n.contentDocument.body,e);if(e){const r=n.getAttribute("aria-activedescendant");if(r){const a=Z5(n).getElementById(r);if(a)return a}}return n}Um(tJ,"getActiveElement");function nJ(t){return t.tagName==="IFRAME"}Um(nJ,"isFrame");function C9(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function cm(...t){return e=>{let n=!1;const r=t.map(a=>{const s=C9(a,e);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{var b;const{scope:h,children:p,...m}=f,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,y=g.useMemo(()=>m,Object.values(m));return i.jsx(x.Provider,{value:y,children:p})};u.displayName=s+"Provider";function d(f,h,p={}){var b;const{optional:m=!1}=p,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,y=g.useContext(x);if(y)return y;if(o!==void 0)return o;if(!m)throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const a=()=>{const s=n.map(o=>g.createContext(o));return function(l){const c=(l==null?void 0:l[t])||s;return g.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,A9e(a,...e)]}function A9e(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const o=r.reduce((l,{useScope:c,scopeName:u})=>{const f=c(s)[`__scope${u}`];return{...l,...f}},{});return g.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var um=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},O9e=fm[" useId ".trim().toString()]||(()=>{}),T9e=0;function lc(t){const[e,n]=g.useState(O9e());return um(()=>{n(r=>r??String(T9e++))},[t]),e?`radix-${e}`:""}var E9=fm[" useEffectEvent ".trim().toString()],A9=fm[" useInsertionEffect ".trim().toString()];function P9e(t){if(typeof E9=="function")return E9(t);const e=g.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof A9=="function"?A9(()=>{e.current=t}):um(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var M9e=Object.defineProperty,Zy=(t,e)=>M9e(t,"name",{value:e,configurable:!0}),R9e=fm[" useInsertionEffect ".trim().toString()]||um;function rJ({prop:t,defaultProp:e,onChange:n=Zy(()=>{},"onChange"),caller:r}){const[a,s,o]=aJ({defaultProp:e,onChange:n}),l=t!==void 0,c=l?t:a,u=g.useCallback(d=>{var f;if(l){const h=sJ(d)?d(t):d;h!==t&&((f=o.current)==null||f.call(o,h))}else s(d)},[l,t,s,o]);return[c,u]}Zy(rJ,"useControllableState");function aJ({defaultProp:t,onChange:e}){const[n,r]=g.useState(t),a=g.useRef(n),s=g.useRef(e);return R9e(()=>{s.current=e},[e]),g.useEffect(()=>{var o;a.current!==n&&((o=s.current)==null||o.call(s,n),a.current=n)},[n,a]),[n,r,s]}Zy(aJ,"useUncontrolledState");function sJ(t){return typeof t=="function"}Zy(sJ,"isFunction");var O9=Symbol("RADIX:SYNC_STATE");function D9e(t,e,n,r){const{prop:a,defaultProp:s,onChange:o,caller:l}=e,c=a!==void 0,u=P9e(o),d=[{...n,state:s}];r&&d.push(r);const[f,h]=g.useReducer((y,b)=>{if(b.type===O9)return{...y,state:b.state};const v=t(y,b);return c&&!Object.is(v.state,y.state)&&u(v.state),v},...d),p=f.state,m=g.useRef(p);g.useEffect(()=>{m.current!==p&&(m.current=p,c||u(p))},[p,m,c]);const x=g.useMemo(()=>a!==void 0?{...f,state:a}:f,[f,a]);return g.useEffect(()=>{c&&!Object.is(a,f.state)&&h({type:O9,state:a})},[a,f.state,c]),[x,h]}Zy(D9e,"useControllableStateReducer");function iJ(t){const e=g.forwardRef((n,r)=>{let{children:a,...s}=n,o=null,l=!1;const c=[];T9(a)&&typeof Bb=="function"&&(a=Bb(a._payload)),g.Children.forEach(a,h=>{var p;if(B9e(h)){l=!0;const m=h;let x="child"in m.props?m.props.child:m.props.children;T9(x)&&typeof Bb=="function"&&(x=Bb(x._payload)),o=$9e(m,x),c.push((p=o==null?void 0:o.props)==null?void 0:p.children)}else c.push(h)}),o?o=g.cloneElement(o,void 0,c):!l&&g.Children.count(a)===1&&g.isValidElement(a)&&(o=a);const u=o?F9e(o):void 0,d=Jy(r,u);if(!o){if(a||a===0)throw new Error(l?W9e(t):V9e(t));return a}const f=L9e(s,o.props??{});return o.type!==g.Fragment&&(f.ref=r?d:u),g.cloneElement(o,f)});return e.displayName=`${t}.Slot`,e}var I9e=Symbol.for("radix.slottable"),$9e=(t,e)=>{if("child"in t.props){const n=t.props.child;return g.isValidElement(n)?g.cloneElement(n,void 0,t.props.children(n.props.children)):null}return g.isValidElement(e)?e:null};function L9e(t,e){const n={...e};for(const r in e){const a=t[r],s=e[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const c=s(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...t,...n}}function F9e(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function B9e(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===I9e}var z9e=Symbol.for("react.lazy");function T9(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===z9e&&"_payload"in t&&U9e(t._payload)}function U9e(t){return typeof t=="object"&&t!==null&&"then"in t}var V9e=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,W9e=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Bb=fm[" use ".trim().toString()],H9e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],to=H9e.reduce((t,e)=>{const n=iJ(`Primitive.${e}`),r=g.forwardRef((a,s)=>{const{asChild:o,...l}=a,c=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function G9e(t,e){t&&fs.flushSync(()=>t.dispatchEvent(e))}function yy(t){const e=g.useRef(t);return g.useEffect(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var q9e=Object.defineProperty,va=(t,e)=>q9e(t,"name",{value:e,configurable:!0}),Q5="dismissableLayer.update",K9e="dismissableLayer.pointerDownOutside",Y9e="dismissableLayer.focusOutside",P9,oJ=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),X9e=g.forwardRef(va(function(e,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...d}=e,f=g.useContext(oJ),[h,p]=g.useState(null),m=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=g.useState({}),y=Jy(n,p),b=Array.from(f.layers),[v]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),w=v?b.indexOf(v):-1,j=h?b.indexOf(h):-1,k=f.layersWithOutsidePointerEventsDisabled.size>0,_=j>=w,S=g.useRef(!1),N=cJ(A=>{o==null||o(A),c==null||c(A),A.defaultPrevented||u==null||u()},{ownerDocument:m,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:g.useCallback(A=>{if(!(A instanceof Node))return!1;const O=[...f.branches].some(D=>D.contains(A));return _&&!O},[f.branches,_])}),E=uJ(A=>{if(a&&S.current)return;const O=A.target;[...f.branches].some(I=>I.contains(O))||(l==null||l(A),c==null||c(A),A.defaultPrevented||u==null||u())},m),P=h?j===b.length-1:!1,M=yy(A=>{A.key==="Escape"&&(s==null||s(A),!A.defaultPrevented&&u&&(A.preventDefault(),u()))});return g.useEffect(()=>{if(P)return m.addEventListener("keydown",M,{capture:!0}),()=>m.removeEventListener("keydown",M,{capture:!0})},[m,P,M]),g.useEffect(()=>{if(h)return r&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(P9=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(h)),f.layers.add(h),eO(),()=>{r&&(f.layersWithOutsidePointerEventsDisabled.delete(h),f.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=P9))}},[h,m,r,f]),g.useEffect(()=>()=>{h&&(f.layers.delete(h),f.layersWithOutsidePointerEventsDisabled.delete(h),eO())},[h,f]),g.useEffect(()=>{const A=va(()=>x({}),"handleUpdate");return document.addEventListener(Q5,A),()=>document.removeEventListener(Q5,A)},[]),i.jsx(to.div,{...d,ref:y,style:{pointerEvents:k?_?"auto":"none":void 0,...e.style},onFocusCapture:Kd(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Kd(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Kd(e.onPointerDownCapture,N.onPointerDownCapture)})},"DismissableLayer"));function lJ(){const t=g.useContext(oJ),[e,n]=g.useState(null);return g.useEffect(()=>{if(e)return t.dismissableSurfaces.add(e),()=>{t.dismissableSurfaces.delete(e)}},[e,t.dismissableSurfaces]),n}va(lJ,"useDismissableLayerSurface");var J9e=va(()=>!0,"IS_TRUE");function cJ(t,e){const{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:a,dismissableSurfaces:s,shouldHandlePointerDownOutside:o=J9e}=e,l=yy(t),c=g.useRef(!1),u=g.useRef(!1),d=g.useRef(new Map),f=g.useRef(()=>{});return g.useEffect(()=>{function h(){u.current=!1,a.current=!1,d.current.clear()}va(h,"resetOutsideInteraction");function p(){return Array.from(d.current.values()).some(Boolean)}va(p,"isOutsideInteractionIntercepted");function m(w){if(!u.current)return;const j=w.target;j instanceof Node&&[...s].some(_=>_.contains(j))||d.current.set(w.type,!0),w.type==="click"&&window.setTimeout(()=>{u.current&&f.current()},0)}va(m,"handleInteractionCapture");function x(w){u.current&&d.current.set(w.type,!1)}va(x,"handleInteractionBubble");const y=va(w=>{if(w.target&&!c.current){let j=function(){n.removeEventListener("click",f.current);const _=p();h(),_||uM(K9e,l,k,{discrete:!0})};if(va(j,"handleAndDispatchPointerDownOutsideEvent"),!o(w.target)){n.removeEventListener("click",f.current),h(),c.current=!1;return}const k={originalEvent:w};u.current=!0,a.current=r&&w.button===0,d.current.clear(),!r||w.button!==0?j():(n.removeEventListener("click",f.current),f.current=j,n.addEventListener("click",f.current,{once:!0}))}else n.removeEventListener("click",f.current),h();c.current=!1},"handlePointerDown"),b=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const w of b)n.addEventListener(w,m,!0),n.addEventListener(w,x);const v=window.setTimeout(()=>{n.addEventListener("pointerdown",y)},0);return()=>{window.clearTimeout(v),n.removeEventListener("pointerdown",y),n.removeEventListener("click",f.current);for(const w of b)n.removeEventListener(w,m,!0),n.removeEventListener(w,x)}},[n,l,r,a,s,o]),{onPointerDownCapture:va(()=>c.current=!0,"onPointerDownCapture")}}va(cJ,"usePointerDownOutside");function uJ(t,e=globalThis==null?void 0:globalThis.document){const n=yy(t),r=g.useRef(!1);return g.useEffect(()=>{const a=va(s=>{s.target&&!r.current&&uM(Y9e,n,{originalEvent:s},{discrete:!1})},"handleFocus");return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:va(()=>r.current=!0,"onFocusCapture"),onBlurCapture:va(()=>r.current=!1,"onBlurCapture")}}va(uJ,"useFocusOutside");function eO(){const t=new CustomEvent(Q5);document.dispatchEvent(t)}va(eO,"dispatchUpdate");function uM(t,e,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),r?G9e(a,s):a.dispatchEvent(s)}va(uM,"handleAndDispatchCustomEvent");var Z9e=Object.defineProperty,ms=(t,e)=>Z9e(t,"name",{value:e,configurable:!0}),kN="focusScope.autoFocusOnMount",jN="focusScope.autoFocusOnUnmount",M9={bubbles:!1,cancelable:!0},Q9e=g.forwardRef(ms(function(e,n){const{loop:r=!1,trapped:a=!1,onMountAutoFocus:s,onUnmountAutoFocus:o,...l}=e,[c,u]=g.useState(null),d=yy(s),f=yy(o),h=g.useRef(null),p=Jy(n,u),m=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(a){let y=function(j){if(m.paused||!c)return;const k=j.target;c.contains(k)?h.current=k:Gl(h.current,{select:!0})},b=function(j){if(m.paused||!c)return;const k=j.relatedTarget;k!==null&&(c.contains(k)||Gl(h.current,{select:!0}))},v=function(j){if(document.activeElement===document.body)for(const _ of j)_.removedNodes.length>0&&Gl(c)};ms(y,"handleFocusIn"),ms(b,"handleFocusOut"),ms(v,"handleMutations"),document.addEventListener("focusin",y),document.addEventListener("focusout",b);const w=new MutationObserver(v);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),w.disconnect()}}},[a,c,m.paused]),g.useEffect(()=>{if(c){R9.add(m);const y=document.activeElement;if(!c.contains(y)){const v=new CustomEvent(kN,M9);c.addEventListener(kN,d),c.dispatchEvent(v),v.defaultPrevented||(dJ(gJ(dM(c)),{select:!0}),document.activeElement===y&&Gl(c))}return()=>{c.removeEventListener(kN,d),setTimeout(()=>{const v=new CustomEvent(jN,M9);c.addEventListener(jN,f),c.dispatchEvent(v),v.defaultPrevented||Gl(y??document.body,{select:!0}),c.removeEventListener(jN,f),R9.remove(m)},0)}}},[c,d,f,m]);const x=g.useCallback(y=>{if(!r&&!a||m.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,v=document.activeElement;if(b&&v){const w=y.currentTarget,[j,k]=fJ(w);j&&k?!y.shiftKey&&v===k?(y.preventDefault(),r&&Gl(j,{select:!0})):y.shiftKey&&v===j&&(y.preventDefault(),r&&Gl(k,{select:!0})):v===w&&y.preventDefault()}},[r,a,m.paused]);return i.jsx(to.div,{tabIndex:-1,...l,ref:p,onKeyDown:x})},"FocusScope"));function dJ(t,{select:e=!1}={}){const n=document.activeElement;for(const r of t)if(Gl(r,{select:e}),document.activeElement!==n)return}ms(dJ,"focusFirst");function fJ(t){const e=dM(t),n=tO(e,t),r=tO(e.reverse(),t);return[n,r]}ms(fJ,"getTabbableEdges");function dM(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:ms(r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)e.push(n.currentNode);return e}ms(dM,"getTabbableCandidates");function tO(t,e){const n=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const r of t)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):hJ(r,{upTo:e})))return r}ms(tO,"findVisible");function hJ(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}ms(hJ,"isHidden");function pJ(t){return t instanceof HTMLInputElement&&"select"in t}ms(pJ,"isSelectableInput");function Gl(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&pJ(t)&&e&&t.select()}}ms(Gl,"focus");var R9=mJ();function mJ(){let t=[];return{add(e){const n=t[0];e!==n&&(n==null||n.pause()),t=nO(t,e),t.unshift(e)},remove(e){var n;t=nO(t,e),(n=t[0])==null||n.resume()}}}ms(mJ,"createFocusScopesStack");function nO(t,e){const n=[...t],r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}ms(nO,"arrayRemove");function gJ(t){return t.filter(e=>e.tagName!=="A")}ms(gJ,"removeLinks");var eBe=Object.defineProperty,tBe=(t,e)=>eBe(t,"name",{value:e,configurable:!0}),nBe=g.forwardRef(tBe(function(e,n){var c;const{container:r,...a}=e,[s,o]=g.useState(!1);um(()=>o(!0),[]);const l=r||s&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?fs.createPortal(i.jsx(to.div,{...a,ref:n}),l):null},"Portal")),rBe=Object.defineProperty,wc=(t,e)=>rBe(t,"name",{value:e,configurable:!0});function xJ(t,e){return g.useReducer((n,r)=>e[n][r]??n,t)}wc(xJ,"useStateMachine");var fM=wc(t=>{const{present:e,children:n}=t,r=yJ(e),a=typeof n=="function"?n({present:r.isPresent}):g.Children.only(n),s=vJ(r.ref,bJ(a));return typeof n=="function"||r.isPresent?g.cloneElement(a,{ref:s}):null},"Presence");function yJ(t){const[e,n]=g.useState(),r=g.useRef(null),a=g.useRef(t),s=g.useRef("none"),o=g.useRef(void 0),l=t?"mounted":"unmounted",[c,u]=xJ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{c==="mounted"?(s.current=o.current??fh(r.current),o.current=void 0):s.current="none"},[c]),um(()=>{const d=r.current,f=a.current;if(f!==t){const p=s.current,m=fh(d);t?(o.current=m,u("MOUNT")):m==="none"||(d==null?void 0:d.display)==="none"?u("UNMOUNT"):u(f&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,u]),um(()=>{if(e){let d;const f=e.ownerDocument.defaultView??window,h=wc(m=>{const y=fh(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&y&&(u("ANIMATION_END"),!a.current)){const b=e.style.animationFillMode;e.style.animationFillMode="forwards",d=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=b)})}},"handleAnimationEnd"),p=wc(m=>{m.target===e&&(s.current=fh(r.current))},"handleAnimationStart");return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",h),e.addEventListener("animationend",h),()=>{f.clearTimeout(d),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",h),e.removeEventListener("animationend",h)}}else u("ANIMATION_END")},[e,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:g.useCallback(d=>{if(d){const f=getComputedStyle(d);r.current=f,o.current=fh(f)}else r.current=null;n(d)},[])}}wc(yJ,"usePresence");function rO(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}wc(rO,"setRef");function vJ(...t){const e=g.useRef(t);return e.current=t,g.useCallback(n=>{const r=e.current;let a=!1;const s=r.map(o=>{const l=rO(o,n);return!a&&typeof l=="function"&&(a=!0),l});if(a)return()=>{for(let o=0;o{Go||(Go={start:D9(),end:D9()});const{start:t,end:e}=Go;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),zb++,()=>{zb===1&&(Go==null||Go.start.remove(),Go==null||Go.end.remove(),Go=null),zb=Math.max(0,zb-1)}},[])}function D9(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var rl=function(){return rl=Object.assign||function(e){for(var n,r=1,a=arguments.length;r"u")return wBe;var e=kBe(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},SBe=SJ(),up="data-scroll-locked",_Be=function(t,e,n,r){var a=t.left,s=t.top,o=t.right,l=t.gap;return n===void 0&&(n="margin"),` + .`.concat(iBe,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(l,"px ").concat(r,`; + } + body[`).concat(up,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([e&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(o,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(l,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(b1,` { + right: `).concat(l,"px ").concat(r,`; + } + + .`).concat(w1,` { + margin-right: `).concat(l,"px ").concat(r,`; + } + + .`).concat(b1," .").concat(b1,` { + right: 0 `).concat(r,`; + } + + .`).concat(w1," .").concat(w1,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(up,`] { + `).concat(oBe,": ").concat(l,`px; + } +`)},$9=function(){var t=parseInt(document.body.getAttribute(up)||"0",10);return isFinite(t)?t:0},NBe=function(){g.useEffect(function(){return document.body.setAttribute(up,($9()+1).toString()),function(){var t=$9()-1;t<=0?document.body.removeAttribute(up):document.body.setAttribute(up,t.toString())}},[])},CBe=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,a=r===void 0?"margin":r;NBe();var s=g.useMemo(function(){return jBe(a)},[a]);return g.createElement(SBe,{styles:_Be(s,!e,a,n?"":"!important")})},aO=!1;if(typeof window<"u")try{var Ub=Object.defineProperty({},"passive",{get:function(){return aO=!0,!0}});window.addEventListener("test",Ub,Ub),window.removeEventListener("test",Ub,Ub)}catch{aO=!1}var nh=aO?{passive:!1}:!1,EBe=function(t){return t.tagName==="TEXTAREA"},_J=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!EBe(t)&&n[e]==="visible")},ABe=function(t){return _J(t,"overflowY")},OBe=function(t){return _J(t,"overflowX")},L9=function(t,e){var n=e.ownerDocument,r=e;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=NJ(t,r);if(a){var s=CJ(t,r),o=s[1],l=s[2];if(o>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},TBe=function(t){var e=t.scrollTop,n=t.scrollHeight,r=t.clientHeight;return[e,n,r]},PBe=function(t){var e=t.scrollLeft,n=t.scrollWidth,r=t.clientWidth;return[e,n,r]},NJ=function(t,e){return t==="v"?ABe(e):OBe(e)},CJ=function(t,e){return t==="v"?TBe(e):PBe(e)},MBe=function(t,e){return t==="h"&&e==="rtl"?-1:1},RBe=function(t,e,n,r,a){var s=MBe(t,window.getComputedStyle(e).direction),o=s*r,l=n.target,c=e.contains(l),u=!1,d=o>0,f=0,h=0;do{if(!l)break;var p=CJ(t,l),m=p[0],x=p[1],y=p[2],b=x-y-s*m;(m||b)&&NJ(t,l)&&(f+=b,h+=m);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!c&&l!==document.body||c&&(e.contains(l)||e===l));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Vb=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},F9=function(t){return[t.deltaX,t.deltaY]},B9=function(t){return t&&"current"in t?t.current:t},DBe=function(t,e){return t[0]===e[0]&&t[1]===e[1]},IBe=function(t){return` + .block-interactivity-`.concat(t,` {pointer-events: none;} + .allow-interactivity-`).concat(t,` {pointer-events: all;} +`)},$Be=0,rh=[];function LBe(t){var e=g.useRef([]),n=g.useRef([0,0]),r=g.useRef(),a=g.useState($Be++)[0],s=g.useState(SJ)[0],o=g.useRef(t);g.useEffect(function(){o.current=t},[t]),g.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var x=sBe([t.lockRef.current],(t.shards||[]).map(B9),!0).filter(Boolean);return x.forEach(function(y){return y.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var l=g.useCallback(function(x,y){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!o.current.allowPinchZoom;var b=Vb(x),v=n.current,w="deltaX"in x?x.deltaX:v[0]-b[0],j="deltaY"in x?x.deltaY:v[1]-b[1],k,_=x.target,S=Math.abs(w)>Math.abs(j)?"h":"v";if("touches"in x&&S==="h"&&_.type==="range")return!1;var N=window.getSelection(),E=N&&N.anchorNode,P=E?E===_||E.contains(_):!1;if(P)return!1;var M=L9(S,_);if(!M)return!0;if(M?k=S:(k=S==="v"?"h":"v",M=L9(S,_)),!M)return!1;if(!r.current&&"changedTouches"in x&&(w||j)&&(r.current=k),!k)return!0;var A=r.current||k;return RBe(A,y,x,A==="h"?w:j)},[]),c=g.useCallback(function(x){var y=x;if(!(!rh.length||rh[rh.length-1]!==s)){var b="deltaY"in y?F9(y):Vb(y),v=e.current.filter(function(k){return k.name===y.type&&(k.target===y.target||y.target===k.shadowParent)&&DBe(k.delta,b)})[0];if(v&&v.should){y.cancelable&&y.preventDefault();return}if(!v){var w=(o.current.shards||[]).map(B9).filter(Boolean).filter(function(k){return k.contains(y.target)}),j=w.length>0?l(y,w[0]):!o.current.noIsolation;j&&y.cancelable&&y.preventDefault()}}},[]),u=g.useCallback(function(x,y,b,v){var w={name:x,delta:y,target:b,should:v,shadowParent:FBe(b)};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(j){return j!==w})},1)},[]),d=g.useCallback(function(x){n.current=Vb(x),r.current=void 0},[]),f=g.useCallback(function(x){u(x.type,F9(x),x.target,l(x,t.lockRef.current))},[]),h=g.useCallback(function(x){u(x.type,Vb(x),x.target,l(x,t.lockRef.current))},[]);g.useEffect(function(){return rh.push(s),t.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",c,nh),document.addEventListener("touchmove",c,nh),document.addEventListener("touchstart",d,nh),function(){rh=rh.filter(function(x){return x!==s}),document.removeEventListener("wheel",c,nh),document.removeEventListener("touchmove",c,nh),document.removeEventListener("touchstart",d,nh)}},[]);var p=t.removeScrollBar,m=t.inert;return g.createElement(g.Fragment,null,m?g.createElement(s,{styles:IBe(a)}):null,p?g.createElement(CBe,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function FBe(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const BBe=pBe(jJ,LBe);var EJ=g.forwardRef(function(t,e){return g.createElement(S2,rl({},t,{ref:e,sideCar:BBe}))});EJ.classNames=S2.classNames;var zBe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},ah=new WeakMap,Wb=new WeakMap,Hb={},CN=0,AJ=function(t){return t&&(t.host||AJ(t.parentNode))},UBe=function(t,e){return e.map(function(n){if(t.contains(n))return n;var r=AJ(n);return r&&t.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},VBe=function(t,e,n,r){var a=UBe(e,Array.isArray(t)?t:[t]);Hb[n]||(Hb[n]=new WeakMap);var s=Hb[n],o=[],l=new Set,c=new Set(a),u=function(f){!f||l.has(f)||(l.add(f),u(f.parentNode))};a.forEach(u);var d=function(f){!f||c.has(f)||Array.prototype.forEach.call(f.children,function(h){if(l.has(h))d(h);else try{var p=h.getAttribute(r),m=p!==null&&p!=="false",x=(ah.get(h)||0)+1,y=(s.get(h)||0)+1;ah.set(h,x),s.set(h,y),o.push(h),x===1&&m&&Wb.set(h,!0),y===1&&h.setAttribute(n,"true"),m||h.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return d(e),l.clear(),CN++,function(){o.forEach(function(f){var h=ah.get(f)-1,p=s.get(f)-1;ah.set(f,h),s.set(f,p),h||(Wb.has(f)||f.removeAttribute(r),Wb.delete(f)),p||f.removeAttribute(n)}),CN--,CN||(ah=new WeakMap,ah=new WeakMap,Wb=new WeakMap,Hb={})}},WBe=function(t,e,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),a=zBe(t);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),VBe(r,a,n,"aria-hidden")):function(){return null}},HBe=Object.defineProperty,Nc=(t,e)=>HBe(t,"name",{value:e,configurable:!0}),hM="Dialog",[OJ]=E9e(hM),[GBe,Tf]=OJ(hM),qBe=Nc(t=>{const{__scopeDialog:e,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:o=!0}=t,l=g.useRef(null),c=g.useRef(null),[u,d]=rJ({prop:r,defaultProp:a??!1,onChange:s,caller:hM}),[f,h]=g.useState(0),[p,m]=g.useState(0);return i.jsx(GBe,{scope:e,triggerRef:l,contentRef:c,contentId:lc(),titleId:lc(),descriptionId:lc(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:h,setDescriptionCount:m,open:u,onOpenChange:d,onOpenToggle:g.useCallback(()=>d(x=>!x),[d]),modal:o,children:n})},"Dialog"),TJ="DialogPortal",[KBe,PJ]=OJ(TJ,{forceMount:void 0}),YBe=Nc(t=>{const{__scopeDialog:e,forceMount:n,children:r,container:a}=t,s=Tf(TJ,e);return i.jsx(KBe,{scope:e,forceMount:n,children:g.Children.map(r,o=>i.jsx(fM,{present:n||s.open,children:i.jsx(nBe,{asChild:!0,container:a,children:o})}))})},"DialogPortal"),sO="DialogOverlay",XBe=g.forwardRef(Nc(function(e,n){const r=PJ(sO,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Tf(sO,e.__scopeDialog);return o.modal?i.jsx(fM,{present:a||o.open,children:i.jsx(ZBe,{...s,ref:n})}):null},"DialogOverlay")),JBe=iJ("DialogOverlay.RemoveScroll"),ZBe=g.forwardRef(Nc(function(e,n){const{__scopeDialog:r,...a}=e,s=Tf(sO,r),o=lJ(),l=Jy(n,o);return i.jsx(EJ,{as:JBe,allowPinchZoom:!0,shards:[s.contentRef],children:i.jsx(to.div,{"data-state":pM(s.open),...a,ref:l,style:{pointerEvents:"auto",...a.style}})})},"DialogOverlayImpl")),vy="DialogContent",QBe=g.forwardRef(Nc(function(e,n){const r=PJ(vy,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Tf(vy,e.__scopeDialog);return i.jsx(fM,{present:a||o.open,children:o.modal?i.jsx(eze,{...s,ref:n}):i.jsx(tze,{...s,ref:n})})},"DialogContent")),eze=g.forwardRef(Nc(function(e,n){const r=Tf(vy,e.__scopeDialog),a=g.useRef(null),s=Jy(n,r.contentRef,a);return g.useEffect(()=>{const o=a.current;if(o)return WBe(o)},[]),i.jsx(MJ,{...e,ref:s,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Kd(e.onCloseAutoFocus,o=>{var l;o.preventDefault(),(l=r.triggerRef.current)==null||l.focus()}),onPointerDownOutside:Kd(e.onPointerDownOutside,o=>{const l=o.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&o.preventDefault()}),onFocusOutside:Kd(e.onFocusOutside,o=>o.preventDefault())})},"DialogContentModal")),tze=g.forwardRef(Nc(function(e,n){const r=Tf(vy,e.__scopeDialog),a=g.useRef(!1),s=g.useRef(!1);return i.jsx(MJ,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,o),o.defaultPrevented||(a.current||(c=r.triggerRef.current)==null||c.focus(),o.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:o=>{var u,d;(u=e.onInteractOutside)==null||u.call(e,o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const l=o.target;((d=r.triggerRef.current)==null?void 0:d.contains(l))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&s.current&&o.preventDefault()}})},"DialogContentNonModal")),MJ=g.forwardRef(Nc(function(e,n){const{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:o,...l}=e,c=Tf(vy,r);return aBe(),i.jsx(i.Fragment,{children:i.jsx(Q9e,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:o,children:i.jsx(X9e,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionPresent?c.descriptionId:void 0,"aria-labelledby":c.titlePresent?c.titleId:void 0,"data-state":pM(c.open),...l,ref:n,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})},"DialogContentImpl"));function pM(t){return t?"open":"closed"}Nc(pM,"getState");var Bg='[cmdk-group=""]',EN='[cmdk-group-items=""]',nze='[cmdk-group-heading=""]',RJ='[cmdk-item=""]',z9=`${RJ}:not([aria-disabled="true"])`,iO="cmdk-item-select",hh="data-value",rze=(t,e,n)=>_9e(t,e,n),DJ=g.createContext(void 0),Qy=()=>g.useContext(DJ),IJ=g.createContext(void 0),mM=()=>g.useContext(IJ),$J=g.createContext(void 0),LJ=g.forwardRef((t,e)=>{let n=ph(()=>{var $,F;return{search:"",value:(F=($=t.value)!=null?$:t.defaultValue)!=null?F:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=ph(()=>new Set),a=ph(()=>new Map),s=ph(()=>new Map),o=ph(()=>new Set),l=FJ(t),{label:c,children:u,value:d,onValueChange:f,filter:h,shouldFilter:p,loop:m,disablePointerSelection:x=!1,vimBindings:y=!0,...b}=t,v=lc(),w=lc(),j=lc(),k=g.useRef(null),_=pze();bf(()=>{if(d!==void 0){let $=d.trim();n.current.value=$,S.emit()}},[d]),bf(()=>{_(6,O)},[]);let S=g.useMemo(()=>({subscribe:$=>(o.current.add($),()=>o.current.delete($)),snapshot:()=>n.current,setState:($,F,R)=>{var z,U,ee,pe;if(!Object.is(n.current[$],F)){if(n.current[$]=F,$==="search")A(),P(),_(1,M);else if($==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(j);re?re.focus():(z=document.getElementById(v))==null||z.focus()}if(_(7,()=>{var re;n.current.selectedItemId=(re=D())==null?void 0:re.id,S.emit()}),R||_(5,O),((U=l.current)==null?void 0:U.value)!==void 0){let re=F??"";(pe=(ee=l.current).onValueChange)==null||pe.call(ee,re);return}}S.emit()}},emit:()=>{o.current.forEach($=>$())}}),[]),N=g.useMemo(()=>({value:($,F,R)=>{var z;F!==((z=s.current.get($))==null?void 0:z.value)&&(s.current.set($,{value:F,keywords:R}),n.current.filtered.items.set($,E(F,R)),_(2,()=>{P(),S.emit()}))},item:($,F)=>(r.current.add($),F&&(a.current.has(F)?a.current.get(F).add($):a.current.set(F,new Set([$]))),_(3,()=>{A(),P(),n.current.value||M(),S.emit()}),()=>{s.current.delete($),r.current.delete($),n.current.filtered.items.delete($);let R=D();_(4,()=>{A(),(R==null?void 0:R.getAttribute("id"))===$&&M(),S.emit()})}),group:$=>(a.current.has($)||a.current.set($,new Set),()=>{s.current.delete($),a.current.delete($)}),filter:()=>l.current.shouldFilter,label:c||t["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:v,inputId:j,labelId:w,listInnerRef:k}),[]);function E($,F){var R,z;let U=(z=(R=l.current)==null?void 0:R.filter)!=null?z:rze;return $?U($,n.current.search,F):0}function P(){if(!n.current.search||l.current.shouldFilter===!1)return;let $=n.current.filtered.items,F=[];n.current.filtered.groups.forEach(z=>{let U=a.current.get(z),ee=0;U.forEach(pe=>{let re=$.get(pe);ee=Math.max(re,ee)}),F.push([z,ee])});let R=k.current;I().sort((z,U)=>{var ee,pe;let re=z.getAttribute("id"),he=U.getAttribute("id");return((ee=$.get(he))!=null?ee:0)-((pe=$.get(re))!=null?pe:0)}).forEach(z=>{let U=z.closest(EN);U?U.appendChild(z.parentElement===U?z:z.closest(`${EN} > *`)):R.appendChild(z.parentElement===R?z:z.closest(`${EN} > *`))}),F.sort((z,U)=>U[1]-z[1]).forEach(z=>{var U;let ee=(U=k.current)==null?void 0:U.querySelector(`${Bg}[${hh}="${encodeURIComponent(z[0])}"]`);ee==null||ee.parentElement.appendChild(ee)})}function M(){let $=I().find(R=>R.getAttribute("aria-disabled")!=="true"),F=$==null?void 0:$.getAttribute(hh);S.setState("value",F||void 0)}function A(){var $,F,R,z;if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let U=0;for(let ee of r.current){let pe=(F=($=s.current.get(ee))==null?void 0:$.value)!=null?F:"",re=(z=(R=s.current.get(ee))==null?void 0:R.keywords)!=null?z:[],he=E(pe,re);n.current.filtered.items.set(ee,he),he>0&&U++}for(let[ee,pe]of a.current)for(let re of pe)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=U}function O(){var $,F,R;let z=D();z&&((($=z.parentElement)==null?void 0:$.firstChild)===z&&((R=(F=z.closest(Bg))==null?void 0:F.querySelector(nze))==null||R.scrollIntoView({block:"nearest"})),z.scrollIntoView({block:"nearest"}))}function D(){var $;return($=k.current)==null?void 0:$.querySelector(`${RJ}[aria-selected="true"]`)}function I(){var $;return Array.from((($=k.current)==null?void 0:$.querySelectorAll(z9))||[])}function X($){let F=I()[$];F&&S.setState("value",F.getAttribute(hh))}function Q($){var F;let R=D(),z=I(),U=z.findIndex(pe=>pe===R),ee=z[U+$];(F=l.current)!=null&&F.loop&&(ee=U+$<0?z[z.length-1]:U+$===z.length?z[0]:z[U+$]),ee&&S.setState("value",ee.getAttribute(hh))}function V($){let F=D(),R=F==null?void 0:F.closest(Bg),z;for(;R&&!z;)R=$>0?fze(R,Bg):hze(R,Bg),z=R==null?void 0:R.querySelector(z9);z?S.setState("value",z.getAttribute(hh)):Q($)}let Y=()=>X(I().length-1),H=$=>{$.preventDefault(),$.metaKey?Y():$.altKey?V(1):Q(1)},G=$=>{$.preventDefault(),$.metaKey?X(0):$.altKey?V(-1):Q(-1)};return g.createElement(to.div,{ref:e,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:$=>{var F;(F=b.onKeyDown)==null||F.call(b,$);let R=$.nativeEvent.isComposing||$.keyCode===229;if(!($.defaultPrevented||R))switch($.key){case"n":case"j":{y&&$.ctrlKey&&H($);break}case"ArrowDown":{H($);break}case"p":case"k":{y&&$.ctrlKey&&G($);break}case"ArrowUp":{G($);break}case"Home":{$.preventDefault(),X(0);break}case"End":{$.preventDefault(),Y();break}case"Enter":{$.preventDefault();let z=D();if(z){let U=new Event(iO);z.dispatchEvent(U)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:gze},c),_2(t,$=>g.createElement(IJ.Provider,{value:S},g.createElement(DJ.Provider,{value:N},$))))}),aze=g.forwardRef((t,e)=>{var n,r;let a=lc(),s=g.useRef(null),o=g.useContext($J),l=Qy(),c=FJ(t),u=(r=(n=c.current)==null?void 0:n.forceMount)!=null?r:o==null?void 0:o.forceMount;bf(()=>{if(!u)return l.item(a,o==null?void 0:o.id)},[u]);let d=BJ(a,s,[t.value,t.children,s],t.keywords),f=mM(),h=zu(_=>_.value&&_.value===d.current),p=zu(_=>u||l.filter()===!1?!0:_.search?_.filtered.items.get(a)>0:!0);g.useEffect(()=>{let _=s.current;if(!(!_||t.disabled))return _.addEventListener(iO,m),()=>_.removeEventListener(iO,m)},[p,t.onSelect,t.disabled]);function m(){var _,S;x(),(S=(_=c.current).onSelect)==null||S.call(_,d.current)}function x(){f.setState("value",d.current,!0)}if(!p)return null;let{disabled:y,value:b,onSelect:v,forceMount:w,keywords:j,...k}=t;return g.createElement(to.div,{ref:cm(s,e),...k,id:a,"cmdk-item":"",role:"option","aria-disabled":!!y,"aria-selected":!!h,"data-disabled":!!y,"data-selected":!!h,onPointerMove:y||l.getDisablePointerSelection()?void 0:x,onClick:y?void 0:m},t.children)}),sze=g.forwardRef((t,e)=>{let{heading:n,children:r,forceMount:a,...s}=t,o=lc(),l=g.useRef(null),c=g.useRef(null),u=lc(),d=Qy(),f=zu(p=>a||d.filter()===!1?!0:p.search?p.filtered.groups.has(o):!0);bf(()=>d.group(o),[]),BJ(o,l,[t.value,t.heading,c]);let h=g.useMemo(()=>({id:o,forceMount:a}),[a]);return g.createElement(to.div,{ref:cm(l,e),...s,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&g.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:u},n),_2(t,p=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?u:void 0},g.createElement($J.Provider,{value:h},p))))}),ize=g.forwardRef((t,e)=>{let{alwaysRender:n,...r}=t,a=g.useRef(null),s=zu(o=>!o.search);return!n&&!s?null:g.createElement(to.div,{ref:cm(a,e),...r,"cmdk-separator":"",role:"separator"})}),oze=g.forwardRef((t,e)=>{let{onValueChange:n,...r}=t,a=t.value!=null,s=mM(),o=zu(u=>u.search),l=zu(u=>u.selectedItemId),c=Qy();return g.useEffect(()=>{t.value!=null&&s.setState("search",t.value)},[t.value]),g.createElement(to.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:a?t.value:o,onChange:u=>{a||s.setState("search",u.target.value),n==null||n(u.target.value)}})}),lze=g.forwardRef((t,e)=>{let{children:n,label:r="Suggestions",...a}=t,s=g.useRef(null),o=g.useRef(null),l=zu(u=>u.selectedItemId),c=Qy();return g.useEffect(()=>{if(o.current&&s.current){let u=o.current,d=s.current,f,h=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let p=u.offsetHeight;d.style.setProperty("--cmdk-list-height",p.toFixed(1)+"px")})});return h.observe(u),()=>{cancelAnimationFrame(f),h.unobserve(u)}}},[]),g.createElement(to.div,{ref:cm(s,e),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:c.listId},_2(t,u=>g.createElement("div",{ref:cm(o,c.listInnerRef),"cmdk-list-sizer":""},u)))}),cze=g.forwardRef((t,e)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:o,...l}=t;return g.createElement(qBe,{open:n,onOpenChange:r},g.createElement(YBe,{container:o},g.createElement(XBe,{"cmdk-overlay":"",className:a}),g.createElement(QBe,{"aria-label":t.label,"cmdk-dialog":"",className:s},g.createElement(LJ,{ref:e,...l}))))}),uze=g.forwardRef((t,e)=>zu(n=>n.filtered.count===0)?g.createElement(to.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),dze=g.forwardRef((t,e)=>{let{progress:n,children:r,label:a="Loading...",...s}=t;return g.createElement(to.div,{ref:e,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},_2(t,o=>g.createElement("div",{"aria-hidden":!0},o)))}),sh=Object.assign(LJ,{List:lze,Item:aze,Input:oze,Group:sze,Separator:ize,Dialog:cze,Empty:uze,Loading:dze});function fze(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return n;n=n.nextElementSibling}}function hze(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return n;n=n.previousElementSibling}}function FJ(t){let e=g.useRef(t);return bf(()=>{e.current=t}),e}var bf=typeof window>"u"?g.useEffect:g.useLayoutEffect;function ph(t){let e=g.useRef();return e.current===void 0&&(e.current=t()),e}function zu(t){let e=mM(),n=()=>t(e.snapshot());return g.useSyncExternalStore(e.subscribe,n,n)}function BJ(t,e,n,r=[]){let a=g.useRef(),s=Qy();return bf(()=>{var o;let l=(()=>{var u;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(u=d.current.textContent)==null?void 0:u.trim():a.current}})(),c=r.map(u=>u.trim());s.value(t,l,c),(o=e.current)==null||o.setAttribute(hh,l),a.current=l}),a}var pze=()=>{let[t,e]=g.useState(),n=ph(()=>new Map);return bf(()=>{n.current.forEach(r=>r()),n.current=new Map},[t]),(r,a)=>{n.current.set(r,a),e({})}};function mze(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function _2({asChild:t,children:e},n){return t&&g.isValidElement(e)?g.cloneElement(mze(e),{ref:e.ref},n(e.props.children)):n(e)}var gze={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const U9=[{heading:"General",items:[{to:"/",label:"Overview",icon:gH,keywords:["home","dashboard"]},{to:"/analytics",label:"Analytics",icon:a1,keywords:["metrics","charts","stats"]},{to:"/analytics",label:"Multi-objective",hint:"Analytics",icon:a1,keywords:["sr","success rate","multi objective","transactions"]},{to:"/analytics?view=rule_based",label:"Rule & Volume",hint:"Analytics",icon:a1,keywords:["rule based","volume","rules","analytics"]},{to:"/audit",label:"Decision Audit",icon:Xh,keywords:["payment","inspect","logs","transactions"]},{to:"/audit",label:"Multi-objective",hint:"Decision Audit",icon:Xh,keywords:["sr","success rate","multi objective","transactions"]},{to:"/audit?mode=rule_based",label:"Rule & Volume",hint:"Decision Audit",icon:Xh,keywords:["rule based","volume","rules"]},{to:"/audit?mode=debit_routing",label:"Debit Routing",hint:"Decision Audit",icon:Oo,keywords:["debit","network","card"]},{to:"/events",label:"Routing Events",icon:Zw,keywords:["stream","live","feed"]}]},{heading:"Routing",items:[{to:"/routing",label:"Routing Hub",icon:qj,keywords:["strategies","algorithms","overview"]},{to:"/routing/sr",label:"Multi Objective",icon:Kj,keywords:["sr","success rate","auth rate"]},{to:"/routing/sr?tab=autopilot",label:"Autopilot",hint:"Multi Objective",icon:ICe,keywords:["sr","auto","automatic"]},{to:"/routing/sr?tab=manual",label:"Manual Config",hint:"Multi Objective",icon:Hi,keywords:["sr","weights","tuning"]},{to:"/routing/sr?tab=manual",label:"Scoring Defaults",hint:"Manual Config",icon:Hi,keywords:["sr","scoring","defaults","weights","bucket size","hedging","payment type override"]},{to:"/routing/sr?tab=manual§ion=elimination",label:"Elimination",hint:"Manual Config",icon:dH,keywords:["sr","eliminate","threshold","latency","auth rate","drop psp","remove gateway"]},{to:"/routing/sr?tab=manual§ion=dimensions",label:"SR Dimensions",hint:"Manual Config",icon:xT,keywords:["sr","dimensions","split","clusters","udf","card network","currency","country","bin"]},{to:"/routing/sr?tab=flags",label:"Feature Flags",hint:"Multi Objective",icon:UCe,keywords:["sr","toggles","settings"]},{to:"/routing/sr?tab=cost",label:"Cost Estimation",hint:"Multi Objective",icon:pH,keywords:["cost","pricing","fees","connectors","clusters"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Data Ingestion",hint:"Cost Estimation",icon:xA,keywords:["cost","ingest","connector","settlement","upload","report"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Automatic Ingestion",hint:"Data Ingestion",icon:xA,keywords:["cost","ingest","credentials","sftp","connector","automatic","scheduled"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=manual",label:"Manual Report Upload",hint:"Data Ingestion",icon:_H,keywords:["cost","ingest","upload","csv","settlement","report","par","sample","manual"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=invoice",label:"Invoice Upload",hint:"Data Ingestion",icon:mH,keywords:["cost","ingest","invoice","upload","monthly","scheme fees","billing"]},{to:"/routing/sr?tab=cost§ion=data",label:"Ingested Data",hint:"Cost Estimation",icon:xH,keywords:["cost","coverage","history","data"]},{to:"/routing/sr?tab=cost",label:"Costs",hint:"Cost Estimation",icon:Hi,keywords:["cost","override","blended fee","fee","contract","seed","baseline","interchange","scheme","markup","connector","psp"]},{to:"/routing/rules",label:"Rule Based",icon:Wj,keywords:["euclid","rules","conditions"]},{to:"/routing/volume",label:"Volume Split",icon:cf,keywords:["distribution","percentage","weights"]},{to:"/routing/debit",label:"Debit Routing",icon:Oo,keywords:["debit","network","card"]},{to:"/routing/ab-testing",label:"A/B Testing",hint:"Beta",icon:qp,keywords:["experiment","split test","ab"]}]},{heading:"Simulation",items:[{to:"/decisions/simulator",label:"Decision Simulator",icon:qp,keywords:["simulate","test","preview"]}]},{heading:"Settings",items:[{to:"/members",label:"Members",icon:vT,keywords:["team","users","roles","invite","access"]},{to:"/api-keys",label:"API Keys",icon:gT,keywords:["tokens","credentials","secrets"]},{to:"/account",label:"Change Password",hint:"Account",icon:mT,keywords:["account","password","security"]}]}],xze=oM?U9:U9.filter(t=>t.heading!=="Simulation");function yze(t,e,n){const r=e.trim().toLowerCase();if(!r)return 1;const a=t.toLowerCase();return a.startsWith(r)?1:a.includes(r)?.9:(n??[]).join(" ").toLowerCase().includes(r)?.6:0}function vze(){const t=Kr(),[e,n]=g.useState(!1);g.useEffect(()=>{function a(s){s.key.toLowerCase()==="k"&&(s.metaKey||s.ctrlKey)&&(s.preventDefault(),n(o=>!o))}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);const r=g.useCallback(a=>{n(!1),t(a)},[t]);return i.jsxs(i.Fragment,{children:[i.jsx(bze,{onClick:()=>n(!0)}),i.jsx(wze,{open:e,onOpenChange:n,onSelect:r})]})}function bze({onClick:t}){const e=g.useMemo(()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),[]);return i.jsxs("button",{type:"button",onClick:t,className:"group flex h-9 w-full max-w-md items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-500 transition-colors hover:border-slate-300 hover:text-slate-500 dark:border-[#1a1a24] dark:bg-[#121218] dark:hover:border-[#2a2a38] dark:hover:text-slate-300","aria-label":"Search",children:[i.jsx(Kp,{size:14,className:"shrink-0"}),i.jsx("span",{className:"flex-1 text-left text-[13px] font-medium leading-[18px]",children:"Search…"}),i.jsxs("kbd",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-slate-200 bg-slate-50 px-1.5 py-0.5 text-[11px] font-semibold text-slate-500 sm:flex dark:border-[#22262f] dark:bg-[#0a0d12] dark:text-[#6d768a] leading-4",children:[e?"⌘":"Ctrl"," K"]})]})}function wze({open:t,onOpenChange:e,onSelect:n}){return i.jsxs(sh.Dialog,{open:t,onOpenChange:e,label:"Global search",filter:yze,loop:!0,className:"flex min-h-0 flex-1 flex-col",overlayClassName:"fixed inset-0 z-[100] bg-slate-900/40 backdrop-blur-sm dark:bg-black/60",contentClassName:"fixed left-1/2 top-[12vh] z-[101] flex max-h-[76vh] w-[calc(100vw-2rem)] max-w-xl -translate-x-1/2 flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_30px_80px_-40px_rgba(15,23,42,0.55)] focus:outline-none dark:border-[#22262f] dark:bg-[#0a0d12]",children:[i.jsxs("div",{className:"flex items-center gap-3 border-b border-slate-200 px-4 dark:border-[#22262f]",children:[i.jsx(Kp,{size:17,className:"shrink-0 text-slate-500"}),i.jsx(sh.Input,{autoFocus:!0,placeholder:"Search pages and settings…",className:"h-12 w-full bg-transparent px-0 text-[15px] text-slate-900 outline-none focus:ring-0 placeholder:text-slate-500 dark:text-white dark:placeholder:text-[#78849a] leading-[22px]"})]}),i.jsxs(sh.List,{className:"min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-2",children:[i.jsx(sh.Empty,{className:"px-3 py-8 text-center text-sm text-slate-500",children:"No results found."}),xze.map(r=>i.jsx(sh.Group,{heading:r.heading,className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-widest [&_[cmdk-group-heading]]:text-slate-400 dark:[&_[cmdk-group-heading]]:text-[#6d768a]",children:r.items.map(a=>{const s=a.icon;return i.jsxs(sh.Item,{value:a.hint?`${a.label} ${a.hint}`:a.label,keywords:a.keywords??[],onSelect:()=>n(a.to),className:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-[14px] text-slate-600 aria-selected:bg-slate-100 aria-selected:text-slate-900 dark:text-[#8d96aa] dark:aria-selected:bg-white/[0.06] dark:aria-selected:text-white leading-5",children:[i.jsx(s,{size:16,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate font-medium",children:a.label}),a.hint?i.jsx("span",{className:"shrink-0 text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:a.hint}):null]},`${a.to}::${a.label}`)})},r.heading))]})]})}const kze=8;function Ik(t){return{org:t.hs_org_name??t.hs_org_id??null,merchant:t.hs_merchant_name??t.hs_merchant_id??null,profile:t.profile_name??t.merchant_name??t.merchant_id}}function jze(t){return t.length>14?`${t.slice(0,8)}…${t.slice(-4)}`:t}const V9="ungrouped:no-ancestry";function Sze(t){const e=new Map;for(const n of t){const r=Ik(n),a=n.hs_merchant_id??r.merchant??V9,s=e.get(a);s?s.scopes.push(n):e.set(a,{key:a,merchant:r.merchant,org:r.org,orgIsId:n.hs_org_name==null,orgKey:n.hs_org_id??r.org??V9,scopes:[n]})}return[...e.values()]}function _ze(t,e){const n=Ik(t);return[n.profile,n.merchant,n.org,t.merchant_id,t.merchant_name].some(r=>r==null?void 0:r.toLowerCase().includes(e))}function Nze(){const t=Kr(),{user:e,merchants:n,updateMerchant:r}=xr(),{setMerchantId:a}=Er(),[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState(null),[f,h]=g.useState(new Set),[p,m]=g.useState(null),x=g.useRef(null),y=g.useRef(null),b=!!(e!=null&&e.isRedirectSession||e!=null&&e.isSuperAdminView),v=n.length>(b?1:0),w=!(e!=null&&e.isRedirectSession)&&!(e!=null&&e.isSuperAdminView),j=n.find(H=>H.merchant_id===(e==null?void 0:e.merchantId)),k=e!=null&&e.hierarchy?{org:e.hierarchy.hs_org_name??e.hierarchy.hs_org_id??null,merchant:e.hierarchy.hs_merchant_name??e.hierarchy.hs_merchant_id??null,profile:e.hierarchy.profile_name??(j==null?void 0:j.merchant_name)??e.merchantId}:j?Ik(j):{org:null,merchant:null,profile:(e==null?void 0:e.merchantId)??"No scope"},_=g.useMemo(()=>Sze(n),[n]),S=l.trim().toLowerCase(),N=_.length>1,E=g.useMemo(()=>new Set(_.map(H=>H.orgKey)).size>1,[_]),P=N?null:_[0]??null,M=g.useMemo(()=>S?_.map(H=>({...H,scopes:H.scopes.filter(G=>_ze(G,S))})).filter(H=>H.scopes.length>0):_,[_,S]),A=H=>N&&H.merchant!==null&&!S&&f.has(H.key),O=g.useMemo(()=>M.flatMap(H=>A(H)?[]:H.scopes),[M,f,S,N]);g.useEffect(()=>{function H(G){x.current&&!x.current.contains(G.target)&&o(!1)}return document.addEventListener("mousedown",H),()=>document.removeEventListener("mousedown",H)},[]),g.useEffect(()=>{if(!s)return;c(""),m((e==null?void 0:e.merchantId)??null);const H=_.find(G=>G.scopes.some($=>$.merchant_id===(e==null?void 0:e.merchantId)));h(n.length<=kze?new Set:new Set(_.filter(G=>G.key!==(H==null?void 0:H.key)).map(G=>G.key)))},[s,_,n.length,e==null?void 0:e.merchantId]),g.useEffect(()=>{var H;!s||!S||m(((H=O[0])==null?void 0:H.merchant_id)??null)},[s,S,O]),g.useEffect(()=>{var H,G;s&&((G=(H=y.current)==null?void 0:H.querySelector('[data-active="true"]'))==null||G.scrollIntoView({block:"nearest"}))},[p,s]);async function D(H){if(H===(e==null?void 0:e.merchantId)){o(!1);return}if(!u){d(H);try{const G=await la("/auth/switch-merchant",{method:"POST",body:JSON.stringify({merchant_id:H})});r(G.token,G.merchant_id,G.merchants),a(G.merchant_id),o(!1)}catch{}finally{d(null)}}}function I(H){h(G=>{const $=new Set(G);return $.has(H)?$.delete(H):$.add(H),$})}function X(H){if(H.key==="Escape"){o(!1);return}if(H.key==="ArrowDown"||H.key==="ArrowUp"){if(H.preventDefault(),O.length===0)return;const G=H.key==="ArrowDown"?1:-1,$=O.findIndex(R=>R.merchant_id===p),F=$===-1?G===1?0:O.length-1:($+G+O.length)%O.length;m(O[F].merchant_id);return}if(H.key==="Enter"){H.preventDefault();const G=O.find($=>$.merchant_id===p);G&&D(G.merchant_id)}}const Q=k.merchant?WS:Oh,V=i.jsxs(i.Fragment,{children:[i.jsx(Q,{size:14,className:"shrink-0 text-slate-500"}),i.jsxs("span",{className:"flex min-w-0 flex-col items-start leading-tight",children:[k.merchant&&i.jsx("span",{className:"max-w-[170px] truncate text-[11px] font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:k.merchant}),i.jsx("span",{className:"max-w-[170px] truncate text-[12.5px] font-semibold text-slate-700 dark:text-slate-200 leading-[17px]",children:k.profile})]})]}),Y=[k.org&&`Organization ${k.org}`,k.merchant&&`Merchant ${k.merchant}`,`Profile ${k.profile}`,`Scope id ${(e==null?void 0:e.merchantId)??"—"}`].filter(Boolean).join(` +`);return v?i.jsxs("div",{className:"relative",ref:x,children:[i.jsxs("button",{onClick:()=>o(H=>!H),title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 dark:hover:bg-[#18181f]",children:[V,i.jsx(wn,{size:12,className:"shrink-0 text-slate-500"})]}),s&&i.jsxs("div",{onKeyDown:X,className:"absolute right-0 top-12 z-50 flex max-h-[min(560px,70vh)] w-[380px] flex-col overflow-hidden rounded-xl border border-[#e6e6ee] bg-white shadow-xl dark:border-[#1a1a24] dark:bg-[#0c0c10]",children:[P&&(P.org||P.merchant)&&i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-[#e6e6ee] px-3.5 py-2 text-slate-500 dark:border-[#1a1a24] dark:text-slate-400",children:[P.org&&i.jsxs(i.Fragment,{children:[i.jsx(Oh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`min-w-0 truncate leading-4 ${P.orgIsId?"font-mono text-[10.5px]":"text-[11px]"}`,children:P.org})]}),P.org&&P.merchant&&i.jsx(Xi,{size:10,className:"shrink-0"}),P.merchant&&i.jsxs(i.Fragment,{children:[i.jsx(WS,{size:11,className:"shrink-0"}),i.jsx("span",{className:"min-w-0 truncate text-[11px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:P.merchant})]})]}),i.jsxs("div",{className:"relative border-b border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx(Kp,{size:13,className:"pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{value:l,onChange:H=>c(H.target.value),placeholder:b?"Search profiles, merchants, ids":"Search merchants",autoFocus:!0,className:"h-11 w-full bg-transparent pl-9 pr-3.5 text-[13px] text-slate-700 placeholder:text-slate-500 focus:outline-none dark:text-slate-200 leading-[18px]"})]}),i.jsxs("div",{ref:y,className:`flex-1 overflow-y-auto pb-1 ${E||N?"":"pt-1"}`,children:[M.length===0&&i.jsxs("p",{className:"px-3.5 py-6 text-center text-[12px] text-slate-500 leading-4",children:["Nothing matches “",l.trim(),"”."]}),M.map((H,G)=>{const $=E&&H.org!==null,F=$&&(G===0||M[G-1].orgKey!==H.orgKey),R=N&&H.merchant!==null,z=A(H);return i.jsxs("div",{children:[F&&i.jsxs("p",{className:"sticky top-0 z-20 flex items-center gap-1.5 bg-white px-3.5 pb-1 pt-2.5 text-slate-500 dark:bg-[#0c0c10] dark:text-slate-500 leading-4",children:[i.jsx(Oh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`truncate ${H.orgIsId?"font-mono text-[10.5px]":"text-[11px] font-semibold uppercase tracking-widest"}`,children:H.org})]}),R&&i.jsxs("button",{onClick:()=>I(H.key),className:`sticky z-10 flex w-full items-center gap-1.5 bg-white px-3.5 py-1.5 text-left transition-colors hover:bg-slate-50 dark:bg-[#0c0c10] dark:hover:bg-[#13131a] ${$?"top-[26px]":"top-0"}`,children:[i.jsx(Xi,{size:12,className:`shrink-0 text-slate-500 transition-transform ${z?"":"rotate-90"}`}),i.jsx(WS,{size:12,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate text-[12px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:H.merchant}),i.jsx("span",{className:"shrink-0 text-[11px] tabular-nums text-slate-500 leading-4",children:H.scopes.length})]}),!z&&H.scopes.map(U=>{const ee=H.merchant!==null?xT:Oh,pe=Ik(U),re=U.merchant_id===(e==null?void 0:e.merchantId),he=U.merchant_id===p;return i.jsxs("button",{"data-active":he,onMouseEnter:()=>m(U.merchant_id),onClick:()=>D(U.merchant_id),disabled:u===U.merchant_id,className:`flex w-full items-center gap-2 py-1.5 pr-3 text-left transition-colors disabled:opacity-50 ${R?"pl-9":"pl-3.5"} ${he?"bg-slate-50 dark:bg-[#13131a]":""}`,children:[i.jsx(ee,{size:12,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:`flex-1 truncate text-[13px] ${re?"font-semibold text-brand-600":"font-medium text-slate-700 dark:text-slate-300"} leading-[18px]`,children:pe.profile}),i.jsx("span",{className:"shrink-0 font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:jze(U.merchant_id)}),re&&i.jsx(gi,{size:13,className:"shrink-0 text-brand-600"})]},U.merchant_id)})]},H.key)})]}),i.jsxs("div",{className:"flex items-center gap-1.5 border-t border-[#e6e6ee] px-3.5 py-2 dark:border-[#1a1a24]",children:[i.jsx("span",{title:Y,className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:e==null?void 0:e.merchantId}),i.jsx(qy,{text:(e==null?void 0:e.merchantId)??"",label:"Copy scope id"}),w&&i.jsxs("button",{onClick:()=>{o(!1),t("/onboarding")},className:"ml-auto flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-brand-600 transition-colors hover:bg-slate-50 dark:hover:bg-[#13131a]",children:[i.jsx(Qn,{size:12}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Add merchant"})]})]})]})]}):i.jsx("div",{title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300",children:V})}function Cze(){const{user:t,setAuth:e}=xr(),{setMerchantId:n}=Er(),[r,a]=g.useState(!1),[s,o]=g.useState(""),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(""),[p,m]=g.useState([]),[x,y]=g.useState(!1),b=g.useRef(null);g.useEffect(()=>{function w(j){b.current&&!b.current.contains(j.target)&&a(!1)}return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[]),g.useEffect(()=>{if(!r)return;const w=f.trim();if(!w){m([]),y(!1);return}let j=!1;y(!0);const k=setTimeout(async()=>{try{const _=await la("/auth/super-admin/lookup",{method:"POST",body:JSON.stringify({query:w})});j||m(_)}catch{j||m([])}finally{j||y(!1)}},300);return()=>{j=!0,clearTimeout(k)}},[f,r]);async function v(w){if(!(!w||l)){c(!0),d(null);try{const j=await la("/auth/super-admin/enter-merchant",{method:"POST",body:JSON.stringify({merchant_id:w})});e(j.token,{userId:j.user_id,email:j.email,merchantId:j.merchant_id,role:j.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!0},[]),n(j.merchant_id),a(!1),o(""),h(""),m([])}catch(j){const k=j.status;d(k===404?"No merchant with that ID.":"Could not enter that merchant.")}finally{c(!1)}}}return i.jsxs("header",{className:"flex h-[78px] shrink-0 items-center gap-4 border-b border-slate-200 bg-white px-6 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d] relative z-10",children:[i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex min-w-0 flex-[2] justify-center lg:-translate-x-32",children:i.jsx(vze,{})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-end gap-2",children:[i.jsx(g9e,{}),(t==null?void 0:t.isSuperAdmin)&&!(t!=null&&t.isSuperAdminView)&&i.jsxs("div",{className:"relative shrink-0",ref:b,children:[i.jsxs("button",{onClick:()=>a(w=>!w),className:"flex items-center gap-2 h-8 px-3 whitespace-nowrap rounded-lg border border-amber-300/70 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 hover:bg-amber-100 dark:hover:bg-amber-500/20 transition-colors text-amber-700 dark:text-amber-300",children:[i.jsx(yT,{size:13,className:"shrink-0"}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Super admin"}),i.jsx(wn,{size:12,className:"shrink-0"})]}),r&&i.jsxs("div",{className:"absolute right-0 top-10 w-80 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg p-3 z-50",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 mb-2 leading-4",children:"View a merchant dashboard"}),i.jsx("input",{value:f,onChange:w=>h(w.target.value),placeholder:"Search by email or merchant name",autoFocus:!0,className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),f.trim()&&i.jsx("div",{className:"mt-2 max-h-64 overflow-y-auto",children:x&&p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"Searching…"}):p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matches."}):p.map(w=>i.jsxs("button",{onClick:()=>v(w.merchant_id),disabled:l,className:"w-full text-left px-2 py-2 rounded-md hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors disabled:opacity-50",children:[(w.hs_org_name||w.hs_merchant_name)&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:[w.hs_org_name,w.hs_merchant_name].filter(Boolean).join(" › ")}),i.jsx("p",{className:"text-[13px] font-medium text-slate-700 dark:text-slate-200 truncate leading-[18px]",children:w.merchant_name}),i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.merchant_id}),w.members.length>0&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.members.map(j=>j.email).join(", ")})]},w.merchant_id))}),i.jsxs("div",{className:"mt-2 pt-2 border-t border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx("input",{value:s,onChange:w=>{o(w.target.value),d(null)},onKeyDown:w=>{w.key==="Enter"&&v(s.trim())},placeholder:"…or paste an exact merchant ID",className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),u&&i.jsx("p",{className:"mt-1.5 text-[11px] text-red-600 leading-4",children:u}),i.jsx("button",{onClick:()=>v(s.trim()),disabled:!s.trim()||l,className:"mt-2 w-full flex items-center justify-center gap-1.5 h-8 rounded-md bg-amber-600 hover:bg-amber-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors text-[13px] font-medium text-white leading-[18px]",children:l?"Entering…":i.jsxs(i.Fragment,{children:["Enter dashboard ",i.jsx(Au,{size:13})]})})]})]})]}),i.jsx(Nze,{})]})]})}function Eze(){var l,c;const{user:t,setAuth:e}=xr(),{setMerchantId:n}=Er(),[r,a]=g.useState(!1);if(!(t!=null&&t.isSuperAdminView))return null;const s=[(l=t.hierarchy)==null?void 0:l.hs_merchant_name,(c=t.hierarchy)==null?void 0:c.profile_name].filter(Boolean).join(" / ")||t.merchantId;async function o(){if(!r){a(!0);try{const u=await la("/auth/super-admin/exit",{method:"POST"});e(u.token,{userId:u.user_id,email:u.email,merchantId:u.merchant_id,role:u.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!1},u.merchants),n(u.merchant_id)}catch{}finally{a(!1)}}}return i.jsxs("div",{title:`Scope id ${t.merchantId}`,className:"flex h-9 shrink-0 items-center justify-center gap-3 bg-amber-500 px-4 text-[12.5px] font-medium text-amber-950 leading-[17px]",children:[i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(yT,{size:14,className:"shrink-0"}),"Viewing",i.jsx("span",{className:"min-w-0 truncate font-semibold",children:s}),"as platform super admin"]}),i.jsxs("button",{onClick:o,disabled:r,className:"flex items-center gap-1.5 rounded-md bg-amber-950/15 px-2.5 py-1 hover:bg-amber-950/25 disabled:opacity-60 transition-colors",children:[i.jsx(yH,{size:12}),r?"Exiting…":"Exit"]})]})}function Aze(){const t=xr(n=>n.user);return xr(n=>PT(n.user,"routing:write"))?null:i.jsxs("div",{className:"flex h-9 shrink-0 items-center justify-center gap-2 bg-slate-700 px-4 text-[12.5px] font-medium text-slate-100 dark:bg-[#1e2430] leading-[17px]",children:[i.jsx(Ef,{size:14,className:"shrink-0"}),i.jsxs("span",{children:["View only — your Hyperswitch role can see routing for"," ",i.jsx("span",{className:"font-semibold",children:t==null?void 0:t.merchantId})," but not change it."]})]})}function Oze(){return i.jsx(k5e,{children:i.jsxs("div",{className:"relative flex h-screen overflow-hidden bg-[#ffffff] text-slate-900 transition-colors duration-300 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(59,130,246,0.05),_transparent_22%),radial-gradient(circle_at_top_right,_rgba(14,165,233,0.04),_transparent_20%),linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[radial-gradient(circle_at_top_left,_rgba(56,189,248,0.06),_transparent_22%),linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"aurora-top"}),i.jsx(f9e,{}),i.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden relative z-10",children:[i.jsx(Eze,{}),i.jsx(Aze,{}),i.jsx(Cze,{}),i.jsx("main",{className:"relative flex-1 overflow-y-auto px-4 py-5 sm:px-5 sm:py-6 lg:px-6 lg:py-7 xl:px-8",children:i.jsx("div",{className:"mx-auto w-full max-w-[1760px]",children:i.jsx(x7,{})})})]})]})})}function Tze(t){return typeof t=="string"?t:Array.isArray(t)&&typeof t[0]=="string"?t[0]:null}function Pze(t){const e=Tze(t);return e!=null&&e.startsWith("/")?e!=="/auth/me"&&!e.startsWith("/health"):!1}function Mze(){C7(Pze,void 0,{revalidate:!0}).catch(()=>{})}function AN({label:t}){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-slate-200 bg-white px-5 py-4 text-sm text-slate-600 shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:text-[#c7cfdb] dark:shadow-none",children:[i.jsx(Ou,{size:16,className:"animate-spin text-brand-600 dark:text-[#7ea4ff]"}),t]})})}function W9(){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white px-4 text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex max-w-sm flex-col items-center gap-3 rounded-2xl border border-slate-200 bg-white px-6 py-6 text-center shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:shadow-none",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:"Your routing session has expired"}),i.jsx("p",{className:"text-sm text-slate-600 dark:text-[#c7cfdb]",children:"Reopen it from the Hyperswitch dashboard to continue."}),i.jsx("button",{type:"button",onClick:()=>window.close(),className:"mt-1 rounded-lg bg-brand-600 px-4 py-2 text-sm font-medium text-white hover:bg-brand-700 dark:bg-[#2d4b8f] dark:hover:bg-[#33569f]",children:"Close tab"})]})})}function Rze(){const t=xr(h=>h.token),e=xr(h=>h.user),n=xr(h=>h.hasHydrated),r=xr(h=>h.setAuth),a=xr(h=>h.clearAuth),s=Er(h=>h.setMerchantId),o=g.useRef(null),[l,c]=g.useState(!1),{data:u,error:d,isValidating:f}=ut(t&&n?["/auth/me",t]:null,([h])=>Lt(h),{revalidateOnFocus:!1,shouldRetryOnError:!1});if(g.useEffect(()=>{!n||!t||o.current===t||(o.current=t,Mze())},[n,t]),g.useEffect(()=>{var p;if(!u||!t)return;const h=u.merchant_id||((p=u.merchants[0])==null?void 0:p.merchant_id)||"";r(t,{userId:u.user_id,email:u.email,merchantId:h,role:u.role,isRedirectSession:u.user_id.startsWith("hs_"),isSuperAdmin:u.is_super_admin,isSuperAdminView:u.is_super_admin_view,permissions:u.permissions,hierarchy:u.hierarchy},u.merchants),s(h)},[u,t,r,s]),g.useEffect(()=>{if(!d||f)return;const h=d.status;(h===401||h===403)&&(e!=null&&e.isRedirectSession&&c(!0),a(),s(""))},[d,f,a,s,e]),!n)return i.jsx(AN,{label:"Restoring session"});if(l)return i.jsx(W9,{});if(!t)return i.jsx(vx,{to:"/login",replace:!0});if(!u&&!d)return i.jsx(AN,{label:"Validating session"});if(d){const h=d.status;if(h===401||h===403)return f?i.jsx(AN,{label:"Validating session"}):e!=null&&e.isRedirectSession?i.jsx(W9,{}):i.jsx(vx,{to:"/login",replace:!0})}return i.jsx(x7,{})}function H9(t){return iM&&t.endsWith("/signup")?"signup":"login"}function Dze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Ize(t){return/email.*(already registered|already exists)|user.*already exists/i.test(t)}function G9(){const t=Kr(),e=_l(),n=e.state,{token:r,hasHydrated:a,setAuth:s,updateMerchant:o}=xr(),{setMerchantId:l}=Er(),c="/decision-engine/",u=g.useRef(null),[d,f]=g.useState(()=>zm()==="dark"),[h,p]=g.useState(()=>H9(e.pathname)),[m,x]=g.useState((n==null?void 0:n.email)??""),[y,b]=g.useState(""),[v,w]=g.useState(""),[j,k]=g.useState(!1),[_,S]=g.useState(!1),[N,E]=g.useState(null),[P,M]=g.useState((n==null?void 0:n.notice)??null),[A,O]=g.useState(!!(n!=null&&n.focusPassword));g.useEffect(()=>{!a||!r||_||t(QH()??"/",{replace:!0})},[a,_,t,r]),g.useEffect(()=>{p(H9(e.pathname)),n!=null&&n.email&&x(n.email),n!=null&&n.notice&&M(n.notice),n!=null&&n.focusPassword&&O(!0)},[e.pathname,n==null?void 0:n.email,n==null?void 0:n.focusPassword,n==null?void 0:n.notice]),g.useEffect(()=>{var Q;h!=="login"||!A||((Q=u.current)==null||Q.focus(),O(!1))},[A,h]);function D(){const Q=d?"light":"dark";f(Q==="dark"),Xy(Q)}function I(Q){p(Q),E(null),M(null),t(Q==="login"?"/login":"/signup")}async function X(Q){if(Q.preventDefault(),E(null),M(null),h==="signup"){const V=Dze(y);if(V){E(V);return}}S(!0);try{const V=h==="login"?"/auth/login":"/auth/signup",Y=v.trim(),H=await la(V,{method:"POST",body:JSON.stringify({email:m,password:y})});if("email_verification_required"in H&&H.email_verification_required){Y&&localStorage.setItem("pending_merchant_name",JSON.stringify({email:m,merchant_name:Y})),t("/login",{replace:!0,state:{notice:H.message}});return}const G=H;s(G.token,{userId:G.user_id,email:G.email,merchantId:G.merchant_id,role:G.role,isRedirectSession:!1},G.merchants),G.merchant_id&&l(G.merchant_id);const $=localStorage.getItem("pending_merchant_name"),F=$?(()=>{try{return JSON.parse($)}catch{return null}})():null,R=((F==null?void 0:F.email)===G.email?F.merchant_name:"")??"",z=Y||R;if(z&&!G.merchant_id){localStorage.removeItem("pending_merchant_name");const U=await la("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:z})});o(U.token,U.merchant_id,U.merchants),l(U.merchant_id),t("/",{replace:!0});return}localStorage.removeItem("pending_merchant_name"),!G.merchant_id||G.merchants.length===0?t("/onboarding",{replace:!0}):t("/",{replace:!0})}catch(V){const Y=Af(V);if(h==="signup"&&Ize(Y)){p("login");const H="Account already exists. Sign in with this email.";M(H),O(!0),t("/login",{replace:!0,state:{email:m,focusPassword:!0,notice:H}});return}E(Y)}finally{S(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.06fr_0.94fr]",children:[i.jsx("button",{type:"button",onClick:D,className:"absolute right-4 top-4 z-20 flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white sm:right-6 sm:top-6","aria-label":"Toggle theme",title:"Toggle theme",children:d?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})}),i.jsxs("section",{className:"flex min-h-[44vh] flex-col border-b border-slate-200 px-6 py-8 dark:border-white/6 sm:px-10 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${c}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-11 w-auto dark:hidden sm:h-12"}),i.jsx("img",{src:`${c}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-11 w-auto dark:block sm:h-12"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h2",{className:"max-w-[10ch] text-[clamp(4rem,7vw,6.2rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Manage routing, analytics, and audits from one dashboard."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.35rem]",children:"Sign in to manage gateway routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(PN,{children:"Gateway routing"}),i.jsx(PN,{children:"Merchant analytics"}),i.jsx(PN,{children:"Payment audit"})]})]})})]}),i.jsx("section",{className:"flex min-h-[56vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[520px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h3",{className:"text-[clamp(2.25rem,3.6vw,3.15rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:h==="login"?"Welcome back":"Create account"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:h==="login"?"Sign in to access your dashboard":"Create access for your Decision Engine dashboard"})]}),i.jsxs("div",{className:"mt-10",children:[i.jsxs("div",{className:"inline-flex rounded-full border border-slate-200 bg-white p-1 dark:border-[#27272a] dark:bg-[#121214]",children:[i.jsx(q9,{active:h==="login",onClick:()=>I("login"),children:"Sign in"}),iM?i.jsx(q9,{active:h==="signup",onClick:()=>I("signup"),children:"Sign up"}):null]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:X,className:"space-y-5",children:[i.jsx(ON,{label:"Email",children:i.jsx(TN,{type:"email",value:m,onChange:Q=>x(Q.target.value),placeholder:"name@company.com",required:!0,icon:i.jsx(vH,{size:16})})}),h==="signup"?i.jsx(ON,{label:"Merchant name",footer:"This merchant will be available across routing, analytics, and audits.",children:i.jsx(TN,{type:"text",value:v,onChange:Q=>w(Q.target.value),placeholder:"e.g. Acme Corp",required:!0,icon:i.jsx(Oh,{size:16})})}):null,i.jsx(ON,{label:"Password",footer:h==="login"?void 0:"Use at least 10 characters with uppercase, lowercase, number, and special character.",children:i.jsxs("div",{className:"relative",children:[i.jsx(TN,{type:j?"text":"password",value:y,onChange:Q=>b(Q.target.value),placeholder:"Enter your password",required:!0,icon:i.jsx(yA,{size:16}),inputRef:u,className:"pr-12"}),i.jsx("button",{type:"button",onClick:()=>k(Q=>!Q),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":j?"Hide password":"Show password",children:j?i.jsx(Ef,{size:18}):i.jsx(Gj,{size:18})})]})}),h==="login"?i.jsx("div",{className:"-mt-1 flex justify-end",children:i.jsx(ef,{to:"/forgot-password",state:{email:m},className:"text-sm font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-500 dark:hover:text-brand-100",children:"Forgot password?"})}):null,h==="signup"?i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Password policy: minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}):null,i.jsx(_t,{error:N}),P?i.jsx("div",{className:"rounded-lg border border-sky-500/30 bg-sky-50 px-4 py-3 text-sm text-sky-700 dark:border-sky-500/20 dark:bg-sky-500/8 dark:text-sky-300",children:P}):null,i.jsx("button",{type:"submit",disabled:_,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:_?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Authenticating"]}):i.jsxs(i.Fragment,{children:[h==="login"?"Enter dashboard":"Create account",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"By continuing you agree to access policy and audit logging for account activity."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})]})})]})]})}function q9({active:t,children:e,onClick:n}){return i.jsx("button",{type:"button",onClick:n,className:`rounded-full px-4 py-2 text-sm font-semibold transition-all duration-200 ${t?"bg-slate-950 text-white shadow-[0_8px_24px_-18px_rgba(15,23,42,0.45)] dark:bg-white dark:text-slate-950":"text-slate-500 hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white"}`,children:e})}function ON({label:t,children:e,footer:n}){return i.jsxs("label",{className:"block",children:[i.jsx(an,{className:"mb-2 block text-slate-500 dark:text-[#8a94a7]",children:t}),e,n?i.jsx("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#7b8496]",children:n}):null]})}function TN({icon:t,className:e="",inputRef:n,...r}){return i.jsxs("div",{className:"relative",children:[t?i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:t}):null,i.jsx("input",{...r,ref:n,className:`h-14 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none ${t?"pl-12":""} ${e}`})]})}function PN({children:t}){return i.jsx("div",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm text-slate-700 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.1)] dark:border-[#27272a] dark:bg-[#121214] dark:text-[#c6d0e1] dark:shadow-none",children:t})}function MN({children:t}){return i.jsx("span",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 dark:border-[#2a2d35] dark:bg-[#111318] dark:text-[#d0d7e2]",children:t})}function $ze({label:t,children:e,footer:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("label",{className:"block text-xs font-semibold uppercase tracking-[0.24em] text-slate-500 dark:text-[#8d95a3]",children:t}),e,n?i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#78849a]",children:n}):null]})}function Lze(){const t=Kr(),{updateMerchant:e}=xr(),{setMerchantId:n}=Er(),r="/decision-engine/",[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null);async function d(f){f.preventDefault(),u(null),l(!0);try{const h=await la("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:a})});e(h.token,h.merchant_id,h.merchants),n(h.merchant_id),t("/",{replace:!0})}catch(h){u(Af(h))}finally{l(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(248,250,252,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_20%_22%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_74%_18%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.08fr_0.92fr]",children:[i.jsxs("section",{className:"flex min-h-[42vh] flex-col border-b border-slate-200 dark:border-white/6 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] px-6 py-8 sm:px-10 lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h1",{className:"max-w-[10ch] text-[clamp(3.8rem,6.8vw,6rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Set up your merchant before processing traffic."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.3rem]",children:"Create your merchant account, then configure routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(MN,{children:"Merchant account"}),i.jsx(MN,{children:"Routing controls"}),i.jsx(MN,{children:"Analytics ready"})]})]})})]}),i.jsx("section",{className:"flex min-h-[58vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[540px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h2",{className:"text-[clamp(2.15rem,3.6vw,3.05rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:"Create your merchant"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7]",children:"Set up the merchant account for your Decision Engine dashboard."})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:d,className:"space-y-6",children:[i.jsx($ze,{label:"Merchant name",footer:"You can adjust rules, connectors, and analytics after the merchant is created.",children:i.jsxs("div",{className:"relative",children:[i.jsx(Oh,{size:16,className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#798191]"}),i.jsx("input",{type:"text",required:!0,autoFocus:!0,value:a,onChange:f=>s(f.target.value),placeholder:"e.g. Acme Corp",className:"h-16 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-5 text-[15px] text-slate-900 outline-none transition-all placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500 leading-[22px]"})]})}),i.jsx(_t,{error:c}),i.jsx("button",{type:"submit",disabled:o,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:o?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Creating merchant"]}):i.jsxs(i.Fragment,{children:["Create merchant",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"Merchant access will be linked to your current session."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})})]})]})}function Fze({role:t}){const e=t==="admin"?"bg-violet-50 text-violet-700 dark:bg-violet-950/40 dark:text-violet-300":"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300";return i.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-[11px] font-semibold capitalize ${e} leading-4`,children:t})}function K9({text:t}){const[e,n]=g.useState(!1);async function r(){if(navigator.clipboard)try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsx("button",{onClick:r,className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-slate-500 hover:text-slate-600 dark:hover:text-slate-200 transition-colors",title:e?"Copied":"Copy","aria-label":e?"Copied":"Copy",children:e?i.jsx(gi,{size:13,className:"text-green-700"}):i.jsx(lf,{size:13})})}function Bze(){const[t,e]=g.useState([]),[n,r]=g.useState(!0),[a,s]=g.useState(null),[o,l]=g.useState(""),[c,u]=g.useState("member"),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(null),[y,b]=g.useState(!1);async function v(){r(!0),s(null);try{const j=await la("/merchant/members");e(j)}catch(j){s(j instanceof Error?j.message:"Failed to load members")}finally{r(!1)}}g.useEffect(()=>{v()},[]);async function w(j){j.preventDefault(),p(null),x(null),f(!0);try{const k=await la("/merchant/members/invite",{method:"POST",body:JSON.stringify({email:o,role:c})});x(k),l(""),v()}catch(k){p(Af(k))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-3xl space-y-8 px-4 py-8",children:[i.jsx("div",{children:i.jsx(qr,{title:"Members"})}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-6 dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 mb-5",children:[i.jsx(iL,{size:18,className:"text-brand-600 dark:text-sky-400"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Invite member"})]}),i.jsxs("form",{onSubmit:w,className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{type:"email",required:!0,value:o,onChange:j=>l(j.target.value),placeholder:"colleague@example.com",className:"h-10 flex-1 rounded-xl border border-slate-200 bg-white px-3.5 text-sm text-slate-900 outline-none transition placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500"}),i.jsxs("select",{value:c,onChange:j=>u(j.target.value),className:"h-10 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-slate-200",children:[i.jsx("option",{value:"member",children:"Member"}),i.jsx("option",{value:"admin",children:"Admin"})]}),i.jsxs("button",{type:"submit",disabled:d,className:"inline-flex h-10 items-center gap-2 rounded-xl bg-brand-600 px-4 text-sm font-semibold text-white transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:[d?i.jsx(Ou,{size:14,className:"animate-spin"}):i.jsx(iL,{size:14}),"Invite"]})]}),i.jsx(_t,{error:h})]}),m&&i.jsx("div",{className:`mt-4 rounded-xl border p-4 ${m.is_new_user?"border-amber-200 bg-amber-50 dark:border-amber-900/40 dark:bg-amber-950/20":"border-green-200 bg-green-50 dark:border-green-900/40 dark:bg-green-950/20"}`,children:m.is_new_user?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"text-sm font-semibold text-amber-800 dark:text-amber-300 mb-2",children:"New account created — share these credentials"}),i.jsxs("div",{className:"space-y-1.5 text-sm",children:[i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Email"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:m.email}),i.jsx(K9,{text:m.email})]}),i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Password"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:y?m.password:"••••••••••••••••"}),i.jsx("button",{onClick:()=>b(j=>!j),className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-amber-700 hover:text-amber-800 dark:text-amber-400 dark:hover:text-amber-200 transition-colors",title:y?"Hide password":"Show password","aria-label":y?"Hide password":"Show password",children:y?i.jsx(Gj,{size:13}):i.jsx(Ef,{size:13})}),m.password&&i.jsx(K9,{text:m.password})]})]})]}):i.jsxs("p",{className:"text-sm text-green-800 dark:text-green-300",children:[i.jsx("span",{className:"font-semibold",children:m.email})," has been added to this merchant."]})})]}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 border-b border-slate-100 px-6 py-4 dark:border-[#1a1d25]",children:[i.jsx(vT,{size:18,className:"text-slate-500"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Current members"}),!n&&i.jsxs("span",{className:"ml-auto text-xs text-slate-500",children:[t.length," member",t.length!==1?"s":""]})]}),n?i.jsx("div",{className:"flex items-center justify-center py-12 text-slate-500",children:i.jsx(Ou,{size:20,className:"animate-spin"})}):a?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-red-600",children:a}):t.length===0?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-slate-500",children:"No members yet"}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1d25]",children:t.map(j=>i.jsxs("li",{className:"flex items-center gap-4 px-6 py-3.5",children:[i.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:j.email.slice(0,2).toUpperCase()}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",children:j.email}),i.jsx("p",{className:"truncate text-xs text-slate-500",children:j.user_id})]}),i.jsx(Fze,{role:j.role})]},j.user_id))})]})]})}function zze({text:t}){const[e,n]=g.useState(!1);async function r(){try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsxs("button",{onClick:r,className:"inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2.5 py-1 text-xs font-medium text-slate-600 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-slate-300 dark:hover:text-white",title:e?"Copied":"Copy key",children:[e?i.jsx(gi,{size:12,className:"text-emerald-700"}):i.jsx(lf,{size:12}),e?"Copied":"Copy"]})}function Uze(){const{merchantId:t}=Er(),[e,n]=g.useState(""),[r,a]=g.useState(!1),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(null),[p,m]=g.useState(new Set),{data:x,mutate:y}=ut(t?`/api-key/list/${t}`:null,Lt);async function b(){if(t){a(!0),c(null),o(null);try{const j=await Ve("/api-key/create",{merchant_id:t,description:e.trim()||null});o(j),n(""),await y()}catch(j){c(j instanceof Error?j.message:"Failed to create API key")}finally{a(!1)}}}async function v(j){d(j),h(null);try{await la(`/api-key/${j}`,{method:"DELETE"}),m(k=>new Set([...k,j])),(s==null?void 0:s.key_id)===j&&o(null),y()}catch(k){h(k instanceof Error?k.message:"Failed to revoke key")}finally{d(null)}}const w=(x==null?void 0:x.filter(j=>j.is_active&&!p.has(j.key_id)))??[];return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{children:i.jsx(qr,{title:"API Keys",description:i.jsxs(i.Fragment,{children:["Create and manage API keys for programmatic access to the routing engine. Pass the key via the"," "," ",i.jsx("code",{className:"rounded bg-slate-100 px-1 py-0.5 text-xs font-mono dark:bg-[#1c1c24]",children:"x-api-key"})," "," header on all API requests."]})})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Qn,{size:15}),i.jsx("span",{className:"font-medium text-slate-800 dark:text-white",children:"Create API Key"})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{value:e,onChange:j=>n(j.target.value),onKeyDown:j=>j.key==="Enter"&&b(),placeholder:"Description (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(ke,{onClick:b,disabled:r||!t,children:r?"Creating…":"Create API Key"})]}),i.jsx(_t,{error:l}),s&&i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-800/40 dark:bg-emerald-950/20",children:[i.jsx("p",{className:"mb-2 text-xs font-semibold text-emerald-700 dark:text-emerald-400",children:"API key created — copy it now. It will not be shown again."}),i.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-200 bg-white px-3 py-2 font-mono text-sm dark:border-emerald-800/40 dark:bg-[#0d1a12]",children:[i.jsx("span",{"data-testid":"api-key-value",className:"flex-1 break-all text-slate-800 dark:text-slate-200",children:s.api_key}),i.jsx(zze,{text:s.api_key})]}),s.description&&i.jsxs("p",{className:"mt-2 text-xs text-emerald-700 dark:text-emerald-500",children:["Description: ",s.description]})]})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gT,{size:15}),i.jsxs("span",{className:"font-medium text-slate-800 dark:text-white",children:["Active Keys",w.length>0&&` (${w.length})`]})]})}),i.jsxs(ze,{className:"p-0",children:[i.jsx(_t,{error:f}),w.length===0?i.jsx("p",{className:"px-5 py-6 text-sm text-slate-500 dark:text-[#8a8a93]",children:"No active API keys. Create one above."}):i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs font-semibold uppercase tracking-wider text-slate-500 dark:bg-[#0a0a0f] dark:text-[#6d768a]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-5 py-3 text-left",children:"Key prefix"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Description"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Created"}),i.jsx("th",{className:"px-5 py-3"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:w.map(j=>i.jsxs("tr",{className:"dark:bg-[#0f0f16]",children:[i.jsxs("td",{className:"px-5 py-3 font-mono text-slate-800 dark:text-slate-200",children:[j.key_prefix,"…"]}),i.jsx("td",{className:"px-5 py-3 text-slate-600 dark:text-[#8a8a93]",children:j.description||i.jsx("span",{className:"italic text-slate-500",children:"—"})}),i.jsx("td",{className:"px-5 py-3 text-slate-500 dark:text-[#78849a]",children:new Date(j.created_at).toLocaleDateString()}),i.jsx("td",{className:"px-5 py-3 text-right",children:i.jsxs(ke,{size:"sm",variant:"danger",disabled:u===j.key_id,onClick:()=>v(j.key_id),children:[i.jsx(Cn,{size:12}),u===j.key_id?"Revoking…":"Revoke"]})})]},j.key_id))})]})]})]})]})}function Vze(){const[t]=Nl(),e=Kr(),[n,r]=g.useState("verifying"),[a,s]=g.useState(null),[o,l]=g.useState(()=>zm()==="dark"),c=g.useRef(null),u="/decision-engine/";g.useEffect(()=>{const f=t.get("token");if(f!==c.current){if(c.current=f,!f){r("error"),s("Verification link is missing a token. Please use the link from your email.");return}la(`/auth/verify-email?token=${encodeURIComponent(f)}`,{method:"GET"}).then(()=>{r("success"),setTimeout(()=>{e("/login",{replace:!0,state:{notice:"Email verified! You can now sign in."}})},2500)}).catch(h=>{s(Af(h,"Verification failed")),r("error")})}},[e,t]);function d(){const f=o?"light":"dark";l(f==="dark"),Xy(f)}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${u}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${u}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:d,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsxs("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:[n==="verifying"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-brand-500/10",children:i.jsx(Ou,{size:28,className:"animate-spin text-brand-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verifying your email"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Hang on while we confirm your address…"})]})]}),n==="success"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(fH,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Email verified"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Your account is confirmed. Redirecting you to sign in…"})]}),i.jsx("div",{className:"pt-1",children:i.jsx("div",{className:"mx-auto h-1 w-24 overflow-hidden rounded-full bg-slate-100 dark:bg-white/8",children:i.jsx("div",{className:"h-full animate-[progress_2.5s_linear_forwards] rounded-full bg-emerald-500"})})})]}),n==="error"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Hj,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verification failed"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:a??"The link may have expired or already been used."})]}),i.jsx("div",{className:"pt-2",children:i.jsx("button",{onClick:()=>e("/login",{replace:!0}),className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})})]})]})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function Wze(){var x;const t="/decision-engine/",n=((x=_l().state)==null?void 0:x.email)??"",[r,a]=g.useState(()=>zm()==="dark"),[s,o]=g.useState(n),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(null);function p(){const y=r?"light":"dark";a(y==="dark"),Xy(y)}async function m(y){y.preventDefault(),d(null),c(!0);try{const b=await la("/auth/forgot-password",{method:"POST",body:JSON.stringify({email:s})});h(b.message??"If an account exists for that email, a password reset link has been sent.")}catch(b){d(Af(b))}finally{c(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${t}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${t}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:p,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:r?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsx("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:f?i.jsxs("div",{className:"space-y-6 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(fH,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Check your inbox"}),i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:f})]}),i.jsx(ef,{to:"/login",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Forgot your password?"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:"Enter the email tied to your account and we’ll send you a link to reset your password."})]}),i.jsxs("form",{onSubmit:m,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Email"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(vH,{size:16})}),i.jsx("input",{type:"email",value:s,onChange:y=>o(y.target.value),placeholder:"name@company.com",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx(_t,{error:u}),i.jsx("button",{type:"submit",disabled:l,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:l?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Sending link"]}):i.jsxs(i.Fragment,{children:["Send reset link",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsxs(ef,{to:"/login",className:"inline-flex items-center gap-1.5 text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:[i.jsx(Hp,{size:15}),"Back to sign in"]})})]})})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function Hze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Gze(){const t=Kr(),[e]=Nl(),n=e.get("token"),r="/decision-engine/",[a,s]=g.useState(()=>zm()==="dark"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null);function y(){const j=a?"light":"dark";s(j==="dark"),Xy(j)}async function b(j){j.preventDefault(),x(null);const k=Hze(o);if(k){x(k);return}if(o!==c){x("Passwords do not match.");return}p(!0);try{await la("/auth/reset-password",{method:"POST",body:JSON.stringify({token:n,new_password:o})}),t("/login",{replace:!0,state:{notice:"Password reset! Sign in with your new password."}})}catch(_){x(Af(_))}finally{p(!1)}}const v=i.jsx("button",{type:"button",onClick:y,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:a?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})}),w=j=>i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),v]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:j}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]});return w(n?i.jsxs("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Set a new password"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:"Choose a strong password you don’t use anywhere else."})]}),i.jsxs("form",{onSubmit:b,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"New password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(yA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:o,onChange:j=>l(j.target.value),placeholder:"Enter new password",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-12 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"}),i.jsx("button",{type:"button",onClick:()=>f(j=>!j),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":d?"Hide password":"Show password",children:d?i.jsx(Ef,{size:18}):i.jsx(Gj,{size:18})})]})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Confirm password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(yA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:c,onChange:j=>u(j.target.value),placeholder:"Re-enter new password",required:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}),i.jsx(_t,{error:m}),i.jsx("button",{type:"submit",disabled:h,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:h?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Resetting"]}):i.jsxs(i.Fragment,{children:["Reset password",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsx(ef,{to:"/login",className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:"Back to sign in"})})]}):i.jsx("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Hj,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Invalid reset link"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"This link is missing a token. Request a new password reset link to continue."})]}),i.jsx(ef,{to:"/forgot-password",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Request a new link"})]})}))}function qze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Kze(){const[t,e]=g.useState(""),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(!1);async function y(b){b.preventDefault(),p(null),x(!1);const v=qze(n);if(v){p(v);return}if(n!==a){p("New passwords do not match.");return}if(n===t){p("New password must differ from the current one.");return}f(!0);try{await la("/auth/change-password",{method:"POST",body:JSON.stringify({current_password:t,new_password:n})}),x(!0),e(""),r(""),s("")}catch(w){p(Af(w))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-lg px-4 py-10",children:[i.jsxs("div",{className:"mb-8 flex items-center gap-3",children:[i.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-brand-500/10",children:i.jsx(mT,{size:20,className:"text-brand-600"})}),i.jsx("div",{children:i.jsx(qr,{title:"Account",description:"Manage your account security"})})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:"Change password"}),i.jsx(ze,{children:i.jsxs("form",{onSubmit:y,className:"space-y-5",children:[i.jsx(RN,{label:"Current password",value:t,onChange:e,show:o,onToggleShow:()=>l(b=>!b)}),i.jsx(RN,{label:"New password",value:n,onChange:r,show:c,onToggleShow:()=>u(b=>!b),footer:"Minimum 10 characters with uppercase, lowercase, number, and special character."}),i.jsx(RN,{label:"Confirm new password",value:a,onChange:s,show:c,onToggleShow:()=>u(b=>!b)}),i.jsx(_t,{error:h}),m&&i.jsx("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-50 px-4 py-3 text-sm text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/8 dark:text-emerald-300",children:"Password updated successfully."}),i.jsx(ke,{type:"submit",disabled:d,className:"w-full",children:d?"Updating…":"Update password"})]})})]})]})}function RN({label:t,value:e,onChange:n,show:r,onToggleShow:a,footer:s}){return i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-1.5 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:t}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:r?"text":"password",value:e,onChange:o=>n(o.target.value),required:!0,className:"h-12 w-full rounded-xl border border-slate-200 bg-white px-4 pr-11 text-sm text-slate-950 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white"}),i.jsx("button",{type:"button",onClick:a,className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200","aria-label":r?"Hide password":"Show password",children:r?i.jsx(Ef,{size:17}):i.jsx(Gj,{size:17})})]}),s&&i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#7b8496]",children:s})]})}let DN=null;function Yze(){const t=xr(s=>s.setAuth),e=Er(s=>s.setMerchantId),n=Kr(),[r,a]=g.useState(()=>new URLSearchParams(window.location.search).has("code"));return g.useEffect(()=>{const s=new URLSearchParams(window.location.search).get("code");if(!s){a(!1);return}const o=()=>{const c=new URLSearchParams(window.location.search);c.delete("code");const u=c.toString(),d=window.location.pathname+(u?`?${u}`:"");window.history.replaceState(window.history.state,"",d)};DN||(DN=Ve("/auth/admin/merchant-token/exchange",{code:s}).catch(()=>null));let l=!0;return DN.then(c=>{if(l)try{if(c){const d=c.merchant_id??"";t(c.token,{userId:c.user_id??"",email:c.email??"",merchantId:d,role:c.role??"admin",isRedirectSession:!0}),d&&(e(d),jAe(d))}const u=c?QH():null;u&&n(u,{replace:!0})}finally{o(),a(!1)}}),()=>{l=!1}},[t,e,n]),r?i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-sm text-slate-600 dark:bg-[#030507] dark:text-[#c7cfdb]",children:"Signing you in…"}):i.jsxs(hte,{children:[i.jsx(bn,{path:"login",element:i.jsx(G9,{})}),iM?i.jsx(bn,{path:"signup",element:i.jsx(G9,{})}):null,i.jsx(bn,{path:"verify-email",element:i.jsx(Vze,{})}),i.jsx(bn,{path:"forgot-password",element:i.jsx(Wze,{})}),i.jsx(bn,{path:"reset-password",element:i.jsx(Gze,{})}),i.jsxs(bn,{element:i.jsx(Rze,{}),children:[i.jsx(bn,{path:"onboarding",element:i.jsx(Lze,{})}),i.jsxs(bn,{element:i.jsx(Oze,{}),children:[i.jsx(bn,{index:!0,element:i.jsx(XLe,{})}),i.jsx(bn,{path:"routing",element:i.jsx(C8e,{})}),i.jsx(bn,{path:"routing/sr",element:i.jsx(IFe,{})}),i.jsx(bn,{path:"routing/rules",element:i.jsx(bOe,{})}),i.jsx(bn,{path:"routing/rules/new",element:i.jsx(fF,{})}),i.jsx(bn,{path:"routing/rules/:id/edit",element:i.jsx(fF,{})}),i.jsx(bn,{path:"routing/volume",element:i.jsx(WFe,{})}),i.jsx(bn,{path:"routing/volume/new",element:i.jsx(AF,{})}),i.jsx(bn,{path:"routing/volume/:id/edit",element:i.jsx(AF,{})}),i.jsx(bn,{path:"routing/debit",element:i.jsx(aOe,{})}),i.jsx(bn,{path:"routing/volume-contracts",element:i.jsx(vx,{to:"/routing/sr?tab=volume",replace:!0})}),i.jsx(bn,{path:"routing/cost",element:i.jsx(vx,{to:"/routing/sr?tab=cost",replace:!0})}),i.jsx(bn,{path:"routing/ab-testing",element:i.jsx(u9e,{})}),i.jsx(bn,{path:"decisions",element:i.jsx(qAe,{})}),oM?i.jsx(bn,{path:"decisions/simulator",element:i.jsx(tOe,{})}):null,i.jsx(bn,{path:"analytics",element:i.jsx(lAe,{})}),i.jsx(bn,{path:"audit",element:i.jsx(w8e,{})}),i.jsx(bn,{path:"events",element:i.jsx(_8e,{})}),i.jsx(bn,{path:"members",element:i.jsx(Bze,{})}),i.jsx(bn,{path:"api-keys",element:i.jsx(Uze,{})}),i.jsx(bn,{path:"account",element:i.jsx(Kze,{})}),i.jsx(bn,{path:"*",element:i.jsx(vx,{to:".",replace:!0})})]})]})]})}class Xze extends g.Component{constructor(){super(...arguments);VM(this,"state",{error:null,errorInfo:null})}static getDerivedStateFromError(n){return{error:n,errorInfo:null}}componentDidCatch(n,r){console.log(` +`+"!".repeat(80)),console.log("[ERROR BOUNDARY] Component Error Caught"),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Error Message:",n.message),console.log("Error Stack:",n.stack),console.log("Component Stack:",r.componentStack),console.log("!".repeat(80)+` +`),this.setState({errorInfo:r})}render(){return this.state.error?i.jsxs("div",{style:{padding:32,fontFamily:"monospace",color:"red"},children:[i.jsx("h2",{children:"Dashboard Error"}),i.jsx("pre",{children:this.state.error.message}),i.jsx("pre",{children:this.state.error.stack}),this.state.errorInfo&&i.jsxs("pre",{style:{marginTop:16,color:"darkred"},children:["Component Stack:",this.state.errorInfo.componentStack]})]}):this.props.children}}const Jze="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/";cM(),console.log(` +`+"=".repeat(80)),console.log("[APP STARTUP] Dashboard initializing..."),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Environment: production"),console.log("Base URL: /decision-engine/"),console.log("=".repeat(80)+` +`),window.onerror=(t,e,n,r,a)=>{console.log(` +`+"!".repeat(80)),console.log("[WINDOW ERROR]"),console.log("Message:",t),console.log("Source:",e),console.log("Line:",n,"Column:",r),a&&(console.log("Error:",a.message),console.log("Stack:",a.stack)),console.log("!".repeat(80)+` +`)},window.onunhandledrejection=t=>{console.log(` +`+"!".repeat(80)),console.log("[UNHANDLED PROMISE REJECTION]"),console.log("Reason:",t.reason),t.reason instanceof Error&&console.log("Stack:",t.reason.stack),console.log("!".repeat(80)+` +`)},IN.createRoot(document.getElementById("root")).render(i.jsx(J.StrictMode,{children:i.jsx(Xze,{children:i.jsx(wte,{basename:Jze,children:i.jsx(Yze,{})})})})); diff --git a/website/dist/assets/index-ClwKMH9O.css b/website/dist/assets/index-ClwKMH9O.css deleted file mode 100644 index 27dbe02b..00000000 --- a/website/dist/assets/index-ClwKMH9O.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&family=Inter:ital,opsz,wght@0,14..32,400..700;1,14..32,400..700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{--font-sans: "Google Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light;--chart-tooltip-bg: rgba(248, 250, 252, .98);--chart-tooltip-border: #cbd5e1;--chart-tooltip-label: #0f172a;--chart-tooltip-text: #334155;--chart-tooltip-shadow: 0 18px 44px -24px rgba(15, 23, 42, .42)}html.dark{color-scheme:dark;--chart-tooltip-bg: #0d0d12;--chart-tooltip-border: #1c1c24;--chart-tooltip-label: #f8fafc;--chart-tooltip-text: #e2e8f0;--chart-tooltip-shadow: 0 16px 40px rgba(0, 0, 0, .35)}html,body{font-family:var(--font-sans);font-optical-sizing:auto;font-feature-settings:"zero" 1;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark html,.dark body{color:#f1f5f9}html,body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}html:is(.dark *),body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}#root{min-width:0;overflow-wrap:break-word}.dark p,.dark span,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#f1f5f9}p,span,h1,h2,h3,h4,h5,h6{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}p:is(.dark *),span:is(.dark *),h1:is(.dark *),h2:is(.dark *),h3:is(.dark *),h4:is(.dark *),h5:is(.dark *),h6:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark p.text-slate-500,.dark span.text-slate-500,.dark div.text-slate-500{color:#94a3b8}.dark p.text-slate-600,.dark span.text-slate-600,.dark div.text-slate-600{color:#cbd5e1}.dark p.\!text-slate-600,.dark span.\!text-slate-600,.dark div.\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-900,.dark .text-slate-800{color:#f1f5f9!important}.dark .text-slate-700{color:#e2e8f0!important}.dark .text-slate-600,.dark .\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-500{color:#94a3b8!important}.dark .text-slate-400{color:#78849a!important}.dark .text-blue-800,.dark .text-blue-700{color:#93c5fd!important}.dark .text-blue-600{color:#60a5fa!important}.dark .text-brand-500{color:#818cf8!important}.dark .bg-slate-50{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .bg-slate-100,.dark .\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark :where(input:not([type=checkbox]):not([type=radio]):not([type=range])),.dark :where(select),.dark :where(textarea){color:#f1f5f9}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){border-radius:.5rem;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::-moz-placeholder,:where(select)::-moz-placeholder,:where(textarea)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::placeholder,:where(select)::placeholder,:where(textarea)::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus,:where(select):focus,:where(textarea):focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *),:where(select):is(.dark *),:where(textarea):is(.dark *){border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::-moz-placeholder,:where(select):is(.dark *)::-moz-placeholder,:where(textarea):is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::placeholder,:where(select):is(.dark *)::placeholder,:where(textarea):is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus:is(.dark *),:where(select):focus:is(.dark *),:where(textarea):focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 56 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){font-family:var(--font-sans)}:where(select){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px 16px}.dark select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dark select option{color:#f1f5f9}select option{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}select option:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}input[type=range]{accent-color:#3b82f6}input[type=range]:is(.dark *){accent-color:#fff}input[type=radio],input[type=checkbox]{height:1rem;width:1rem;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));accent-color:#3b82f6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}input[type=radio]:is(.dark *),input[type=checkbox]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));accent-color:#fff}input[type=radio]{border-radius:50%}input[type=checkbox]{border-radius:4px}input[type=radio]:checked,input[type=checkbox]:checked{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}input[type=radio]:checked:is(.dark *),input[type=checkbox]:checked:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.input-bare{border-width:0px;background-color:transparent;padding-left:0;padding-right:0}.input-bare:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);border-radius:.375rem;background-color:#f1f5f9cc}.input-bare:focus:is(.dark *){background-color:#ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-2\.5{top:.625rem;bottom:.625rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-64{left:16rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-12{top:3rem}.top-4{top:1rem}.top-\[12vh\]{top:12vh}.top-\[26px\]{top:26px}.top-\[76px\]{top:76px}.top-\[calc\(100\%\+10px\)\]{top:calc(100% + 10px)}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[140\]{z-index:140}.z-\[200\]{z-index:200}.z-\[90\]{z-index:90}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.\!mt-5{margin-top:1.25rem!important}.-mb-1{margin-bottom:-.25rem}.-mb-3{margin-bottom:-.75rem}.-mb-px{margin-bottom:-1px}.-mr-2{margin-right:-.5rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[1\.3125rem\]{margin-left:1.3125rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-9{height:2.25rem!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[200px\]{height:200px}.h-\[2px\]{height:2px}.h-\[300px\]{height:300px}.h-\[34px\]{height:34px}.h-\[78px\]{height:78px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[240px\]{max-height:240px}.max-h-\[360px\]{max-height:360px}.max-h-\[400px\]{max-height:400px}.max-h-\[480px\]{max-height:480px}.max-h-\[560px\]{max-height:560px}.max-h-\[76vh\]{max-height:76vh}.max-h-\[min\(560px\,70vh\)\]{max-height:min(560px,70vh)}.min-h-0{min-height:0px}.min-h-\[16px\]{min-height:16px}.min-h-\[300px\]{min-height:300px}.min-h-\[360px\]{min-height:360px}.min-h-\[380px\]{min-height:380px}.min-h-\[42vh\]{min-height:42vh}.min-h-\[44vh\]{min-height:44vh}.min-h-\[56vh\]{min-height:56vh}.min-h-\[58vh\]{min-height:58vh}.min-h-\[620px\]{min-height:620px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[10\.5rem\]{width:10.5rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[12rem\]{width:12rem}.w-\[13\.5rem\]{width:13.5rem}.w-\[130px\]{width:130px}.w-\[14rem\]{width:14rem}.w-\[175px\]{width:175px}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[260px\]{width:260px}.w-\[268px\]{width:268px}.w-\[28\%\]{width:28%}.w-\[380px\]{width:380px}.w-\[3px\]{width:3px}.w-\[52px\]{width:52px}.w-\[62px\]{width:62px}.w-\[90px\]{width:90px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-\[13rem\]{min-width:13rem}.min-w-\[170px\]{min-width:170px}.min-w-\[240px\]{min-width:240px}.min-w-\[28px\]{min-width:28px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.min-w-\[520px\]{min-width:520px}.min-w-\[560px\]{min-width:560px}.min-w-\[640px\]{min-width:640px}.min-w-\[6rem\]{min-width:6rem}.min-w-\[720px\]{min-width:720px}.min-w-\[820px\]{min-width:820px}.min-w-\[880px\]{min-width:880px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[920px\]{min-width:920px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[10ch\]{max-width:10ch}.max-w-\[1500px\]{max-width:1500px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[170px\]{max-width:170px}.max-w-\[1760px\]{max-width:1760px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[38rem\]{max-width:38rem}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[520px\]{max-width:520px}.max-w-\[540px\]{max-width:540px}.max-w-\[57ch\]{max-width:57ch}.max-w-\[620px\]{max-width:620px}.max-w-\[68ch\]{max-width:68ch}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1\.618\]{flex:1.618}.flex-\[2\]{flex:2}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[analytics-progress_1\.8s_ease-in-out_infinite\]{animation:analytics-progress 1.8s ease-in-out infinite}@keyframes progress{0%{width:0%}to{width:100%}}.animate-\[progress_2\.5s_linear_forwards\]{animation:progress 2.5s linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[minmax\(0\,1\.2fr\)_0\.9fr_0\.65fr_0\.65fr_1fr\]{grid-template-columns:minmax(0,1.2fr) .9fr .65fr .65fr 1fr}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-2xl{border-radius:1rem!important}.\!rounded-\[18px\]{border-radius:18px!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[30px\]{border-radius:30px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.\!border-b-0{border-bottom-width:0px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.\!border-brand-500\/70{border-color:#3b82f6b3!important}.\!border-red-400{--tw-border-opacity: 1 !important;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))!important}.\!border-slate-200{--tw-border-opacity: 1 !important;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))!important}.\!border-transparent{border-color:transparent!important}.border-\[\#e6e6ee\]{--tw-border-opacity: 1;border-color:rgb(230 230 238 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/70{border-color:#fcd34db3}.border-blue-200,.border-brand-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-brand-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-brand-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-brand-500\/30{border-color:#3b82f64d}.border-brand-500\/40{border-color:#3b82f666}.border-brand-500\/50{border-color:#3b82f680}.border-brand-600{--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.border-brand-600\/40{border-color:#0c69ee66}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-400{--tw-border-opacity: 1;border-color:rgb(52 211 153 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-300\/40{border-color:#fca5a566}.border-red-300\/60{border-color:#fca5a599}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-500\/20{border-color:#0ea5e933}.border-sky-500\/30{border-color:#0ea5e94d}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))!important}.\!bg-white{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))!important}.bg-\[\#ffffff\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-amber-950\/15{background-color:#451a0326}.bg-black\/40{background-color:#0006}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-brand-100{--tw-bg-opacity: 1;background-color:rgb(217 234 255 / var(--tw-bg-opacity, 1))}.bg-brand-50{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.bg-brand-50\/30{background-color:#eef5ff4d}.bg-brand-50\/40{background-color:#eef5ff66}.bg-brand-50\/50{background-color:#eef5ff80}.bg-brand-50\/70{background-color:#eef5ffb3}.bg-brand-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-brand-500\/10{background-color:#3b82f61a}.bg-brand-500\/15{background-color:#3b82f626}.bg-brand-500\/5{background-color:#3b82f60d}.bg-brand-500\/\[0\.06\]{background-color:#3b82f60f}.bg-brand-600{--tw-bg-opacity: 1;background-color:rgb(12 105 238 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/60{background-color:#ecfeff99}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/40{background-color:#ecfdf566}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/\[0\.04\]{background-color:#10b9810a}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-50\/40{background-color:#faf5ff66}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/50{background-color:#fef2f280}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-200\/70{background-color:#e2e8f0b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-50\/90{background-color:#f8fafce6}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/\[0\.04\]{background-color:#0f172a0a}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#020617b3}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:#ffffff0d}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(248\,250\,252\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#f8fafc)}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#fff)}.bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.55\)\,transparent_26\%\)\]{background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 26%)}.bg-\[linear-gradient\(90deg\,\#4371ff_0\%\,\#3a63f4_100\%\)\]{background-image:linear-gradient(90deg,#4371ff,#3a63f4)}.bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(59\,130\,246\,0\.06\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]{background-image:radial-gradient(circle at 18% 18%,rgba(59,130,246,.06),transparent 24%),radial-gradient(circle at 78% 20%,rgba(14,165,233,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.bg-\[radial-gradient\(circle_at_top_left\,_rgba\(59\,130\,246\,0\.05\)\,_transparent_22\%\)\,radial-gradient\(circle_at_top_right\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_20\%\)\,linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:radial-gradient(circle at top left,rgba(59,130,246,.05),transparent 22%),radial-gradient(circle at top right,rgba(14,165,233,.04),transparent 20%),linear-gradient(180deg,#fff,#fff)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-50{--tw-gradient-from: #f0f9ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 249 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#3b82f6\]\/25{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-sky-400\/50{--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(56 189 248 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-50{--tw-gradient-to: #f5f3ff var(--tw-gradient-to-position)}.bg-\[right_12px_center\]{background-position:right 12px center}.bg-no-repeat{background-repeat:no-repeat}.fill-\[\#0F172A\]{fill:#0f172a}.fill-\[\#475569\]{fill:#475569}.fill-current{fill:currentColor}.stroke-brand-500{stroke:#3b82f6}.stroke-slate-200{stroke:#e2e8f0}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.\!py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.\!pt-3{padding-top:.75rem!important}.\!pt-4{padding-top:1rem!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-11{padding-left:2.75rem}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[18px\]{padding-left:18px}.pr-11{padding-right:2.75rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-3\.5{padding-right:.875rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[21px\]{font-size:21px}.text-\[2rem\]{font-size:2rem}.text-\[34px\]{font-size:34px}.text-\[clamp\(2\.15rem\,3\.6vw\,3\.05rem\)\]{font-size:clamp(2.15rem,3.6vw,3.05rem)}.text-\[clamp\(2\.25rem\,3\.6vw\,3\.15rem\)\]{font-size:clamp(2.25rem,3.6vw,3.15rem)}.text-\[clamp\(3\.8rem\,6\.8vw\,6rem\)\]{font-size:clamp(3.8rem,6.8vw,6rem)}.text-\[clamp\(4rem\,7vw\,6\.2rem\)\]{font-size:clamp(4rem,7vw,6.2rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.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)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-\[0\.92\]{line-height:.92}.leading-\[17px\]{line-height:17px}.leading-\[18px\]{line-height:18px}.leading-\[21px\]{line-height:21px}.leading-\[22px\]{line-height:22px}.leading-\[42px\]{line-height:42px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.05em\]{letter-spacing:-.05em}.tracking-\[-0\.065em\]{letter-spacing:-.065em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-brand-600{--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.\!text-slate-600{--tw-text-opacity: 1 !important;color:rgb(71 85 105 / var(--tw-text-opacity, 1))!important}.\!text-slate-950{--tw-text-opacity: 1 !important;color:rgb(2 6 23 / var(--tw-text-opacity, 1))!important}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-brand-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.text-brand-700{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-\[0\.05\]{opacity:.05}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.1\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.1);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.12);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.28\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.28);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-24px_rgba\(59\,130\,246\,0\.55\)\]{--tw-shadow: 0 14px 30px -24px rgba(59,130,246,.55);--tw-shadow-colored: 0 14px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 14px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: 0 14px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_16px_40px_-30px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 16px 40px -30px rgba(15,23,42,.35);--tw-shadow-colored: 0 16px 40px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-42px_rgba\(15\,23\,42\,0\.15\)\]{--tw-shadow: 0 18px 60px -42px rgba(15,23,42,.15);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-46px_rgba\(15\,23\,42\,0\.2\)\]{--tw-shadow: 0 18px 60px -46px rgba(15,23,42,.2);--tw-shadow-colored: 0 18px 60px -46px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-20px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 20px 60px -20px rgba(15,23,42,.08);--tw-shadow-colored: 0 20px 60px -20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-36px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 20px 60px -36px rgba(15,23,42,.35);--tw-shadow-colored: 0 20px 60px -36px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_70px_-34px_rgba\(15\,23\,42\,0\.48\)\]{--tw-shadow: 0 24px 70px -34px rgba(15,23,42,.48);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_30px_80px_-40px_rgba\(15\,23\,42\,0\.55\)\]{--tw-shadow: 0 30px 80px -40px rgba(15,23,42,.55);--tw-shadow-colored: 0 30px 80px -40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_-14px_rgba\(59\,130\,246\,0\.7\)\]{--tw-shadow: 0 8px 20px -14px rgba(59,130,246,.7);--tw-shadow-colored: 0 8px 20px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_-18px_rgba\(15\,23\,42\,0\.45\)\]{--tw-shadow: 0 8px 24px -18px rgba(15,23,42,.45);--tw-shadow-colored: 0 8px 24px -18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.75\)\,0_16px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: inset 0 1px 0 rgba(255,255,255,.75),0 16px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 16px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-brand-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-brand-500\/55{--tw-ring-color: rgb(59 130 246 / .55)}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-emerald-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.ring-emerald-500\/20{--tw-ring-color: rgb(16 185 129 / .2)}.ring-orange-500\/20{--tw-ring-color: rgb(249 115 22 / .2)}.ring-purple-500\/20{--tw-ring-color: rgb(168 85 247 / .2)}.ring-red-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.ring-red-500\/20{--tw-ring-color: rgb(239 68 68 / .2)}.ring-slate-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1))}.ring-slate-200\/70{--tw-ring-color: rgb(226 232 240 / .7)}.blur{--tw-blur: blur(8px);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)}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.\[background-image\:linear-gradient\(rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px)}.\[background-size\:56px_56px\]{background-size:56px 56px}.\[font-variant-numeric\:tabular-nums\]{font-variant-numeric:tabular-nums}.cond-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;border-radius:.5rem;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-color:transparent;background-size:14px 14px;border:1px solid #e2e8f0;outline:none;box-shadow:none!important;min-width:0}.dark .cond-select{border-color:#222226;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-color:transparent}.cond-select:focus{outline:none;box-shadow:none!important}.glass-panel{position:relative;overflow:hidden;border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 18px 50px -30px rgba(15,23,42,.12);--tw-shadow-colored: 0 18px 50px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.glass-panel:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 29 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1));--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.glass-panel-hover:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.glass-panel-hover:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #0c69ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(12 105 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #a855f7 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient:is(.dark *){--tw-gradient-from: #9b51e0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(155 81 224 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #0ea5e9 var(--tw-gradient-to-position)}.aurora-top{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#3b82f6,#0ea5e9,#6366f1);opacity:.35;z-index:100}@keyframes analytics-progress{0%{transform:scaleX(.18)}55%{transform:scaleX(.82)}to{transform:scaleX(.96)}}.dark .placeholder\:text-slate-500p::-moz-placeholder,.dark .placeholder\:text-slate-500span::-moz-placeholder,.dark .placeholder\:text-slate-500div::-moz-placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500p::placeholder,.dark .placeholder\:text-slate-500span::placeholder,.dark .placeholder\:text-slate-500div::placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500::-moz-placeholder{color:#94a3b8!important}.dark .placeholder\:text-slate-500::placeholder{color:#94a3b8!important}.dark .hover\:text-slate-500:hoverp,.dark .hover\:text-slate-500:hoverspan,.dark .hover\:text-slate-500:hoverdiv{color:#94a3b8}.dark .hover\:text-slate-600:hoverp,.dark .hover\:text-slate-600:hoverspan,.dark .hover\:text-slate-600:hoverdiv{color:#cbd5e1}.dark .hover\:\!text-slate-900:hover,.dark .hover\:text-slate-900:hover,.dark .hover\:text-slate-800:hover{color:#f1f5f9!important}.dark .hover\:text-slate-700:hover{color:#e2e8f0!important}.dark .hover\:text-slate-600:hover{color:#cbd5e1!important}.dark .hover\:text-slate-500:hover{color:#94a3b8!important}.dark .hover\:bg-slate-50:hover{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .hover\:bg-slate-100:hover{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .focus\:text-slate-600:focusp,.dark .focus\:text-slate-600:focusspan,.dark .focus\:text-slate-600:focusdiv{color:#cbd5e1}.dark .focus\:text-slate-600:focus{color:#cbd5e1!important}.dark .disabled\:hover\:text-slate-500:hover:disabledp,.dark .disabled\:hover\:text-slate-500:hover:disabledspan,.dark .disabled\:hover\:text-slate-500:hover:disableddiv{color:#94a3b8}.dark .disabled\:hover\:text-slate-500:hover:disabled{color:#94a3b8!important}.dark .group:hover .group-hover\:text-slate-700{color:#e2e8f0!important}.dark .aria-selected\:text-slate-900[aria-selected=true]{color:#f1f5f9!important}.dark .aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .dark\:text-slate-500:is(.dark *)p,.dark .dark\:text-slate-500:is(.dark *)span,.dark .dark\:text-slate-500:is(.dark *)div{color:#94a3b8}.dark .dark\:text-slate-500:is(.dark *){color:#94a3b8!important}.dark .dark\:text-slate-400:is(.dark *){color:#78849a!important}.dark .dark\:text-brand-500:is(.dark *){color:#818cf8!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::-moz-placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{color:#cbd5e1!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{color:#cbd5e1!important}.dark .\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{color:#78849a!important}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.focus-within\:border-brand-500:focus-within{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-brand-500\/40:focus-within{--tw-ring-color: rgb(59 130 246 / .4)}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#3b82f6\]\/35:hover{border-color:#3b82f659}.hover\:border-brand-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-brand-500\/40:hover{border-color:#3b82f666}.hover\:border-rose-300:hover{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:\!bg-slate-200:hover{--tw-bg-opacity: 1 !important;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))!important}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-950\/25:hover{background-color:#451a0340}.hover\:bg-brand-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-50\/30:hover{background-color:#eef5ff4d}.hover\:bg-brand-500\/10:hover{background-color:#3b82f61a}.hover\:bg-brand-500\/15:hover{background-color:#3b82f626}.hover\:bg-brand-700:hover{--tw-bg-opacity: 1;background-color:rgb(9 84 190 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/10:hover{background-color:#10b9811a}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-slate-900\/\[0\.025\]:hover{background-color:#0f172a06}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:\!text-slate-900:hover{--tw-text-opacity: 1 !important;color:rgb(15 23 42 / var(--tw-text-opacity, 1))!important}.hover\:text-amber-800:hover{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.hover\:text-brand-600:hover{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.hover\:text-brand-700:hover{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-slate-950:hover{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-brand-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-slate-600:focus{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:\!ring-red-400:focus{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1)) !important}.focus\:ring-brand-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-brand-500\/50:focus{--tw-ring-color: rgb(59 130 246 / .5)}.focus\:ring-offset-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-transparent:focus{--tw-ring-offset-color: transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[\#3b82f6\]\/40:focus-visible{--tw-ring-color: rgb(59 130 246 / .4)}.focus-visible\:ring-brand-500\/60:focus-visible{--tw-ring-color: rgb(59 130 246 / .6)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:border-slate-200:hover:disabled{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-slate-500:hover:disabled{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.aria-selected\:text-slate-900[aria-selected=true]{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:divide-\[\#1a1a22\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 26 34 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1d25\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 29 37 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1f2a\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 31 42 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1b2029\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(27 32 41 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c23\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 35 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c24\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 36 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1e2535\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(30 37 53 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#222226\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(34 34 38 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#263141\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(38 49 65 / var(--tw-divide-opacity, 1))}.dark\:\!border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1 !important;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))!important}.dark\:\!border-brand-500\/70:is(.dark *){border-color:#3b82f6b3!important}.dark\:\!border-red-500\/60:is(.dark *){border-color:#ef444499!important}.dark\:border-\[\#131318\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(19 19 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#141418\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(20 20 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a22\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 34 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1d25\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 29 37 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f2a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1b2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(27 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2330\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 35 48 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2535\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 37 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1f1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222226\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222227\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 39 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22262f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 38 47 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222733\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 39 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#232833\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(35 40 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#242b36\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(36 43 54 / var(--tw-border-opacity, 1))}.dark\:border-\[\#262d3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 45 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#263141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#27272a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#273141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#283241\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(40 50 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2d35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 45 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a3344\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 51 68 / var(--tw-border-opacity, 1))}.dark\:border-\[\#33333a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#39414f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(57 65 79 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3a4258\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(58 66 88 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3b82f6\]\/45:is(.dark *){border-color:#3b82f673}.dark\:border-\[\#5c1c1c\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(92 28 28 / var(--tw-border-opacity, 1))}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-700\/40:is(.dark *){border-color:#b4530966}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-amber-900\/40:is(.dark *){border-color:#78350f66}.dark\:border-blue-900\/40:is(.dark *){border-color:#1e3a8a66}.dark\:border-brand-500\/40:is(.dark *){border-color:#3b82f666}.dark\:border-brand-500\/50:is(.dark *){border-color:#3b82f680}.dark\:border-brand-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(9 84 190 / var(--tw-border-opacity, 1))}.dark\:border-brand-800\/50:is(.dark *){border-color:#073f8f80}.dark\:border-cyan-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 116 144 / var(--tw-border-opacity, 1))}.dark\:border-cyan-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 78 99 / var(--tw-border-opacity, 1))}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/25:is(.dark *){border-color:#10b98140}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-emerald-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.dark\:border-emerald-800\/40:is(.dark *){border-color:#065f4666}.dark\:border-emerald-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(6 78 59 / var(--tw-border-opacity, 1))}.dark\:border-emerald-900\/40:is(.dark *){border-color:#064e3b66}.dark\:border-green-900\/40:is(.dark *){border-color:#14532d66}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-500\/20:is(.dark *){border-color:#ef444433}.dark\:border-red-500\/30:is(.dark *){border-color:#ef44444d}.dark\:border-red-500\/50:is(.dark *){border-color:#ef444480}.dark\:border-red-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.dark\:border-red-800\/40:is(.dark *){border-color:#991b1b66}.dark\:border-red-900\/40:is(.dark *){border-color:#7f1d1d66}.dark\:border-sky-400\/40:is(.dark *){border-color:#38bdf866}.dark\:border-sky-500\/20:is(.dark *){border-color:#0ea5e933}.dark\:border-sky-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity, 1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.dark\:border-slate-600\/40:is(.dark *){border-color:#47556966}.dark\:\!bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))!important}.dark\:bg-\[\#030507\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 5 7 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#06080d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 8 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#070b12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(7 11 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#08080b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 8 11 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]\/95:is(.dark *){background-color:#09090df2}.dark\:bg-\[\#0a0a0f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 15 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0a0f\]\/60:is(.dark *){background-color:#0a0a0f99}.dark\:bg-\[\#0a0a10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0d12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 13 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b0d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b111a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 17 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c0e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0f17\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 15 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1119\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 25 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c121c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 18 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d0d13\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1018\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1117\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d141a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 20 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1a12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 26 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0e131b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 19 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f11\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f16\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f141d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 20 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 23 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]\/70:is(.dark *){background-color:#101722b3}.dark\:bg-\[\#111114\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111318\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 19 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]\/95:is(.dark *){background-color:#11151df2}.dark\:bg-\[\#111820\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121214\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121218\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#12121a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121720\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 23 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#13131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#14181f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 31 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141822\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#15151a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]\/80:is(.dark *){background-color:#161b24cc}.dark\:bg-\[\#161c26\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 28 38 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#182131\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 33 49 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a22\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1d25\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 29 37 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1f2a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c23\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 35 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c2030\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1d2633\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(29 38 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2330\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 35 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2430\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 36 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1f1f29\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 31 41 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#202734\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(32 39 52 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#222\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232833\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 40 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232933\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 41 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a0505\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 5 5 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a303a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 48 58 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a3140\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 49 64 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2d4b8f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(45 75 143 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4150\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 65 80 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4a5c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 74 92 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-900\/10:is(.dark *){background-color:#78350f1a}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-black\/60:is(.dark *){background-color:#0009}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-brand-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-brand-500\/15:is(.dark *){background-color:#3b82f626}.dark\:bg-brand-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-brand-500\/\[0\.09\]:is(.dark *){background-color:#3b82f617}.dark\:bg-brand-500\/\[0\.1\]:is(.dark *){background-color:#3b82f61a}.dark\:bg-brand-900\/10:is(.dark *){background-color:#062d661a}.dark\:bg-brand-900\/20:is(.dark *){background-color:#062d6633}.dark\:bg-brand-900\/30:is(.dark *){background-color:#062d664d}.dark\:bg-brand-900\/40:is(.dark *){background-color:#062d6666}.dark\:bg-cyan-900\/40:is(.dark *){background-color:#164e6366}.dark\:bg-cyan-950\/30:is(.dark *){background-color:#0833444d}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/25:is(.dark *){background-color:#10b98140}.dark\:bg-emerald-500\/5:is(.dark *){background-color:#10b9810d}.dark\:bg-emerald-500\/\[0\.06\]:is(.dark *){background-color:#10b9810f}.dark\:bg-emerald-900\/10:is(.dark *){background-color:#064e3b1a}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#022c2233}.dark\:bg-emerald-950\/30:is(.dark *){background-color:#022c224d}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-purple-900\/10:is(.dark *){background-color:#581c871a}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-400\/10:is(.dark *){background-color:#38bdf81a}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900\/30:is(.dark *){background-color:#0c4a6e4d}.dark\:bg-slate-500\/10:is(.dark *){background-color:#64748b1a}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-500\/15:is(.dark *){background-color:#8b5cf626}.dark\:bg-violet-900\/30:is(.dark *){background-color:#4c1d954d}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2e106566}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/\[0\.05\]:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:bg-\[linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:linear-gradient(180deg,#030507,#05080c)}.dark\:bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.02\)\,transparent_26\%\)\]:is(.dark *){background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent 26%)}.dark\:bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.035\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 18% 18%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 78% 20%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.035),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_20\%_22\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_74\%_18\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 20% 22%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 74% 18%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_top_left\,_rgba\(56\,189\,248\,0\.06\)\,_transparent_22\%\)\,linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:radial-gradient(circle at top left,rgba(56,189,248,.06),transparent 22%),linear-gradient(180deg,#030507,#05080c)}.dark\:from-sky-500\/10:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-\[\#3b82f6\]\/30:is(.dark *){--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-violet-500\/10:is(.dark *){--tw-gradient-to: rgb(139 92 246 / .1) var(--tw-gradient-to-position)}.dark\:fill-\[\#9CA3AF\]:is(.dark *){fill:#9ca3af}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-slate-700:is(.dark *){stroke:#334155}.dark\:\!text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(167 178 198 / var(--tw-text-opacity, 1))!important}.dark\:\!text-brand-600:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:text-\[\#3a3a44\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 58 68 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4258\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 66 88 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4455\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 68 85 / var(--tw-text-opacity, 1))}.dark\:text-\[\#4b5565\]:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 101 / var(--tw-text-opacity, 1))}.dark\:text-\[\#5c6577\]:is(.dark *){--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d768a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d778a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 119 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#738097\]:is(.dark *){--tw-text-opacity: 1;color:rgb(115 128 151 / var(--tw-text-opacity, 1))}.dark\:text-\[\#77849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(119 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#78849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#798191\]:is(.dark *){--tw-text-opacity: 1;color:rgb(121 129 145 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7b8496\]:is(.dark *){--tw-text-opacity: 1;color:rgb(123 132 150 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7ea4ff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(126 164 255 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7f8ca3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(127 140 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8090a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8290a5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(130 144 165 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a8a93\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a93a6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 147 166 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a94a7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 148 167 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d95a3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 149 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d9ab2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 154 178 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8f9bb0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(143 155 176 / var(--tw-text-opacity, 1))}.dark\:text-\[\#91a0b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(145 160 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#98a3b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(152 163 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa4b6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 164 182 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa6bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 166 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa7bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 167 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9ca7ba\]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 167 186 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a1a1aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a6b0c3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(166 176 195 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(167 178 198 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a8b4c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(168 180 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#aab5c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(170 181 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b2bdd1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(178 189 209 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b3b3bd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(179 179 189 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b7c2d6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(183 194 214 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c4cfdf\]:is(.dark *){--tw-text-opacity: 1;color:rgb(196 207 223 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c5d0e0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(197 208 224 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c6d0e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(198 208 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cede\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 206 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 219 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 221 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d0de\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 208 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d3e6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 211 230 / var(--tw-text-opacity, 1))}.dark\:text-\[\#cbd5e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d0d7e2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(208 215 226 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d8e1ef\]:is(.dark *){--tw-text-opacity: 1;color:rgb(216 225 239 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5e7eb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5ecf7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 236 247 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e7ecf3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(231 236 243 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/90:is(.dark *){color:#fcd34de6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-500:is(.dark *){--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-brand-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-500:is(.dark *){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.dark\:text-cyan-200:is(.dark *){--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-emerald-500:is(.dark *){--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.dark\:text-slate-950:is(.dark *){--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:opacity-20:is(.dark *){opacity:.2}.dark\:opacity-\[0\.08\]:is(.dark *){opacity:.08}.dark\:shadow-\[0_18px_60px_-42px_rgba\(0\,0\,0\,0\.7\)\]:is(.dark *){--tw-shadow: 0 18px 60px -42px rgba(0,0,0,.7);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_70px_-34px_rgba\(0\,0\,0\,0\.72\)\]:is(.dark *){--tw-shadow: 0 24px 70px -34px rgba(0,0,0,.72);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-\[\#22222c\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(34 34 44 / var(--tw-ring-opacity, 1))}.dark\:ring-\[\#2a2a35\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(42 42 53 / var(--tw-ring-opacity, 1))}.dark\:ring-amber-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:ring-brand-500\/55:is(.dark *){--tw-ring-color: rgb(59 130 246 / .55)}.dark\:ring-brand-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(7 63 143 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity, 1))}.dark\:ring-red-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:hover\:border-\[\#2a2a31\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 49 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a2a38\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 56 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a303a\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2e3545\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(46 53 69 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.dark\:hover\:border-rose-900\/50:hover:is(.dark *){border-color:#88133780}.dark\:hover\:\!bg-\[\#1c2330\]:hover:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(28 35 48 / var(--tw-bg-opacity, 1))!important}.dark\:hover\:bg-\[\#0b1017\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d13\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d14\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f16\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f18\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f131b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 19 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111114\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111118\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#11151d\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#121214\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13131a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#131720\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 23 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13192a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 25 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141923\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 25 35 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141a24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151518\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151d2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 29 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b26\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 31 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1a22\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1f2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2130\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 33 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2230\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 34 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c1c24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c2030\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#33569f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 86 159 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#380808\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 8 8 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-500\/20:hover:is(.dark *){background-color:#f59e0b33}.dark\:hover\:bg-brand-500\/10:hover:is(.dark *){background-color:#3b82f61a}.dark\:hover\:bg-brand-900\/20:hover:is(.dark *){background-color:#062d6633}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-950\/25:hover:is(.dark *){background-color:#450a0a40}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-rose-500\/10:hover:is(.dark *){background-color:#f43f5e1a}.dark\:hover\:bg-sky-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-200:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:bg-white\/\[0\.035\]:hover:is(.dark *){background-color:#ffffff09}.dark\:hover\:\!text-white:hover:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:hover\:text-\[\#8090a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-\[\#8d96a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-amber-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(217 234 255 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:focus\:text-slate-300:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:disabled\:hover\:text-\[\#8a8a93\]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:aria-selected\:bg-white\/\[0\.06\][aria-selected=true]:is(.dark *){background-color:#ffffff0f}.dark\:aria-selected\:text-white[aria-selected=true]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-6{right:1.5rem}.sm\:top-6{top:1.5rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-11{height:2.75rem}.sm\:h-12{height:3rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:self-stretch{align-self:stretch}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-\[1\.35rem\]{font-size:1.35rem}.sm\:text-\[1\.3rem\]{font-size:1.3rem}.sm\:text-\[1\.75rem\]{font-size:1.75rem}}@media (min-width: 768px){.md\:grid{display:grid}.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-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}}@media (min-width: 1024px){.lg\:ml-auto{margin-left:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:max-h-\[360px\]{max-height:360px}.lg\:min-h-0{min-height:0px}.lg\:min-h-screen{min-height:100vh}.lg\:w-full{width:100%}.lg\:flex-1{flex:1 1 0%}.lg\:shrink-0{flex-shrink:0}.lg\:-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-\[1\.06fr_0\.94fr\]{grid-template-columns:1.06fr .94fr}.lg\:grid-cols-\[1\.08fr_0\.92fr\]{grid-template-columns:1.08fr .92fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-stretch{align-items:stretch}.lg\:gap-1{gap:.25rem}.lg\:overflow-visible{overflow:visible}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.lg\:px-14{padding-left:3.5rem;padding-right:3.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}.lg\:dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-6{top:1.5rem}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-2{grid-column:span 2 / span 2}.xl\:h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.xl\:w-\[24rem\]{width:24rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.xl\:grid-cols-\[1\.3fr_0\.7fr\]{grid-template-columns:1.3fr .7fr}.xl\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(340px\,420px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(360px\,1fr\)_minmax\(0\,1\.618fr\)\]{grid-template-columns:minmax(360px,1fr) minmax(0,1.618fr)}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:border-b-0{border-bottom-width:0px}.xl\:border-r{border-right-width:1px}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:1rem}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:1rem}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:9999px}.\[\&\:\:-moz-range-thumb\]\:border-2::-moz-range-thumb{border-width:2px}.\[\&\:\:-moz-range-thumb\]\:border-solid::-moz-range-thumb{border-style:solid}.\[\&\:\:-moz-range-thumb\]\:border-white::-moz-range-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-moz-range-thumb\]\:bg-\[color\:var\(--thumb\)\]::-moz-range-thumb{background-color:var(--thumb)}.\[\&\:\:-moz-range-thumb\]\:shadow::-moz-range-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:1rem}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:1rem}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\[\&\:\:-webkit-slider-thumb\]\:border-2::-webkit-slider-thumb{border-width:2px}.\[\&\:\:-webkit-slider-thumb\]\:border-white::-webkit-slider-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:bg-\[color\:var\(--thumb\)\]::-webkit-slider-thumb{background-color:var(--thumb)}.\[\&\:\:-webkit-slider-thumb\]\:shadow::-webkit-slider-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb{-webkit-transition-property:transform;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\:\:-webkit-slider-thumb\]\:active\:scale-95:active::-webkit-slider-thumb{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>\*\:last-child\]\:border-b-0>*:last-child{border-bottom-width:0px}@media (min-width: 768px){.md\:\[\&\>\*\:nth-last-child\(-n\+2\)\]\:border-b-0>*:nth-last-child(-n+2){border-bottom-width:0px}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:pb-1 [cmdk-group-heading]{padding-bottom:.25rem}.\[\&_\[cmdk-group-heading\]\]\:pt-3 [cmdk-group-heading]{padding-top:.75rem}.\[\&_\[cmdk-group-heading\]\]\:text-\[11px\] [cmdk-group-heading]{font-size:11px}.\[\&_\[cmdk-group-heading\]\]\:font-bold [cmdk-group-heading]{font-weight:700}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_\[cmdk-group-heading\]\]\:tracking-widest [cmdk-group-heading]{letter-spacing:.1em}.\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:\[\&_\[cmdk-group-heading\]\]\:text-\[\#6d768a\] [cmdk-group-heading]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))} diff --git a/website/dist/assets/index-Ctm9g-Bm.css b/website/dist/assets/index-Ctm9g-Bm.css new file mode 100644 index 00000000..6097ce8b --- /dev/null +++ b/website/dist/assets/index-Ctm9g-Bm.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&family=Inter:ital,opsz,wght@0,14..32,400..700;1,14..32,400..700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{--font-sans: "Google Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light;--chart-tooltip-bg: rgba(248, 250, 252, .98);--chart-tooltip-border: #cbd5e1;--chart-tooltip-label: #0f172a;--chart-tooltip-text: #334155;--chart-tooltip-shadow: 0 18px 44px -24px rgba(15, 23, 42, .42)}html.dark{color-scheme:dark;--chart-tooltip-bg: #0d0d12;--chart-tooltip-border: #1c1c24;--chart-tooltip-label: #f8fafc;--chart-tooltip-text: #e2e8f0;--chart-tooltip-shadow: 0 16px 40px rgba(0, 0, 0, .35)}html,body{font-family:var(--font-sans);font-optical-sizing:auto;font-feature-settings:"zero" 1;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark html,.dark body{color:#f1f5f9}html,body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}html:is(.dark *),body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}#root{min-width:0;overflow-wrap:break-word}.dark p,.dark span,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#f1f5f9}p,span,h1,h2,h3,h4,h5,h6{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}p:is(.dark *),span:is(.dark *),h1:is(.dark *),h2:is(.dark *),h3:is(.dark *),h4:is(.dark *),h5:is(.dark *),h6:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark p.text-slate-500,.dark span.text-slate-500,.dark div.text-slate-500{color:#94a3b8}.dark p.text-slate-600,.dark span.text-slate-600,.dark div.text-slate-600{color:#cbd5e1}.dark p.\!text-slate-600,.dark span.\!text-slate-600,.dark div.\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-900,.dark .text-slate-800{color:#f1f5f9!important}.dark .text-slate-700{color:#e2e8f0!important}.dark .text-slate-600,.dark .\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-500{color:#94a3b8!important}.dark .text-slate-400{color:#78849a!important}.dark .text-blue-800,.dark .text-blue-700{color:#93c5fd!important}.dark .text-blue-600{color:#60a5fa!important}.dark .text-brand-500{color:#818cf8!important}.dark .bg-slate-50{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .bg-slate-100,.dark .\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark :where(input:not([type=checkbox]):not([type=radio]):not([type=range])),.dark :where(select),.dark :where(textarea){color:#f1f5f9}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){border-radius:.5rem;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::-moz-placeholder,:where(select)::-moz-placeholder,:where(textarea)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::placeholder,:where(select)::placeholder,:where(textarea)::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus,:where(select):focus,:where(textarea):focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *),:where(select):is(.dark *),:where(textarea):is(.dark *){border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::-moz-placeholder,:where(select):is(.dark *)::-moz-placeholder,:where(textarea):is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::placeholder,:where(select):is(.dark *)::placeholder,:where(textarea):is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus:is(.dark *),:where(select):focus:is(.dark *),:where(textarea):focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 56 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){font-family:var(--font-sans)}:where(select){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px 16px}.dark select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dark select option{color:#f1f5f9}select option{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}select option:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}input[type=range]{accent-color:#3b82f6}input[type=range]:is(.dark *){accent-color:#fff}input[type=radio],input[type=checkbox]{height:1rem;width:1rem;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));accent-color:#3b82f6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}input[type=radio]:is(.dark *),input[type=checkbox]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));accent-color:#fff}input[type=radio]{border-radius:50%}input[type=checkbox]{border-radius:4px}input[type=radio]:checked,input[type=checkbox]:checked{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}input[type=radio]:checked:is(.dark *),input[type=checkbox]:checked:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.input-bare{border-width:0px;background-color:transparent;padding-left:0;padding-right:0}.input-bare:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);border-radius:.375rem;background-color:#f1f5f9cc}.input-bare:focus:is(.dark *){background-color:#ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-2\.5{top:.625rem;bottom:.625rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-64{left:16rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-12{top:3rem}.top-4{top:1rem}.top-\[12vh\]{top:12vh}.top-\[26px\]{top:26px}.top-\[76px\]{top:76px}.top-\[calc\(100\%\+10px\)\]{top:calc(100% + 10px)}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[140\]{z-index:140}.z-\[200\]{z-index:200}.z-\[90\]{z-index:90}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.\!mt-5{margin-top:1.25rem!important}.-mb-1{margin-bottom:-.25rem}.-mb-3{margin-bottom:-.75rem}.-mb-px{margin-bottom:-1px}.-mr-2{margin-right:-.5rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[1\.3125rem\]{margin-left:1.3125rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-9{height:2.25rem!important}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[200px\]{height:200px}.h-\[2px\]{height:2px}.h-\[300px\]{height:300px}.h-\[34px\]{height:34px}.h-\[78px\]{height:78px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[240px\]{max-height:240px}.max-h-\[360px\]{max-height:360px}.max-h-\[400px\]{max-height:400px}.max-h-\[480px\]{max-height:480px}.max-h-\[560px\]{max-height:560px}.max-h-\[76vh\]{max-height:76vh}.max-h-\[min\(560px\,70vh\)\]{max-height:min(560px,70vh)}.min-h-0{min-height:0px}.min-h-\[16px\]{min-height:16px}.min-h-\[300px\]{min-height:300px}.min-h-\[360px\]{min-height:360px}.min-h-\[380px\]{min-height:380px}.min-h-\[42vh\]{min-height:42vh}.min-h-\[44vh\]{min-height:44vh}.min-h-\[56vh\]{min-height:56vh}.min-h-\[58vh\]{min-height:58vh}.min-h-\[620px\]{min-height:620px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[10\.5rem\]{width:10.5rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[12rem\]{width:12rem}.w-\[13\.5rem\]{width:13.5rem}.w-\[130px\]{width:130px}.w-\[14rem\]{width:14rem}.w-\[175px\]{width:175px}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[260px\]{width:260px}.w-\[268px\]{width:268px}.w-\[28\%\]{width:28%}.w-\[380px\]{width:380px}.w-\[3px\]{width:3px}.w-\[52px\]{width:52px}.w-\[62px\]{width:62px}.w-\[90px\]{width:90px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-\[13rem\]{min-width:13rem}.min-w-\[170px\]{min-width:170px}.min-w-\[240px\]{min-width:240px}.min-w-\[28px\]{min-width:28px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.min-w-\[520px\]{min-width:520px}.min-w-\[560px\]{min-width:560px}.min-w-\[640px\]{min-width:640px}.min-w-\[6rem\]{min-width:6rem}.min-w-\[720px\]{min-width:720px}.min-w-\[820px\]{min-width:820px}.min-w-\[880px\]{min-width:880px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[920px\]{min-width:920px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[10ch\]{max-width:10ch}.max-w-\[1500px\]{max-width:1500px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[170px\]{max-width:170px}.max-w-\[1760px\]{max-width:1760px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[38rem\]{max-width:38rem}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[520px\]{max-width:520px}.max-w-\[540px\]{max-width:540px}.max-w-\[57ch\]{max-width:57ch}.max-w-\[620px\]{max-width:620px}.max-w-\[68ch\]{max-width:68ch}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1\.618\]{flex:1.618}.flex-\[2\]{flex:2}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[analytics-progress_1\.8s_ease-in-out_infinite\]{animation:analytics-progress 1.8s ease-in-out infinite}@keyframes progress{0%{width:0%}to{width:100%}}.animate-\[progress_2\.5s_linear_forwards\]{animation:progress 2.5s linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[minmax\(0\,1\.2fr\)_0\.9fr_0\.65fr_0\.65fr_1fr\]{grid-template-columns:minmax(0,1.2fr) .9fr .65fr .65fr 1fr}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-2xl{border-radius:1rem!important}.\!rounded-\[18px\]{border-radius:18px!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[30px\]{border-radius:30px}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.\!border-b-0{border-bottom-width:0px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[1\.5px\]{border-top-width:1.5px}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.\!border-brand-500\/70{border-color:#3b82f6b3!important}.\!border-red-400{--tw-border-opacity: 1 !important;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))!important}.\!border-slate-200{--tw-border-opacity: 1 !important;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))!important}.\!border-transparent{border-color:transparent!important}.border-\[\#e6e6ee\]{--tw-border-opacity: 1;border-color:rgb(230 230 238 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/70{border-color:#fcd34db3}.border-blue-200,.border-brand-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-brand-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-brand-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-brand-500\/30{border-color:#3b82f64d}.border-brand-500\/40{border-color:#3b82f666}.border-brand-500\/50{border-color:#3b82f680}.border-brand-600{--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.border-brand-600\/40{border-color:#0c69ee66}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-400{--tw-border-opacity: 1;border-color:rgb(52 211 153 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-300\/40{border-color:#fca5a566}.border-red-300\/60{border-color:#fca5a599}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-500\/20{border-color:#0ea5e933}.border-sky-500\/30{border-color:#0ea5e94d}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))!important}.\!bg-white{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))!important}.bg-\[\#ffffff\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-amber-950\/15{background-color:#451a0326}.bg-black\/40{background-color:#0006}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-brand-100{--tw-bg-opacity: 1;background-color:rgb(217 234 255 / var(--tw-bg-opacity, 1))}.bg-brand-50{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.bg-brand-50\/30{background-color:#eef5ff4d}.bg-brand-50\/40{background-color:#eef5ff66}.bg-brand-50\/50{background-color:#eef5ff80}.bg-brand-50\/70{background-color:#eef5ffb3}.bg-brand-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-brand-500\/10{background-color:#3b82f61a}.bg-brand-500\/15{background-color:#3b82f626}.bg-brand-500\/5{background-color:#3b82f60d}.bg-brand-500\/\[0\.06\]{background-color:#3b82f60f}.bg-brand-600{--tw-bg-opacity: 1;background-color:rgb(12 105 238 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/60{background-color:#ecfeff99}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/40{background-color:#ecfdf566}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/\[0\.04\]{background-color:#10b9810a}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-50\/40{background-color:#faf5ff66}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/50{background-color:#fef2f280}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-200\/70{background-color:#e2e8f0b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-50\/90{background-color:#f8fafce6}.bg-slate-500\/10{background-color:#64748b1a}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/\[0\.04\]{background-color:#0f172a0a}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#020617b3}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:#ffffff0d}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(248\,250\,252\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#f8fafc)}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#fff)}.bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.55\)\,transparent_26\%\)\]{background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 26%)}.bg-\[linear-gradient\(90deg\,\#4371ff_0\%\,\#3a63f4_100\%\)\]{background-image:linear-gradient(90deg,#4371ff,#3a63f4)}.bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(59\,130\,246\,0\.06\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]{background-image:radial-gradient(circle at 18% 18%,rgba(59,130,246,.06),transparent 24%),radial-gradient(circle at 78% 20%,rgba(14,165,233,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.bg-\[radial-gradient\(circle_at_top_left\,_rgba\(59\,130\,246\,0\.05\)\,_transparent_22\%\)\,radial-gradient\(circle_at_top_right\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_20\%\)\,linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:radial-gradient(circle at top left,rgba(59,130,246,.05),transparent 22%),radial-gradient(circle at top right,rgba(14,165,233,.04),transparent 20%),linear-gradient(180deg,#fff,#fff)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-50{--tw-gradient-from: #f0f9ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 249 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#3b82f6\]\/25{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-sky-400\/50{--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(56 189 248 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-50{--tw-gradient-to: #f5f3ff var(--tw-gradient-to-position)}.bg-\[right_12px_center\]{background-position:right 12px center}.bg-no-repeat{background-repeat:no-repeat}.fill-\[\#0F172A\]{fill:#0f172a}.fill-\[\#475569\]{fill:#475569}.fill-current{fill:currentColor}.stroke-brand-500{stroke:#3b82f6}.stroke-slate-200{stroke:#e2e8f0}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.\!py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.\!pt-3{padding-top:.75rem!important}.\!pt-4{padding-top:1rem!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-11{padding-left:2.75rem}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[18px\]{padding-left:18px}.pr-1{padding-right:.25rem}.pr-11{padding-right:2.75rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-3\.5{padding-right:.875rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[21px\]{font-size:21px}.text-\[2rem\]{font-size:2rem}.text-\[34px\]{font-size:34px}.text-\[clamp\(2\.15rem\,3\.6vw\,3\.05rem\)\]{font-size:clamp(2.15rem,3.6vw,3.05rem)}.text-\[clamp\(2\.25rem\,3\.6vw\,3\.15rem\)\]{font-size:clamp(2.25rem,3.6vw,3.15rem)}.text-\[clamp\(3\.8rem\,6\.8vw\,6rem\)\]{font-size:clamp(3.8rem,6.8vw,6rem)}.text-\[clamp\(4rem\,7vw\,6\.2rem\)\]{font-size:clamp(4rem,7vw,6.2rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.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)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-\[0\.92\]{line-height:.92}.leading-\[17px\]{line-height:17px}.leading-\[18px\]{line-height:18px}.leading-\[21px\]{line-height:21px}.leading-\[22px\]{line-height:22px}.leading-\[42px\]{line-height:42px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.05em\]{letter-spacing:-.05em}.tracking-\[-0\.065em\]{letter-spacing:-.065em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-brand-600{--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.\!text-slate-600{--tw-text-opacity: 1 !important;color:rgb(71 85 105 / var(--tw-text-opacity, 1))!important}.\!text-slate-950{--tw-text-opacity: 1 !important;color:rgb(2 6 23 / var(--tw-text-opacity, 1))!important}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-brand-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.text-brand-700{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-\[0\.05\]{opacity:.05}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.1\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.1);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.12);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.28\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.28);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-24px_rgba\(59\,130\,246\,0\.55\)\]{--tw-shadow: 0 14px 30px -24px rgba(59,130,246,.55);--tw-shadow-colored: 0 14px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 14px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: 0 14px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_16px_40px_-30px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 16px 40px -30px rgba(15,23,42,.35);--tw-shadow-colored: 0 16px 40px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-42px_rgba\(15\,23\,42\,0\.15\)\]{--tw-shadow: 0 18px 60px -42px rgba(15,23,42,.15);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-46px_rgba\(15\,23\,42\,0\.2\)\]{--tw-shadow: 0 18px 60px -46px rgba(15,23,42,.2);--tw-shadow-colored: 0 18px 60px -46px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-20px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 20px 60px -20px rgba(15,23,42,.08);--tw-shadow-colored: 0 20px 60px -20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-36px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 20px 60px -36px rgba(15,23,42,.35);--tw-shadow-colored: 0 20px 60px -36px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_70px_-34px_rgba\(15\,23\,42\,0\.48\)\]{--tw-shadow: 0 24px 70px -34px rgba(15,23,42,.48);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_30px_80px_-40px_rgba\(15\,23\,42\,0\.55\)\]{--tw-shadow: 0 30px 80px -40px rgba(15,23,42,.55);--tw-shadow-colored: 0 30px 80px -40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_-14px_rgba\(59\,130\,246\,0\.7\)\]{--tw-shadow: 0 8px 20px -14px rgba(59,130,246,.7);--tw-shadow-colored: 0 8px 20px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_-18px_rgba\(15\,23\,42\,0\.45\)\]{--tw-shadow: 0 8px 24px -18px rgba(15,23,42,.45);--tw-shadow-colored: 0 8px 24px -18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.75\)\,0_16px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: inset 0 1px 0 rgba(255,255,255,.75),0 16px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 16px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-brand-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-brand-500\/55{--tw-ring-color: rgb(59 130 246 / .55)}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-emerald-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.ring-emerald-500\/20{--tw-ring-color: rgb(16 185 129 / .2)}.ring-orange-500\/20{--tw-ring-color: rgb(249 115 22 / .2)}.ring-purple-500\/20{--tw-ring-color: rgb(168 85 247 / .2)}.ring-red-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.ring-red-500\/20{--tw-ring-color: rgb(239 68 68 / .2)}.ring-slate-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1))}.ring-slate-200\/70{--tw-ring-color: rgb(226 232 240 / .7)}.blur{--tw-blur: blur(8px);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)}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.\[background-image\:linear-gradient\(rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px)}.\[background-size\:56px_56px\]{background-size:56px 56px}.\[font-variant-numeric\:tabular-nums\]{font-variant-numeric:tabular-nums}.cond-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;border-radius:.5rem;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-color:transparent;background-size:14px 14px;border:1px solid #e2e8f0;outline:none;box-shadow:none!important;min-width:0}.dark .cond-select{border-color:#222226;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-color:transparent}.cond-select:focus{outline:none;box-shadow:none!important}.glass-panel{position:relative;overflow:hidden;border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 18px 50px -30px rgba(15,23,42,.12);--tw-shadow-colored: 0 18px 50px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.glass-panel:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 29 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1));--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.glass-panel-hover:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.glass-panel-hover:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #0c69ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(12 105 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #a855f7 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient:is(.dark *){--tw-gradient-from: #9b51e0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(155 81 224 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #0ea5e9 var(--tw-gradient-to-position)}.aurora-top{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#3b82f6,#0ea5e9,#6366f1);opacity:.35;z-index:100}@keyframes analytics-progress{0%{transform:scaleX(.18)}55%{transform:scaleX(.82)}to{transform:scaleX(.96)}}.dark .placeholder\:text-slate-500p::-moz-placeholder,.dark .placeholder\:text-slate-500span::-moz-placeholder,.dark .placeholder\:text-slate-500div::-moz-placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500p::placeholder,.dark .placeholder\:text-slate-500span::placeholder,.dark .placeholder\:text-slate-500div::placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500::-moz-placeholder{color:#94a3b8!important}.dark .placeholder\:text-slate-500::placeholder{color:#94a3b8!important}.dark .hover\:text-slate-500:hoverp,.dark .hover\:text-slate-500:hoverspan,.dark .hover\:text-slate-500:hoverdiv{color:#94a3b8}.dark .hover\:text-slate-600:hoverp,.dark .hover\:text-slate-600:hoverspan,.dark .hover\:text-slate-600:hoverdiv{color:#cbd5e1}.dark .hover\:\!text-slate-900:hover,.dark .hover\:text-slate-900:hover,.dark .hover\:text-slate-800:hover{color:#f1f5f9!important}.dark .hover\:text-slate-700:hover{color:#e2e8f0!important}.dark .hover\:text-slate-600:hover{color:#cbd5e1!important}.dark .hover\:text-slate-500:hover{color:#94a3b8!important}.dark .hover\:bg-slate-50:hover{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .hover\:bg-slate-100:hover{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .focus\:text-slate-600:focusp,.dark .focus\:text-slate-600:focusspan,.dark .focus\:text-slate-600:focusdiv{color:#cbd5e1}.dark .focus\:text-slate-600:focus{color:#cbd5e1!important}.dark .disabled\:hover\:text-slate-500:hover:disabledp,.dark .disabled\:hover\:text-slate-500:hover:disabledspan,.dark .disabled\:hover\:text-slate-500:hover:disableddiv{color:#94a3b8}.dark .disabled\:hover\:text-slate-500:hover:disabled{color:#94a3b8!important}.dark .group:hover .group-hover\:text-slate-700{color:#e2e8f0!important}.dark .aria-selected\:text-slate-900[aria-selected=true]{color:#f1f5f9!important}.dark .aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .dark\:text-slate-500:is(.dark *)p,.dark .dark\:text-slate-500:is(.dark *)span,.dark .dark\:text-slate-500:is(.dark *)div{color:#94a3b8}.dark .dark\:text-slate-500:is(.dark *){color:#94a3b8!important}.dark .dark\:text-slate-400:is(.dark *){color:#78849a!important}.dark .dark\:text-brand-500:is(.dark *){color:#818cf8!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::-moz-placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{color:#cbd5e1!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{color:#cbd5e1!important}.dark .\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{color:#78849a!important}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.focus-within\:border-brand-500:focus-within{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-brand-500\/40:focus-within{--tw-ring-color: rgb(59 130 246 / .4)}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#3b82f6\]\/35:hover{border-color:#3b82f659}.hover\:border-brand-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-brand-500\/40:hover{border-color:#3b82f666}.hover\:border-rose-300:hover{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:\!bg-slate-200:hover{--tw-bg-opacity: 1 !important;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))!important}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-950\/25:hover{background-color:#451a0340}.hover\:bg-brand-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-50\/30:hover{background-color:#eef5ff4d}.hover\:bg-brand-500\/10:hover{background-color:#3b82f61a}.hover\:bg-brand-500\/15:hover{background-color:#3b82f626}.hover\:bg-brand-700:hover{--tw-bg-opacity: 1;background-color:rgb(9 84 190 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/10:hover{background-color:#10b9811a}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-slate-900\/\[0\.025\]:hover{background-color:#0f172a06}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:\!text-slate-900:hover{--tw-text-opacity: 1 !important;color:rgb(15 23 42 / var(--tw-text-opacity, 1))!important}.hover\:text-amber-800:hover{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.hover\:text-brand-600:hover{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.hover\:text-brand-700:hover{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-slate-950:hover{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-brand-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-slate-600:focus{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:\!ring-red-400:focus{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1)) !important}.focus\:ring-brand-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-brand-500\/50:focus{--tw-ring-color: rgb(59 130 246 / .5)}.focus\:ring-offset-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-transparent:focus{--tw-ring-offset-color: transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[\#3b82f6\]\/40:focus-visible{--tw-ring-color: rgb(59 130 246 / .4)}.focus-visible\:ring-brand-500\/60:focus-visible{--tw-ring-color: rgb(59 130 246 / .6)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:border-slate-200:hover:disabled{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-slate-500:hover:disabled{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.aria-selected\:text-slate-900[aria-selected=true]{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:divide-\[\#1a1a22\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 26 34 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1d25\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 29 37 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1f2a\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 31 42 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1b2029\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(27 32 41 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c23\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 35 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c24\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 36 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1e2535\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(30 37 53 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#222226\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(34 34 38 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#263141\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(38 49 65 / var(--tw-divide-opacity, 1))}.dark\:\!border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1 !important;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))!important}.dark\:\!border-brand-500\/70:is(.dark *){border-color:#3b82f6b3!important}.dark\:\!border-red-500\/60:is(.dark *){border-color:#ef444499!important}.dark\:border-\[\#131318\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(19 19 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#141418\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(20 20 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a22\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 34 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1d25\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 29 37 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f2a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1b2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(27 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2330\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 35 48 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2535\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 37 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1f1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222226\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222227\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 39 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22262f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 38 47 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222733\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 39 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#232833\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(35 40 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#242b36\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(36 43 54 / var(--tw-border-opacity, 1))}.dark\:border-\[\#262d3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 45 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#263141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#27272a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#273141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#283241\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(40 50 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2d35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 45 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a3344\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 51 68 / var(--tw-border-opacity, 1))}.dark\:border-\[\#33333a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#39414f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(57 65 79 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3a4258\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(58 66 88 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3b82f6\]\/45:is(.dark *){border-color:#3b82f673}.dark\:border-\[\#5c1c1c\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(92 28 28 / var(--tw-border-opacity, 1))}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-700\/40:is(.dark *){border-color:#b4530966}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-amber-900\/40:is(.dark *){border-color:#78350f66}.dark\:border-blue-900\/40:is(.dark *){border-color:#1e3a8a66}.dark\:border-brand-500\/40:is(.dark *){border-color:#3b82f666}.dark\:border-brand-500\/50:is(.dark *){border-color:#3b82f680}.dark\:border-brand-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(9 84 190 / var(--tw-border-opacity, 1))}.dark\:border-brand-800\/50:is(.dark *){border-color:#073f8f80}.dark\:border-cyan-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 116 144 / var(--tw-border-opacity, 1))}.dark\:border-cyan-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 78 99 / var(--tw-border-opacity, 1))}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/25:is(.dark *){border-color:#10b98140}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-emerald-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.dark\:border-emerald-800\/40:is(.dark *){border-color:#065f4666}.dark\:border-emerald-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(6 78 59 / var(--tw-border-opacity, 1))}.dark\:border-emerald-900\/40:is(.dark *){border-color:#064e3b66}.dark\:border-green-900\/40:is(.dark *){border-color:#14532d66}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-500\/20:is(.dark *){border-color:#ef444433}.dark\:border-red-500\/30:is(.dark *){border-color:#ef44444d}.dark\:border-red-500\/50:is(.dark *){border-color:#ef444480}.dark\:border-red-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.dark\:border-red-800\/40:is(.dark *){border-color:#991b1b66}.dark\:border-red-900\/40:is(.dark *){border-color:#7f1d1d66}.dark\:border-sky-400\/40:is(.dark *){border-color:#38bdf866}.dark\:border-sky-500\/20:is(.dark *){border-color:#0ea5e933}.dark\:border-sky-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity, 1))}.dark\:border-slate-300:is(.dark *){--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.dark\:border-slate-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.dark\:border-slate-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.dark\:border-slate-600\/40:is(.dark *){border-color:#47556966}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:\!bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))!important}.dark\:bg-\[\#030507\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 5 7 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#06080d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 8 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#070b12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(7 11 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#08080b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 8 11 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]\/95:is(.dark *){background-color:#09090df2}.dark\:bg-\[\#0a0a0f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 15 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0a0f\]\/60:is(.dark *){background-color:#0a0a0f99}.dark\:bg-\[\#0a0a10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0d12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 13 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b0d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b111a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 17 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c0e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0f17\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 15 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1119\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 25 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c121c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 18 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d0d13\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1018\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1117\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d141a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 20 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1a12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 26 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0e131b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 19 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f11\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f16\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f141d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 20 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 23 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]\/70:is(.dark *){background-color:#101722b3}.dark\:bg-\[\#111114\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111318\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 19 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]\/95:is(.dark *){background-color:#11151df2}.dark\:bg-\[\#111820\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121214\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121218\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#12121a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121720\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 23 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#13131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#14181f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 31 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141822\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#15151a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]\/80:is(.dark *){background-color:#161b24cc}.dark\:bg-\[\#161c26\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 28 38 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#182131\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 33 49 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a22\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1d25\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 29 37 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1f2a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c23\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 35 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c2030\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1d2633\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(29 38 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2330\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 35 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2430\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 36 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1f1f29\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 31 41 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#202734\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(32 39 52 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#222\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232833\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 40 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232933\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 41 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a0505\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 5 5 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a303a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 48 58 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a3140\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 49 64 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2d4b8f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(45 75 143 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4150\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 65 80 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4a5c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 74 92 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-900\/10:is(.dark *){background-color:#78350f1a}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-black\/60:is(.dark *){background-color:#0009}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-brand-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-brand-500\/15:is(.dark *){background-color:#3b82f626}.dark\:bg-brand-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-brand-500\/\[0\.09\]:is(.dark *){background-color:#3b82f617}.dark\:bg-brand-500\/\[0\.1\]:is(.dark *){background-color:#3b82f61a}.dark\:bg-brand-900\/10:is(.dark *){background-color:#062d661a}.dark\:bg-brand-900\/20:is(.dark *){background-color:#062d6633}.dark\:bg-brand-900\/30:is(.dark *){background-color:#062d664d}.dark\:bg-brand-900\/40:is(.dark *){background-color:#062d6666}.dark\:bg-cyan-900\/40:is(.dark *){background-color:#164e6366}.dark\:bg-cyan-950\/30:is(.dark *){background-color:#0833444d}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/25:is(.dark *){background-color:#10b98140}.dark\:bg-emerald-500\/\[0\.06\]:is(.dark *){background-color:#10b9810f}.dark\:bg-emerald-900\/10:is(.dark *){background-color:#064e3b1a}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#022c2233}.dark\:bg-emerald-950\/30:is(.dark *){background-color:#022c224d}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-purple-900\/10:is(.dark *){background-color:#581c871a}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-400\/10:is(.dark *){background-color:#38bdf81a}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900\/30:is(.dark *){background-color:#0c4a6e4d}.dark\:bg-slate-500\/10:is(.dark *){background-color:#64748b1a}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-500\/15:is(.dark *){background-color:#8b5cf626}.dark\:bg-violet-900\/30:is(.dark *){background-color:#4c1d954d}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2e106566}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/\[0\.05\]:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:bg-\[linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:linear-gradient(180deg,#030507,#05080c)}.dark\:bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.02\)\,transparent_26\%\)\]:is(.dark *){background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent 26%)}.dark\:bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.035\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 18% 18%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 78% 20%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.035),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_20\%_22\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_74\%_18\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 20% 22%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 74% 18%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_top_left\,_rgba\(56\,189\,248\,0\.06\)\,_transparent_22\%\)\,linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:radial-gradient(circle at top left,rgba(56,189,248,.06),transparent 22%),linear-gradient(180deg,#030507,#05080c)}.dark\:from-sky-500\/10:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-\[\#3b82f6\]\/30:is(.dark *){--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-violet-500\/10:is(.dark *){--tw-gradient-to: rgb(139 92 246 / .1) var(--tw-gradient-to-position)}.dark\:fill-\[\#9CA3AF\]:is(.dark *){fill:#9ca3af}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-slate-700:is(.dark *){stroke:#334155}.dark\:\!text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(167 178 198 / var(--tw-text-opacity, 1))!important}.dark\:\!text-brand-600:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:text-\[\#3a3a44\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 58 68 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4258\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 66 88 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4455\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 68 85 / var(--tw-text-opacity, 1))}.dark\:text-\[\#4b5565\]:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 101 / var(--tw-text-opacity, 1))}.dark\:text-\[\#5c6577\]:is(.dark *){--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d768a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d778a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 119 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#738097\]:is(.dark *){--tw-text-opacity: 1;color:rgb(115 128 151 / var(--tw-text-opacity, 1))}.dark\:text-\[\#77849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(119 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#78849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#798191\]:is(.dark *){--tw-text-opacity: 1;color:rgb(121 129 145 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7b8496\]:is(.dark *){--tw-text-opacity: 1;color:rgb(123 132 150 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7ea4ff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(126 164 255 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7f8ca3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(127 140 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8090a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8290a5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(130 144 165 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a8a93\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a93a6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 147 166 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a94a7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 148 167 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d95a3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 149 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d9ab2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 154 178 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8f9bb0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(143 155 176 / var(--tw-text-opacity, 1))}.dark\:text-\[\#91a0b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(145 160 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#98a3b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(152 163 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa4b6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 164 182 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa6bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 166 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa7bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 167 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9ca7ba\]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 167 186 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a1a1aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a6b0c3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(166 176 195 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(167 178 198 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a8b4c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(168 180 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#aab5c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(170 181 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b2bdd1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(178 189 209 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b3b3bd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(179 179 189 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b7c2d6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(183 194 214 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c4cfdf\]:is(.dark *){--tw-text-opacity: 1;color:rgb(196 207 223 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c5d0e0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(197 208 224 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c6d0e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(198 208 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cede\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 206 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 219 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 221 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d0de\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 208 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d3e6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 211 230 / var(--tw-text-opacity, 1))}.dark\:text-\[\#cbd5e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d0d7e2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(208 215 226 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d8e1ef\]:is(.dark *){--tw-text-opacity: 1;color:rgb(216 225 239 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5e7eb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5ecf7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 236 247 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e7ecf3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(231 236 243 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/90:is(.dark *){color:#fcd34de6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-500:is(.dark *){--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-brand-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-500:is(.dark *){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.dark\:text-cyan-200:is(.dark *){--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-emerald-500:is(.dark *){--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.dark\:text-slate-950:is(.dark *){--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:opacity-20:is(.dark *){opacity:.2}.dark\:opacity-\[0\.08\]:is(.dark *){opacity:.08}.dark\:shadow-\[0_18px_60px_-42px_rgba\(0\,0\,0\,0\.7\)\]:is(.dark *){--tw-shadow: 0 18px 60px -42px rgba(0,0,0,.7);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_70px_-34px_rgba\(0\,0\,0\,0\.72\)\]:is(.dark *){--tw-shadow: 0 24px 70px -34px rgba(0,0,0,.72);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-\[\#22222c\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(34 34 44 / var(--tw-ring-opacity, 1))}.dark\:ring-\[\#2a2a35\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(42 42 53 / var(--tw-ring-opacity, 1))}.dark\:ring-amber-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:ring-brand-500\/55:is(.dark *){--tw-ring-color: rgb(59 130 246 / .55)}.dark\:ring-brand-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(7 63 143 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity, 1))}.dark\:ring-red-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:hover\:border-\[\#2a2a31\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 49 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a2a38\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 56 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a303a\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2e3545\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(46 53 69 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.dark\:hover\:border-rose-900\/50:hover:is(.dark *){border-color:#88133780}.dark\:hover\:\!bg-\[\#1c2330\]:hover:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(28 35 48 / var(--tw-bg-opacity, 1))!important}.dark\:hover\:bg-\[\#0b1017\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d13\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d14\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f16\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f18\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f131b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 19 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111114\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111118\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#11151d\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#121214\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13131a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#131720\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 23 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13192a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 25 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141923\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 25 35 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141a24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151518\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151d2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 29 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b26\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 31 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1a22\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1f2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2130\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 33 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2230\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 34 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c1c24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c2030\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#33569f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 86 159 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#380808\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 8 8 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-500\/20:hover:is(.dark *){background-color:#f59e0b33}.dark\:hover\:bg-brand-500\/10:hover:is(.dark *){background-color:#3b82f61a}.dark\:hover\:bg-brand-900\/20:hover:is(.dark *){background-color:#062d6633}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-950\/25:hover:is(.dark *){background-color:#450a0a40}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-rose-500\/10:hover:is(.dark *){background-color:#f43f5e1a}.dark\:hover\:bg-sky-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-200:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:bg-white\/\[0\.035\]:hover:is(.dark *){background-color:#ffffff09}.dark\:hover\:\!text-white:hover:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:hover\:text-\[\#8090a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-\[\#8d96a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-amber-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(217 234 255 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:focus\:text-slate-300:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:disabled\:hover\:text-\[\#8a8a93\]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:aria-selected\:bg-white\/\[0\.06\][aria-selected=true]:is(.dark *){background-color:#ffffff0f}.dark\:aria-selected\:text-white[aria-selected=true]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-6{right:1.5rem}.sm\:top-6{top:1.5rem}.sm\:col-span-3{grid-column:span 3 / span 3}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-11{height:2.75rem}.sm\:h-12{height:3rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:self-stretch{align-self:stretch}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-\[1\.35rem\]{font-size:1.35rem}.sm\:text-\[1\.3rem\]{font-size:1.3rem}.sm\:text-\[1\.75rem\]{font-size:1.75rem}}@media (min-width: 768px){.md\:grid{display:grid}.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-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}}@media (min-width: 1024px){.lg\:ml-auto{margin-left:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:max-h-\[360px\]{max-height:360px}.lg\:min-h-0{min-height:0px}.lg\:min-h-screen{min-height:100vh}.lg\:w-full{width:100%}.lg\:flex-1{flex:1 1 0%}.lg\:shrink-0{flex-shrink:0}.lg\:-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-\[1\.06fr_0\.94fr\]{grid-template-columns:1.06fr .94fr}.lg\:grid-cols-\[1\.08fr_0\.92fr\]{grid-template-columns:1.08fr .92fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-stretch{align-items:stretch}.lg\:gap-1{gap:.25rem}.lg\:overflow-visible{overflow:visible}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.lg\:px-14{padding-left:3.5rem;padding-right:3.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}.lg\:dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-6{top:1.5rem}.xl\:h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.xl\:w-\[24rem\]{width:24rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.xl\:grid-cols-\[1\.3fr_0\.7fr\]{grid-template-columns:1.3fr .7fr}.xl\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(340px\,420px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(360px\,1fr\)_minmax\(0\,1\.618fr\)\]{grid-template-columns:minmax(360px,1fr) minmax(0,1.618fr)}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:border-b-0{border-bottom-width:0px}.xl\:border-r{border-right-width:1px}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:1rem}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:1rem}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:9999px}.\[\&\:\:-moz-range-thumb\]\:border-2::-moz-range-thumb{border-width:2px}.\[\&\:\:-moz-range-thumb\]\:border-solid::-moz-range-thumb{border-style:solid}.\[\&\:\:-moz-range-thumb\]\:border-white::-moz-range-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-moz-range-thumb\]\:bg-\[color\:var\(--thumb\)\]::-moz-range-thumb{background-color:var(--thumb)}.\[\&\:\:-moz-range-thumb\]\:shadow::-moz-range-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:1rem}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:1rem}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\[\&\:\:-webkit-slider-thumb\]\:border-2::-webkit-slider-thumb{border-width:2px}.\[\&\:\:-webkit-slider-thumb\]\:border-white::-webkit-slider-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:bg-\[color\:var\(--thumb\)\]::-webkit-slider-thumb{background-color:var(--thumb)}.\[\&\:\:-webkit-slider-thumb\]\:shadow::-webkit-slider-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb{-webkit-transition-property:transform;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\:\:-webkit-slider-thumb\]\:active\:scale-95:active::-webkit-slider-thumb{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>\*\:last-child\]\:border-b-0>*:last-child{border-bottom-width:0px}@media (min-width: 768px){.md\:\[\&\>\*\:nth-last-child\(-n\+2\)\]\:border-b-0>*:nth-last-child(-n+2){border-bottom-width:0px}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:pb-1 [cmdk-group-heading]{padding-bottom:.25rem}.\[\&_\[cmdk-group-heading\]\]\:pt-3 [cmdk-group-heading]{padding-top:.75rem}.\[\&_\[cmdk-group-heading\]\]\:text-\[11px\] [cmdk-group-heading]{font-size:11px}.\[\&_\[cmdk-group-heading\]\]\:font-bold [cmdk-group-heading]{font-weight:700}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_\[cmdk-group-heading\]\]\:tracking-widest [cmdk-group-heading]{letter-spacing:.1em}.\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:\[\&_\[cmdk-group-heading\]\]\:text-\[\#6d768a\] [cmdk-group-heading]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))} diff --git a/website/dist/assets/index-DhvtsSzy.js b/website/dist/assets/index-DhvtsSzy.js deleted file mode 100644 index 055e37ce..00000000 --- a/website/dist/assets/index-DhvtsSzy.js +++ /dev/null @@ -1,641 +0,0 @@ -var eJ=Object.defineProperty;var tJ=(t,e,n)=>e in t?eJ(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var dR=(t,e,n)=>tJ(t,typeof e!="symbol"?e+"":e,n);function nJ(t,e){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var dv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Nn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pB={exports:{}},Ck={},mB={exports:{}},Ft={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var dy=Symbol.for("react.element"),rJ=Symbol.for("react.portal"),aJ=Symbol.for("react.fragment"),sJ=Symbol.for("react.strict_mode"),iJ=Symbol.for("react.profiler"),oJ=Symbol.for("react.provider"),lJ=Symbol.for("react.context"),cJ=Symbol.for("react.forward_ref"),uJ=Symbol.for("react.suspense"),dJ=Symbol.for("react.memo"),fJ=Symbol.for("react.lazy"),fR=Symbol.iterator;function hJ(t){return t===null||typeof t!="object"?null:(t=fR&&t[fR]||t["@@iterator"],typeof t=="function"?t:null)}var gB={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xB=Object.assign,yB={};function tm(t,e,n){this.props=t,this.context=e,this.refs=yB,this.updater=n||gB}tm.prototype.isReactComponent={};tm.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};tm.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function vB(){}vB.prototype=tm.prototype;function BO(t,e,n){this.props=t,this.context=e,this.refs=yB,this.updater=n||gB}var zO=BO.prototype=new vB;zO.constructor=BO;xB(zO,tm.prototype);zO.isPureReactComponent=!0;var hR=Array.isArray,bB=Object.prototype.hasOwnProperty,UO={current:null},wB={key:!0,ref:!0,__self:!0,__source:!0};function kB(t,e,n){var r,a={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)bB.call(e,r)&&!wB.hasOwnProperty(r)&&(a[r]=e[r]);var l=arguments.length-2;if(l===1)a.children=n;else if(1>>1,I=U[G];if(0>>1;Ga(B,W))za(Z,B)?(U[G]=Z,U[z]=W,G=z):(U[G]=B,U[M]=W,G=M);else if(za(Z,W))U[G]=Z,U[z]=W,G=z;else break e}}return Y}function a(U,Y){var W=U.sortIndex-Y.sortIndex;return W!==0?W:U.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,m=!1,x=!1,v=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(U){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=U)r(u),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=n(u)}}function j(U){if(x=!1,w(U),!m)if(n(c)!==null)m=!0,X(k);else{var Y=n(u);Y!==null&&J(j,Y.startTime-U)}}function k(U,Y){m=!1,x&&(x=!1,b(C),C=-1),p=!0;var W=h;try{for(w(Y),f=n(c);f!==null&&(!(f.expirationTime>Y)||U&&!R());){var G=f.callback;if(typeof G=="function"){f.callback=null,h=f.priorityLevel;var I=G(f.expirationTime<=Y);Y=t.unstable_now(),typeof I=="function"?f.callback=I:f===n(c)&&r(c),w(Y)}else r(c);f=n(c)}if(f!==null)var q=!0;else{var M=n(u);M!==null&&J(j,M.startTime-Y),q=!1}return q}finally{f=null,h=W,p=!1}}var S=!1,_=null,C=-1,E=5,P=-1;function R(){return!(t.unstable_now()-PU||125G?(U.sortIndex=W,e(u,U),n(c)===null&&U===n(u)&&(x?(b(C),C=-1):x=!0,J(j,W-G))):(U.sortIndex=I,e(c,U),m||p||(m=!0,X(k))),U},t.unstable_shouldYield=R,t.unstable_wrapCallback=function(U){var Y=h;return function(){var W=h;h=Y;try{return U.apply(this,arguments)}finally{h=W}}}})(CB);NB.exports=CB;var SJ=NB.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var _J=g,mi=SJ;function De(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wN=Object.prototype.hasOwnProperty,NJ=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,mR={},gR={};function CJ(t){return wN.call(gR,t)?!0:wN.call(mR,t)?!1:NJ.test(t)?gR[t]=!0:(mR[t]=!0,!1)}function EJ(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function AJ(t,e,n,r){if(e===null||typeof e>"u"||EJ(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function _s(t,e,n,r,a,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Fa={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Fa[t]=new _s(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Fa[e]=new _s(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Fa[t]=new _s(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Fa[t]=new _s(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Fa[t]=new _s(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Fa[t]=new _s(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Fa[t]=new _s(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Fa[t]=new _s(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Fa[t]=new _s(t,5,!1,t.toLowerCase(),null,!1,!1)});var WO=/[\-:]([a-z])/g;function HO(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Fa[t]=new _s(t,1,!1,t.toLowerCase(),null,!1,!1)});Fa.xlinkHref=new _s("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Fa[t]=new _s(t,1,!1,t.toLowerCase(),null,!0,!0)});function GO(t,e,n,r){var a=Fa.hasOwnProperty(e)?Fa[e]:null;(a!==null?a.type!==0:r||!(2l||a[o]!==s[l]){var c=` -`+a[o].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=o&&0<=l);break}}}finally{_2=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?Mg(t):""}function OJ(t){switch(t.tag){case 5:return Mg(t.type);case 16:return Mg("Lazy");case 13:return Mg("Suspense");case 19:return Mg("SuspenseList");case 0:case 2:case 15:return t=N2(t.type,!1),t;case 11:return t=N2(t.type.render,!1),t;case 1:return t=N2(t.type,!0),t;default:return""}}function _N(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ch:return"Fragment";case lh:return"Portal";case kN:return"Profiler";case qO:return"StrictMode";case jN:return"Suspense";case SN:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case OB:return(t.displayName||"Context")+".Consumer";case AB:return(t._context.displayName||"Context")+".Provider";case KO:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case YO:return e=t.displayName||null,e!==null?e:_N(t.type)||"Memo";case Rc:e=t._payload,t=t._init;try{return _N(t(e))}catch{}}return null}function TJ(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _N(e);case 8:return e===qO?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function bu(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function PB(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function PJ(t){var e=PB(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function pv(t){t._valueTracker||(t._valueTracker=PJ(t))}function RB(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=PB(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function f1(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function NN(t,e){var n=e.checked;return mr({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function yR(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=bu(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function MB(t,e){e=e.checked,e!=null&&GO(t,"checked",e,!1)}function CN(t,e){MB(t,e);var n=bu(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?EN(t,e.type,n):e.hasOwnProperty("defaultValue")&&EN(t,e.type,bu(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function vR(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function EN(t,e,n){(e!=="number"||f1(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var Dg=Array.isArray;function Ph(t,e,n,r){if(t=t.options,e){e={};for(var a=0;a"+e.valueOf().toString()+"",e=mv.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Dx(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var rx={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},RJ=["Webkit","ms","Moz","O"];Object.keys(rx).forEach(function(t){RJ.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),rx[e]=rx[t]})});function LB(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||rx.hasOwnProperty(t)&&rx[t]?(""+e).trim():e+"px"}function FB(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=LB(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,a):t[n]=a}}var MJ=mr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function TN(t,e){if(e){if(MJ[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(De(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(De(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(De(61))}if(e.style!=null&&typeof e.style!="object")throw Error(De(62))}}function PN(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var RN=null;function XO(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var MN=null,Rh=null,Mh=null;function kR(t){if(t=py(t)){if(typeof MN!="function")throw Error(De(280));var e=t.stateNode;e&&(e=Pk(e),MN(t.stateNode,t.type,e))}}function BB(t){Rh?Mh?Mh.push(t):Mh=[t]:Rh=t}function zB(){if(Rh){var t=Rh,e=Mh;if(Mh=Rh=null,kR(t),e)for(t=0;t>>=0,t===0?32:31-(HJ(t)/GJ|0)|0}var gv=64,xv=4194304;function Ig(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function g1(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,a=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~a;l!==0?r=Ig(l):(s&=o,s!==0&&(r=Ig(s)))}else o=n&~a,o!==0?r=Ig(o):s!==0&&(r=Ig(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&a)&&(a=r&-r,s=e&-e,a>=s||a===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function fy(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-bo(e),t[e]=n}function XJ(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=sx),TR=" ",PR=!1;function o9(t,e){switch(t){case"keyup":return SZ.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function l9(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var uh=!1;function NZ(t,e){switch(t){case"compositionend":return l9(e);case"keypress":return e.which!==32?null:(PR=!0,TR);case"textInput":return t=e.data,t===TR&&PR?null:t;default:return null}}function CZ(t,e){if(uh)return t==="compositionend"||!a5&&o9(t,e)?(t=s9(),Bb=t5=Gc=null,uh=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=IR(n)}}function f9(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?f9(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function h9(){for(var t=window,e=f1();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=f1(t.document)}return e}function s5(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function IZ(t){var e=h9(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&f9(n.ownerDocument.documentElement,n)){if(r!==null&&s5(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var a=n.textContent.length,s=Math.min(r.start,a);r=r.end===void 0?s:Math.min(r.end,a),!t.extend&&s>r&&(a=r,r=s,s=a),a=$R(n,s);var o=$R(n,r);a&&o&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(a.node,a.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,dh=null,BN=null,ox=null,zN=!1;function LR(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;zN||dh==null||dh!==f1(r)||(r=dh,"selectionStart"in r&&s5(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ox&&zx(ox,r)||(ox=r,r=v1(BN,"onSelect"),0ph||(t.current=qN[ph],qN[ph]=null,ph--)}function Bn(t,e){ph++,qN[ph]=t.current,t.current=e}var wu={},es=$u(wu),zs=$u(!1),Wd=wu;function rp(t,e){var n=t.type.contextTypes;if(!n)return wu;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var a={},s;for(s in n)a[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=a),a}function Us(t){return t=t.childContextTypes,t!=null}function w1(){Zn(zs),Zn(es)}function HR(t,e,n){if(es.current!==wu)throw Error(De(168));Bn(es,e),Bn(zs,n)}function k9(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in e))throw Error(De(108,TJ(t)||"Unknown",a));return mr({},n,r)}function k1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||wu,Wd=es.current,Bn(es,t),Bn(zs,zs.current),!0}function GR(t,e,n){var r=t.stateNode;if(!r)throw Error(De(169));n?(t=k9(t,e,Wd),r.__reactInternalMemoizedMergedChildContext=t,Zn(zs),Zn(es),Bn(es,t)):Zn(zs),Bn(zs,n)}var Fl=null,Rk=!1,B2=!1;function j9(t){Fl===null?Fl=[t]:Fl.push(t)}function KZ(t){Rk=!0,j9(t)}function Lu(){if(!B2&&Fl!==null){B2=!0;var t=0,e=bn;try{var n=Fl;for(bn=1;t>=o,a-=o,Ul=1<<32-bo(e)+a|n<C?(E=_,_=null):E=_.sibling;var P=h(b,_,w[C],j);if(P===null){_===null&&(_=E);break}t&&_&&P.alternate===null&&e(b,_),y=s(P,y,C),S===null?k=P:S.sibling=P,S=P,_=E}if(C===w.length)return n(b,_),rr&&id(b,C),k;if(_===null){for(;CC?(E=_,_=null):E=_.sibling;var R=h(b,_,P.value,j);if(R===null){_===null&&(_=E);break}t&&_&&R.alternate===null&&e(b,_),y=s(R,y,C),S===null?k=R:S.sibling=R,S=R,_=E}if(P.done)return n(b,_),rr&&id(b,C),k;if(_===null){for(;!P.done;C++,P=w.next())P=f(b,P.value,j),P!==null&&(y=s(P,y,C),S===null?k=P:S.sibling=P,S=P);return rr&&id(b,C),k}for(_=r(b,_);!P.done;C++,P=w.next())P=p(_,b,C,P.value,j),P!==null&&(t&&P.alternate!==null&&_.delete(P.key===null?C:P.key),y=s(P,y,C),S===null?k=P:S.sibling=P,S=P);return t&&_.forEach(function(A){return e(b,A)}),rr&&id(b,C),k}function v(b,y,w,j){if(typeof w=="object"&&w!==null&&w.type===ch&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case hv:e:{for(var k=w.key,S=y;S!==null;){if(S.key===k){if(k=w.type,k===ch){if(S.tag===7){n(b,S.sibling),y=a(S,w.props.children),y.return=b,b=y;break e}}else if(S.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Rc&&YR(k)===S.type){n(b,S.sibling),y=a(S,w.props),y.ref=ng(b,S,w),y.return=b,b=y;break e}n(b,S);break}else e(b,S);S=S.sibling}w.type===ch?(y=Md(w.props.children,b.mode,j,w.key),y.return=b,b=y):(j=Kb(w.type,w.key,w.props,null,b.mode,j),j.ref=ng(b,y,w),j.return=b,b=j)}return o(b);case lh:e:{for(S=w.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===w.containerInfo&&y.stateNode.implementation===w.implementation){n(b,y.sibling),y=a(y,w.children||[]),y.return=b,b=y;break e}else{n(b,y);break}else e(b,y);y=y.sibling}y=K2(w,b.mode,j),y.return=b,b=y}return o(b);case Rc:return S=w._init,v(b,y,S(w._payload),j)}if(Dg(w))return m(b,y,w,j);if(Jm(w))return x(b,y,w,j);Sv(b,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,y!==null&&y.tag===6?(n(b,y.sibling),y=a(y,w),y.return=b,b=y):(n(b,y),y=q2(w,b.mode,j),y.return=b,b=y),o(b)):n(b,y)}return v}var sp=C9(!0),E9=C9(!1),_1=$u(null),N1=null,xh=null,c5=null;function u5(){c5=xh=N1=null}function d5(t){var e=_1.current;Zn(_1),t._currentValue=e}function XN(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Ih(t,e){N1=t,c5=xh=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(Ds=!0),t.firstContext=null)}function zi(t){var e=t._currentValue;if(c5!==t)if(t={context:t,memoizedValue:e,next:null},xh===null){if(N1===null)throw Error(De(308));xh=t,N1.dependencies={lanes:0,firstContext:t}}else xh=xh.next=t;return e}var xd=null;function f5(t){xd===null?xd=[t]:xd.push(t)}function A9(t,e,n,r){var a=e.interleaved;return a===null?(n.next=n,f5(e)):(n.next=a.next,a.next=n),e.interleaved=n,ic(t,r)}function ic(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Mc=!1;function h5(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function O9(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Xl(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function du(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,tn&2){var a=r.pending;return a===null?e.next=e:(e.next=a.next,a.next=e),r.pending=e,ic(t,n)}return a=r.interleaved,a===null?(e.next=e,f5(r)):(e.next=a.next,a.next=e),r.interleaved=e,ic(t,n)}function Ub(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,ZO(t,n)}}function XR(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?a=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?a=s=e:s=s.next=e}else a=s=e;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function C1(t,e,n,r){var a=t.updateQueue;Mc=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?s=u:o.next=u,o=c;var d=t.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(s!==null){var f=a.baseState;o=0,d=u=c=null,l=s;do{var h=l.lane,p=l.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,x=l;switch(h=e,p=n,x.tag){case 1:if(m=x.payload,typeof m=="function"){f=m.call(p,f,h);break e}f=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=x.payload,h=typeof m=="function"?m.call(p,f,h):m,h==null)break e;f=mr({},f,h);break e;case 2:Mc=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,h=a.effects,h===null?a.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=p,c=f):d=d.next=p,o|=h;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;h=l,l=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);if(d===null&&(c=f),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,e=a.shared.interleaved,e!==null){a=e;do o|=a.lane,a=a.next;while(a!==e)}else s===null&&(a.shared.lanes=0);qd|=o,t.lanes=o,t.memoizedState=f}}function JR(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=U2.transition;U2.transition={};try{t(!1),e()}finally{bn=n,U2.transition=r}}function q9(){return Ui().memoizedState}function ZZ(t,e,n){var r=hu(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},K9(t))Y9(e,n);else if(n=A9(t,e,n,r),n!==null){var a=ws();wo(n,t,r,a),X9(n,e,r)}}function QZ(t,e,n){var r=hu(t),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(K9(t))Y9(e,a);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(a.hasEagerState=!0,a.eagerState=l,ko(l,o)){var c=e.interleaved;c===null?(a.next=a,f5(e)):(a.next=c.next,c.next=a),e.interleaved=a;return}}catch{}finally{}n=A9(t,e,a,r),n!==null&&(a=ws(),wo(n,t,r,a),X9(n,e,r))}}function K9(t){var e=t.alternate;return t===pr||e!==null&&e===pr}function Y9(t,e){lx=A1=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function X9(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,ZO(t,n)}}var O1={readContext:zi,useCallback:Va,useContext:Va,useEffect:Va,useImperativeHandle:Va,useInsertionEffect:Va,useLayoutEffect:Va,useMemo:Va,useReducer:Va,useRef:Va,useState:Va,useDebugValue:Va,useDeferredValue:Va,useTransition:Va,useMutableSource:Va,useSyncExternalStore:Va,useId:Va,unstable_isNewReconciler:!1},eQ={readContext:zi,useCallback:function(t,e){return Ho().memoizedState=[t,e===void 0?null:e],t},useContext:zi,useEffect:QR,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,Wb(4194308,4,U9.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Wb(4194308,4,t,e)},useInsertionEffect:function(t,e){return Wb(4,2,t,e)},useMemo:function(t,e){var n=Ho();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Ho();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=ZZ.bind(null,pr,t),[r.memoizedState,t]},useRef:function(t){var e=Ho();return t={current:t},e.memoizedState=t},useState:ZR,useDebugValue:w5,useDeferredValue:function(t){return Ho().memoizedState=t},useTransition:function(){var t=ZR(!1),e=t[0];return t=JZ.bind(null,t[1]),Ho().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=pr,a=Ho();if(rr){if(n===void 0)throw Error(De(407));n=n()}else{if(n=e(),wa===null)throw Error(De(349));Gd&30||M9(r,e,n)}a.memoizedState=n;var s={value:n,getSnapshot:e};return a.queue=s,QR(I9.bind(null,r,s,t),[t]),r.flags|=2048,Yx(9,D9.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=Ho(),e=wa.identifierPrefix;if(rr){var n=Vl,r=Ul;n=(r&~(1<<32-bo(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=qx++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[Yo]=e,t[Wx]=r,iz(t,e,!1,!1),e.stateNode=t;e:{switch(o=PN(n,r),n){case"dialog":Kn("cancel",t),Kn("close",t),a=r;break;case"iframe":case"object":case"embed":Kn("load",t),a=r;break;case"video":case"audio":for(a=0;a<$g.length;a++)Kn($g[a],t);a=r;break;case"source":Kn("error",t),a=r;break;case"img":case"image":case"link":Kn("error",t),Kn("load",t),a=r;break;case"details":Kn("toggle",t),a=r;break;case"input":yR(t,r),a=NN(t,r),Kn("invalid",t);break;case"option":a=r;break;case"select":t._wrapperState={wasMultiple:!!r.multiple},a=mr({},r,{value:void 0}),Kn("invalid",t);break;case"textarea":bR(t,r),a=AN(t,r),Kn("invalid",t);break;default:a=r}TN(n,a),l=a;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?FB(t,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&$B(t,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Dx(t,c):typeof c=="number"&&Dx(t,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(Mx.hasOwnProperty(s)?c!=null&&s==="onScroll"&&Kn("scroll",t):c!=null&&GO(t,s,c,o))}switch(n){case"input":pv(t),vR(t,r,!1);break;case"textarea":pv(t),wR(t);break;case"option":r.value!=null&&t.setAttribute("value",""+bu(r.value));break;case"select":t.multiple=!!r.multiple,s=r.value,s!=null?Ph(t,!!r.multiple,s,!1):r.defaultValue!=null&&Ph(t,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(t.onclick=b1)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(e.flags|=4)}e.ref!==null&&(e.flags|=512,e.flags|=2097152)}return Wa(e),null;case 6:if(t&&e.stateNode!=null)lz(t,e,t.memoizedProps,r);else{if(typeof r!="string"&&e.stateNode===null)throw Error(De(166));if(n=yd(Gx.current),yd(cl.current),jv(e)){if(r=e.stateNode,n=e.memoizedProps,r[Yo]=e,(s=r.nodeValue!==n)&&(t=hi,t!==null))switch(t.tag){case 3:kv(r.nodeValue,n,(t.mode&1)!==0);break;case 5:t.memoizedProps.suppressHydrationWarning!==!0&&kv(r.nodeValue,n,(t.mode&1)!==0)}s&&(e.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Yo]=e,e.stateNode=r}return Wa(e),null;case 13:if(Zn(fr),r=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(rr&&di!==null&&e.mode&1&&!(e.flags&128))N9(),ap(),e.flags|=98560,s=!1;else if(s=jv(e),r!==null&&r.dehydrated!==null){if(t===null){if(!s)throw Error(De(318));if(s=e.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(De(317));s[Yo]=e}else ap(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;Wa(e),s=!1}else fo!==null&&(fC(fo),fo=null),s=!0;if(!s)return e.flags&65536?e:null}return e.flags&128?(e.lanes=n,e):(r=r!==null,r!==(t!==null&&t.memoizedState!==null)&&r&&(e.child.flags|=8192,e.mode&1&&(t===null||fr.current&1?Qr===0&&(Qr=3):E5())),e.updateQueue!==null&&(e.flags|=4),Wa(e),null);case 4:return ip(),aC(t,e),t===null&&Ux(e.stateNode.containerInfo),Wa(e),null;case 10:return d5(e.type._context),Wa(e),null;case 17:return Us(e.type)&&w1(),Wa(e),null;case 19:if(Zn(fr),s=e.memoizedState,s===null)return Wa(e),null;if(r=(e.flags&128)!==0,o=s.rendering,o===null)if(r)rg(s,!1);else{if(Qr!==0||t!==null&&t.flags&128)for(t=e.child;t!==null;){if(o=E1(t),o!==null){for(e.flags|=128,rg(s,!1),r=o.updateQueue,r!==null&&(e.updateQueue=r,e.flags|=4),e.subtreeFlags=0,r=n,n=e.child;n!==null;)s=n,t=r,s.flags&=14680066,o=s.alternate,o===null?(s.childLanes=0,s.lanes=t,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,s.type=o.type,t=o.dependencies,s.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),n=n.sibling;return Bn(fr,fr.current&1|2),e.child}t=t.sibling}s.tail!==null&&Rr()>lp&&(e.flags|=128,r=!0,rg(s,!1),e.lanes=4194304)}else{if(!r)if(t=E1(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),rg(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!rr)return Wa(e),null}else 2*Rr()-s.renderingStartTime>lp&&n!==1073741824&&(e.flags|=128,r=!0,rg(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Rr(),e.sibling=null,n=fr.current,Bn(fr,r?n&1|2:n&1),e):(Wa(e),null);case 22:case 23:return C5(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ii&1073741824&&(Wa(e),e.subtreeFlags&6&&(e.flags|=8192)):Wa(e),null;case 24:return null;case 25:return null}throw Error(De(156,e.tag))}function lQ(t,e){switch(o5(e),e.tag){case 1:return Us(e.type)&&w1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return ip(),Zn(zs),Zn(es),g5(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return m5(e),null;case 13:if(Zn(fr),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(De(340));ap()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Zn(fr),null;case 4:return ip(),null;case 10:return d5(e.type._context),null;case 22:case 23:return C5(),null;case 24:return null;default:return null}}var Nv=!1,Ka=!1,cQ=typeof WeakSet=="function"?WeakSet:Set,et=null;function yh(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){br(t,e,r)}else n.current=null}function sC(t,e,n){try{n()}catch(r){br(t,e,r)}}var uM=!1;function uQ(t,e){if(UN=x1,t=h9(),s5(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=t,h=null;t:for(;;){for(var p;f!==n||a!==0&&f.nodeType!==3||(l=o+a),f!==s||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===t)break t;if(h===n&&++u===a&&(l=o),h===s&&++d===r&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(VN={focusedElem:t,selectionRange:n},x1=!1,et=e;et!==null;)if(e=et,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,et=t;else for(;et!==null;){e=et;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,v=m.memoizedState,b=e.stateNode,y=b.getSnapshotBeforeUpdate(e.elementType===e.type?x:oo(e.type,x),v);b.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=e.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(De(163))}}catch(j){br(e,e.return,j)}if(t=e.sibling,t!==null){t.return=e.return,et=t;break}et=e.return}return m=uM,uM=!1,m}function cx(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&t)===t){var s=a.destroy;a.destroy=void 0,s!==void 0&&sC(e,n,s)}a=a.next}while(a!==r)}}function Ik(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function iC(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function cz(t){var e=t.alternate;e!==null&&(t.alternate=null,cz(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Yo],delete e[Wx],delete e[GN],delete e[GZ],delete e[qZ])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function uz(t){return t.tag===5||t.tag===3||t.tag===4}function dM(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||uz(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function oC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=b1));else if(r!==4&&(t=t.child,t!==null))for(oC(t,e,n),t=t.sibling;t!==null;)oC(t,e,n),t=t.sibling}function lC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(lC(t,e,n),t=t.sibling;t!==null;)lC(t,e,n),t=t.sibling}var Pa=null,lo=!1;function Oc(t,e,n){for(n=n.child;n!==null;)dz(t,e,n),n=n.sibling}function dz(t,e,n){if(ll&&typeof ll.onCommitFiberUnmount=="function")try{ll.onCommitFiberUnmount(Ek,n)}catch{}switch(n.tag){case 5:Ka||yh(n,e);case 6:var r=Pa,a=lo;Pa=null,Oc(t,e,n),Pa=r,lo=a,Pa!==null&&(lo?(t=Pa,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Pa.removeChild(n.stateNode));break;case 18:Pa!==null&&(lo?(t=Pa,n=n.stateNode,t.nodeType===8?F2(t.parentNode,n):t.nodeType===1&&F2(t,n),Fx(t)):F2(Pa,n.stateNode));break;case 4:r=Pa,a=lo,Pa=n.stateNode.containerInfo,lo=!0,Oc(t,e,n),Pa=r,lo=a;break;case 0:case 11:case 14:case 15:if(!Ka&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var s=a,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&sC(n,e,o),a=a.next}while(a!==r)}Oc(t,e,n);break;case 1:if(!Ka&&(yh(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){br(n,e,l)}Oc(t,e,n);break;case 21:Oc(t,e,n);break;case 22:n.mode&1?(Ka=(r=Ka)||n.memoizedState!==null,Oc(t,e,n),Ka=r):Oc(t,e,n);break;default:Oc(t,e,n)}}function fM(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new cQ),e.forEach(function(r){var a=vQ.bind(null,t,r);n.has(r)||(n.add(r),r.then(a,a))})}}function no(t,e){var n=e.deletions;if(n!==null)for(var r=0;ra&&(a=o),r&=~s}if(r=a,r=Rr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*fQ(r/1960))-r,10t?16:t,qc===null)var r=!1;else{if(t=qc,qc=null,R1=0,tn&6)throw Error(De(331));var a=tn;for(tn|=4,et=t.current;et!==null;){var s=et,o=s.child;if(et.flags&16){var l=s.deletions;if(l!==null){for(var c=0;cRr()-_5?Rd(t,0):S5|=n),Vs(t,e)}function vz(t,e){e===0&&(t.mode&1?(e=xv,xv<<=1,!(xv&130023424)&&(xv=4194304)):e=1);var n=ws();t=ic(t,e),t!==null&&(fy(t,e,n),Vs(t,n))}function yQ(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),vz(t,n)}function vQ(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,a=t.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(De(314))}r!==null&&r.delete(e),vz(t,n)}var bz;bz=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||zs.current)Ds=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return Ds=!1,iQ(t,e,n);Ds=!!(t.flags&131072)}else Ds=!1,rr&&e.flags&1048576&&S9(e,S1,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;Hb(t,e),t=e.pendingProps;var a=rp(e,es.current);Ih(e,n),a=y5(null,e,r,t,a,n);var s=v5();return e.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Us(r)?(s=!0,k1(e)):s=!1,e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,h5(e),a.updater=Dk,e.stateNode=a,a._reactInternals=e,ZN(e,r,t,n),e=tC(null,e,r,!0,s,n)):(e.tag=0,rr&&s&&i5(e),ds(null,e,a,n),e=e.child),e;case 16:r=e.elementType;e:{switch(Hb(t,e),t=e.pendingProps,a=r._init,r=a(r._payload),e.type=r,a=e.tag=wQ(r),t=oo(r,t),a){case 0:e=eC(null,e,r,t,n);break e;case 1:e=oM(null,e,r,t,n);break e;case 11:e=sM(null,e,r,t,n);break e;case 14:e=iM(null,e,r,oo(r.type,t),n);break e}throw Error(De(306,r,""))}return e;case 0:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),eC(t,e,r,a,n);case 1:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),oM(t,e,r,a,n);case 3:e:{if(rz(e),t===null)throw Error(De(387));r=e.pendingProps,s=e.memoizedState,a=s.element,O9(t,e),C1(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){a=op(Error(De(423)),e),e=lM(t,e,r,n,a);break e}else if(r!==a){a=op(Error(De(424)),e),e=lM(t,e,r,n,a);break e}else for(di=uu(e.stateNode.containerInfo.firstChild),hi=e,rr=!0,fo=null,n=E9(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ap(),r===a){e=oc(t,e,n);break e}ds(t,e,r,n)}e=e.child}return e;case 5:return T9(e),t===null&&YN(e),r=e.type,a=e.pendingProps,s=t!==null?t.memoizedProps:null,o=a.children,WN(r,a)?o=null:s!==null&&WN(r,s)&&(e.flags|=32),nz(t,e),ds(t,e,o,n),e.child;case 6:return t===null&&YN(e),null;case 13:return az(t,e,n);case 4:return p5(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=sp(e,null,r,n):ds(t,e,r,n),e.child;case 11:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),sM(t,e,r,a,n);case 7:return ds(t,e,e.pendingProps,n),e.child;case 8:return ds(t,e,e.pendingProps.children,n),e.child;case 12:return ds(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,a=e.pendingProps,s=e.memoizedProps,o=a.value,Bn(_1,r._currentValue),r._currentValue=o,s!==null)if(ko(s.value,o)){if(s.children===a.children&&!zs.current){e=oc(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=Xl(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),XN(s.return,n,e),l.lanes|=n;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(De(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),XN(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ds(t,e,a.children,n),e=e.child}return e;case 9:return a=e.type,r=e.pendingProps.children,Ih(e,n),a=zi(a),r=r(a),e.flags|=1,ds(t,e,r,n),e.child;case 14:return r=e.type,a=oo(r,e.pendingProps),a=oo(r.type,a),iM(t,e,r,a,n);case 15:return ez(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),Hb(t,e),e.tag=1,Us(r)?(t=!0,k1(e)):t=!1,Ih(e,n),J9(e,r,a),ZN(e,r,a,n),tC(null,e,r,!0,t,n);case 19:return sz(t,e,n);case 22:return tz(t,e,n)}throw Error(De(156,e.tag))};function wz(t,e){return KB(t,e)}function bQ(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ri(t,e,n,r){return new bQ(t,e,n,r)}function A5(t){return t=t.prototype,!(!t||!t.isReactComponent)}function wQ(t){if(typeof t=="function")return A5(t)?1:0;if(t!=null){if(t=t.$$typeof,t===KO)return 11;if(t===YO)return 14}return 2}function pu(t,e){var n=t.alternate;return n===null?(n=Ri(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function Kb(t,e,n,r,a,s){var o=2;if(r=t,typeof t=="function")A5(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case ch:return Md(n.children,a,s,e);case qO:o=8,a|=8;break;case kN:return t=Ri(12,n,e,a|2),t.elementType=kN,t.lanes=s,t;case jN:return t=Ri(13,n,e,a),t.elementType=jN,t.lanes=s,t;case SN:return t=Ri(19,n,e,a),t.elementType=SN,t.lanes=s,t;case TB:return Lk(n,a,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case AB:o=10;break e;case OB:o=9;break e;case KO:o=11;break e;case YO:o=14;break e;case Rc:o=16,r=null;break e}throw Error(De(130,t==null?t:typeof t,""))}return e=Ri(o,n,e,a),e.elementType=t,e.type=r,e.lanes=s,e}function Md(t,e,n,r){return t=Ri(7,t,r,e),t.lanes=n,t}function Lk(t,e,n,r){return t=Ri(22,t,r,e),t.elementType=TB,t.lanes=n,t.stateNode={isHidden:!1},t}function q2(t,e,n){return t=Ri(6,t,null,e),t.lanes=n,t}function K2(t,e,n){return e=Ri(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function kQ(t,e,n,r,a){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=E2(0),this.expirationTimes=E2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=E2(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function O5(t,e,n,r,a,s,o,l,c){return t=new kQ(t,e,n,l,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Ri(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},h5(s),t}function jQ(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_z)}catch(t){console.error(t)}}_z(),_B.exports=yi;var gs=_B.exports,bM=gs;bN.createRoot=bM.createRoot,bN.hydrateRoot=bM.hydrateRoot;/** - * @remix-run/router v1.23.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Jx(){return Jx=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function M5(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function AQ(){return Math.random().toString(36).substr(2,8)}function kM(t,e){return{usr:t.state,key:t.key,idx:e}}function hC(t,e,n,r){return n===void 0&&(n=null),Jx({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?sm(e):e,{state:n,key:e&&e.key||r||AQ()})}function I1(t){let{pathname:e="/",search:n="",hash:r=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function sm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function OQ(t,e,n,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:s=!1}=r,o=a.history,l=Kc.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(Jx({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Kc.Pop;let v=d(),b=v==null?null:v-u;u=v,c&&c({action:l,location:x.location,delta:b})}function h(v,b){l=Kc.Push;let y=hC(x.location,v,b);u=d()+1;let w=kM(y,u),j=x.createHref(y);try{o.pushState(w,"",j)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;a.location.assign(j)}s&&c&&c({action:l,location:x.location,delta:1})}function p(v,b){l=Kc.Replace;let y=hC(x.location,v,b);u=d();let w=kM(y,u),j=x.createHref(y);o.replaceState(w,"",j),s&&c&&c({action:l,location:x.location,delta:0})}function m(v){let b=a.location.origin!=="null"?a.location.origin:a.location.href,y=typeof v=="string"?v:I1(v);return y=y.replace(/ $/,"%20"),Ir(b,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,b)}let x={get action(){return l},get location(){return t(a,o)},listen(v){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(wM,f),c=v,()=>{a.removeEventListener(wM,f),c=null}},createHref(v){return e(a,v)},createURL:m,encodeLocation(v){let b=m(v);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:p,go(v){return o.go(v)}};return x}var jM;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(jM||(jM={}));function TQ(t,e,n){return n===void 0&&(n="/"),PQ(t,e,n)}function PQ(t,e,n,r){let a=typeof e=="string"?sm(e):e,s=D5(a.pathname||"/",n);if(s==null)return null;let o=Nz(t);RQ(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};c.relativePath.startsWith("/")&&(Ir(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=mu([r,c.relativePath]),d=n.concat(c);s.children&&s.children.length>0&&(Ir(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Nz(s.children,e,d,u)),!(s.path==null&&!s.index)&&e.push({path:u,score:BQ(u,s.index),routesMeta:d})};return t.forEach((s,o)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))a(s,o);else for(let c of Cz(s.path))a(s,o,c)}),e}function Cz(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,a=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return a?[s,""]:[s];let o=Cz(r.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),a&&l.push(...o),l.map(c=>t.startsWith("/")&&c===""?"/":c)}function RQ(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:zQ(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const MQ=/^:[\w-]+$/,DQ=3,IQ=2,$Q=1,LQ=10,FQ=-2,SM=t=>t==="*";function BQ(t,e){let n=t.split("/"),r=n.length;return n.some(SM)&&(r+=FQ),e&&(r+=IQ),n.filter(a=>!SM(a)).reduce((a,s)=>a+(MQ.test(s)?DQ:s===""?$Q:LQ),r)}function zQ(t,e){return t.length===e.length&&t.slice(0,-1).every((r,a)=>r===e[a])?t[t.length-1]-e[e.length-1]:0}function UQ(t,e,n){let{routesMeta:r}=t,a={},s="/",o=[];for(let l=0;l{let{paramName:h,isOptional:p}=d;if(h==="*"){let x=l[f]||"";o=s.slice(0,s.length-x.length).replace(/(.)\/+$/,"$1")}const m=l[f];return p&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:t}}function WQ(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),M5(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,e?void 0:"i"),r]}function HQ(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return M5(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function D5(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}const GQ=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,qQ=t=>GQ.test(t);function KQ(t,e){e===void 0&&(e="/");let{pathname:n,search:r="",hash:a=""}=typeof t=="string"?sm(t):t,s;if(n)if(qQ(n))s=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),M5(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?s=_M(n.substring(1),"/"):s=_M(n,e)}else s=e;return{pathname:s,search:JQ(r),hash:ZQ(a)}}function _M(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function Y2(t,e,n,r){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function YQ(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function I5(t,e){let n=YQ(t);return e?n.map((r,a)=>a===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function $5(t,e,n,r){r===void 0&&(r=!1);let a;typeof t=="string"?a=sm(t):(a=Jx({},t),Ir(!a.pathname||!a.pathname.includes("?"),Y2("?","pathname","search",a)),Ir(!a.pathname||!a.pathname.includes("#"),Y2("#","pathname","hash",a)),Ir(!a.search||!a.search.includes("#"),Y2("#","search","hash",a)));let s=t===""||a.pathname==="",o=s?"/":a.pathname,l;if(o==null)l=n;else{let f=e.length-1;if(!r&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),f-=1;a.pathname=h.join("/")}l=f>=0?e[f]:"/"}let c=KQ(a,l),u=o&&o!=="/"&&o.endsWith("/"),d=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const mu=t=>t.join("/").replace(/\/\/+/g,"/"),XQ=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),JQ=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,ZQ=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function QQ(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const Ez=["post","put","patch","delete"];new Set(Ez);const eee=["get",...Ez];new Set(eee);/** - * React Router v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Zx(){return Zx=Object.assign?Object.assign.bind():function(t){for(var e=1;e{l.current=!0}),g.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=$5(u,JSON.parse(o),s,d.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:mu([e,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[e,r,o,s,t])}const aee=g.createContext(null);function see(t){let e=g.useContext(bl).outlet;return e&&g.createElement(aee.Provider,{value:t},e)}function Tz(){let{matches:t}=g.useContext(bl),e=t[t.length-1];return e?e.params:{}}function Pz(t,e){let{relative:n}=e===void 0?{}:e,{future:r}=g.useContext(Fu),{matches:a}=g.useContext(bl),{pathname:s}=wl(),o=JSON.stringify(I5(a,r.v7_relativeSplatPath));return g.useMemo(()=>$5(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function iee(t,e){return oee(t,e)}function oee(t,e,n,r){im()||Ir(!1);let{navigator:a}=g.useContext(Fu),{matches:s}=g.useContext(bl),o=s[s.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=wl(),d;if(e){var f;let v=typeof e=="string"?sm(e):e;c==="/"||(f=v.pathname)!=null&&f.startsWith(c)||Ir(!1),d=v}else d=u;let h=d.pathname||"/",p=h;if(c!=="/"){let v=c.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(v.length).join("/")}let m=TQ(t,{pathname:p}),x=fee(m&&m.map(v=>Object.assign({},v,{params:Object.assign({},l,v.params),pathname:mu([c,a.encodeLocation?a.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?c:mu([c,a.encodeLocation?a.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),s,n,r);return e&&x?g.createElement(Vk.Provider,{value:{location:Zx({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Kc.Pop}},x):x}function lee(){let t=gee(),e=QQ(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},e),n?g.createElement("pre",{style:a},n):null,null)}const cee=g.createElement(lee,null);class uee extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?g.createElement(bl.Provider,{value:this.props.routeContext},g.createElement(Az.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function dee(t){let{routeContext:e,match:n,children:r}=t,a=g.useContext(L5);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(bl.Provider,{value:e},r)}function fee(t,e,n,r){var a;if(e===void 0&&(e=[]),n===void 0&&(n=null),r===void 0&&(r=null),t==null){var s;if(!n)return null;if(n.errors)t=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,l=(a=n)==null?void 0:a.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Ir(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,h)=>{let p,m=!1,x=null,v=null;n&&(p=l&&f.route.id?l[f.route.id]:void 0,x=f.route.errorElement||cee,c&&(u<0&&h===0?(yee("route-fallback"),m=!0,v=null):u===h&&(m=!0,v=f.route.hydrateFallbackElement||null)));let b=e.concat(o.slice(0,h+1)),y=()=>{let w;return p?w=x:m?w=v:f.route.Component?w=g.createElement(f.route.Component,null):f.route.element?w=f.route.element:w=d,g.createElement(dee,{match:f,routeContext:{outlet:d,matches:b,isDataRoute:n!=null},children:w})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(uee,{location:n.location,revalidation:n.revalidation,component:x,error:p,children:y(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):y()},null)}var Rz=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(Rz||{}),Mz=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(Mz||{});function hee(t){let e=g.useContext(L5);return e||Ir(!1),e}function pee(t){let e=g.useContext(tee);return e||Ir(!1),e}function mee(t){let e=g.useContext(bl);return e||Ir(!1),e}function Dz(t){let e=mee(),n=e.matches[e.matches.length-1];return n.route.id||Ir(!1),n.route.id}function gee(){var t;let e=g.useContext(Az),n=pee(),r=Dz();return e!==void 0?e:(t=n.errors)==null?void 0:t[r]}function xee(){let{router:t}=hee(Rz.UseNavigateStable),e=Dz(Mz.UseNavigateStable),n=g.useRef(!1);return Oz(()=>{n.current=!0}),g.useCallback(function(a,s){s===void 0&&(s={}),n.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,Zx({fromRouteId:e},s)))},[t,e])}const NM={};function yee(t,e,n){NM[t]||(NM[t]=!0)}function vee(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function $1(t){let{to:e,replace:n,state:r,relative:a}=t;im()||Ir(!1);let{future:s,static:o}=g.useContext(Fu),{matches:l}=g.useContext(bl),{pathname:c}=wl(),u=Hr(),d=$5(e,I5(l,s.v7_relativeSplatPath),c,a==="path"),f=JSON.stringify(d);return g.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:a}),[u,f,a,n,r]),null}function Iz(t){return see(t.context)}function on(t){Ir(!1)}function bee(t){let{basename:e="/",children:n=null,location:r,navigationType:a=Kc.Pop,navigator:s,static:o=!1,future:l}=t;im()&&Ir(!1);let c=e.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:c,navigator:s,static:o,future:Zx({v7_relativeSplatPath:!1},l)}),[c,l,s,o]);typeof r=="string"&&(r=sm(r));let{pathname:d="/",search:f="",hash:h="",state:p=null,key:m="default"}=r,x=g.useMemo(()=>{let v=D5(d,c);return v==null?null:{location:{pathname:v,search:f,hash:h,state:p,key:m},navigationType:a}},[c,d,f,h,p,m,a]);return x==null?null:g.createElement(Fu.Provider,{value:u},g.createElement(Vk.Provider,{children:n,value:x}))}function wee(t){let{children:e,location:n}=t;return iee(pC(e),n)}new Promise(()=>{});function pC(t,e){e===void 0&&(e=[]);let n=[];return g.Children.forEach(t,(r,a)=>{if(!g.isValidElement(r))return;let s=[...e,a];if(r.type===g.Fragment){n.push.apply(n,pC(r.props.children,s));return}r.type!==on&&Ir(!1),!r.props.index||!r.props.children||Ir(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=pC(r.props.children,s)),n.push(o)}),n}/** - * React Router DOM v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function mC(){return mC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(n[a]=t[a]);return n}function jee(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function See(t,e){return t.button===0&&(!e||e==="_self")&&!jee(t)}function gC(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let r=t[n];return e.concat(Array.isArray(r)?r.map(a=>[n,a]):[[n,r]])},[]))}function _ee(t,e){let n=gC(t);return e&&e.forEach((r,a)=>{n.has(a)||e.getAll(a).forEach(s=>{n.append(a,s)})}),n}const Nee=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Cee="6";try{window.__reactRouterVersion=Cee}catch{}const Eee="startTransition",CM=nm[Eee];function Aee(t){let{basename:e,children:n,future:r,window:a}=t,s=g.useRef();s.current==null&&(s.current=EQ({window:a,v5Compat:!0}));let o=s.current,[l,c]=g.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=g.useCallback(f=>{u&&CM?CM(()=>c(f)):c(f)},[c,u]);return g.useLayoutEffect(()=>o.listen(d),[o,d]),g.useEffect(()=>vee(r),[r]),g.createElement(bee,{basename:e,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const Oee=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Tee=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Yd=g.forwardRef(function(e,n){let{onClick:r,relative:a,reloadDocument:s,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=e,h=kee(e,Nee),{basename:p}=g.useContext(Fu),m,x=!1;if(typeof u=="string"&&Tee.test(u)&&(m=u,Oee))try{let w=new URL(window.location.href),j=u.startsWith("//")?new URL(w.protocol+u):new URL(u),k=D5(j.pathname,p);j.origin===w.origin&&k!=null?u=k+j.search+j.hash:x=!0}catch{}let v=nee(u,{relative:a}),b=Pee(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:a,viewTransition:f});function y(w){r&&r(w),w.defaultPrevented||b(w)}return g.createElement("a",mC({},h,{href:m||v,onClick:x||s?r:y,ref:n,target:c}))});var EM;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(EM||(EM={}));var AM;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(AM||(AM={}));function Pee(t,e){let{target:n,replace:r,state:a,preventScrollReset:s,relative:o,viewTransition:l}=e===void 0?{}:e,c=Hr(),u=wl(),d=Pz(t,{relative:o});return g.useCallback(f=>{if(See(f,n)){f.preventDefault();let h=r!==void 0?r:I1(u)===I1(d);c(t,{replace:h,state:a,preventScrollReset:s,relative:o,viewTransition:l})}},[u,c,d,r,a,n,t,s,o,l])}function vc(t){let e=g.useRef(gC(t)),n=g.useRef(!1),r=wl(),a=g.useMemo(()=>_ee(r.search,n.current?null:e.current),[r.search]),s=Hr(),o=g.useCallback((l,c)=>{const u=gC(typeof l=="function"?l(a):l);n.current=!0,s("?"+u,c)},[s,a]);return[a,o]}var $z={exports:{}},Lz={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var cp=g;function Ree(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Mee=typeof Object.is=="function"?Object.is:Ree,Dee=cp.useState,Iee=cp.useEffect,$ee=cp.useLayoutEffect,Lee=cp.useDebugValue;function Fee(t,e){var n=e(),r=Dee({inst:{value:n,getSnapshot:e}}),a=r[0].inst,s=r[1];return $ee(function(){a.value=n,a.getSnapshot=e,X2(a)&&s({inst:a})},[t,n,e]),Iee(function(){return X2(a)&&s({inst:a}),t(function(){X2(a)&&s({inst:a})})},[t]),Lee(n),n}function X2(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Mee(t,n)}catch{return!0}}function Bee(t,e){return e()}var zee=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Bee:Fee;Lz.useSyncExternalStore=cp.useSyncExternalStore!==void 0?cp.useSyncExternalStore:zee;$z.exports=Lz;var xC=$z.exports;const Fz=0,Bz=1,zz=2,OM=3;var TM=Object.prototype.hasOwnProperty;function yC(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&yC(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(TM.call(t,n)&&++r&&!TM.call(e,n)||!(n in e)||!yC(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}const Bl=new WeakMap,Wl=()=>{},Ya=Wl(),vC=Object,Ht=t=>t===Ya,Xo=t=>typeof t=="function",ku=(t,e)=>({...t,...e}),Uz=t=>Xo(t.then),J2={},Av={},F5="undefined",gy=typeof window!=F5,bC=typeof document!=F5,Uee=gy&&"Deno"in window,Vee=()=>gy&&typeof window.requestAnimationFrame!=F5,Vz=(t,e)=>{const n=Bl.get(t);return[()=>!Ht(e)&&t.get(e)||J2,r=>{if(!Ht(e)){const a=t.get(e);e in Av||(Av[e]=a),n[5](e,ku(a,r),a||J2)}},n[6],()=>!Ht(e)&&e in Av?Av[e]:!Ht(e)&&t.get(e)||J2]};let wC=!0;const Wee=()=>wC,[kC,jC]=gy&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Wl,Wl],Hee=()=>{const t=bC&&document.visibilityState;return Ht(t)||t!=="hidden"},Gee=t=>(bC&&document.addEventListener("visibilitychange",t),kC("focus",t),()=>{bC&&document.removeEventListener("visibilitychange",t),jC("focus",t)}),qee=t=>{const e=()=>{wC=!0,t()},n=()=>{wC=!1};return kC("online",e),kC("offline",n),()=>{jC("online",e),jC("offline",n)}},Kee={isOnline:Wee,isVisible:Hee},Yee={initFocus:Gee,initReconnect:qee},PM=!H.useId,Lh=!gy||Uee,Xee=t=>Vee()?window.requestAnimationFrame(t):setTimeout(t,1),Z2=Lh?g.useEffect:g.useLayoutEffect,Q2=typeof navigator<"u"&&navigator.connection,RM=!Lh&&Q2&&(["slow-2g","2g"].includes(Q2.effectiveType)||Q2.saveData),Ov=new WeakMap,Jee=t=>vC.prototype.toString.call(t),eS=(t,e)=>t===`[object ${e}]`;let Zee=0;const SC=t=>{const e=typeof t,n=Jee(t),r=eS(n,"Date"),a=eS(n,"RegExp"),s=eS(n,"Object");let o,l;if(vC(t)===t&&!r&&!a){if(o=Ov.get(t),o)return o;if(o=++Zee+"~",Ov.set(t,o),Array.isArray(t)){for(o="@",l=0;l{if(Xo(t))try{t=t()}catch{t=""}const e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?SC(t):"",[t,e]};let Qee=0;const _C=()=>++Qee;async function Wz(...t){const[e,n,r,a]=t,s=ku({populateCache:!0,throwOnError:!0},typeof a=="boolean"?{revalidate:a}:a||{});let o=s.populateCache;const l=s.rollbackOnError;let c=s.optimisticData;const u=h=>typeof l=="function"?l(h):l!==!1,d=s.throwOnError;if(Xo(n)){const h=n,p=[],m=e.keys();for(const x of m)!/^\$(inf|sub)\$/.test(x)&&h(e.get(x)._k)&&p.push(x);return Promise.all(p.map(f))}return f(n);async function f(h){const[p]=B5(h);if(!p)return;const[m,x]=Vz(e,p),[v,b,y,w]=Bl.get(e),j=()=>{const D=v[p];return(Xo(s.revalidate)?s.revalidate(m().data,h):s.revalidate!==!1)&&(delete y[p],delete w[p],D&&D[0])?D[0](zz).then(()=>m().data):m().data};if(t.length<3)return j();let k=r,S,_=!1;const C=_C();b[p]=[C,0];const E=!Ht(c),P=m(),R=P.data,A=P._c,T=Ht(A)?R:A;if(E&&(c=Xo(c)?c(T,R):c,x({data:c,_c:T})),Xo(k))try{k=k(T)}catch(D){S=D,_=!0}if(k&&Uz(k))if(k=await k.catch(D=>{S=D,_=!0}),C!==b[p][0]){if(_)throw S;return k}else _&&E&&u(S)&&(o=!0,x({data:T,_c:Ya}));if(o&&!_)if(Xo(o)){const D=o(k,T);x({data:D,error:Ya,_c:Ya})}else x({data:k,error:Ya,_c:Ya});if(b[p][1]=_C(),Promise.resolve(j()).then(()=>{x({_c:Ya})}),_){if(d)throw S;return}return k}}const MM=(t,e)=>{for(const n in t)t[n][0]&&t[n][0](e)},ete=(t,e)=>{if(!Bl.has(t)){const n=ku(Yee,e),r=Object.create(null),a=Wz.bind(Ya,t);let s=Wl;const o=Object.create(null),l=(d,f)=>{const h=o[d]||[];return o[d]=h,h.push(f),()=>h.splice(h.indexOf(f),1)},c=(d,f,h)=>{t.set(d,f);const p=o[d];if(p)for(const m of p)m(f,h)},u=()=>{if(!Bl.has(t)&&(Bl.set(t,[r,Object.create(null),Object.create(null),Object.create(null),a,c,l]),!Lh)){const d=n.initFocus(setTimeout.bind(Ya,MM.bind(Ya,r,Fz))),f=n.initReconnect(setTimeout.bind(Ya,MM.bind(Ya,r,Bz)));s=()=>{d&&d(),f&&f(),Bl.delete(t)}}};return u(),[t,a,u,s]}return[t,Bl.get(t)[4]]},tte=(t,e,n,r,a)=>{const s=n.errorRetryCount,o=a.retryCount,l=~~((Math.random()+.5)*(1<<(o<8?o:8)))*n.errorRetryInterval;!Ht(s)&&o>s||setTimeout(r,l,a)},nte=yC,[Hz,Gz]=ete(new Map),rte=ku({onLoadingSlow:Wl,onSuccess:Wl,onError:Wl,onErrorRetry:tte,onDiscarded:Wl,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:RM?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:RM?5e3:3e3,compare:nte,isPaused:()=>!1,cache:Hz,mutate:Gz,fallback:{}},Kee),ate=(t,e)=>{const n=ku(t,e);if(e){const{use:r,fallback:a}=t,{use:s,fallback:o}=e;r&&s&&(n.use=r.concat(s)),a&&o&&(n.fallback=ku(a,o))}return n},ste=g.createContext({}),ite="$inf$",qz=gy&&window.__SWR_DEVTOOLS_USE__,ote=qz?window.__SWR_DEVTOOLS_USE__:[],lte=()=>{qz&&(window.__SWR_DEVTOOLS_REACT__=H)},cte=t=>Xo(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],Wk=()=>{const t=g.useContext(ste);return g.useMemo(()=>ku(rte,t),[t])},ute=t=>(e,n,r)=>t(e,n&&((...s)=>{const[o]=B5(e),[,,,l]=Bl.get(Hz);if(o.startsWith(ite))return n(...s);const c=l[o];return Ht(c)?n(...s):(delete l[o],c)}),r),dte=ote.concat(ute),fte=t=>function(...n){const r=Wk(),[a,s,o]=cte(n),l=ate(r,o);let c=t;const{use:u}=l,d=(u||[]).concat(dte);for(let f=d.length;f--;)c=d[f](c);return c(a,s||l.fetcher||null,l)},hte=(t,e,n)=>{const r=e[t]||(e[t]=[]);return r.push(n),()=>{const a=r.indexOf(n);a>=0&&(r[a]=r[r.length-1],r.pop())}};lte();const tS=H.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}}),nS={dedupe:!0},DM=Promise.resolve(Ya),pte=()=>Wl,mte=(t,e,n)=>{const{cache:r,compare:a,suspense:s,fallbackData:o,revalidateOnMount:l,revalidateIfStale:c,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:h,strictServerPrefetchWarning:p}=n,[m,x,v,b]=Bl.get(r),[y,w]=B5(t),j=g.useRef(!1),k=g.useRef(!1),S=g.useRef(y),_=g.useRef(e),C=g.useRef(n),E=()=>C.current,P=()=>E().isVisible()&&E().isOnline(),[R,A,T,D]=Vz(r,y),L=g.useRef({}).current,X=Ht(o)?Ht(n.fallback)?Ya:n.fallback[y]:o,J=(be,Pe)=>{for(const Ce in L){const Re=Ce;if(Re==="data"){if(!a(be[Re],Pe[Re])&&(!Ht(be[Re])||!a(z,Pe[Re])))return!1}else if(Pe[Re]!==be[Re])return!1}return!0},U=!j.current,Y=g.useMemo(()=>{const be=R(),Pe=D(),Ce=F=>{const se=ku(F);return delete se._k,(()=>{if(!y||!e||E().isPaused())return!1;if(U&&!Ht(l))return l;const Se=Ht(X)?se.data:X;return Ht(Se)||c})()?{isValidating:!0,isLoading:!0,...se}:se},Re=Ce(be),Be=be===Pe?Re:Ce(Pe);let st=Re;return[()=>{const F=Ce(R());return J(F,st)?(st.data=F.data,st.isLoading=F.isLoading,st.isValidating=F.isValidating,st.error=F.error,st):(st=F,F)},()=>Be]},[r,y]),W=xC.useSyncExternalStore(g.useCallback(be=>T(y,(Pe,Ce)=>{J(Ce,Pe)||be()}),[r,y]),Y[0],Y[1]),G=m[y]&&m[y].length>0,I=W.data,q=Ht(I)?X&&Uz(X)?tS(X):X:I,M=W.error,B=g.useRef(q),z=h?Ht(I)?Ht(B.current)?q:B.current:I:q,Z=y&&Ht(q),pe=g.useRef(null);!Lh&&xC.useSyncExternalStore(pte,()=>(pe.current=!1,pe),()=>(pe.current=!0,pe));const ae=pe.current;p&&ae&&!s&&Z&&console.warn(`Missing pre-initiated data for serialized key "${y}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const ue=!y||!e||E().isPaused()||G&&!Ht(M)?!1:U&&!Ht(l)?l:s?Ht(q)?!1:c:Ht(q)||c,de=U&&ue,Q=Ht(W.isValidating)?de:W.isValidating,fe=Ht(W.isLoading)?de:W.isLoading,ne=g.useCallback(async be=>{const Pe=_.current;if(!y||!Pe||k.current||E().isPaused())return!1;let Ce,Re,Be=!0;const st=be||{},F=!v[y]||!st.dedupe,se=()=>PM?!k.current&&y===S.current&&j.current:y===S.current,ie={isValidating:!1,isLoading:!1},Se=()=>{A(ie)},te=()=>{const ve=v[y];ve&&ve[1]===Re&&delete v[y]},me={isValidating:!0};Ht(R().data)&&(me.isLoading=!0);try{if(F&&(A(me),n.loadingTimeout&&Ht(R().data)&&setTimeout(()=>{Be&&se()&&E().onLoadingSlow(y,n)},n.loadingTimeout),v[y]=[Pe(w),_C()]),[Ce,Re]=v[y],Ce=await Ce,F&&setTimeout(te,n.dedupingInterval),!v[y]||v[y][1]!==Re)return F&&se()&&E().onDiscarded(y),!1;ie.error=Ya;const ve=x[y];if(!Ht(ve)&&(Re<=ve[0]||Re<=ve[1]||ve[1]===0))return Se(),F&&se()&&E().onDiscarded(y),!1;const Ee=R().data;ie.data=a(Ee,Ce)?Ee:Ce,F&&se()&&E().onSuccess(Ce,y,n)}catch(ve){te();const Ee=E(),{shouldRetryOnError:Oe}=Ee;Ee.isPaused()||(ie.error=ve,F&&se()&&(Ee.onError(ve,y,Ee),(Oe===!0||Xo(Oe)&&Oe(ve))&&(!E().revalidateOnFocus||!E().revalidateOnReconnect||P())&&Ee.onErrorRetry(ve,y,Ee,Tt=>{const Bt=m[y];Bt&&Bt[0]&&Bt[0](OM,Tt)},{retryCount:(st.retryCount||0)+1,dedupe:!0})))}return Be=!1,Se(),!0},[y,r]),ce=g.useCallback((...be)=>Wz(r,S.current,...be),[]);if(Z2(()=>{_.current=e,C.current=n,Ht(I)||(B.current=I)}),Z2(()=>{if(!y)return;const be=ne.bind(Ya,nS);let Pe=0;E().revalidateOnFocus&&(Pe=Date.now()+E().focusThrottleInterval);const Re=hte(y,m,(Be,st={})=>{if(Be==Fz){const F=Date.now();E().revalidateOnFocus&&F>Pe&&P()&&(Pe=F+E().focusThrottleInterval,be())}else if(Be==Bz)E().revalidateOnReconnect&&P()&&be();else{if(Be==zz)return ne();if(Be==OM)return ne(st)}});return k.current=!1,S.current=y,j.current=!0,A({_k:w}),ue&&(v[y]||(Ht(q)||Lh?be():Xee(be))),()=>{k.current=!0,Re()}},[y]),Z2(()=>{let be;function Pe(){const Re=Xo(u)?u(R().data):u;Re&&be!==-1&&(be=setTimeout(Ce,Re))}function Ce(){!R().error&&(d||E().isVisible())&&(f||E().isOnline())?ne(nS).then(Pe):Pe()}return Pe(),()=>{be&&(clearTimeout(be),be=-1)}},[u,d,f,y]),g.useDebugValue(z),s){if(!PM&&Lh&&Z)throw new Error("Fallback data is required when using Suspense in SSR.");Z&&(_.current=e,C.current=n,k.current=!1);const be=b[y],Pe=!Ht(be)&&Z?ce(be):DM;if(tS(Pe),!Ht(M)&&Z)throw M;const Ce=Z?ne(nS):DM;!Ht(z)&&Z&&(Ce.status="fulfilled",Ce.value=!0),tS(Ce)}return{mutate:ce,get data(){return L.data=!0,z},get error(){return L.error=!0,M},get isValidating(){return L.isValidating=!0,Q},get isLoading(){return L.isLoading=!0,fe}}},ct=fte(mte);function Kz(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e-1}var pre=hre,mre=Gk;function gre(t,e){var n=this.__data__,r=mre(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var xre=gre,yre=ere,vre=lre,bre=dre,wre=pre,kre=xre;function um(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e0?1:-1},vd=function(e){return Xd(e)&&e.indexOf("%")===e.length-1},$e=function(e){return Uae(e)&&!fm(e)},Gae=function(e){return _t(e)},ea=function(e){return $e(e)||Xd(e)},qae=0,vf=function(e){var n=++qae;return"".concat(e||"").concat(n)},Jd=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!$e(e)&&!Xd(e))return r;var s;if(vd(e)){var o=e.indexOf("%");s=n*parseFloat(e.slice(0,o))/100}else s=+e;return fm(s)&&(s=r),a&&s>n&&(s=n),s},Vc=function(e){if(!e)return null;var n=Object.keys(e);return n&&n.length?e[n[0]]:null},Kae=function(e){if(!Array.isArray(e))return!1;for(var n=e.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function nse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function CC(t){"@babel/helpers - typeof";return CC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},CC(t)}var qM={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Jl=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},KM=null,sS=null,Z5=function t(e){if(e===KM&&Array.isArray(sS))return sS;var n=[];return g.Children.forEach(e,function(r){_t(r)||($ae.isFragment(r)?n=n.concat(t(r.props.children)):n.push(r))}),sS=n,KM=e,n};function Ws(t,e){var n=[],r=[];return Array.isArray(e)?r=e.map(function(a){return Jl(a)}):r=[Jl(e)],Z5(t).forEach(function(a){var s=Fi(a,"type.displayName")||Fi(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function oi(t,e){var n=Ws(t,e);return n&&n[0]}var YM=function(e){if(!e||!e.props)return!1;var n=e.props,r=n.width,a=n.height;return!(!$e(r)||r<=0||!$e(a)||a<=0)},rse=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ase=function(e){return e&&e.type&&Xd(e.type)&&rse.indexOf(e.type)>=0},o7=function(e){return e&&CC(e)==="object"&&"clipDot"in e},sse=function(e,n,r,a){var s,o=(s=aS==null?void 0:aS[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!At(e)&&(a&&o.includes(n)||Zae.includes(n))||r&&J5.includes(n)},Ct=function(e,n,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(g.isValidElement(e)&&(a=e.props),!lm(a))return null;var s={};return Object.keys(a).forEach(function(o){var l;sse((l=a)===null||l===void 0?void 0:l[o],o,n,r)&&(s[o]=a[o])}),s},EC=function t(e,n){if(e===n)return!0;var r=g.Children.count(e);if(r!==g.Children.count(n))return!1;if(r===0)return!0;if(r===1)return XM(Array.isArray(e)?e[0]:e,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function use(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function OC(t){var e=t.children,n=t.width,r=t.height,a=t.viewBox,s=t.className,o=t.style,l=t.title,c=t.desc,u=cse(t,lse),d=a||{width:n,height:r,x:0,y:0},f=Gt("recharts-surface",s);return H.createElement("svg",AC({},Ct(u,!0,"svg"),{className:f,width:n,height:r,style:o,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height)}),H.createElement("title",null,l),H.createElement("desc",null,c),e)}var dse=["children","className"];function TC(){return TC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function hse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var cn=H.forwardRef(function(t,e){var n=t.children,r=t.className,a=fse(t,dse),s=Gt("recharts-layer",r);return H.createElement("g",TC({className:s},Ct(a,!0),{ref:e}),n)}),Zl=function(e,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;sa?0:a+e),n=n>a?a:n,n<0&&(n+=a),a=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(a);++r=r?t:gse(t,e,n)}var yse=xse,vse="\\ud800-\\udfff",bse="\\u0300-\\u036f",wse="\\ufe20-\\ufe2f",kse="\\u20d0-\\u20ff",jse=bse+wse+kse,Sse="\\ufe0e\\ufe0f",_se="\\u200d",Nse=RegExp("["+_se+vse+jse+Sse+"]");function Cse(t){return Nse.test(t)}var l7=Cse;function Ese(t){return t.split("")}var Ase=Ese,c7="\\ud800-\\udfff",Ose="\\u0300-\\u036f",Tse="\\ufe20-\\ufe2f",Pse="\\u20d0-\\u20ff",Rse=Ose+Tse+Pse,Mse="\\ufe0e\\ufe0f",Dse="["+c7+"]",PC="["+Rse+"]",RC="\\ud83c[\\udffb-\\udfff]",Ise="(?:"+PC+"|"+RC+")",u7="[^"+c7+"]",d7="(?:\\ud83c[\\udde6-\\uddff]){2}",f7="[\\ud800-\\udbff][\\udc00-\\udfff]",$se="\\u200d",h7=Ise+"?",p7="["+Mse+"]?",Lse="(?:"+$se+"(?:"+[u7,d7,f7].join("|")+")"+p7+h7+")*",Fse=p7+h7+Lse,Bse="(?:"+[u7+PC+"?",PC,d7,f7,Dse].join("|")+")",zse=RegExp(RC+"(?="+RC+")|"+Bse+Fse,"g");function Use(t){return t.match(zse)||[]}var Vse=Use,Wse=Ase,Hse=l7,Gse=Vse;function qse(t){return Hse(t)?Gse(t):Wse(t)}var Kse=qse,Yse=yse,Xse=l7,Jse=Kse,Zse=t7;function Qse(t){return function(e){e=Zse(e);var n=Xse(e)?Jse(e):void 0,r=n?n[0]:e.charAt(0),a=n?Yse(n,1).join(""):e.slice(1);return r[t]()+a}}var eie=Qse,tie=eie,nie=tie("toUpperCase"),rie=nie;const ij=Nn(rie);function Ln(t){return function(){return t}}const m7=Math.cos,B1=Math.sin,Eo=Math.sqrt,z1=Math.PI,oj=2*z1,MC=Math.PI,DC=2*MC,ld=1e-6,aie=DC-ld;function g7(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return g7;const n=10**e;return function(r){this._+=r[0];for(let a=1,s=r.length;ald)if(!(Math.abs(f*c-u*d)>ld)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let p=r-o,m=a-l,x=c*c+u*u,v=p*p+m*m,b=Math.sqrt(x),y=Math.sqrt(h),w=s*Math.tan((MC-Math.acos((x+h-v)/(2*b*y)))/2),j=w/y,k=w/b;Math.abs(j-1)>ld&&this._append`L${e+j*d},${n+j*f}`,this._append`A${s},${s},0,0,${+(f*p>d*m)},${this._x1=e+k*c},${this._y1=n+k*u}`}}arc(e,n,r,a,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let l=r*Math.cos(a),c=r*Math.sin(a),u=e+l,d=n+c,f=1^o,h=o?a-s:s-a;this._x1===null?this._append`M${u},${d}`:(Math.abs(this._x1-u)>ld||Math.abs(this._y1-d)>ld)&&this._append`L${u},${d}`,r&&(h<0&&(h=h%DC+DC),h>aie?this._append`A${r},${r},0,1,${f},${e-l},${n-c}A${r},${r},0,1,${f},${this._x1=u},${this._y1=d}`:h>ld&&this._append`A${r},${r},0,${+(h>=MC)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function Q5(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new iie(e)}function e3(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function x7(t){this._context=t}x7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function lj(t){return new x7(t)}function y7(t){return t[0]}function v7(t){return t[1]}function b7(t,e){var n=Ln(!0),r=null,a=lj,s=null,o=Q5(l);t=typeof t=="function"?t:t===void 0?y7:Ln(t),e=typeof e=="function"?e:e===void 0?v7:Ln(e);function l(c){var u,d=(c=e3(c)).length,f,h=!1,p;for(r==null&&(s=a(p=o())),u=0;u<=d;++u)!(u=p;--m)l.point(w[m],j[m]);l.lineEnd(),l.areaEnd()}b&&(w[h]=+t(v,h,f),j[h]=+e(v,h,f),l.point(r?+r(v,h,f):w[h],n?+n(v,h,f):j[h]))}if(y)return l=null,y+""||null}function d(){return b7().defined(a).curve(o).context(s)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Ln(+f),r=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Ln(+f),u):t},u.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Ln(+f),u):r},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Ln(+f),n=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Ln(+f),u):e},u.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Ln(+f),u):n},u.lineX0=u.lineY0=function(){return d().x(t).y(e)},u.lineY1=function(){return d().x(t).y(n)},u.lineX1=function(){return d().x(r).y(e)},u.defined=function(f){return arguments.length?(a=typeof f=="function"?f:Ln(!!f),u):a},u.curve=function(f){return arguments.length?(o=f,s!=null&&(l=o(s)),u):o},u.context=function(f){return arguments.length?(f==null?s=l=null:l=o(s=f),u):s},u}class w7{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function oie(t){return new w7(t,!0)}function lie(t){return new w7(t,!1)}const t3={draw(t,e){const n=Eo(e/z1);t.moveTo(n,0),t.arc(0,0,n,0,oj)}},cie={draw(t,e){const n=Eo(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},k7=Eo(1/3),uie=k7*2,die={draw(t,e){const n=Eo(e/uie),r=n*k7;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},fie={draw(t,e){const n=Eo(e),r=-n/2;t.rect(r,r,n,n)}},hie=.8908130915292852,j7=B1(z1/10)/B1(7*z1/10),pie=B1(oj/10)*j7,mie=-m7(oj/10)*j7,gie={draw(t,e){const n=Eo(e*hie),r=pie*n,a=mie*n;t.moveTo(0,-n),t.lineTo(r,a);for(let s=1;s<5;++s){const o=oj*s/5,l=m7(o),c=B1(o);t.lineTo(c*n,-l*n),t.lineTo(l*r-c*a,c*r+l*a)}t.closePath()}},iS=Eo(3),xie={draw(t,e){const n=-Eo(e/(iS*3));t.moveTo(0,n*2),t.lineTo(-iS*n,-n),t.lineTo(iS*n,-n),t.closePath()}},ki=-.5,ji=Eo(3)/2,IC=1/Eo(12),yie=(IC/2+1)*3,vie={draw(t,e){const n=Eo(e/yie),r=n/2,a=n*IC,s=r,o=n*IC+n,l=-s,c=o;t.moveTo(r,a),t.lineTo(s,o),t.lineTo(l,c),t.lineTo(ki*r-ji*a,ji*r+ki*a),t.lineTo(ki*s-ji*o,ji*s+ki*o),t.lineTo(ki*l-ji*c,ji*l+ki*c),t.lineTo(ki*r+ji*a,ki*a-ji*r),t.lineTo(ki*s+ji*o,ki*o-ji*s),t.lineTo(ki*l+ji*c,ki*c-ji*l),t.closePath()}};function bie(t,e){let n=null,r=Q5(a);t=typeof t=="function"?t:Ln(t||t3),e=typeof e=="function"?e:Ln(e===void 0?64:+e);function a(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(t=typeof s=="function"?s:Ln(s),a):t},a.size=function(s){return arguments.length?(e=typeof s=="function"?s:Ln(+s),a):e},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function U1(){}function V1(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function S7(t){this._context=t}S7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:V1(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function wie(t){return new S7(t)}function _7(t){this._context=t}_7.prototype={areaStart:U1,areaEnd:U1,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function kie(t){return new _7(t)}function N7(t){this._context=t}N7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function jie(t){return new N7(t)}function C7(t){this._context=t}C7.prototype={areaStart:U1,areaEnd:U1,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Sie(t){return new C7(t)}function ZM(t){return t<0?-1:1}function QM(t,e,n){var r=t._x1-t._x0,a=e-t._x1,s=(t._y1-t._y0)/(r||a<0&&-0),o=(n-t._y1)/(a||r<0&&-0),l=(s*a+o*r)/(r+a);return(ZM(s)+ZM(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function e4(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function oS(t,e,n){var r=t._x0,a=t._y0,s=t._x1,o=t._y1,l=(s-r)/3;t._context.bezierCurveTo(r+l,a+l*e,s-l,o-l*n,s,o)}function W1(t){this._context=t}W1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:oS(this,this._t0,e4(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,oS(this,e4(this,n=QM(this,t,e)),n);break;default:oS(this,this._t0,n=QM(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function E7(t){this._context=new A7(t)}(E7.prototype=Object.create(W1.prototype)).point=function(t,e){W1.prototype.point.call(this,e,t)};function A7(t){this._context=t}A7.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,a,s){this._context.bezierCurveTo(e,t,r,n,s,a)}};function _ie(t){return new W1(t)}function Nie(t){return new E7(t)}function O7(t){this._context=t}O7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=t4(t),a=t4(e),s=0,o=1;o=0;--e)a[e]=(o[e]-a[e+1])/s[e];for(s[n-1]=(t[n]+a[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function Eie(t){return new cj(t,.5)}function Aie(t){return new cj(t,0)}function Oie(t){return new cj(t,1)}function up(t,e){if((o=t.length)>1)for(var n=1,r,a,s=t[e[0]],o,l=s.length;n=0;)n[e]=e;return n}function Tie(t,e){return t[e]}function Pie(t){const e=[];return e.key=t,e}function Rie(){var t=Ln([]),e=$C,n=up,r=Tie;function a(s){var o=Array.from(t.apply(this,arguments),Pie),l,c=o.length,u=-1,d;for(const f of s)for(l=0,++u;l0){for(var n,r,a=0,s=t[0].length,o;a0){for(var n=0,r=t[e[0]],a,s=r.length;n0)||!((s=(a=t[e[0]]).length)>0))){for(var n=0,r=1,a,s,o;r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Uie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var T7={symbolCircle:t3,symbolCross:cie,symbolDiamond:die,symbolSquare:fie,symbolStar:gie,symbolTriangle:xie,symbolWye:vie},Vie=Math.PI/180,Wie=function(e){var n="symbol".concat(ij(e));return T7[n]||t3},Hie=function(e,n,r){if(n==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Vie;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Gie=function(e,n){T7["symbol".concat(ij(e))]=n},uj=function(e){var n=e.type,r=n===void 0?"circle":n,a=e.size,s=a===void 0?64:a,o=e.sizeType,l=o===void 0?"area":o,c=zie(e,$ie),u=r4(r4({},c),{},{type:r,size:s,sizeType:l}),d=function(){var v=Wie(r),b=bie().type(v).size(Hie(s,l,r));return b()},f=u.className,h=u.cx,p=u.cy,m=Ct(u,!0);return h===+h&&p===+p&&s===+s?H.createElement("path",LC({},m,{className:Gt("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(p,")"),d:d()})):null};uj.registerSymbol=Gie;function dp(t){"@babel/helpers - typeof";return dp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dp(t)}function FC(){return FC=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var y=p.inactive?u:p.color;return H.createElement("li",FC({className:v,style:f,key:"legend-item-".concat(m)},Qx(r.props,p,m)),H.createElement(OC,{width:o,height:o,viewBox:d,style:h},r.renderIcon(p)),H.createElement("span",{className:"recharts-legend-item-text",style:{color:y}},x?x(b,p,m):b))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,o=r.align;if(!a||!a.length)return null;var l={padding:0,margin:0,textAlign:s==="horizontal"?o:"left"};return H.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])}(g.PureComponent);t0(n3,"displayName","Legend");t0(n3,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var noe=qk;function roe(){this.__data__=new noe,this.size=0}var aoe=roe;function soe(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}var ioe=soe;function ooe(t){return this.__data__.get(t)}var loe=ooe;function coe(t){return this.__data__.has(t)}var uoe=coe,doe=qk,foe=W5,hoe=H5,poe=200;function moe(t,e){var n=this.__data__;if(n instanceof doe){var r=n.__data__;if(!foe||r.lengthl))return!1;var u=s.get(t),d=s.get(e);if(u&&d)return u==e&&d==t;var f=-1,h=!0,p=n&$oe?new Roe:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=zle}var i3=Ule,Vle=bc,Wle=i3,Hle=wc,Gle="[object Arguments]",qle="[object Array]",Kle="[object Boolean]",Yle="[object Date]",Xle="[object Error]",Jle="[object Function]",Zle="[object Map]",Qle="[object Number]",ece="[object Object]",tce="[object RegExp]",nce="[object Set]",rce="[object String]",ace="[object WeakMap]",sce="[object ArrayBuffer]",ice="[object DataView]",oce="[object Float32Array]",lce="[object Float64Array]",cce="[object Int8Array]",uce="[object Int16Array]",dce="[object Int32Array]",fce="[object Uint8Array]",hce="[object Uint8ClampedArray]",pce="[object Uint16Array]",mce="[object Uint32Array]",Xn={};Xn[oce]=Xn[lce]=Xn[cce]=Xn[uce]=Xn[dce]=Xn[fce]=Xn[hce]=Xn[pce]=Xn[mce]=!0;Xn[Gle]=Xn[qle]=Xn[sce]=Xn[Kle]=Xn[ice]=Xn[Yle]=Xn[Xle]=Xn[Jle]=Xn[Zle]=Xn[Qle]=Xn[ece]=Xn[tce]=Xn[nce]=Xn[rce]=Xn[ace]=!1;function gce(t){return Hle(t)&&Wle(t.length)&&!!Xn[Vle(t)]}var xce=gce;function yce(t){return function(e){return t(e)}}var U7=yce,K1={exports:{}};K1.exports;(function(t,e){var n=Yz,r=e&&!e.nodeType&&e,a=r&&!0&&t&&!t.nodeType&&t,s=a&&a.exports===r,o=s&&n.process,l=function(){try{var c=a&&a.require&&a.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}}();t.exports=l})(K1,K1.exports);var vce=K1.exports,bce=xce,wce=U7,u4=vce,d4=u4&&u4.isTypedArray,kce=d4?wce(d4):bce,V7=kce,jce=Nle,Sce=a3,_ce=Ks,Nce=z7,Cce=s3,Ece=V7,Ace=Object.prototype,Oce=Ace.hasOwnProperty;function Tce(t,e){var n=_ce(t),r=!n&&Sce(t),a=!n&&!r&&Nce(t),s=!n&&!r&&!a&&Ece(t),o=n||r||a||s,l=o?jce(t.length,String):[],c=l.length;for(var u in t)(e||Oce.call(t,u))&&!(o&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Cce(u,c)))&&l.push(u);return l}var Pce=Tce,Rce=Object.prototype;function Mce(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||Rce;return t===n}var Dce=Mce;function Ice(t,e){return function(n){return t(e(n))}}var W7=Ice,$ce=W7,Lce=$ce(Object.keys,Object),Fce=Lce,Bce=Dce,zce=Fce,Uce=Object.prototype,Vce=Uce.hasOwnProperty;function Wce(t){if(!Bce(t))return zce(t);var e=[];for(var n in Object(t))Vce.call(t,n)&&n!="constructor"&&e.push(n);return e}var Hce=Wce,Gce=U5,qce=i3;function Kce(t){return t!=null&&qce(t.length)&&!Gce(t)}var yy=Kce,Yce=Pce,Xce=Hce,Jce=yy;function Zce(t){return Jce(t)?Yce(t):Xce(t)}var dj=Zce,Qce=ple,eue=Sle,tue=dj;function nue(t){return Qce(t,tue,eue)}var rue=nue,f4=rue,aue=1,sue=Object.prototype,iue=sue.hasOwnProperty;function oue(t,e,n,r,a,s){var o=n&aue,l=f4(t),c=l.length,u=f4(e),d=u.length;if(c!=d&&!o)return!1;for(var f=c;f--;){var h=l[f];if(!(o?h in e:iue.call(e,h)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var x=!0;s.set(t,e),s.set(e,t);for(var v=o;++f-1}var sfe=afe;function ife(t,e,n){for(var r=-1,a=t==null?0:t.length;++r=wfe){var u=e?null:vfe(t);if(u)return bfe(u);o=!1,a=yfe,c=new mfe}else c=e?[]:l;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function $fe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Lfe(t){return t.value}function Ffe(t,e){if(H.isValidElement(t))return H.cloneElement(t,e);if(typeof t=="function")return H.createElement(t,e);e.ref;var n=Ife(e,Efe);return H.createElement(n3,n)}var E4=1,ul=function(t){function e(){var n;Afe(this,e);for(var r=arguments.length,a=new Array(r),s=0;sE4||Math.abs(a.height-this.lastBoundingBox.height)>E4)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Rl({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,o=a.align,l=a.verticalAlign,c=a.margin,u=a.chartWidth,d=a.chartHeight,f,h;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(o==="center"&&s==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(l==="middle"){var m=this.getBBoxSnapshot();h={top:((d||0)-m.height)/2}}else h=l==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return Rl(Rl({},f),h)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,o=a.width,l=a.height,c=a.wrapperStyle,u=a.payloadUniqBy,d=a.payload,f=Rl(Rl({position:"absolute",width:o||"auto",height:l||"auto"},this.getDefaultPosition(c)),c);return H.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){r.wrapperNode=p}},Ffe(s,Rl(Rl({},this.props),{},{payload:J7(d,u,Lfe)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Rl(Rl({},this.defaultProps),r.props),o=s.layout;return o==="vertical"&&$e(r.props.height)?{height:r.props.height}:o==="horizontal"?{width:r.props.width||a}:null}}])}(g.PureComponent);fj(ul,"displayName","Legend");fj(ul,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var A4=xy,Bfe=a3,zfe=Ks,O4=A4?A4.isConcatSpreadable:void 0;function Ufe(t){return zfe(t)||Bfe(t)||!!(O4&&t&&t[O4])}var Vfe=Ufe,Wfe=F7,Hfe=Vfe;function eU(t,e,n,r,a){var s=-1,o=t.length;for(n||(n=Hfe),a||(a=[]);++s0&&n(l)?e>1?eU(l,e-1,n,r,a):Wfe(a,l):r||(a[a.length]=l)}return a}var tU=eU;function Gfe(t){return function(e,n,r){for(var a=-1,s=Object(e),o=r(e),l=o.length;l--;){var c=o[t?l:++a];if(n(s[c],c,s)===!1)break}return e}}var qfe=Gfe,Kfe=qfe,Yfe=Kfe(),Xfe=Yfe,Jfe=Xfe,Zfe=dj;function Qfe(t,e){return t&&Jfe(t,e,Zfe)}var nU=Qfe,ehe=yy;function the(t,e){return function(n,r){if(n==null)return n;if(!ehe(n))return t(n,r);for(var a=n.length,s=e?a:-1,o=Object(n);(e?s--:++se||s&&o&&c&&!l&&!u||r&&o&&c||!n&&c||!a)return 1;if(!r&&!s&&!u&&t=l)return c;var u=n[r];return c*(u=="desc"?-1:1)}}return t.index-e.index}var mhe=phe,dS=q5,ghe=K5,xhe=zu,yhe=rU,vhe=uhe,bhe=U7,whe=mhe,khe=mm,jhe=Ks;function She(t,e,n){e.length?e=dS(e,function(s){return jhe(s)?function(o){return ghe(o,s.length===1?s[0]:s)}:s}):e=[khe];var r=-1;e=dS(e,bhe(xhe));var a=yhe(t,function(s,o,l){var c=dS(e,function(u){return u(s)});return{criteria:c,index:++r,value:s}});return vhe(a,function(s,o){return whe(s,o,n)})}var _he=She;function Nhe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}var Che=Nhe,Ehe=Che,P4=Math.max;function Ahe(t,e,n){return e=P4(e===void 0?t.length-1:e,0),function(){for(var r=arguments,a=-1,s=P4(r.length-e,0),o=Array(s);++a0){if(++e>=Fhe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Vhe=Uhe,Whe=Lhe,Hhe=Vhe,Ghe=Hhe(Whe),qhe=Ghe,Khe=mm,Yhe=Ohe,Xhe=qhe;function Jhe(t,e){return Xhe(Yhe(t,e,Khe),t+"")}var Zhe=Jhe,Qhe=V5,epe=yy,tpe=s3,npe=Bu;function rpe(t,e,n){if(!npe(n))return!1;var r=typeof e;return(r=="number"?epe(n)&&tpe(e,n.length):r=="string"&&e in n)?Qhe(n[e],t):!1}var hj=rpe,ape=tU,spe=_he,ipe=Zhe,M4=hj,ope=ipe(function(t,e){if(t==null)return[];var n=e.length;return n>1&&M4(t,e[0],e[1])?e=[]:n>2&&M4(e[0],e[1],e[2])&&(e=[e[0]]),spe(t,ape(e,1),[])}),lpe=ope;const c3=Nn(lpe);function n0(t){"@babel/helpers - typeof";return n0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n0(t)}function qC(){return qC=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.x),"".concat(ig,"-left"),$e(n)&&e&&$e(e.x)&&n=e.y),"".concat(ig,"-top"),$e(r)&&e&&$e(e.y)&&rx?Math.max(d,c[r]):Math.max(f,c[r])}function jpe(t){var e=t.translateX,n=t.translateY,r=t.useTranslate3d;return{transform:r?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function Spe(t){var e=t.allowEscapeViewBox,n=t.coordinate,r=t.offsetTopLeft,a=t.position,s=t.reverseDirection,o=t.tooltipBox,l=t.useTranslate3d,c=t.viewBox,u,d,f;return o.height>0&&o.width>0&&n?(d=$4({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),f=$4({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),u=jpe({translateX:d,translateY:f,useTranslate3d:l})):u=wpe,{cssProperties:u,cssClasses:kpe({translateX:d,translateY:f,coordinate:n})}}function hp(t){"@babel/helpers - typeof";return hp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hp(t)}function L4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function F4(t){for(var e=1;eB4||Math.abs(r.height-this.state.lastBoundingBox.height)>B4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,o=a.allowEscapeViewBox,l=a.animationDuration,c=a.animationEasing,u=a.children,d=a.coordinate,f=a.hasPayload,h=a.isAnimationActive,p=a.offset,m=a.position,x=a.reverseDirection,v=a.useTranslate3d,b=a.viewBox,y=a.wrapperStyle,w=Spe({allowEscapeViewBox:o,coordinate:d,offsetTopLeft:p,position:m,reverseDirection:x,tooltipBox:this.state.lastBoundingBox,useTranslate3d:v,viewBox:b}),j=w.cssClasses,k=w.cssProperties,S=F4(F4({transition:h&&s?"transform ".concat(l,"ms ").concat(c):void 0},k),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&f?"visible":"hidden",position:"absolute",top:0,left:0},y);return H.createElement("div",{tabIndex:-1,className:j,style:S,ref:function(C){r.wrapperNode=C}},u)}}])}(g.PureComponent),Mpe=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Uu={isSsr:Mpe()};function pp(t){"@babel/helpers - typeof";return pp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pp(t)}function z4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function U4(t){for(var e=1;e0;return H.createElement(Rpe,{allowEscapeViewBox:o,animationDuration:l,animationEasing:c,isAnimationActive:h,active:s,coordinate:d,hasPayload:S,offset:p,position:v,reverseDirection:b,useTranslate3d:y,viewBox:w,wrapperStyle:j},Wpe(u,U4(U4({},this.props),{},{payload:k})))}}])}(g.PureComponent);u3(xa,"displayName","Tooltip");u3(xa,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Uu.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Hpe=kl,Gpe=function(){return Hpe.Date.now()},qpe=Gpe,Kpe=/\s/;function Ype(t){for(var e=t.length;e--&&Kpe.test(t.charAt(e)););return e}var Xpe=Ype,Jpe=Xpe,Zpe=/^\s+/;function Qpe(t){return t&&t.slice(0,Jpe(t)+1).replace(Zpe,"")}var eme=Qpe,tme=eme,V4=Bu,nme=om,W4=NaN,rme=/^[-+]0x[0-9a-f]+$/i,ame=/^0b[01]+$/i,sme=/^0o[0-7]+$/i,ime=parseInt;function ome(t){if(typeof t=="number")return t;if(nme(t))return W4;if(V4(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=V4(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=tme(t);var n=ame.test(t);return n||sme.test(t)?ime(t.slice(2),n?2:8):rme.test(t)?W4:+t}var cU=ome,lme=Bu,hS=qpe,H4=cU,cme="Expected a function",ume=Math.max,dme=Math.min;function fme(t,e,n){var r,a,s,o,l,c,u=0,d=!1,f=!1,h=!0;if(typeof t!="function")throw new TypeError(cme);e=H4(e)||0,lme(n)&&(d=!!n.leading,f="maxWait"in n,s=f?ume(H4(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h);function p(S){var _=r,C=a;return r=a=void 0,u=S,o=t.apply(C,_),o}function m(S){return u=S,l=setTimeout(b,e),d?p(S):o}function x(S){var _=S-c,C=S-u,E=e-_;return f?dme(E,s-C):E}function v(S){var _=S-c,C=S-u;return c===void 0||_>=e||_<0||f&&C>=s}function b(){var S=hS();if(v(S))return y(S);l=setTimeout(b,x(S))}function y(S){return l=void 0,h&&r?p(S):(r=a=void 0,o)}function w(){l!==void 0&&clearTimeout(l),u=0,r=c=a=l=void 0}function j(){return l===void 0?o:y(hS())}function k(){var S=hS(),_=v(S);if(r=arguments,a=this,c=S,_){if(l===void 0)return m(c);if(f)return clearTimeout(l),l=setTimeout(b,e),p(c)}return l===void 0&&(l=setTimeout(b,e)),o}return k.cancel=w,k.flush=j,k}var hme=fme,pme=hme,mme=Bu,gme="Expected a function";function xme(t,e,n){var r=!0,a=!0;if(typeof t!="function")throw new TypeError(gme);return mme(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),pme(t,e,{leading:r,maxWait:e,trailing:a})}var yme=xme;const uU=Nn(yme);function a0(t){"@babel/helpers - typeof";return a0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a0(t)}function G4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Mv(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(T=uU(T,x,{trailing:!0,leading:!1}));var D=new ResizeObserver(T),L=k.current.getBoundingClientRect(),X=L.width,J=L.height;return R(X,J),D.observe(k.current),function(){D.disconnect()}},[R,x]);var A=g.useMemo(function(){var T=E.containerWidth,D=E.containerHeight;if(T<0||D<0)return null;Zl(vd(o)||vd(c),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,o,c),Zl(!n||n>0,"The aspect(%s) must be greater than zero.",n);var L=vd(o)?T:o,X=vd(c)?D:c;n&&n>0&&(L?X=L/n:X&&(L=X*n),h&&X>h&&(X=h)),Zl(L>0||X>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,L,X,o,c,d,f,n);var J=!Array.isArray(p)&&Jl(p.type).endsWith("Chart");return H.Children.map(p,function(U){return H.isValidElement(U)?g.cloneElement(U,Mv({width:L,height:X},J?{style:Mv({height:"100%",width:"100%",maxHeight:X,maxWidth:L},U.props.style)}:{})):U})},[n,p,c,h,f,d,E,o]);return H.createElement("div",{id:v?"".concat(v):void 0,className:Gt("recharts-responsive-container",b),style:Mv(Mv({},j),{},{width:o,height:c,minWidth:d,minHeight:f,maxHeight:h}),ref:k},A)}),vy=function(e){return null};vy.displayName="Cell";function s0(t){"@babel/helpers - typeof";return s0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s0(t)}function K4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function JC(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Uu.isSsr)return{width:0,height:0};var r=Pme(n),a=JSON.stringify({text:e,copyStyle:r});if($f.widthCache[a])return $f.widthCache[a];try{var s=document.getElementById(Y4);s||(s=document.createElement("span"),s.setAttribute("id",Y4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var o=JC(JC({},Tme),r);Object.assign(s.style,o),s.textContent="".concat(e);var l=s.getBoundingClientRect(),c={width:l.width,height:l.height};return $f.widthCache[a]=c,++$f.cacheCount>Ome&&($f.cacheCount=0,$f.widthCache={}),c}catch{return{width:0,height:0}}},Rme=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function i0(t){"@babel/helpers - typeof";return i0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i0(t)}function Z1(t,e){return $me(t)||Ime(t,e)||Dme(t,e)||Mme()}function Mme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dme(t,e){if(t){if(typeof t=="string")return X4(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X4(t,e)}}function X4(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Jme(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function nD(t,e){return tge(t)||ege(t,e)||Qme(t,e)||Zme()}function Zme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qme(t,e){if(t){if(typeof t=="string")return rD(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rD(t,e)}}function rD(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[];return L.reduce(function(X,J){var U=J.word,Y=J.width,W=X[X.length-1];if(W&&(a==null||s||W.width+Y+rJ.width?X:J})};if(!d)return p;for(var x="…",v=function(L){var X=f.slice(0,L),J=pU({breakAll:u,style:c,children:X+x}).wordsWithComputedWidth,U=h(J),Y=U.length>o||m(U).width>Number(a);return[Y,U]},b=0,y=f.length-1,w=0,j;b<=y&&w<=f.length-1;){var k=Math.floor((b+y)/2),S=k-1,_=v(S),C=nD(_,2),E=C[0],P=C[1],R=v(k),A=nD(R,1),T=A[0];if(!E&&!T&&(b=k+1),E&&T&&(y=k-1),!E&&T){j=P;break}w++}return j||p},aD=function(e){var n=_t(e)?[]:e.toString().split(hU);return[{words:n}]},rge=function(e){var n=e.width,r=e.scaleToFit,a=e.children,s=e.style,o=e.breakAll,l=e.maxLines;if((n||r)&&!Uu.isSsr){var c,u,d=pU({breakAll:o,children:a,style:s});if(d){var f=d.wordsWithComputedWidth,h=d.spaceWidth;c=f,u=h}else return aD(a);return nge({breakAll:o,children:a,maxLines:l,style:s},c,u,n,r)}return aD(a)},sD="#808080",Q1=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.lineHeight,l=o===void 0?"1em":o,c=e.capHeight,u=c===void 0?"0.71em":c,d=e.scaleToFit,f=d===void 0?!1:d,h=e.textAnchor,p=h===void 0?"start":h,m=e.verticalAnchor,x=m===void 0?"end":m,v=e.fill,b=v===void 0?sD:v,y=tD(e,Yme),w=g.useMemo(function(){return rge({breakAll:y.breakAll,children:y.children,maxLines:y.maxLines,scaleToFit:f,style:y.style,width:y.width})},[y.breakAll,y.children,y.maxLines,f,y.style,y.width]),j=y.dx,k=y.dy,S=y.angle,_=y.className,C=y.breakAll,E=tD(y,Xme);if(!ea(r)||!ea(s))return null;var P=r+($e(j)?j:0),R=s+($e(k)?k:0),A;switch(x){case"start":A=pS("calc(".concat(u,")"));break;case"middle":A=pS("calc(".concat((w.length-1)/2," * -").concat(l," + (").concat(u," / 2))"));break;default:A=pS("calc(".concat(w.length-1," * -").concat(l,")"));break}var T=[];if(f){var D=w[0].width,L=y.width;T.push("scale(".concat(($e(L)?L/D:1)/D,")"))}return S&&T.push("rotate(".concat(S,", ").concat(P,", ").concat(R,")")),T.length&&(E.transform=T.join(" ")),H.createElement("text",ZC({},Ct(E,!0),{x:P,y:R,className:Gt("recharts-text",_),textAnchor:p,fill:b.includes("url")?sD:b}),w.map(function(X,J){var U=X.words.join(C?"":" ");return H.createElement("tspan",{x:P,dy:J===0?A:l,key:"".concat(U,"-").concat(J)},U)}))};function gu(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function age(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function d3(t){let e,n,r;t.length!==2?(e=gu,n=(l,c)=>gu(t(l),c),r=(l,c)=>t(l)-c):(e=t===gu||t===age?t:sge,n=t,r=t);function a(l,c,u=0,d=l.length){if(u>>1;n(l[f],c)<0?u=f+1:d=f}while(u>>1;n(l[f],c)<=0?u=f+1:d=f}while(uu&&r(l[f-1],c)>-r(l[f],c)?f-1:f}return{left:a,center:o,right:s}}function sge(){return 0}function mU(t){return t===null?NaN:+t}function*ige(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const oge=d3(gu),by=oge.right;d3(mU).center;class iD extends Map{constructor(e,n=uge){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,a]of e)this.set(r,a)}get(e){return super.get(oD(this,e))}has(e){return super.has(oD(this,e))}set(e,n){return super.set(lge(this,e),n)}delete(e){return super.delete(cge(this,e))}}function oD({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function lge({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function cge({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function uge(t){return t!==null&&typeof t=="object"?t.valueOf():t}function dge(t=gu){if(t===gu)return gU;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function gU(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const fge=Math.sqrt(50),hge=Math.sqrt(10),pge=Math.sqrt(2);function ew(t,e,n){const r=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),o=s>=fge?10:s>=hge?5:s>=pge?2:1;let l,c,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(t*u),c=Math.round(e*u),l/ue&&--c,u=-u):(u=Math.pow(10,a)*o,l=Math.round(t/u),c=Math.round(e/u),l*ue&&--c),c0))return[];if(t===e)return[t];const r=e=a))return[];const l=s-a+1,c=new Array(l);if(r)if(o<0)for(let u=0;u=r)&&(n=r);return n}function cD(t,e){let n;for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function xU(t,e,n=0,r=1/0,a){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(a=a===void 0?gU:dge(a);r>n;){if(r-n>600){const c=r-n+1,u=e-n+1,d=Math.log(c),f=.5*Math.exp(2*d/3),h=.5*Math.sqrt(d*f*(c-f)/c)*(u-c/2<0?-1:1),p=Math.max(n,Math.floor(e-u*f/c+h)),m=Math.min(r,Math.floor(e+(c-u)*f/c+h));xU(t,e,p,m,a)}const s=t[e];let o=n,l=r;for(og(t,n,e),a(t[r],s)>0&&og(t,n,r);o0;)--l}a(t[n],s)===0?og(t,n,l):(++l,og(t,l,r)),l<=e&&(n=l+1),e<=l&&(r=l-1)}return t}function og(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function mge(t,e,n){if(t=Float64Array.from(ige(t)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return cD(t);if(e>=1)return lD(t);var r,a=(r-1)*e,s=Math.floor(a),o=lD(xU(t,s).subarray(0,s+1)),l=cD(t.subarray(s+1));return o+(l-o)*(a-s)}}function gge(t,e,n=mU){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,a=(r-1)*e,s=Math.floor(a),o=+n(t[s],s,t),l=+n(t[s+1],s+1,t);return o+(l-o)*(a-s)}}function xge(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(a);++r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Iv(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Iv(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=vge.exec(t))?new Is(e[1],e[2],e[3],1):(e=bge.exec(t))?new Is(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=wge.exec(t))?Iv(e[1],e[2],e[3],e[4]):(e=kge.exec(t))?Iv(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=jge.exec(t))?gD(e[1],e[2]/100,e[3]/100,1):(e=Sge.exec(t))?gD(e[1],e[2]/100,e[3]/100,e[4]):uD.hasOwnProperty(t)?hD(uD[t]):t==="transparent"?new Is(NaN,NaN,NaN,0):null}function hD(t){return new Is(t>>16&255,t>>8&255,t&255,1)}function Iv(t,e,n,r){return r<=0&&(t=e=n=NaN),new Is(t,e,n,r)}function Cge(t){return t instanceof wy||(t=u0(t)),t?(t=t.rgb(),new Is(t.r,t.g,t.b,t.opacity)):new Is}function rE(t,e,n,r){return arguments.length===1?Cge(t):new Is(t,e,n,r??1)}function Is(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}h3(Is,rE,vU(wy,{brighter(t){return t=t==null?tw:Math.pow(tw,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?l0:Math.pow(l0,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Is(Dd(this.r),Dd(this.g),Dd(this.b),nw(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:pD,formatHex:pD,formatHex8:Ege,formatRgb:mD,toString:mD}));function pD(){return`#${bd(this.r)}${bd(this.g)}${bd(this.b)}`}function Ege(){return`#${bd(this.r)}${bd(this.g)}${bd(this.b)}${bd((isNaN(this.opacity)?1:this.opacity)*255)}`}function mD(){const t=nw(this.opacity);return`${t===1?"rgb(":"rgba("}${Dd(this.r)}, ${Dd(this.g)}, ${Dd(this.b)}${t===1?")":`, ${t})`}`}function nw(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Dd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function bd(t){return t=Dd(t),(t<16?"0":"")+t.toString(16)}function gD(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ho(t,e,n,r)}function bU(t){if(t instanceof ho)return new ho(t.h,t.s,t.l,t.opacity);if(t instanceof wy||(t=u0(t)),!t)return new ho;if(t instanceof ho)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,l=s-a,c=(s+a)/2;return l?(e===s?o=(n-r)/l+(n0&&c<1?0:o,new ho(o,l,c,t.opacity)}function Age(t,e,n,r){return arguments.length===1?bU(t):new ho(t,e,n,r??1)}function ho(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}h3(ho,Age,vU(wy,{brighter(t){return t=t==null?tw:Math.pow(tw,t),new ho(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?l0:Math.pow(l0,t),new ho(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new Is(mS(t>=240?t-240:t+120,a,r),mS(t,a,r),mS(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new ho(xD(this.h),$v(this.s),$v(this.l),nw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=nw(this.opacity);return`${t===1?"hsl(":"hsla("}${xD(this.h)}, ${$v(this.s)*100}%, ${$v(this.l)*100}%${t===1?")":`, ${t})`}`}}));function xD(t){return t=(t||0)%360,t<0?t+360:t}function $v(t){return Math.max(0,Math.min(1,t||0))}function mS(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const p3=t=>()=>t;function Oge(t,e){return function(n){return t+n*e}}function Tge(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Pge(t){return(t=+t)==1?wU:function(e,n){return n-e?Tge(e,n,t):p3(isNaN(e)?n:e)}}function wU(t,e){var n=e-t;return n?Oge(t,n):p3(isNaN(t)?e:t)}const yD=function t(e){var n=Pge(e);function r(a,s){var o=n((a=rE(a)).r,(s=rE(s)).r),l=n(a.g,s.g),c=n(a.b,s.b),u=wU(a.opacity,s.opacity);return function(d){return a.r=o(d),a.g=l(d),a.b=c(d),a.opacity=u(d),a+""}}return r.gamma=t,r}(1);function Rge(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;an&&(s=e.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(r=r[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,c.push({i:o,x:rw(r,a)})),n=gS.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Wge(t,e,n){var r=t[0],a=t[1],s=e[0],o=e[1];return a2?Hge:Wge,c=u=null,f}function f(h){return h==null||isNaN(h=+h)?s:(c||(c=l(t.map(r),e,n)))(r(o(h)))}return f.invert=function(h){return o(a((u||(u=l(e,t.map(r),rw)))(h)))},f.domain=function(h){return arguments.length?(t=Array.from(h,aw),d()):t.slice()},f.range=function(h){return arguments.length?(e=Array.from(h),d()):e.slice()},f.rangeRound=function(h){return e=Array.from(h),n=m3,d()},f.clamp=function(h){return arguments.length?(o=h?!0:xs,d()):o!==xs},f.interpolate=function(h){return arguments.length?(n=h,d()):n},f.unknown=function(h){return arguments.length?(s=h,f):s},function(h,p){return r=h,a=p,d()}}function g3(){return pj()(xs,xs)}function Gge(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function sw(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function mp(t){return t=sw(Math.abs(t)),t?t[1]:NaN}function qge(t,e){return function(n,r){for(var a=n.length,s=[],o=0,l=t[0],c=0;a>0&&l>0&&(c+l+1>r&&(l=Math.max(1,r-c)),s.push(n.substring(a-=l,a+l)),!((c+=l+1)>r));)l=t[o=(o+1)%t.length];return s.reverse().join(e)}}function Kge(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Yge=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function d0(t){if(!(e=Yge.exec(t)))throw new Error("invalid format: "+t);var e;return new x3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}d0.prototype=x3.prototype;function x3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}x3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Xge(t){e:for(var e=t.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var iw;function Jge(t,e){var n=sw(t,e);if(!n)return iw=void 0,t.toPrecision(e);var r=n[0],a=n[1],s=a-(iw=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+sw(t,Math.max(0,e+s-1))[0]}function bD(t,e){var n=sw(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const wD={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Gge,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>bD(t*100,e),r:bD,s:Jge,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function kD(t){return t}var jD=Array.prototype.map,SD=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Zge(t){var e=t.grouping===void 0||t.thousands===void 0?kD:qge(jD.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",a=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?kD:Kge(jD.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(f,h){f=d0(f);var p=f.fill,m=f.align,x=f.sign,v=f.symbol,b=f.zero,y=f.width,w=f.comma,j=f.precision,k=f.trim,S=f.type;S==="n"?(w=!0,S="g"):wD[S]||(j===void 0&&(j=12),k=!0,S="g"),(b||p==="0"&&m==="=")&&(b=!0,p="0",m="=");var _=(h&&h.prefix!==void 0?h.prefix:"")+(v==="$"?n:v==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(v==="$"?r:/[%p]/.test(S)?o:"")+(h&&h.suffix!==void 0?h.suffix:""),E=wD[S],P=/[defgprs%]/.test(S);j=j===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function R(A){var T=_,D=C,L,X,J;if(S==="c")D=E(A)+D,A="";else{A=+A;var U=A<0||1/A<0;if(A=isNaN(A)?c:E(Math.abs(A),j),k&&(A=Xge(A)),U&&+A==0&&x!=="+"&&(U=!1),T=(U?x==="("?x:l:x==="-"||x==="("?"":x)+T,D=(S==="s"&&!isNaN(A)&&iw!==void 0?SD[8+iw/3]:"")+D+(U&&x==="("?")":""),P){for(L=-1,X=A.length;++LJ||J>57){D=(J===46?a+A.slice(L+1):A.slice(L))+D,A=A.slice(0,L);break}}}w&&!b&&(A=e(A,1/0));var Y=T.length+A.length+D.length,W=Y>1)+T+A+D+W.slice(Y);break;default:A=W+T+A+D;break}return s(A)}return R.toString=function(){return f+""},R}function d(f,h){var p=Math.max(-8,Math.min(8,Math.floor(mp(h)/3)))*3,m=Math.pow(10,-p),x=u((f=d0(f),f.type="f",f),{suffix:SD[8+p/3]});return function(v){return x(m*v)}}return{format:u,formatPrefix:d}}var Lv,y3,kU;Qge({thousands:",",grouping:[3],currency:["$",""]});function Qge(t){return Lv=Zge(t),y3=Lv.format,kU=Lv.formatPrefix,Lv}function exe(t){return Math.max(0,-mp(Math.abs(t)))}function txe(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(mp(e)/3)))*3-mp(Math.abs(t)))}function nxe(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,mp(e)-mp(t))+1}function jU(t,e,n,r){var a=tE(t,e,n),s;switch(r=d0(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=txe(a,o))&&(r.precision=s),kU(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=nxe(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=exe(a))&&(r.precision=s-(r.type==="%")*2);break}}return y3(r)}function Vu(t){var e=t.domain;return t.ticks=function(n){var r=e();return QC(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return jU(a[0],a[a.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),a=0,s=r.length-1,o=r[a],l=r[s],c,u,d=10;for(l0;){if(u=eE(o,l,n),u===c)return r[a]=o,r[s]=l,e(r);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return t},t}function ow(){var t=g3();return t.copy=function(){return ky(t,ow())},Hi.apply(t,arguments),Vu(t)}function SU(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,aw),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return SU(t).unknown(e)},t=arguments.length?Array.from(t,aw):[0,1],Vu(n)}function _U(t,e){t=t.slice();var n=0,r=t.length-1,a=t[n],s=t[r],o;return sMath.pow(t,e)}function oxe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function CD(t){return(e,n)=>-t(-e,n)}function v3(t){const e=t(_D,ND),n=e.domain;let r=10,a,s;function o(){return a=oxe(r),s=ixe(r),n()[0]<0?(a=CD(a),s=CD(s),t(rxe,axe)):t(_D,ND),e}return e.base=function(l){return arguments.length?(r=+l,o()):r},e.domain=function(l){return arguments.length?(n(l),o()):n()},e.ticks=l=>{const c=n();let u=c[0],d=c[c.length-1];const f=d0){for(;h<=p;++h)for(m=1;md)break;b.push(x)}}else for(;h<=p;++h)for(m=r-1;m>=1;--m)if(x=h>0?m/s(-h):m*s(h),!(xd)break;b.push(x)}b.length*2{if(l==null&&(l=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=d0(c)).precision==null&&(c.trim=!0),c=y3(c)),l===1/0)return c;const u=Math.max(1,r*l/e.ticks().length);return d=>{let f=d/s(Math.round(a(d)));return f*rn(_U(n(),{floor:l=>s(Math.floor(a(l))),ceil:l=>s(Math.ceil(a(l)))})),e}function NU(){const t=v3(pj()).domain([1,10]);return t.copy=()=>ky(t,NU()).base(t.base()),Hi.apply(t,arguments),t}function ED(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function AD(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function b3(t){var e=1,n=t(ED(e),AD(e));return n.constant=function(r){return arguments.length?t(ED(e=+r),AD(e)):e},Vu(n)}function CU(){var t=b3(pj());return t.copy=function(){return ky(t,CU()).constant(t.constant())},Hi.apply(t,arguments)}function OD(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function lxe(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function cxe(t){return t<0?-t*t:t*t}function w3(t){var e=t(xs,xs),n=1;function r(){return n===1?t(xs,xs):n===.5?t(lxe,cxe):t(OD(n),OD(1/n))}return e.exponent=function(a){return arguments.length?(n=+a,r()):n},Vu(e)}function k3(){var t=w3(pj());return t.copy=function(){return ky(t,k3()).exponent(t.exponent())},Hi.apply(t,arguments),t}function uxe(){return k3.apply(null,arguments).exponent(.5)}function TD(t){return Math.sign(t)*t*t}function dxe(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function EU(){var t=g3(),e=[0,1],n=!1,r;function a(s){var o=dxe(t(s));return isNaN(o)?r:n?Math.round(o):o}return a.invert=function(s){return t.invert(TD(s))},a.domain=function(s){return arguments.length?(t.domain(s),a):t.domain()},a.range=function(s){return arguments.length?(t.range((e=Array.from(s,aw)).map(TD)),a):e.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(t.clamp(s),a):t.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return EU(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Hi.apply(a,arguments),Vu(a)}function AU(){var t=[],e=[],n=[],r;function a(){var o=0,l=Math.max(1,e.length);for(n=new Array(l-1);++o0?n[l-1]:t[0],l=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(c){return arguments.length&&(s=c),o},o.thresholds=function(){return r.slice()},o.copy=function(){return OU().domain([t,e]).range(a).unknown(s)},Hi.apply(Vu(o),arguments)}function TU(){var t=[.5],e=[0,1],n,r=1;function a(s){return s!=null&&s<=s?e[by(t,s,0,r)]:n}return a.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),a):t.slice()},a.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),a):e.slice()},a.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return TU().domain(t).range(e).unknown(n)},Hi.apply(a,arguments)}const xS=new Date,yS=new Date;function sa(t,e,n,r){function a(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(t(s=new Date(+s)),s),a.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),a.round=s=>{const o=a(s),l=a.ceil(s);return s-o(e(s=new Date(+s),o==null?1:Math.floor(o)),s),a.range=(s,o,l)=>{const c=[];if(s=a.ceil(s),l=l==null?1:Math.floor(l),!(s0))return c;let u;do c.push(u=new Date(+s)),e(s,l),t(s);while(usa(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;e(o,-1),!s(o););else for(;--l>=0;)for(;e(o,1),!s(o););}),n&&(a.count=(s,o)=>(xS.setTime(+s),yS.setTime(+o),t(xS),t(yS),Math.floor(n(xS,yS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?o=>r(o)%s===0:o=>a.count(0,o)%s===0):a)),a}const lw=sa(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);lw.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?sa(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):lw);lw.range;const Hl=1e3,Mi=Hl*60,Gl=Mi*60,lc=Gl*24,j3=lc*7,PD=lc*30,vS=lc*365,wd=sa(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Hl)},(t,e)=>(e-t)/Hl,t=>t.getUTCSeconds());wd.range;const S3=sa(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hl)},(t,e)=>{t.setTime(+t+e*Mi)},(t,e)=>(e-t)/Mi,t=>t.getMinutes());S3.range;const _3=sa(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Mi)},(t,e)=>(e-t)/Mi,t=>t.getUTCMinutes());_3.range;const N3=sa(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hl-t.getMinutes()*Mi)},(t,e)=>{t.setTime(+t+e*Gl)},(t,e)=>(e-t)/Gl,t=>t.getHours());N3.range;const C3=sa(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Gl)},(t,e)=>(e-t)/Gl,t=>t.getUTCHours());C3.range;const jy=sa(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Mi)/lc,t=>t.getDate()-1);jy.range;const mj=sa(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/lc,t=>t.getUTCDate()-1);mj.range;const PU=sa(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/lc,t=>Math.floor(t/lc));PU.range;function bf(t){return sa(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Mi)/j3)}const gj=bf(0),cw=bf(1),fxe=bf(2),hxe=bf(3),gp=bf(4),pxe=bf(5),mxe=bf(6);gj.range;cw.range;fxe.range;hxe.range;gp.range;pxe.range;mxe.range;function wf(t){return sa(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/j3)}const xj=wf(0),uw=wf(1),gxe=wf(2),xxe=wf(3),xp=wf(4),yxe=wf(5),vxe=wf(6);xj.range;uw.range;gxe.range;xxe.range;xp.range;yxe.range;vxe.range;const E3=sa(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());E3.range;const A3=sa(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());A3.range;const cc=sa(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());cc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sa(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});cc.range;const uc=sa(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());uc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sa(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});uc.range;function RU(t,e,n,r,a,s){const o=[[wd,1,Hl],[wd,5,5*Hl],[wd,15,15*Hl],[wd,30,30*Hl],[s,1,Mi],[s,5,5*Mi],[s,15,15*Mi],[s,30,30*Mi],[a,1,Gl],[a,3,3*Gl],[a,6,6*Gl],[a,12,12*Gl],[r,1,lc],[r,2,2*lc],[n,1,j3],[e,1,PD],[e,3,3*PD],[t,1,vS]];function l(u,d,f){const h=dv).right(o,h);if(p===o.length)return t.every(tE(u/vS,d/vS,f));if(p===0)return lw.every(Math.max(tE(u,d,f),1));const[m,x]=o[h/o[p-1][2]53)return null;"w"in Q||(Q.w=1),"Z"in Q?(ne=wS(lg(Q.y,0,1)),ce=ne.getUTCDay(),ne=ce>4||ce===0?uw.ceil(ne):uw(ne),ne=mj.offset(ne,(Q.V-1)*7),Q.y=ne.getUTCFullYear(),Q.m=ne.getUTCMonth(),Q.d=ne.getUTCDate()+(Q.w+6)%7):(ne=bS(lg(Q.y,0,1)),ce=ne.getDay(),ne=ce>4||ce===0?cw.ceil(ne):cw(ne),ne=jy.offset(ne,(Q.V-1)*7),Q.y=ne.getFullYear(),Q.m=ne.getMonth(),Q.d=ne.getDate()+(Q.w+6)%7)}else("W"in Q||"U"in Q)&&("w"in Q||(Q.w="u"in Q?Q.u%7:"W"in Q?1:0),ce="Z"in Q?wS(lg(Q.y,0,1)).getUTCDay():bS(lg(Q.y,0,1)).getDay(),Q.m=0,Q.d="W"in Q?(Q.w+6)%7+Q.W*7-(ce+5)%7:Q.w+Q.U*7-(ce+6)%7);return"Z"in Q?(Q.H+=Q.Z/100|0,Q.M+=Q.Z%100,wS(Q)):bS(Q)}}function C(ae,ue,de,Q){for(var fe=0,ne=ue.length,ce=de.length,he,be;fe=ce)return-1;if(he=ue.charCodeAt(fe++),he===37){if(he=ue.charAt(fe++),be=k[he in RD?ue.charAt(fe++):he],!be||(Q=be(ae,de,Q))<0)return-1}else if(he!=de.charCodeAt(Q++))return-1}return Q}function E(ae,ue,de){var Q=u.exec(ue.slice(de));return Q?(ae.p=d.get(Q[0].toLowerCase()),de+Q[0].length):-1}function P(ae,ue,de){var Q=p.exec(ue.slice(de));return Q?(ae.w=m.get(Q[0].toLowerCase()),de+Q[0].length):-1}function R(ae,ue,de){var Q=f.exec(ue.slice(de));return Q?(ae.w=h.get(Q[0].toLowerCase()),de+Q[0].length):-1}function A(ae,ue,de){var Q=b.exec(ue.slice(de));return Q?(ae.m=y.get(Q[0].toLowerCase()),de+Q[0].length):-1}function T(ae,ue,de){var Q=x.exec(ue.slice(de));return Q?(ae.m=v.get(Q[0].toLowerCase()),de+Q[0].length):-1}function D(ae,ue,de){return C(ae,e,ue,de)}function L(ae,ue,de){return C(ae,n,ue,de)}function X(ae,ue,de){return C(ae,r,ue,de)}function J(ae){return o[ae.getDay()]}function U(ae){return s[ae.getDay()]}function Y(ae){return c[ae.getMonth()]}function W(ae){return l[ae.getMonth()]}function G(ae){return a[+(ae.getHours()>=12)]}function I(ae){return 1+~~(ae.getMonth()/3)}function q(ae){return o[ae.getUTCDay()]}function M(ae){return s[ae.getUTCDay()]}function B(ae){return c[ae.getUTCMonth()]}function z(ae){return l[ae.getUTCMonth()]}function Z(ae){return a[+(ae.getUTCHours()>=12)]}function pe(ae){return 1+~~(ae.getUTCMonth()/3)}return{format:function(ae){var ue=S(ae+="",w);return ue.toString=function(){return ae},ue},parse:function(ae){var ue=_(ae+="",!1);return ue.toString=function(){return ae},ue},utcFormat:function(ae){var ue=S(ae+="",j);return ue.toString=function(){return ae},ue},utcParse:function(ae){var ue=_(ae+="",!0);return ue.toString=function(){return ae},ue}}}var RD={"-":"",_:" ",0:"0"},ka=/^\s*\d+/,_xe=/^%/,Nxe=/[\\^$*+?|[\]().{}]/g;function an(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",s=a.length;return r+(s[e.toLowerCase(),n]))}function Exe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Axe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Oxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Txe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Pxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function MD(t,e,n){var r=ka.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function DD(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Rxe(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Mxe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Dxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function ID(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Ixe(t,e,n){var r=ka.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function $D(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function $xe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Fxe(t,e,n){var r=ka.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Bxe(t,e,n){var r=ka.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function zxe(t,e,n){var r=_xe.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Uxe(t,e,n){var r=ka.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Vxe(t,e,n){var r=ka.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function LD(t,e){return an(t.getDate(),e,2)}function Wxe(t,e){return an(t.getHours(),e,2)}function Hxe(t,e){return an(t.getHours()%12||12,e,2)}function Gxe(t,e){return an(1+jy.count(cc(t),t),e,3)}function MU(t,e){return an(t.getMilliseconds(),e,3)}function qxe(t,e){return MU(t,e)+"000"}function Kxe(t,e){return an(t.getMonth()+1,e,2)}function Yxe(t,e){return an(t.getMinutes(),e,2)}function Xxe(t,e){return an(t.getSeconds(),e,2)}function Jxe(t){var e=t.getDay();return e===0?7:e}function Zxe(t,e){return an(gj.count(cc(t)-1,t),e,2)}function DU(t){var e=t.getDay();return e>=4||e===0?gp(t):gp.ceil(t)}function Qxe(t,e){return t=DU(t),an(gp.count(cc(t),t)+(cc(t).getDay()===4),e,2)}function e0e(t){return t.getDay()}function t0e(t,e){return an(cw.count(cc(t)-1,t),e,2)}function n0e(t,e){return an(t.getFullYear()%100,e,2)}function r0e(t,e){return t=DU(t),an(t.getFullYear()%100,e,2)}function a0e(t,e){return an(t.getFullYear()%1e4,e,4)}function s0e(t,e){var n=t.getDay();return t=n>=4||n===0?gp(t):gp.ceil(t),an(t.getFullYear()%1e4,e,4)}function i0e(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+an(e/60|0,"0",2)+an(e%60,"0",2)}function FD(t,e){return an(t.getUTCDate(),e,2)}function o0e(t,e){return an(t.getUTCHours(),e,2)}function l0e(t,e){return an(t.getUTCHours()%12||12,e,2)}function c0e(t,e){return an(1+mj.count(uc(t),t),e,3)}function IU(t,e){return an(t.getUTCMilliseconds(),e,3)}function u0e(t,e){return IU(t,e)+"000"}function d0e(t,e){return an(t.getUTCMonth()+1,e,2)}function f0e(t,e){return an(t.getUTCMinutes(),e,2)}function h0e(t,e){return an(t.getUTCSeconds(),e,2)}function p0e(t){var e=t.getUTCDay();return e===0?7:e}function m0e(t,e){return an(xj.count(uc(t)-1,t),e,2)}function $U(t){var e=t.getUTCDay();return e>=4||e===0?xp(t):xp.ceil(t)}function g0e(t,e){return t=$U(t),an(xp.count(uc(t),t)+(uc(t).getUTCDay()===4),e,2)}function x0e(t){return t.getUTCDay()}function y0e(t,e){return an(uw.count(uc(t)-1,t),e,2)}function v0e(t,e){return an(t.getUTCFullYear()%100,e,2)}function b0e(t,e){return t=$U(t),an(t.getUTCFullYear()%100,e,2)}function w0e(t,e){return an(t.getUTCFullYear()%1e4,e,4)}function k0e(t,e){var n=t.getUTCDay();return t=n>=4||n===0?xp(t):xp.ceil(t),an(t.getUTCFullYear()%1e4,e,4)}function j0e(){return"+0000"}function BD(){return"%"}function zD(t){return+t}function UD(t){return Math.floor(+t/1e3)}var Lf,LU,FU;S0e({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function S0e(t){return Lf=Sxe(t),LU=Lf.format,Lf.parse,FU=Lf.utcFormat,Lf.utcParse,Lf}function _0e(t){return new Date(t)}function N0e(t){return t instanceof Date?+t:+new Date(+t)}function O3(t,e,n,r,a,s,o,l,c,u){var d=g3(),f=d.invert,h=d.domain,p=u(".%L"),m=u(":%S"),x=u("%I:%M"),v=u("%I %p"),b=u("%a %d"),y=u("%b %d"),w=u("%B"),j=u("%Y");function k(S){return(c(S)e(a/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>mge(t,s/r))},n.copy=function(){return VU(e).domain(t)},kc.apply(n,arguments)}function vj(){var t=0,e=.5,n=1,r=1,a,s,o,l,c,u=xs,d,f=!1,h;function p(x){return isNaN(x=+x)?h:(x=.5+((x=+d(x))-s)*(r*xe}var M0e=R0e,D0e=qU,I0e=M0e,$0e=mm;function L0e(t){return t&&t.length?D0e(t,$0e,I0e):void 0}var F0e=L0e;const Yc=Nn(F0e);function B0e(t,e){return tt.e^s.s<0?1:-1;for(r=s.d.length,a=t.d.length,e=0,n=rt.d[e]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};tt.decimalPlaces=tt.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*Jn;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};tt.dividedBy=tt.div=function(t){return Ql(this,new this.constructor(t))};tt.dividedToIntegerBy=tt.idiv=function(t){var e=this,n=e.constructor;return Tn(Ql(e,new n(t),0,1),n.precision)};tt.equals=tt.eq=function(t){return!this.cmp(t)};tt.exponent=function(){return Wr(this)};tt.greaterThan=tt.gt=function(t){return this.cmp(t)>0};tt.greaterThanOrEqualTo=tt.gte=function(t){return this.cmp(t)>=0};tt.isInteger=tt.isint=function(){return this.e>this.d.length-2};tt.isNegative=tt.isneg=function(){return this.s<0};tt.isPositive=tt.ispos=function(){return this.s>0};tt.isZero=function(){return this.s===0};tt.lessThan=tt.lt=function(t){return this.cmp(t)<0};tt.lessThanOrEqualTo=tt.lte=function(t){return this.cmp(t)<1};tt.logarithm=tt.log=function(t){var e,n=this,r=n.constructor,a=r.precision,s=a+5;if(t===void 0)t=new r(10);else if(t=new r(t),t.s<1||t.eq(ui))throw Error(Vi+"NaN");if(n.s<1)throw Error(Vi+(n.s?"NaN":"-Infinity"));return n.eq(ui)?new r(0):(ar=!1,e=Ql(f0(n,s),f0(t,s),s),ar=!0,Tn(e,a))};tt.minus=tt.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?JU(e,t):YU(e,(t.s=-t.s,t))};tt.modulo=tt.mod=function(t){var e,n=this,r=n.constructor,a=r.precision;if(t=new r(t),!t.s)throw Error(Vi+"NaN");return n.s?(ar=!1,e=Ql(n,t,0,1).times(t),ar=!0,n.minus(e)):Tn(new r(n),a)};tt.naturalExponential=tt.exp=function(){return XU(this)};tt.naturalLogarithm=tt.ln=function(){return f0(this)};tt.negated=tt.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};tt.plus=tt.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?YU(e,t):JU(e,(t.s=-t.s,t))};tt.precision=tt.sd=function(t){var e,n,r,a=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Id+t);if(e=Wr(a)+1,r=a.d.length-1,n=r*Jn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return t&&e>n?e:n};tt.squareRoot=tt.sqrt=function(){var t,e,n,r,a,s,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(Vi+"NaN")}for(t=Wr(l),ar=!1,a=Math.sqrt(+l),a==0||a==1/0?(e=nl(l.d),(e.length+t)%2==0&&(e+="0"),a=Math.sqrt(e),t=ym((t+1)/2)-(t<0||t%2),a==1/0?e="5e"+t:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new c(e)):r=new c(a.toString()),n=c.precision,a=o=n+3;;)if(s=r,r=s.plus(Ql(l,s,o+2)).times(.5),nl(s.d).slice(0,o)===(e=nl(r.d)).slice(0,o)){if(e=e.slice(o-3,o+1),a==o&&e=="4999"){if(Tn(s,n+1,0),s.times(s).eq(l)){r=s;break}}else if(e!="9999")break;o+=4}return ar=!0,Tn(r,n)};tt.times=tt.mul=function(t){var e,n,r,a,s,o,l,c,u,d=this,f=d.constructor,h=d.d,p=(t=new f(t)).d;if(!d.s||!t.s)return new f(0);for(t.s*=d.s,n=d.e+t.e,c=h.length,u=p.length,c=0;){for(e=0,a=c+r;a>r;)l=s[a]+p[r]*h[a-r-1]+e,s[a--]=l%pa|0,e=l/pa|0;s[a]=(s[a]+e)%pa|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=n,ar?Tn(t,f.precision):t};tt.toDecimalPlaces=tt.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(yl(t,0,xm),e===void 0?e=r.rounding:yl(e,0,8),Tn(n,t+Wr(n)+1,e))};tt.toExponential=function(t,e){var n,r=this,a=r.constructor;return t===void 0?n=Qd(r,!0):(yl(t,0,xm),e===void 0?e=a.rounding:yl(e,0,8),r=Tn(new a(r),t+1,e),n=Qd(r,!0,t+1)),n};tt.toFixed=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?Qd(a):(yl(t,0,xm),e===void 0?e=s.rounding:yl(e,0,8),r=Tn(new s(a),t+Wr(a)+1,e),n=Qd(r.abs(),!1,t+Wr(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};tt.toInteger=tt.toint=function(){var t=this,e=t.constructor;return Tn(new e(t),Wr(t)+1,e.rounding)};tt.toNumber=function(){return+this};tt.toPower=tt.pow=function(t){var e,n,r,a,s,o,l=this,c=l.constructor,u=12,d=+(t=new c(t));if(!t.s)return new c(ui);if(l=new c(l),!l.s){if(t.s<1)throw Error(Vi+"Infinity");return l}if(l.eq(ui))return l;if(r=c.precision,t.eq(ui))return Tn(l,r);if(e=t.e,n=t.d.length-1,o=e>=n,s=l.s,o){if((n=d<0?-d:d)<=KU){for(a=new c(ui),e=Math.ceil(r/Jn+4),ar=!1;n%2&&(a=a.times(l),HD(a.d,e)),n=ym(n/2),n!==0;)l=l.times(l),HD(l.d,e);return ar=!0,t.s<0?new c(ui).div(a):Tn(a,r)}}else if(s<0)throw Error(Vi+"NaN");return s=s<0&&t.d[Math.max(e,n)]&1?-1:1,l.s=1,ar=!1,a=t.times(f0(l,r+u)),ar=!0,a=XU(a),a.s=s,a};tt.toPrecision=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?(n=Wr(a),r=Qd(a,n<=s.toExpNeg||n>=s.toExpPos)):(yl(t,1,xm),e===void 0?e=s.rounding:yl(e,0,8),a=Tn(new s(a),t,e),n=Wr(a),r=Qd(a,t<=n||n<=s.toExpNeg,t)),r};tt.toSignificantDigits=tt.tosd=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(yl(t,1,xm),e===void 0?e=r.rounding:yl(e,0,8)),Tn(new r(n),t,e)};tt.toString=tt.valueOf=tt.val=tt.toJSON=tt[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Wr(t),n=t.constructor;return Qd(t,e<=n.toExpNeg||e>=n.toExpPos)};function YU(t,e){var n,r,a,s,o,l,c,u,d=t.constructor,f=d.precision;if(!t.s||!e.s)return e.s||(e=new d(t)),ar?Tn(e,f):e;if(c=t.d,u=e.d,o=t.e,a=e.e,c=c.slice(),s=o-a,s){for(s<0?(r=c,s=-s,l=u.length):(r=u,a=o,l=c.length),o=Math.ceil(f/Jn),l=o>l?o+1:l+1,s>l&&(s=l,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(l=c.length,s=u.length,l-s<0&&(s=l,r=u,u=c,c=r),n=0;s;)n=(c[--s]=c[s]+u[s]+n)/pa|0,c[s]%=pa;for(n&&(c.unshift(n),++a),l=c.length;c[--l]==0;)c.pop();return e.d=c,e.e=a,ar?Tn(e,f):e}function yl(t,e,n){if(t!==~~t||tn)throw Error(Id+t)}function nl(t){var e,n,r,a=t.length-1,s="",o=t[0];if(a>0){for(s+=o,e=1;eo?1:-1;else for(l=c=0;la[l]?1:-1;break}return c}function n(r,a,s){for(var o=0;s--;)r[s]-=o,o=r[s]1;)r.shift()}return function(r,a,s,o){var l,c,u,d,f,h,p,m,x,v,b,y,w,j,k,S,_,C,E=r.constructor,P=r.s==a.s?1:-1,R=r.d,A=a.d;if(!r.s)return new E(r);if(!a.s)throw Error(Vi+"Division by zero");for(c=r.e-a.e,_=A.length,k=R.length,p=new E(P),m=p.d=[],u=0;A[u]==(R[u]||0);)++u;if(A[u]>(R[u]||0)&&--c,s==null?y=s=E.precision:o?y=s+(Wr(r)-Wr(a))+1:y=s,y<0)return new E(0);if(y=y/Jn+2|0,u=0,_==1)for(d=0,A=A[0],y++;(u1&&(A=t(A,d),R=t(R,d),_=A.length,k=R.length),j=_,x=R.slice(0,_),v=x.length;v<_;)x[v++]=0;C=A.slice(),C.unshift(0),S=A[0],A[1]>=pa/2&&++S;do d=0,l=e(A,x,_,v),l<0?(b=x[0],_!=v&&(b=b*pa+(x[1]||0)),d=b/S|0,d>1?(d>=pa&&(d=pa-1),f=t(A,d),h=f.length,v=x.length,l=e(f,x,h,v),l==1&&(d--,n(f,_16)throw Error(R3+Wr(t));if(!t.s)return new d(ui);for(ar=!1,l=f,o=new d(.03125);t.abs().gte(.1);)t=t.times(o),u+=5;for(r=Math.log(ud(2,u))/Math.LN10*2+5|0,l+=r,n=a=s=new d(ui),d.precision=l;;){if(a=Tn(a.times(t),l),n=n.times(++c),o=s.plus(Ql(a,n,l)),nl(o.d).slice(0,l)===nl(s.d).slice(0,l)){for(;u--;)s=Tn(s.times(s),l);return d.precision=f,e==null?(ar=!0,Tn(s,f)):s}s=o}}function Wr(t){for(var e=t.e*Jn,n=t.d[0];n>=10;n/=10)e++;return e}function kS(t,e,n){if(e>t.LN10.sd())throw ar=!0,n&&(t.precision=n),Error(Vi+"LN10 precision limit exceeded");return Tn(new t(t.LN10),e)}function Dc(t){for(var e="";t--;)e+="0";return e}function f0(t,e){var n,r,a,s,o,l,c,u,d,f=1,h=10,p=t,m=p.d,x=p.constructor,v=x.precision;if(p.s<1)throw Error(Vi+(p.s?"NaN":"-Infinity"));if(p.eq(ui))return new x(0);if(e==null?(ar=!1,u=v):u=e,p.eq(10))return e==null&&(ar=!0),kS(x,u);if(u+=h,x.precision=u,n=nl(m),r=n.charAt(0),s=Wr(p),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(t),n=nl(p.d),r=n.charAt(0),f++;s=Wr(p),r>1?(p=new x("0."+n),s++):p=new x(r+"."+n.slice(1))}else return c=kS(x,u+2,v).times(s+""),p=f0(new x(r+"."+n.slice(1)),u-h).plus(c),x.precision=v,e==null?(ar=!0,Tn(p,v)):p;for(l=o=p=Ql(p.minus(ui),p.plus(ui),u),d=Tn(p.times(p),u),a=3;;){if(o=Tn(o.times(d),u),c=l.plus(Ql(o,new x(a),u)),nl(c.d).slice(0,u)===nl(l.d).slice(0,u))return l=l.times(2),s!==0&&(l=l.plus(kS(x,u+2,v).times(s+""))),l=Ql(l,new x(f),u),x.precision=v,e==null?(ar=!0,Tn(l,v)):l;l=c,a+=2}}function WD(t,e){var n,r,a;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;)++r;for(a=e.length;e.charCodeAt(a-1)===48;)--a;if(e=e.slice(r,a),e){if(a-=r,n=n-r-1,t.e=ym(n/Jn),t.d=[],r=(n+1)%Jn,n<0&&(r+=Jn),rdw||t.e<-dw))throw Error(R3+n)}else t.s=0,t.e=0,t.d=[0];return t}function Tn(t,e,n){var r,a,s,o,l,c,u,d,f=t.d;for(o=1,s=f[0];s>=10;s/=10)o++;if(r=e-o,r<0)r+=Jn,a=e,u=f[d=0];else{if(d=Math.ceil((r+1)/Jn),s=f.length,d>=s)return t;for(u=s=f[d],o=1;s>=10;s/=10)o++;r%=Jn,a=r-Jn+o}if(n!==void 0&&(s=ud(10,o-a-1),l=u/s%10|0,c=e<0||f[d+1]!==void 0||u%s,c=n<4?(l||c)&&(n==0||n==(t.s<0?3:2)):l>5||l==5&&(n==4||c||n==6&&(r>0?a>0?u/ud(10,o-a):0:f[d-1])%10&1||n==(t.s<0?8:7))),e<1||!f[0])return c?(s=Wr(t),f.length=1,e=e-s-1,f[0]=ud(10,(Jn-e%Jn)%Jn),t.e=ym(-e/Jn)||0):(f.length=1,f[0]=t.e=t.s=0),t;if(r==0?(f.length=d,s=1,d--):(f.length=d+1,s=ud(10,Jn-r),f[d]=a>0?(u/ud(10,o-a)%ud(10,a)|0)*s:0),c)for(;;)if(d==0){(f[0]+=s)==pa&&(f[0]=1,++t.e);break}else{if(f[d]+=s,f[d]!=pa)break;f[d--]=0,s=1}for(r=f.length;f[--r]===0;)f.pop();if(ar&&(t.e>dw||t.e<-dw))throw Error(R3+Wr(t));return t}function JU(t,e){var n,r,a,s,o,l,c,u,d,f,h=t.constructor,p=h.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new h(t),ar?Tn(e,p):e;if(c=t.d,f=e.d,r=e.e,u=t.e,c=c.slice(),o=u-r,o){for(d=o<0,d?(n=c,o=-o,l=f.length):(n=f,r=u,l=c.length),a=Math.max(Math.ceil(p/Jn),l)+2,o>a&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for(a=c.length,l=f.length,d=a0;--a)c[l++]=0;for(a=f.length;a>o;){if(c[--a]0?s=s.charAt(0)+"."+s.slice(1)+Dc(r):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Dc(-a-1)+s,n&&(r=n-o)>0&&(s+=Dc(r))):a>=o?(s+=Dc(a+1-o),n&&(r=n-a-1)>0&&(s=s+"."+Dc(r))):((r=a+1)0&&(a+1===o&&(s+="."),s+=Dc(r))),t.s<0?"-"+s:s}function HD(t,e){if(t.length>e)return t.length=e,!0}function ZU(t){var e,n,r;function a(s){var o=this;if(!(o instanceof a))return new a(s);if(o.constructor=a,s instanceof a){o.s=s.s,o.e=s.e,o.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(Id+s);if(s>0)o.s=1;else if(s<0)s=-s,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(s===~~s&&s<1e7){o.e=0,o.d=[s];return}return WD(o,s.toString())}else if(typeof s!="string")throw Error(Id+s);if(s.charCodeAt(0)===45?(s=s.slice(1),o.s=-1):o.s=1,lye.test(s))WD(o,s);else throw Error(Id+s)}if(a.prototype=tt,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=ZU,a.config=a.set=cye,t===void 0&&(t={}),t)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=a[e+1]&&r<=a[e+2])this[n]=r;else throw Error(Id+n+": "+r);if((r=t[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(Id+n+": "+r);return this}var M3=ZU(oye);ui=new M3(1);const _n=M3;function uye(t){return pye(t)||hye(t)||fye(t)||dye()}function dye(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fye(t,e){if(t){if(typeof t=="string")return iE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iE(t,e)}}function hye(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function pye(t){if(Array.isArray(t))return iE(t)}function iE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,a):t(e-o,GD(function(){for(var l=arguments.length,c=new Array(l),u=0;ut.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,a=!1,s=void 0;try{for(var o=t[Symbol.iterator](),l;!(r=(l=o.next()).done)&&(n.push(l.value),!(e&&n.length===e));r=!0);}catch(c){a=!0,s=c}finally{try{!r&&o.return!=null&&o.return()}finally{if(a)throw s}}return n}}function Aye(t){if(Array.isArray(t))return t}function rV(t){var e=h0(t,2),n=e[0],r=e[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function aV(t,e,n){if(t.lte(0))return new _n(0);var r=kj.getDigitCount(t.toNumber()),a=new _n(10).pow(r),s=t.div(a),o=r!==1?.05:.1,l=new _n(Math.ceil(s.div(o).toNumber())).add(n).mul(o),c=l.mul(a);return e?c:new _n(Math.ceil(c))}function Oye(t,e,n){var r=1,a=new _n(t);if(!a.isint()&&n){var s=Math.abs(t);s<1?(r=new _n(10).pow(kj.getDigitCount(t)-1),a=new _n(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new _n(Math.floor(t)))}else t===0?a=new _n(Math.floor((e-1)/2)):n||(a=new _n(Math.floor(t)));var o=Math.floor((e-1)/2),l=yye(xye(function(c){return a.add(new _n(c-o).mul(r)).toNumber()}),oE);return l(0,e)}function sV(t,e,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new _n(0),tickMin:new _n(0),tickMax:new _n(0)};var s=aV(new _n(e).sub(t).div(n-1),r,a),o;t<=0&&e>=0?o=new _n(0):(o=new _n(t).add(e).div(2),o=o.sub(new _n(o).mod(s)));var l=Math.ceil(o.sub(t).div(s).toNumber()),c=Math.ceil(new _n(e).sub(o).div(s).toNumber()),u=l+c+1;return u>n?sV(t,e,n,r,a+1):(u0?c+(n-u):c,l=e>0?l:l+(n-u)),{step:s,tickMin:o.sub(new _n(l).mul(s)),tickMax:o.add(new _n(c).mul(s))})}function Tye(t){var e=h0(t,2),n=e[0],r=e[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(a,2),l=rV([n,r]),c=h0(l,2),u=c[0],d=c[1];if(u===-1/0||d===1/0){var f=d===1/0?[u].concat(cE(oE(0,a-1).map(function(){return 1/0}))):[].concat(cE(oE(0,a-1).map(function(){return-1/0})),[d]);return n>r?lE(f):f}if(u===d)return Oye(u,a,s);var h=sV(u,d,o,s),p=h.step,m=h.tickMin,x=h.tickMax,v=kj.rangeStep(m,x.add(new _n(.1).mul(p)),p);return n>r?lE(v):v}function Pye(t,e){var n=h0(t,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=rV([r,a]),l=h0(o,2),c=l[0],u=l[1];if(c===-1/0||u===1/0)return[r,a];if(c===u)return[c];var d=Math.max(e,2),f=aV(new _n(u).sub(c).div(d-1),s,0),h=[].concat(cE(kj.rangeStep(new _n(c),new _n(u).sub(new _n(.99).mul(f)),f)),[u]);return r>a?lE(h):h}var Rye=tV(Tye),Mye=tV(Pye),Dye="Invariant failed";function ef(t,e){throw new Error(Dye)}var Iye=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function yp(t){"@babel/helpers - typeof";return yp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yp(t)}function fw(){return fw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Vye(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Wye(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Hye(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,o=-1,l=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(l<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var c=s.range,u=0;u0?a[u-1].coordinate:a[l-1].coordinate,f=a[u].coordinate,h=u>=l-1?a[0].coordinate:a[u+1].coordinate,p=void 0;if(go(f-d)!==go(h-f)){var m=[];if(go(h-f)===go(c[1]-c[0])){p=h;var x=f+c[1]-c[0];m[0]=Math.min(x,(x+d)/2),m[1]=Math.max(x,(x+d)/2)}else{p=d;var v=h+c[1]-c[0];m[0]=Math.min(f,(v+f)/2),m[1]=Math.max(f,(v+f)/2)}var b=[Math.min(f,(p+f)/2),Math.max(f,(p+f)/2)];if(e>b[0]&&e<=b[1]||e>=m[0]&&e<=m[1]){o=a[u].index;break}}else{var y=Math.min(d,h),w=Math.max(d,h);if(e>(y+f)/2&&e<=(w+f)/2){o=a[u].index;break}}}else for(var j=0;j0&&j(r[j].coordinate+r[j-1].coordinate)/2&&e<=(r[j].coordinate+r[j+1].coordinate)/2||j===l-1&&e>(r[j].coordinate+r[j-1].coordinate)/2){o=r[j].index;break}return o},D3=function(e){var n,r=e,a=r.type.displayName,s=(n=e.type)!==null&&n!==void 0&&n.defaultProps?wr(wr({},e.type.defaultProps),e.props):e.props,o=s.stroke,l=s.fill,c;switch(a){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:l;break;default:c=l;break}return c},lve=function(e){var n=e.barSize,r=e.totalSize,a=e.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var o={},l=Object.keys(s),c=0,u=l.length;c=0});if(b&&b.length){var y=b[0].type.defaultProps,w=y!==void 0?wr(wr({},y),b[0].props):b[0].props,j=w.barSize,k=w[v];o[k]||(o[k]=[]);var S=_t(j)?n:j;o[k].push({item:b[0],stackList:b.slice(1),barSize:_t(S)?void 0:Jd(S,r,0)})}}return o},cve=function(e){var n=e.barGap,r=e.barCategoryGap,a=e.bandSize,s=e.sizeList,o=s===void 0?[]:s,l=e.maxBarSize,c=o.length;if(c<1)return null;var u=Jd(n,a,0,!0),d,f=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=a/c,m=o.reduce(function(j,k){return j+k.barSize||0},0);m+=(c-1)*u,m>=a&&(m-=(c-1)*u,u=0),m>=a&&p>0&&(h=!0,p*=.9,m=c*p);var x=(a-m)/2>>0,v={offset:x-u,size:0};d=o.reduce(function(j,k){var S={item:k.item,position:{offset:v.offset+v.size+u,size:h?p:k.barSize}},_=[].concat(YD(j),[S]);return v=_[_.length-1].position,k.stackList&&k.stackList.length&&k.stackList.forEach(function(C){_.push({item:C,position:v})}),_},f)}else{var b=Jd(r,a,0,!0);a-2*b-(c-1)*u<=0&&(u=0);var y=(a-2*b-(c-1)*u)/c;y>1&&(y>>=0);var w=l===+l?Math.min(y,l):y;d=o.reduce(function(j,k,S){var _=[].concat(YD(j),[{item:k.item,position:{offset:b+(y+u)*S+(y-w)/2,size:w}}]);return k.stackList&&k.stackList.length&&k.stackList.forEach(function(C){_.push({item:C,position:_[_.length-1].position})}),_},f)}return d},uve=function(e,n,r,a){var s=r.children,o=r.width,l=r.margin,c=o-(l.left||0)-(l.right||0),u=cV({children:s,legendWidth:c});if(u){var d=a||{},f=d.width,h=d.height,p=u.align,m=u.verticalAlign,x=u.layout;if((x==="vertical"||x==="horizontal"&&m==="middle")&&p!=="center"&&$e(e[p]))return wr(wr({},e),{},zh({},p,e[p]+(f||0)));if((x==="horizontal"||x==="vertical"&&p==="center")&&m!=="middle"&&$e(e[m]))return wr(wr({},e),{},zh({},m,e[m]+(h||0)))}return e},dve=function(e,n,r){return _t(n)?!0:e==="horizontal"?n==="yAxis":e==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},uV=function(e,n,r,a,s){var o=n.props.children,l=Ws(o,vm).filter(function(u){return dve(a,s,u.props.direction)});if(l&&l.length){var c=l.map(function(u){return u.props.dataKey});return e.reduce(function(u,d){var f=na(d,r);if(_t(f))return u;var h=Array.isArray(f)?[bj(f),Yc(f)]:[f,f],p=c.reduce(function(m,x){var v=na(d,x,0),b=h[0]-Math.abs(Array.isArray(v)?v[0]:v),y=h[1]+Math.abs(Array.isArray(v)?v[1]:v);return[Math.min(b,m[0]),Math.max(y,m[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},fve=function(e,n,r,a,s){var o=n.map(function(l){return uV(e,l,r,s,a)}).filter(function(l){return!_t(l)});return o&&o.length?o.reduce(function(l,c){return[Math.min(l[0],c[0]),Math.max(l[1],c[1])]},[1/0,-1/0]):null},dV=function(e,n,r,a,s){var o=n.map(function(c){var u=c.props.dataKey;return r==="number"&&u&&uV(e,c,u,a)||px(e,u,r,s)});if(r==="number")return o.reduce(function(c,u){return[Math.min(c[0],u[0]),Math.max(c[1],u[1])]},[1/0,-1/0]);var l={};return o.reduce(function(c,u){for(var d=0,f=u.length;d=2?go(l[0]-l[1])*2*u:u,n&&(e.ticks||e.niceTicks)){var d=(e.ticks||e.niceTicks).map(function(f){var h=s?s.indexOf(f):f;return{coordinate:a(h)+u,value:f,offset:u}});return d.filter(function(f){return!fm(f.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(f,h){return{coordinate:a(f)+u,value:f,index:h,offset:u}}):a.ticks&&!r?a.ticks(e.tickCount).map(function(f){return{coordinate:a(f)+u,value:f,offset:u}}):a.domain().map(function(f,h){return{coordinate:a(f)+u,value:s?s[f]:f,index:h,offset:u}})},jS=new WeakMap,Fv=function(e,n){if(typeof n!="function")return e;jS.has(e)||jS.set(e,new WeakMap);var r=jS.get(e);if(r.has(n))return r.get(n);var a=function(){e.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},hve=function(e,n,r){var a=e.scale,s=e.type,o=e.layout,l=e.axisType;if(a==="auto")return o==="radial"&&l==="radiusAxis"?{scale:o0(),realScaleType:"band"}:o==="radial"&&l==="angleAxis"?{scale:ow(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:hx(),realScaleType:"point"}:s==="category"?{scale:o0(),realScaleType:"band"}:{scale:ow(),realScaleType:"linear"};if(Xd(a)){var c="scale".concat(ij(a));return{scale:(VD[c]||hx)(),realScaleType:VD[c]?c:"point"}}return At(a)?{scale:a}:{scale:hx(),realScaleType:"point"}},JD=1e-4,pve=function(e){var n=e.domain();if(!(!n||n.length<=2)){var r=n.length,a=e.range(),s=Math.min(a[0],a[1])-JD,o=Math.max(a[0],a[1])+JD,l=e(n[0]),c=e(n[r-1]);(lo||co)&&e.domain([n[0],n[r-1]])}},mve=function(e,n){if(!e)return null;for(var r=0,a=e.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(e[l][r][0]=s,e[l][r][1]=s+c,s=e[l][r][1]):(e[l][r][0]=o,e[l][r][1]=o+c,o=e[l][r][1])}},yve=function(e){var n=e.length;if(!(n<=0))for(var r=0,a=e[0].length;r=0?(e[o][r][0]=s,e[o][r][1]=s+l,s=e[o][r][1]):(e[o][r][0]=0,e[o][r][1]=0)}},vve={sign:xve,expand:Mie,none:up,silhouette:Die,wiggle:Iie,positive:yve},bve=function(e,n,r){var a=n.map(function(l){return l.props.dataKey}),s=vve[r],o=Rie().keys(a).value(function(l,c){return+na(l,c,0)}).order($C).offset(s);return o(e)},wve=function(e,n,r,a,s,o){if(!e)return null;var l=o?n.reverse():n,c={},u=l.reduce(function(f,h){var p,m=(p=h.type)!==null&&p!==void 0&&p.defaultProps?wr(wr({},h.type.defaultProps),h.props):h.props,x=m.stackId,v=m.hide;if(v)return f;var b=m[r],y=f[b]||{hasStack:!1,stackGroups:{}};if(ea(x)){var w=y.stackGroups[x]||{numericAxisId:r,cateAxisId:a,items:[]};w.items.push(h),y.hasStack=!0,y.stackGroups[x]=w}else y.stackGroups[vf("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[h]};return wr(wr({},f),{},zh({},b,y))},c),d={};return Object.keys(u).reduce(function(f,h){var p=u[h];if(p.hasStack){var m={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(x,v){var b=p.stackGroups[v];return wr(wr({},x),{},zh({},v,{numericAxisId:r,cateAxisId:a,items:b.items,stackedData:bve(e,b.items,s)}))},m)}return wr(wr({},f),{},zh({},h,p))},d)},kve=function(e,n){var r=n.realScaleType,a=n.type,s=n.tickCount,o=n.originalDomain,l=n.allowDecimals,c=r||n.scale;if(c!=="auto"&&c!=="linear")return null;if(s&&a==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=e.domain();if(!u.length)return null;var d=Rye(u,s,l);return e.domain([bj(d),Yc(d)]),{niceTicks:d}}if(s&&a==="number"){var f=e.domain(),h=Mye(f,s,l);return{niceTicks:h}}return null};function vp(t){var e=t.axis,n=t.ticks,r=t.bandSize,a=t.entry,s=t.index,o=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!_t(a[e.dataKey])){var l=L1(n,"value",a[e.dataKey]);if(l)return l.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var c=na(a,_t(o)?e.dataKey:o);return _t(c)?null:e.scale(c)}var ZD=function(e){var n=e.axis,r=e.ticks,a=e.offset,s=e.bandSize,o=e.entry,l=e.index;if(n.type==="category")return r[l]?r[l].coordinate+a:null;var c=na(o,n.dataKey,n.domain[l]);return _t(c)?null:n.scale(c)-s/2+a},jve=function(e){var n=e.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Sve=function(e,n){var r,a=(r=e.type)!==null&&r!==void 0&&r.defaultProps?wr(wr({},e.type.defaultProps),e.props):e.props,s=a.stackId;if(ea(s)){var o=n[s];if(o){var l=o.items.indexOf(e);return l>=0?o.stackedData[l]:null}}return null},_ve=function(e){return e.reduce(function(n,r){return[bj(r.concat([n[0]]).filter($e)),Yc(r.concat([n[1]]).filter($e))]},[1/0,-1/0])},pV=function(e,n,r){return Object.keys(e).reduce(function(a,s){var o=e[s],l=o.stackedData,c=l.reduce(function(u,d){var f=_ve(d.slice(n,r+1));return[Math.min(u[0],f[0]),Math.max(u[1],f[1])]},[1/0,-1/0]);return[Math.min(c[0],a[0]),Math.max(c[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},QD=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,eI=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,hE=function(e,n,r){if(At(e))return e(n,r);if(!Array.isArray(e))return n;var a=[];if($e(e[0]))a[0]=r?e[0]:Math.min(e[0],n[0]);else if(QD.test(e[0])){var s=+QD.exec(e[0])[1];a[0]=n[0]-s}else At(e[0])?a[0]=e[0](n[0]):a[0]=n[0];if($e(e[1]))a[1]=r?e[1]:Math.max(e[1],n[1]);else if(eI.test(e[1])){var o=+eI.exec(e[1])[1];a[1]=n[1]+o}else At(e[1])?a[1]=e[1](n[1]):a[1]=n[1];return a},pw=function(e,n,r){if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!r||a>0)return a}if(e&&n&&n.length>=2){for(var s=c3(n,function(f){return f.coordinate}),o=1/0,l=1,c=s.length;lo&&(u=2*Math.PI-u),{radius:l,angle:Ave(u),angleInRadian:u}},Pve=function(e){var n=e.startAngle,r=e.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),o=Math.min(a,s);return{startAngle:n-o*360,endAngle:r-o*360}},Rve=function(e,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),o=Math.floor(a/360),l=Math.min(s,o);return e+l*360},aI=function(e,n){var r=e.x,a=e.y,s=Tve({x:r,y:a},n),o=s.radius,l=s.angle,c=n.innerRadius,u=n.outerRadius;if(ou)return!1;if(o===0)return!0;var d=Pve(n),f=d.startAngle,h=d.endAngle,p=l,m;if(f<=h){for(;p>h;)p-=360;for(;p=f&&p<=h}else{for(;p>f;)p-=360;for(;p=h&&p<=f}return m?rI(rI({},n),{},{radius:o,angle:Rve(p,n)}):null};function x0(t){"@babel/helpers - typeof";return x0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x0(t)}var Mve=["offset"];function Dve(t){return Fve(t)||Lve(t)||$ve(t)||Ive()}function Ive(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $ve(t,e){if(t){if(typeof t=="string")return pE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pE(t,e)}}function Lve(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Fve(t){if(Array.isArray(t))return pE(t)}function pE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function zve(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function sI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Yr(t){for(var e=1;e=0?1:-1,w,j;a==="insideStart"?(w=p+y*o,j=x):a==="insideEnd"?(w=m-y*o,j=!x):a==="end"&&(w=m+y*o,j=x),j=b<=0?j:!j;var k=Da(u,d,v,w),S=Da(u,d,v,w+(j?1:-1)*359),_="M".concat(k.x,",").concat(k.y,` - A`).concat(v,",").concat(v,",0,1,").concat(j?0:1,`, - `).concat(S.x,",").concat(S.y),C=_t(e.id)?vf("recharts-radial-line-"):e.id;return H.createElement("text",y0({},r,{dominantBaseline:"central",className:Gt("recharts-radial-bar-label",l)}),H.createElement("defs",null,H.createElement("path",{id:C,d:_})),H.createElement("textPath",{xlinkHref:"#".concat(C)},n))},Kve=function(e){var n=e.viewBox,r=e.offset,a=e.position,s=n,o=s.cx,l=s.cy,c=s.innerRadius,u=s.outerRadius,d=s.startAngle,f=s.endAngle,h=(d+f)/2;if(a==="outside"){var p=Da(o,l,u+r,h),m=p.x,x=p.y;return{x:m,y:x,textAnchor:m>=o?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"end"};var v=(c+u)/2,b=Da(o,l,v,h),y=b.x,w=b.y;return{x:y,y:w,textAnchor:"middle",verticalAnchor:"middle"}},Yve=function(e){var n=e.viewBox,r=e.parentViewBox,a=e.offset,s=e.position,o=n,l=o.x,c=o.y,u=o.width,d=o.height,f=d>=0?1:-1,h=f*a,p=f>0?"end":"start",m=f>0?"start":"end",x=u>=0?1:-1,v=x*a,b=x>0?"end":"start",y=x>0?"start":"end";if(s==="top"){var w={x:l+u/2,y:c-f*a,textAnchor:"middle",verticalAnchor:p};return Yr(Yr({},w),r?{height:Math.max(c-r.y,0),width:u}:{})}if(s==="bottom"){var j={x:l+u/2,y:c+d+h,textAnchor:"middle",verticalAnchor:m};return Yr(Yr({},j),r?{height:Math.max(r.y+r.height-(c+d),0),width:u}:{})}if(s==="left"){var k={x:l-v,y:c+d/2,textAnchor:b,verticalAnchor:"middle"};return Yr(Yr({},k),r?{width:Math.max(k.x-r.x,0),height:d}:{})}if(s==="right"){var S={x:l+u+v,y:c+d/2,textAnchor:y,verticalAnchor:"middle"};return Yr(Yr({},S),r?{width:Math.max(r.x+r.width-S.x,0),height:d}:{})}var _=r?{width:u,height:d}:{};return s==="insideLeft"?Yr({x:l+v,y:c+d/2,textAnchor:y,verticalAnchor:"middle"},_):s==="insideRight"?Yr({x:l+u-v,y:c+d/2,textAnchor:b,verticalAnchor:"middle"},_):s==="insideTop"?Yr({x:l+u/2,y:c+h,textAnchor:"middle",verticalAnchor:m},_):s==="insideBottom"?Yr({x:l+u/2,y:c+d-h,textAnchor:"middle",verticalAnchor:p},_):s==="insideTopLeft"?Yr({x:l+v,y:c+h,textAnchor:y,verticalAnchor:m},_):s==="insideTopRight"?Yr({x:l+u-v,y:c+h,textAnchor:b,verticalAnchor:m},_):s==="insideBottomLeft"?Yr({x:l+v,y:c+d-h,textAnchor:y,verticalAnchor:p},_):s==="insideBottomRight"?Yr({x:l+u-v,y:c+d-h,textAnchor:b,verticalAnchor:p},_):lm(s)&&($e(s.x)||vd(s.x))&&($e(s.y)||vd(s.y))?Yr({x:l+Jd(s.x,u),y:c+Jd(s.y,d),textAnchor:"end",verticalAnchor:"end"},_):Yr({x:l+u/2,y:c+d/2,textAnchor:"middle",verticalAnchor:"middle"},_)},Xve=function(e){return"cx"in e&&$e(e.cx)};function Xa(t){var e=t.offset,n=e===void 0?5:e,r=Bve(t,Mve),a=Yr({offset:n},r),s=a.viewBox,o=a.position,l=a.value,c=a.children,u=a.content,d=a.className,f=d===void 0?"":d,h=a.textBreakAll;if(!s||_t(l)&&_t(c)&&!g.isValidElement(u)&&!At(u))return null;if(g.isValidElement(u))return g.cloneElement(u,a);var p;if(At(u)){if(p=g.createElement(u,a),g.isValidElement(p))return p}else p=Hve(a);var m=Xve(s),x=Ct(a,!0);if(m&&(o==="insideStart"||o==="insideEnd"||o==="end"))return qve(a,p,x);var v=m?Kve(a):Yve(a);return H.createElement(Q1,y0({className:Gt("recharts-label",f)},x,v,{breakAll:h}),p)}Xa.displayName="Label";var gV=function(e){var n=e.cx,r=e.cy,a=e.angle,s=e.startAngle,o=e.endAngle,l=e.r,c=e.radius,u=e.innerRadius,d=e.outerRadius,f=e.x,h=e.y,p=e.top,m=e.left,x=e.width,v=e.height,b=e.clockWise,y=e.labelViewBox;if(y)return y;if($e(x)&&$e(v)){if($e(f)&&$e(h))return{x:f,y:h,width:x,height:v};if($e(p)&&$e(m))return{x:p,y:m,width:x,height:v}}return $e(f)&&$e(h)?{x:f,y:h,width:0,height:0}:$e(n)&&$e(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:o||a||0,innerRadius:u||0,outerRadius:d||c||l||0,clockWise:b}:e.viewBox?e.viewBox:{}},Jve=function(e,n){return e?e===!0?H.createElement(Xa,{key:"label-implicit",viewBox:n}):ea(e)?H.createElement(Xa,{key:"label-implicit",viewBox:n,value:e}):g.isValidElement(e)?e.type===Xa?g.cloneElement(e,{key:"label-implicit",viewBox:n}):H.createElement(Xa,{key:"label-implicit",content:e,viewBox:n}):At(e)?H.createElement(Xa,{key:"label-implicit",content:e,viewBox:n}):lm(e)?H.createElement(Xa,y0({viewBox:n},e,{key:"label-implicit"})):null:null},Zve=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var a=e.children,s=gV(e),o=Ws(a,Xa).map(function(c,u){return g.cloneElement(c,{viewBox:n||s,key:"label-".concat(u)})});if(!r)return o;var l=Jve(e.label,n||s);return[l].concat(Dve(o))};Xa.parseViewBox=gV;Xa.renderCallByParent=Zve;function Qve(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ebe=Qve;const tbe=Nn(ebe);function v0(t){"@babel/helpers - typeof";return v0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v0(t)}var nbe=["valueAccessor"],rbe=["data","dataKey","clockWise","id","textBreakAll"];function abe(t){return lbe(t)||obe(t)||ibe(t)||sbe()}function sbe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ibe(t,e){if(t){if(typeof t=="string")return mE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mE(t,e)}}function obe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function lbe(t){if(Array.isArray(t))return mE(t)}function mE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function fbe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var hbe=function(e){return Array.isArray(e.value)?tbe(e.value):e.value};function fl(t){var e=t.valueAccessor,n=e===void 0?hbe:e,r=lI(t,nbe),a=r.data,s=r.dataKey,o=r.clockWise,l=r.id,c=r.textBreakAll,u=lI(r,rbe);return!a||!a.length?null:H.createElement(cn,{className:"recharts-label-list"},a.map(function(d,f){var h=_t(s)?n(d,f):na(d&&d.payload,s),p=_t(l)?{}:{id:"".concat(l,"-").concat(f)};return H.createElement(Xa,gw({},Ct(d,!0),u,p,{parentViewBox:d.parentViewBox,value:h,textBreakAll:c,viewBox:Xa.parseViewBox(_t(o)?d:oI(oI({},d),{},{clockWise:o})),key:"label-".concat(f),index:f}))}))}fl.displayName="LabelList";function pbe(t,e){return t?t===!0?H.createElement(fl,{key:"labelList-implicit",data:e}):H.isValidElement(t)||At(t)?H.createElement(fl,{key:"labelList-implicit",data:e,content:t}):lm(t)?H.createElement(fl,gw({data:e},t,{key:"labelList-implicit"})):null:null}function mbe(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var r=t.children,a=Ws(r,fl).map(function(o,l){return g.cloneElement(o,{data:e,key:"labelList-".concat(l)})});if(!n)return a;var s=pbe(t.label,e);return[s].concat(abe(a))}fl.renderCallByParent=mbe;function b0(t){"@babel/helpers - typeof";return b0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b0(t)}function gE(){return gE=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(o>u),`, - `).concat(f.x,",").concat(f.y,` - `);if(a>0){var p=Da(n,r,a,o),m=Da(n,r,a,u);h+="L ".concat(m.x,",").concat(m.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(c)>180),",").concat(+(o<=u),`, - `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(n,",").concat(r," Z");return h},bbe=function(e){var n=e.cx,r=e.cy,a=e.innerRadius,s=e.outerRadius,o=e.cornerRadius,l=e.forceCornerRadius,c=e.cornerIsExternal,u=e.startAngle,d=e.endAngle,f=go(d-u),h=Bv({cx:n,cy:r,radius:s,angle:u,sign:f,cornerRadius:o,cornerIsExternal:c}),p=h.circleTangency,m=h.lineTangency,x=h.theta,v=Bv({cx:n,cy:r,radius:s,angle:d,sign:-f,cornerRadius:o,cornerIsExternal:c}),b=v.circleTangency,y=v.lineTangency,w=v.theta,j=c?Math.abs(u-d):Math.abs(u-d)-x-w;if(j<0)return l?"M ".concat(m.x,",").concat(m.y,` - a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 - a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 - `):xV({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:u,endAngle:d});var k="M ".concat(m.x,",").concat(m.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,` - A`).concat(s,",").concat(s,",0,").concat(+(j>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(y.x,",").concat(y.y,` - `);if(a>0){var S=Bv({cx:n,cy:r,radius:a,angle:u,sign:f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),_=S.circleTangency,C=S.lineTangency,E=S.theta,P=Bv({cx:n,cy:r,radius:a,angle:d,sign:-f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),R=P.circleTangency,A=P.lineTangency,T=P.theta,D=c?Math.abs(u-d):Math.abs(u-d)-E-T;if(D<0&&o===0)return"".concat(k,"L").concat(n,",").concat(r,"Z");k+="L".concat(A.x,",").concat(A.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(R.x,",").concat(R.y,` - A`).concat(a,",").concat(a,",0,").concat(+(D>180),",").concat(+(f>0),",").concat(_.x,",").concat(_.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(C.x,",").concat(C.y,"Z")}else k+="L".concat(n,",").concat(r,"Z");return k},wbe={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},yV=function(e){var n=uI(uI({},wbe),e),r=n.cx,a=n.cy,s=n.innerRadius,o=n.outerRadius,l=n.cornerRadius,c=n.forceCornerRadius,u=n.cornerIsExternal,d=n.startAngle,f=n.endAngle,h=n.className;if(o0&&Math.abs(d-f)<360?v=bbe({cx:r,cy:a,innerRadius:s,outerRadius:o,cornerRadius:Math.min(x,m/2),forceCornerRadius:c,cornerIsExternal:u,startAngle:d,endAngle:f}):v=xV({cx:r,cy:a,innerRadius:s,outerRadius:o,startAngle:d,endAngle:f}),H.createElement("path",gE({},Ct(n,!0),{className:p,d:v,role:"img"}))};function w0(t){"@babel/helpers - typeof";return w0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w0(t)}function xE(){return xE=Object.assign?Object.assign.bind():function(t){for(var e=1;eMbe.call(t,e));function kf(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const $be="__v",Lbe="__o",Fbe="_owner",{getOwnPropertyDescriptor:mI,keys:gI}=Object;function Bbe(t,e){return t.byteLength===e.byteLength&&xw(new Uint8Array(t),new Uint8Array(e))}function zbe(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function Ube(t,e){return t.byteLength===e.byteLength&&xw(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function Vbe(t,e){return kf(t.getTime(),e.getTime())}function Wbe(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function Hbe(t,e){return t===e}function xI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.entries();let o,l,c=0;for(;(o=s.next())&&!o.done;){const u=e.entries();let d=!1,f=0;for(;(l=u.next())&&!l.done;){if(a[f]){f++;continue}const h=o.value,p=l.value;if(n.equals(h[0],p[0],c,f,t,e,n)&&n.equals(h[1],p[1],h[0],p[0],t,e,n)){d=a[f]=!0;break}f++}if(!d)return!1;c++}return!0}const Gbe=kf;function qbe(t,e,n){const r=gI(t);let a=r.length;if(gI(e).length!==a)return!1;for(;a-- >0;)if(!kV(t,e,n,r[a]))return!1;return!0}function hg(t,e,n){const r=pI(t);let a=r.length;if(pI(e).length!==a)return!1;let s,o,l;for(;a-- >0;)if(s=r[a],!kV(t,e,n,s)||(o=mI(t,s),l=mI(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function Kbe(t,e){return kf(t.valueOf(),e.valueOf())}function Ybe(t,e){return t.source===e.source&&t.flags===e.flags}function yI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const c=e.values();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(!a[d]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function xw(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function Xbe(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function kV(t,e,n,r){return(r===Fbe||r===Lbe||r===$be)&&(t.$$typeof||e.$$typeof)?!0:Ibe(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const Jbe="[object ArrayBuffer]",Zbe="[object Arguments]",Qbe="[object Boolean]",e1e="[object DataView]",t1e="[object Date]",n1e="[object Error]",r1e="[object Map]",a1e="[object Number]",s1e="[object Object]",i1e="[object RegExp]",o1e="[object Set]",l1e="[object String]",c1e={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},u1e="[object URL]",d1e=Object.prototype.toString;function f1e({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:a,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:c,arePrimitiveWrappersEqual:u,areRegExpsEqual:d,areSetsEqual:f,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:m}){return function(v,b,y){if(v===b)return!0;if(v==null||b==null)return!1;const w=typeof v;if(w!==typeof b)return!1;if(w!=="object")return w==="number"?l(v,b,y):w==="function"?s(v,b,y):!1;const j=v.constructor;if(j!==b.constructor)return!1;if(j===Object)return c(v,b,y);if(Array.isArray(v))return e(v,b,y);if(j===Date)return r(v,b,y);if(j===RegExp)return d(v,b,y);if(j===Map)return o(v,b,y);if(j===Set)return f(v,b,y);const k=d1e.call(v);if(k===t1e)return r(v,b,y);if(k===i1e)return d(v,b,y);if(k===r1e)return o(v,b,y);if(k===o1e)return f(v,b,y);if(k===s1e)return typeof v.then!="function"&&typeof b.then!="function"&&c(v,b,y);if(k===u1e)return p(v,b,y);if(k===n1e)return a(v,b,y);if(k===Zbe)return c(v,b,y);if(c1e[k])return h(v,b,y);if(k===Jbe)return t(v,b,y);if(k===e1e)return n(v,b,y);if(k===Qbe||k===a1e||k===l1e)return u(v,b,y);if(m){let S=m[k];if(!S){const _=Dbe(v);_&&(S=m[_])}if(S)return S(v,b,y)}return!1}}function h1e({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:Bbe,areArraysEqual:n?hg:zbe,areDataViewsEqual:Ube,areDatesEqual:Vbe,areErrorsEqual:Wbe,areFunctionsEqual:Hbe,areMapsEqual:n?SS(xI,hg):xI,areNumbersEqual:Gbe,areObjectsEqual:n?hg:qbe,arePrimitiveWrappersEqual:Kbe,areRegExpsEqual:Ybe,areSetsEqual:n?SS(yI,hg):yI,areTypedArraysEqual:n?SS(xw,hg):xw,areUrlsEqual:Xbe,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const a=Uv(r.areArraysEqual),s=Uv(r.areMapsEqual),o=Uv(r.areObjectsEqual),l=Uv(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:a,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function p1e(t){return function(e,n,r,a,s,o,l){return t(e,n,l)}}function m1e({circular:t,comparator:e,createState:n,equals:r,strict:a}){if(n)return function(l,c){const{cache:u=t?new WeakMap:void 0,meta:d}=n();return e(l,c,{cache:u,equals:r,meta:d,strict:a})};if(t)return function(l,c){return e(l,c,{cache:new WeakMap,equals:r,meta:void 0,strict:a})};const s={cache:void 0,equals:r,meta:void 0,strict:a};return function(l,c){return e(l,c,s)}}const g1e=Hu();Hu({strict:!0});Hu({circular:!0});Hu({circular:!0,strict:!0});Hu({createInternalComparator:()=>kf});Hu({strict:!0,createInternalComparator:()=>kf});Hu({circular:!0,createInternalComparator:()=>kf});Hu({circular:!0,createInternalComparator:()=>kf,strict:!0});function Hu(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:a=!1}=t,s=h1e(t),o=f1e(s),l=n?n(o):p1e(o);return m1e({circular:e,comparator:o,createState:r,equals:l,strict:a})}function x1e(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function vI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>e?(t(s),n=-1):x1e(a)};requestAnimationFrame(r)}function yE(t){"@babel/helpers - typeof";return yE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yE(t)}function y1e(t){return k1e(t)||w1e(t)||b1e(t)||v1e()}function v1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function b1e(t,e){if(t){if(typeof t=="string")return bI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bI(t,e)}}function bI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?1:b<0?0:b},x=function(b){for(var y=b>1?1:b,w=y,j=0;j<8;++j){var k=f(w)-y,S=p(w);if(Math.abs(k-y)0&&arguments[0]!==void 0?arguments[0]:{},n=e.stiff,r=n===void 0?100:n,a=e.damping,s=a===void 0?8:a,o=e.dt,l=o===void 0?17:o,c=function(d,f,h){var p=-(d-f)*r,m=h*s,x=h+(p-m)*l/1e3,v=h*l/1e3+d;return Math.abs(v-f)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Q1e(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,s;for(s=0;s=0)&&(n[a]=t[a]);return n}function _S(t){return rwe(t)||nwe(t)||twe(t)||ewe()}function ewe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function twe(t,e){if(t){if(typeof t=="string")return jE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jE(t,e)}}function nwe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function rwe(t){if(Array.isArray(t))return jE(t)}function jE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function bw(t){return bw=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bw(t)}var jo=function(t){lwe(n,t);var e=cwe(n);function n(r,a){var s;awe(this,n),s=e.call(this,r,a);var o=s.props,l=o.isActive,c=o.attributeName,u=o.from,d=o.to,f=o.steps,h=o.children,p=o.duration;if(s.handleStyleChange=s.handleStyleChange.bind(NE(s)),s.changeStyle=s.changeStyle.bind(NE(s)),!l||p<=0)return s.state={style:{}},typeof h=="function"&&(s.state={style:d}),_E(s);if(f&&f.length)s.state={style:f[0].style};else if(u){if(typeof h=="function")return s.state={style:u},_E(s);s.state={style:c?Lg({},c,u):u}}else s.state={style:{}};return s}return iwe(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,o=a.canBegin;this.mounted=!0,!(!s||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,o=s.isActive,l=s.canBegin,c=s.attributeName,u=s.shouldReAnimate,d=s.to,f=s.from,h=this.state.style;if(l){if(!o){var p={style:c?Lg({},c,d):d};this.state&&h&&(c&&h[c]!==d||!c&&h!==d)&&this.setState(p);return}if(!(g1e(a.to,d)&&a.canBegin&&a.isActive)){var m=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var x=m||u?f:a.to;if(this.state&&h){var v={style:c?Lg({},c,x):x};(c&&h[c]!==x||!c&&h!==x)&&this.setState(v)}this.runAnimation(ro(ro({},this.props),{},{from:x,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,o=a.from,l=a.to,c=a.duration,u=a.easing,d=a.begin,f=a.onAnimationEnd,h=a.onAnimationStart,p=X1e(o,l,F1e(u),c,this.changeStyle),m=function(){s.stopJSAnimation=p()};this.manager.start([h,d,m,c,f])}},{key:"runStepAnimation",value:function(a){var s=this,o=a.steps,l=a.begin,c=a.onAnimationStart,u=o[0],d=u.style,f=u.duration,h=f===void 0?0:f,p=function(x,v,b){if(b===0)return x;var y=v.duration,w=v.easing,j=w===void 0?"ease":w,k=v.style,S=v.properties,_=v.onAnimationEnd,C=b>0?o[b-1]:v,E=S||Object.keys(k);if(typeof j=="function"||j==="spring")return[].concat(_S(x),[s.runJSAnimation.bind(s,{from:C.style,to:k,duration:y,easing:j}),y]);var P=jI(E,y,j),R=ro(ro(ro({},C.style),k),{},{transition:P});return[].concat(_S(x),[R,y,_]).filter(C1e)};return this.manager.start([c].concat(_S(o.reduce(p,[d,Math.max(h,l)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=j1e());var s=a.begin,o=a.duration,l=a.attributeName,c=a.to,u=a.easing,d=a.onAnimationStart,f=a.onAnimationEnd,h=a.steps,p=a.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(a);return}if(h.length>1){this.runStepAnimation(a);return}var x=l?Lg({},l,c):c,v=jI(Object.keys(x),o,u);m.start([d,s,ro(ro({},x),{},{transition:v}),o,f])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var o=a.duration;a.attributeName,a.easing;var l=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var c=Z1e(a,J1e),u=g.Children.count(s),d=this.state.style;if(typeof s=="function")return s(d);if(!l||u===0||o<=0)return s;var f=function(p){var m=p.props,x=m.style,v=x===void 0?{}:x,b=m.className,y=g.cloneElement(p,ro(ro({},c),{},{style:ro(ro({},v),d),className:b}));return y};return u===1?f(g.Children.only(s)):H.createElement("div",null,g.Children.map(s,function(h){return f(h)}))}}]),n}(g.PureComponent);jo.displayName="Animate";jo.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};jo.propTypes={from:fn.oneOfType([fn.object,fn.string]),to:fn.oneOfType([fn.object,fn.string]),attributeName:fn.string,duration:fn.number,begin:fn.number,easing:fn.oneOfType([fn.string,fn.func]),steps:fn.arrayOf(fn.shape({duration:fn.number.isRequired,style:fn.object.isRequired,easing:fn.oneOfType([fn.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),fn.func]),properties:fn.arrayOf("string"),onAnimationEnd:fn.func})),children:fn.oneOfType([fn.node,fn.func]),isActive:fn.bool,canBegin:fn.bool,onAnimationEnd:fn.func,shouldReAnimate:fn.bool,onAnimationStart:fn.func,onAnimationReStart:fn.func};function S0(){return S0=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1,c=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,d;if(o>0&&s instanceof Array){for(var f=[0,0,0,0],h=0,p=4;ho?o:s[h];d="M".concat(e,",").concat(n+l*f[0]),f[0]>0&&(d+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(u,",").concat(e+c*f[0],",").concat(n)),d+="L ".concat(e+r-c*f[1],",").concat(n),f[1]>0&&(d+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(u,`, - `).concat(e+r,",").concat(n+l*f[1])),d+="L ".concat(e+r,",").concat(n+a-l*f[2]),f[2]>0&&(d+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(u,`, - `).concat(e+r-c*f[2],",").concat(n+a)),d+="L ".concat(e+c*f[3],",").concat(n+a),f[3]>0&&(d+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(u,`, - `).concat(e,",").concat(n+a-l*f[3])),d+="Z"}else if(o>0&&s===+s&&s>0){var m=Math.min(o,s);d="M ".concat(e,",").concat(n+l*m,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+c*m,",").concat(n,` - L `).concat(e+r-c*m,",").concat(n,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r,",").concat(n+l*m,` - L `).concat(e+r,",").concat(n+a-l*m,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r-c*m,",").concat(n+a,` - L `).concat(e+c*m,",").concat(n+a,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e,",").concat(n+a-l*m," Z")}else d="M ".concat(e,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return d},bwe=function(e,n){if(!e||!n)return!1;var r=e.x,a=e.y,s=n.x,o=n.y,l=n.width,c=n.height;if(Math.abs(l)>0&&Math.abs(c)>0){var u=Math.min(s,s+l),d=Math.max(s,s+l),f=Math.min(o,o+c),h=Math.max(o,o+c);return r>=u&&r<=d&&a>=f&&a<=h}return!1},wwe={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},I3=function(e){var n=TI(TI({},wwe),e),r=g.useRef(),a=g.useState(-1),s=fwe(a,2),o=s[0],l=s[1];g.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var j=r.current.getTotalLength();j&&l(j)}catch{}},[]);var c=n.x,u=n.y,d=n.width,f=n.height,h=n.radius,p=n.className,m=n.animationEasing,x=n.animationDuration,v=n.animationBegin,b=n.isAnimationActive,y=n.isUpdateAnimationActive;if(c!==+c||u!==+u||d!==+d||f!==+f||d===0||f===0)return null;var w=Gt("recharts-rectangle",p);return y?H.createElement(jo,{canBegin:o>0,from:{width:d,height:f,x:c,y:u},to:{width:d,height:f,x:c,y:u},duration:x,animationEasing:m,isActive:y},function(j){var k=j.width,S=j.height,_=j.x,C=j.y;return H.createElement(jo,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:x,isActive:b,easing:m},H.createElement("path",ww({},Ct(n,!0),{className:w,d:PI(_,C,k,S,h),ref:r})))}):H.createElement("path",ww({},Ct(n,!0),{className:w,d:PI(c,u,d,f,h)}))};function CE(){return CE=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ewe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var Awe=function(e,n,r,a,s,o){return"M".concat(e,",").concat(s,"v").concat(a,"M").concat(o,",").concat(n,"h").concat(r)},Owe=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.top,l=o===void 0?0:o,c=e.left,u=c===void 0?0:c,d=e.width,f=d===void 0?0:d,h=e.height,p=h===void 0?0:h,m=e.className,x=Cwe(e,kwe),v=jwe({x:r,y:s,top:l,left:u,width:f,height:p},x);return!$e(r)||!$e(s)||!$e(f)||!$e(p)||!$e(l)||!$e(u)?null:H.createElement("path",EE({},Ct(v,!0),{className:Gt("recharts-cross",m),d:Awe(r,s,f,p,l,u)}))},Twe=W7,Pwe=Twe(Object.getPrototypeOf,Object),Rwe=Pwe,Mwe=bc,Dwe=Rwe,Iwe=wc,$we="[object Object]",Lwe=Function.prototype,Fwe=Object.prototype,AV=Lwe.toString,Bwe=Fwe.hasOwnProperty,zwe=AV.call(Object);function Uwe(t){if(!Iwe(t)||Mwe(t)!=$we)return!1;var e=Dwe(t);if(e===null)return!0;var n=Bwe.call(e,"constructor")&&e.constructor;return typeof n=="function"&&n instanceof n&&AV.call(n)==zwe}var Vwe=Uwe;const Wwe=Nn(Vwe);var Hwe=bc,Gwe=wc,qwe="[object Boolean]";function Kwe(t){return t===!0||t===!1||Gwe(t)&&Hwe(t)==qwe}var Ywe=Kwe;const Xwe=Nn(Ywe);function C0(t){"@babel/helpers - typeof";return C0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C0(t)}function kw(){return kw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0,from:{upperWidth:0,lowerWidth:0,height:h,x:c,y:u},to:{upperWidth:d,lowerWidth:f,height:h,x:c,y:u},duration:x,animationEasing:m,isActive:b},function(w){var j=w.upperWidth,k=w.lowerWidth,S=w.height,_=w.x,C=w.y;return H.createElement(jo,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:x,easing:m},H.createElement("path",kw({},Ct(n,!0),{className:y,d:$I(_,C,j,k,S),ref:r})))}):H.createElement("g",null,H.createElement("path",kw({},Ct(n,!0),{className:y,d:$I(c,u,d,f,h)})))},oke=["option","shapeType","propTransformer","activeClassName","isActive"];function E0(t){"@babel/helpers - typeof";return E0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E0(t)}function lke(t,e){if(t==null)return{};var n=cke(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function cke(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function LI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function jw(t){for(var e=1;e0&&r.handleDrag(a.changedTouches[0])}),si(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,o=a.onDragEnd,l=a.startIndex;o==null||o({endIndex:s,startIndex:l})}),r.detachDragEndListener()}),si(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),si(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),si(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),si(r,"handleSlideDragStart",function(a){var s=HI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return Gke(e,t),Uke(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,o=this.state.scaleValues,l=this.props,c=l.gap,u=l.data,d=u.length-1,f=Math.min(a,s),h=Math.max(a,s),p=e.getIndexInRange(o,f),m=e.getIndexInRange(o,h);return{startIndex:p-p%c,endIndex:m===d?d:m-m%c}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,o=a.tickFormatter,l=a.dataKey,c=na(s[r],l,r);return At(o)?o(c,r):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,o=a.startX,l=a.endX,c=this.props,u=c.x,d=c.width,f=c.travellerWidth,h=c.startIndex,p=c.endIndex,m=c.onChange,x=r.pageX-s;x>0?x=Math.min(x,u+d-f-l,u+d-f-o):x<0&&(x=Math.max(x,u-o,u-l));var v=this.getIndex({startX:o+x,endX:l+x});(v.startIndex!==h||v.endIndex!==p)&&m&&m(v),this.setState({startX:o+x,endX:l+x,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=HI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,o=a.movingTravellerId,l=a.endX,c=a.startX,u=this.state[o],d=this.props,f=d.x,h=d.width,p=d.travellerWidth,m=d.onChange,x=d.gap,v=d.data,b={startX:this.state.startX,endX:this.state.endX},y=r.pageX-s;y>0?y=Math.min(y,f+h-p-u):y<0&&(y=Math.max(y,f-u)),b[o]=u+y;var w=this.getIndex(b),j=w.startIndex,k=w.endIndex,S=function(){var C=v.length-1;return o==="startX"&&(l>c?j%x===0:k%x===0)||lc?k%x===0:j%x===0)||l>c&&k===C};this.setState(si(si({},o,u+y),"brushMoveStartX",r.pageX),function(){m&&S()&&m(w)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,o=this.state,l=o.scaleValues,c=o.startX,u=o.endX,d=this.state[a],f=l.indexOf(d);if(f!==-1){var h=f+r;if(!(h===-1||h>=l.length)){var p=l[h];a==="startX"&&p>=u||a==="endX"&&p<=c||this.setState(si({},a,p),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.fill,u=r.stroke;return H.createElement("rect",{stroke:u,fill:c,x:a,y:s,width:o,height:l})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.data,u=r.children,d=r.padding,f=g.Children.only(u);return f?H.cloneElement(f,{x:a,y:s,width:o,height:l,margin:d,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,o,l=this,c=this.props,u=c.y,d=c.travellerWidth,f=c.height,h=c.traveller,p=c.ariaLabel,m=c.data,x=c.startIndex,v=c.endIndex,b=Math.max(r,this.props.x),y=CS(CS({},Ct(this.props,!1)),{},{x:b,y:u,width:d,height:f}),w=p||"Min value: ".concat((s=m[x])===null||s===void 0?void 0:s.name,", Max value: ").concat((o=m[v])===null||o===void 0?void 0:o.name);return H.createElement(cn,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(k){["ArrowLeft","ArrowRight"].includes(k.key)&&(k.preventDefault(),k.stopPropagation(),l.handleTravellerMoveKeyboard(k.key==="ArrowRight"?1:-1,a))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(h,y))}},{key:"renderSlide",value:function(r,a){var s=this.props,o=s.y,l=s.height,c=s.stroke,u=s.travellerWidth,d=Math.min(r,a)+u,f=Math.max(Math.abs(a-r)-u,0);return H.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:d,y:o,width:f,height:l})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,o=r.y,l=r.height,c=r.travellerWidth,u=r.stroke,d=this.state,f=d.startX,h=d.endX,p=5,m={pointerEvents:"none",fill:u};return H.createElement(cn,{className:"recharts-brush-texts"},H.createElement(Q1,_w({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,h)-p,y:o+l/2},m),this.getTextOfTick(a)),H.createElement(Q1,_w({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,h)+c+p,y:o+l/2},m),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,o=r.children,l=r.x,c=r.y,u=r.width,d=r.height,f=r.alwaysShowText,h=this.state,p=h.startX,m=h.endX,x=h.isTextActive,v=h.isSlideMoving,b=h.isTravellerMoving,y=h.isTravellerFocused;if(!a||!a.length||!$e(l)||!$e(c)||!$e(u)||!$e(d)||u<=0||d<=0)return null;var w=Gt("recharts-brush",s),j=H.Children.count(o)===1,k=Bke("userSelect","none");return H.createElement(cn,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:k},this.renderBackground(),j&&this.renderPanorama(),this.renderSlide(p,m),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(m,"endX"),(x||v||b||y||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,o=r.width,l=r.height,c=r.stroke,u=Math.floor(s+l/2)-1;return H.createElement(H.Fragment,null,H.createElement("rect",{x:a,y:s,width:o,height:l,fill:c,stroke:"none"}),H.createElement("line",{x1:a+1,y1:u,x2:a+o-1,y2:u,fill:"none",stroke:"#fff"}),H.createElement("line",{x1:a+1,y1:u+2,x2:a+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return H.isValidElement(r)?s=H.cloneElement(r,a):At(r)?s=r(a):s=e.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,o=r.width,l=r.x,c=r.travellerWidth,u=r.updateId,d=r.startIndex,f=r.endIndex;if(s!==a.prevData||u!==a.prevUpdateId)return CS({prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o},s&&s.length?Kke({data:s,width:o,x:l,travellerWidth:c,startIndex:d,endIndex:f}):{scale:null,scaleValues:null});if(a.scale&&(o!==a.prevWidth||l!==a.prevX||c!==a.prevTravellerWidth)){a.scale.range([l,l+o-c]);var h=a.scale.domain().map(function(p){return a.scale(p)});return{prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,o=0,l=s-1;l-o>1;){var c=Math.floor((o+l)/2);r[c]>a?l=c:o=c}return a>=r[l]?l:o}}])}(g.PureComponent);si(kp,"displayName","Brush");si(kp,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Yke=l3;function Xke(t,e){var n;return Yke(t,function(r,a,s){return n=e(r,a,s),!n}),!!n}var Jke=Xke,Zke=I7,Qke=zu,eje=Jke,tje=Ks,nje=hj;function rje(t,e,n){var r=tje(t)?Zke:eje;return n&&nje(t,e,n)&&(e=void 0),r(t,Qke(e))}var aje=rje;const sje=Nn(aje);var hl=function(e,n){var r=e.alwaysShow,a=e.ifOverflow;return r&&(a="extendDomain"),a===n},GI=aU;function ije(t,e,n){e=="__proto__"&&GI?GI(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var oje=ije,lje=oje,cje=nU,uje=zu;function dje(t,e){var n={};return e=uje(e),cje(t,function(r,a,s){lje(n,a,e(r,a,s))}),n}var fje=dje;const hje=Nn(fje);function pje(t,e){for(var n=-1,r=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Tje(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Pje(t,e){var n=t.x,r=t.y,a=Oje(t,Nje),s="".concat(n),o=parseInt(s,10),l="".concat(r),c=parseInt(l,10),u="".concat(e.height||a.height),d=parseInt(u,10),f="".concat(e.width||a.width),h=parseInt(f,10);return pg(pg(pg(pg(pg({},e),a),o?{x:o}:{}),c?{y:c}:{}),{},{height:d,width:h,name:e.name,radius:e.radius})}function KI(t){return H.createElement(AE,TE({shapeType:"rectangle",propTransformer:Pje,activeClassName:"recharts-active-bar"},t))}var Rje=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof e=="number")return e;var s=$e(r)||Gae(r);return s?e(r,a):(s||ef(),n)}},Mje=["value","background"],DV;function jp(t){"@babel/helpers - typeof";return jp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jp(t)}function Dje(t,e){if(t==null)return{};var n=Ije(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ije(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Cw(){return Cw=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(L)0&&Math.abs(D)0&&(T=Math.min((M||0)-(D[B-1]||0),T))}),Number.isFinite(T)){var L=T/A,X=x.layout==="vertical"?r.height:r.width;if(x.padding==="gap"&&(_=L*X/2),x.padding==="no-gap"){var J=Jd(e.barCategoryGap,L*X),U=L*X/2;_=U-J-(U-J)/X*J}}}a==="xAxis"?C=[r.left+(w.left||0)+(_||0),r.left+r.width-(w.right||0)-(_||0)]:a==="yAxis"?C=c==="horizontal"?[r.top+r.height-(w.bottom||0),r.top+(w.top||0)]:[r.top+(w.top||0)+(_||0),r.top+r.height-(w.bottom||0)-(_||0)]:C=x.range,k&&(C=[C[1],C[0]]);var Y=hve(x,s,h),W=Y.scale,G=Y.realScaleType;W.domain(b).range(C),pve(W);var I=kve(W,co(co({},x),{},{realScaleType:G}));a==="xAxis"?(R=v==="top"&&!j||v==="bottom"&&j,E=r.left,P=f[S]-R*x.height):a==="yAxis"&&(R=v==="left"&&!j||v==="right"&&j,E=f[S]-R*x.width,P=r.top);var q=co(co(co({},x),I),{},{realScaleType:G,x:E,y:P,scale:W,width:a==="xAxis"?r.width:x.width,height:a==="yAxis"?r.height:x.height});return q.bandSize=pw(q,I),!x.hide&&a==="xAxis"?f[S]+=(R?-1:1)*q.height:x.hide||(f[S]+=(R?-1:1)*q.width),co(co({},p),{},Nj({},m,q))},{})},FV=function(e,n){var r=e.x,a=e.y,s=n.x,o=n.y;return{x:Math.min(r,s),y:Math.min(a,o),width:Math.abs(s-r),height:Math.abs(o-a)}},qje=function(e){var n=e.x1,r=e.y1,a=e.x2,s=e.y2;return FV({x:n,y:r},{x:a,y:s})},BV=function(){function t(e){Wje(this,t),this.scale=e}return Hje(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+o}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(n)+l}default:return this.scale(n)}if(a){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+c}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new t(n)}}])}();Nj(BV,"EPS",1e-4);var L3=function(e){var n=Object.keys(e).reduce(function(r,a){return co(co({},r),{},Nj({},a,BV.create(e[a])))},{});return co(co({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=s.bandAware,l=s.position;return hje(a,function(c,u){return n[u].apply(c,{bandAware:o,position:l})})},isInRange:function(a){return MV(a,function(s,o){return n[o].isInRange(s)})}})};function Kje(t){return(t%180+180)%180}var Yje=function(e){var n=e.width,r=e.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=Kje(a),o=s*Math.PI/180,l=Math.atan(r/n),c=o>l&&o-1?a[s?e[o]:o]:void 0}}var e2e=Qje,t2e=OV;function n2e(t){var e=t2e(t),n=e%1;return e===e?n?e-n:e:0}var r2e=n2e,a2e=X7,s2e=zu,i2e=r2e,o2e=Math.max;function l2e(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var a=n==null?0:i2e(n);return a<0&&(a=o2e(r+a,0)),a2e(t,s2e(e),a)}var c2e=l2e,u2e=e2e,d2e=c2e,f2e=u2e(d2e),h2e=f2e;const p2e=Nn(h2e);var m2e=Zre(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),F3=g.createContext(void 0),B3=g.createContext(void 0),zV=g.createContext(void 0),UV=g.createContext({}),VV=g.createContext(void 0),WV=g.createContext(0),HV=g.createContext(0),QI=function(e){var n=e.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,o=e.clipPathId,l=e.children,c=e.width,u=e.height,d=m2e(s);return H.createElement(F3.Provider,{value:r},H.createElement(B3.Provider,{value:a},H.createElement(UV.Provider,{value:s},H.createElement(zV.Provider,{value:d},H.createElement(VV.Provider,{value:o},H.createElement(WV.Provider,{value:u},H.createElement(HV.Provider,{value:c},l)))))))},g2e=function(){return g.useContext(VV)},GV=function(e){var n=g.useContext(F3);n==null&&ef();var r=n[e];return r==null&&ef(),r},x2e=function(){var e=g.useContext(F3);return Vc(e)},y2e=function(){var e=g.useContext(B3),n=p2e(e,function(r){return MV(r.domain,Number.isFinite)});return n||Vc(e)},qV=function(e){var n=g.useContext(B3);n==null&&ef();var r=n[e];return r==null&&ef(),r},v2e=function(){var e=g.useContext(zV);return e},b2e=function(){return g.useContext(UV)},z3=function(){return g.useContext(HV)},U3=function(){return g.useContext(WV)};function Sp(t){"@babel/helpers - typeof";return Sp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Sp(t)}function w2e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function k2e(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt*a)return!1;var s=n();return t*(e-t*s/2-r)>=0&&t*(e+t*s/2-a)<=0}function rSe(t,e){return eW(t,e+1)}function aSe(t,e,n,r,a){for(var s=(r||[]).slice(),o=e.start,l=e.end,c=0,u=1,d=o,f=function(){var m=r==null?void 0:r[c];if(m===void 0)return{v:eW(r,u)};var x=c,v,b=function(){return v===void 0&&(v=n(m,x)),v},y=m.coordinate,w=c===0||Pw(t,y,b,d,l);w||(c=0,d=o,u+=1),w&&(d=y+t*(b()/2+a),c+=u)},h;u<=s.length;)if(h=f(),h)return h.v;return[]}function R0(t){"@babel/helpers - typeof";return R0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R0(t)}function o$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Ga(t){for(var e=1;e0?p.coordinate-v*t:p.coordinate})}else s[h]=p=Ga(Ga({},p),{},{tickCoord:p.coordinate});var b=Pw(t,p.tickCoord,x,l,c);b&&(c=p.tickCoord-t*(x()/2+a),s[h]=Ga(Ga({},p),{},{isShow:!0}))},d=o-1;d>=0;d--)u(d);return s}function cSe(t,e,n,r,a,s){var o=(r||[]).slice(),l=o.length,c=e.start,u=e.end;if(s){var d=r[l-1],f=n(d,l-1),h=t*(d.coordinate+t*f/2-u);o[l-1]=d=Ga(Ga({},d),{},{tickCoord:h>0?d.coordinate-h*t:d.coordinate});var p=Pw(t,d.tickCoord,function(){return f},c,u);p&&(u=d.tickCoord-t*(f/2+a),o[l-1]=Ga(Ga({},d),{},{isShow:!0}))}for(var m=s?l-1:l,x=function(y){var w=o[y],j,k=function(){return j===void 0&&(j=n(w,y)),j};if(y===0){var S=t*(w.coordinate-t*k()/2-c);o[y]=w=Ga(Ga({},w),{},{tickCoord:S<0?w.coordinate-S*t:w.coordinate})}else o[y]=w=Ga(Ga({},w),{},{tickCoord:w.coordinate});var _=Pw(t,w.tickCoord,k,c,u);_&&(c=w.tickCoord+t*(k()/2+a),o[y]=Ga(Ga({},w),{},{isShow:!0}))},v=0;v=2?go(a[1].coordinate-a[0].coordinate):1,b=nSe(s,v,p);return c==="equidistantPreserveStart"?aSe(v,b,x,a,o):(c==="preserveStart"||c==="preserveStartEnd"?h=cSe(v,b,x,a,o,c==="preserveStartEnd"):h=lSe(v,b,x,a,o),h.filter(function(y){return y.isShow}))}var uSe=["viewBox"],dSe=["viewBox"],fSe=["ticks"];function Cp(t){"@babel/helpers - typeof";return Cp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Cp(t)}function wh(){return wh=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function hSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function pSe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c$(t,e){for(var n=0;n0?c(this.props):c(p)),o<=0||l<=0||!m||!m.length?null:H.createElement(cn,{className:Gt("recharts-cartesian-axis",u),ref:function(v){r.layerReference=v}},s&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),Xa.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var o,l=Gt(a.className,"recharts-cartesian-axis-tick-value");return H.isValidElement(r)?o=H.cloneElement(r,Kr(Kr({},a),{},{className:l})):At(r)?o=r(Kr(Kr({},a),{},{className:l})):o=H.createElement(Q1,wh({},a,{className:"recharts-cartesian-axis-tick-value"}),s),o}}])}(g.Component);G3(bm,"displayName","CartesianAxis");G3(bm,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wSe=["x1","y1","x2","y2","key"],kSe=["offset"];function tf(t){"@babel/helpers - typeof";return tf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tf(t)}function u$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Ja(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function NSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var CSe=function(e){var n=e.fill;if(!n||n==="none")return null;var r=e.fillOpacity,a=e.x,s=e.y,o=e.width,l=e.height,c=e.ry;return H.createElement("rect",{x:a,y:s,ry:c,width:o,height:l,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function rW(t,e){var n;if(H.isValidElement(t))n=H.cloneElement(t,e);else if(At(t))n=t(e);else{var r=e.x1,a=e.y1,s=e.x2,o=e.y2,l=e.key,c=d$(e,wSe),u=Ct(c,!1);u.offset;var d=d$(u,kSe);n=H.createElement("line",kd({},d,{x1:r,y1:a,x2:s,y2:o,fill:"none",key:l}))}return n}function ESe(t){var e=t.x,n=t.width,r=t.horizontal,a=r===void 0?!0:r,s=t.horizontalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Ja(Ja({},t),{},{x1:e,y1:l,x2:e+n,y2:l,key:"line-".concat(c),index:c});return rW(a,u)});return H.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function ASe(t){var e=t.y,n=t.height,r=t.vertical,a=r===void 0?!0:r,s=t.verticalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Ja(Ja({},t),{},{x1:l,y1:e,x2:l,y2:e+n,key:"line-".concat(c),index:c});return rW(a,u)});return H.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function OSe(t){var e=t.horizontalFill,n=t.fillOpacity,r=t.x,a=t.y,s=t.width,o=t.height,l=t.horizontalPoints,c=t.horizontal,u=c===void 0?!0:c;if(!u||!e||!e.length)return null;var d=l.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?a+o-h:d[p+1]-h;if(x<=0)return null;var v=p%e.length;return H.createElement("rect",{key:"react-".concat(p),y:h,x:r,height:x,width:s,stroke:"none",fill:e[v],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return H.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function TSe(t){var e=t.vertical,n=e===void 0?!0:e,r=t.verticalFill,a=t.fillOpacity,s=t.x,o=t.y,l=t.width,c=t.height,u=t.verticalPoints;if(!n||!r||!r.length)return null;var d=u.map(function(h){return Math.round(h+s-s)}).sort(function(h,p){return h-p});s!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?s+l-h:d[p+1]-h;if(x<=0)return null;var v=p%r.length;return H.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:x,height:c,stroke:"none",fill:r[v],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return H.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var PSe=function(e,n){var r=e.xAxis,a=e.width,s=e.height,o=e.offset;return hV(H3(Ja(Ja(Ja({},bm.defaultProps),r),{},{ticks:ql(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.left,o.left+o.width,n)},RSe=function(e,n){var r=e.yAxis,a=e.width,s=e.height,o=e.offset;return hV(H3(Ja(Ja(Ja({},bm.defaultProps),r),{},{ticks:ql(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.top,o.top+o.height,n)},Ff={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Kl(t){var e,n,r,a,s,o,l=z3(),c=U3(),u=b2e(),d=Ja(Ja({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:Ff.stroke,fill:(n=t.fill)!==null&&n!==void 0?n:Ff.fill,horizontal:(r=t.horizontal)!==null&&r!==void 0?r:Ff.horizontal,horizontalFill:(a=t.horizontalFill)!==null&&a!==void 0?a:Ff.horizontalFill,vertical:(s=t.vertical)!==null&&s!==void 0?s:Ff.vertical,verticalFill:(o=t.verticalFill)!==null&&o!==void 0?o:Ff.verticalFill,x:$e(t.x)?t.x:u.left,y:$e(t.y)?t.y:u.top,width:$e(t.width)?t.width:u.width,height:$e(t.height)?t.height:u.height}),f=d.x,h=d.y,p=d.width,m=d.height,x=d.syncWithTicks,v=d.horizontalValues,b=d.verticalValues,y=x2e(),w=y2e();if(!$e(p)||p<=0||!$e(m)||m<=0||!$e(f)||f!==+f||!$e(h)||h!==+h)return null;var j=d.verticalCoordinatesGenerator||PSe,k=d.horizontalCoordinatesGenerator||RSe,S=d.horizontalPoints,_=d.verticalPoints;if((!S||!S.length)&&At(k)){var C=v&&v.length,E=k({yAxis:w?Ja(Ja({},w),{},{ticks:C?v:w.ticks}):void 0,width:l,height:c,offset:u},C?!0:x);Zl(Array.isArray(E),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(tf(E),"]")),Array.isArray(E)&&(S=E)}if((!_||!_.length)&&At(j)){var P=b&&b.length,R=j({xAxis:y?Ja(Ja({},y),{},{ticks:P?b:y.ticks}):void 0,width:l,height:c,offset:u},P?!0:x);Zl(Array.isArray(R),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(tf(R),"]")),Array.isArray(R)&&(_=R)}return H.createElement("g",{className:"recharts-cartesian-grid"},H.createElement(CSe,{fill:d.fill,fillOpacity:d.fillOpacity,x:d.x,y:d.y,width:d.width,height:d.height,ry:d.ry}),H.createElement(ESe,kd({},d,{offset:u,horizontalPoints:S,xAxis:y,yAxis:w})),H.createElement(ASe,kd({},d,{offset:u,verticalPoints:_,xAxis:y,yAxis:w})),H.createElement(OSe,kd({},d,{horizontalPoints:S})),H.createElement(TSe,kd({},d,{verticalPoints:_})))}Kl.displayName="CartesianGrid";var MSe=["type","layout","connectNulls","ref"],DSe=["key"];function Ep(t){"@babel/helpers - typeof";return Ep=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ep(t)}function f$(t,e){if(t==null)return{};var n=ISe(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function ISe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function gx(){return gx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nf){p=[].concat(Bf(c.slice(0,m)),[f-x]);break}var v=p.length%2===0?[0,h]:[h];return[].concat(Bf(e.repeat(c,d)),Bf(p),v).map(function(b){return"".concat(b,"px")}).join(", ")}),uo(n,"id",vf("recharts-line-")),uo(n,"pathRef",function(o){n.mainCurve=o}),uo(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),uo(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return GSe(e,t),USe(e,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,o=s.points,l=s.xAxis,c=s.yAxis,u=s.layout,d=s.children,f=Ws(d,vm);if(!f)return null;var h=function(x,v){return{x:x.x,y:x.y,value:x.value,errorVal:na(x.payload,v)}},p={clipPath:r?"url(#clipPath-".concat(a,")"):null};return H.createElement(cn,p,f.map(function(m){return H.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:o,xAxis:l,yAxis:c,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(r,a,s){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var l=this.props,c=l.dot,u=l.points,d=l.dataKey,f=Ct(this.props,!1),h=Ct(c,!0),p=u.map(function(x,v){var b=ai(ai(ai({key:"dot-".concat(v),r:3},f),h),{},{index:v,cx:x.x,cy:x.y,value:x.value,dataKey:d,payload:x.payload,points:u});return e.renderDotItem(c,b)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return H.createElement(cn,gx({className:"recharts-line-dots",key:"dots"},m),p)}},{key:"renderCurveStatically",value:function(r,a,s,o){var l=this.props,c=l.type,u=l.layout,d=l.connectNulls;l.ref;var f=f$(l,MSe),h=ai(ai(ai({},Ct(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},o),{},{type:c,layout:u,connectNulls:d});return H.createElement($d,gx({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,o=this.props,l=o.points,c=o.strokeDasharray,u=o.isAnimationActive,d=o.animationBegin,f=o.animationDuration,h=o.animationEasing,p=o.animationId,m=o.animateNewValues,x=o.width,v=o.height,b=this.state,y=b.prevPoints,w=b.totalLength;return H.createElement(jo,{begin:d,duration:f,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var k=j.t;if(y){var S=y.length/l.length,_=l.map(function(A,T){var D=Math.floor(T*S);if(y[D]){var L=y[D],X=Mr(L.x,A.x),J=Mr(L.y,A.y);return ai(ai({},A),{},{x:X(k),y:J(k)})}if(m){var U=Mr(x*2,A.x),Y=Mr(v/2,A.y);return ai(ai({},A),{},{x:U(k),y:Y(k)})}return ai(ai({},A),{},{x:A.x,y:A.y})});return s.renderCurveStatically(_,r,a)}var C=Mr(0,w),E=C(k),P;if(c){var R="".concat(c).split(/[,\s]+/gim).map(function(A){return parseFloat(A)});P=s.getStrokeDasharray(E,w,R)}else P=s.generateSimpleStrokeDasharray(w,E);return s.renderCurveStatically(l,r,a,{strokeDasharray:P})})}},{key:"renderCurve",value:function(r,a){var s=this.props,o=s.points,l=s.isAnimationActive,c=this.state,u=c.prevPoints,d=c.totalLength;return l&&o&&o.length&&(!u&&d>0||!Zd(u,o))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(o,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.xAxis,d=a.yAxis,f=a.top,h=a.left,p=a.width,m=a.height,x=a.isAnimationActive,v=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,y=l.length===1,w=Gt("recharts-line",c),j=u&&u.allowDataOverflow,k=d&&d.allowDataOverflow,S=j||k,_=_t(v)?this.id:v,C=(r=Ct(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=C.r,P=E===void 0?3:E,R=C.strokeWidth,A=R===void 0?2:R,T=o7(o)?o:{},D=T.clipDot,L=D===void 0?!0:D,X=P*2+A;return H.createElement(cn,{className:w},j||k?H.createElement("defs",null,H.createElement("clipPath",{id:"clipPath-".concat(_)},H.createElement("rect",{x:j?h:h-p/2,y:k?f:f-m/2,width:j?p:p*2,height:k?m:m*2})),!L&&H.createElement("clipPath",{id:"clipPath-dots-".concat(_)},H.createElement("rect",{x:h-X/2,y:f-X/2,width:p+X,height:m+X}))):null,!y&&this.renderCurve(S,_),this.renderErrorBar(S,_),(y||o)&&this.renderDots(S,L,_),(!x||b)&&fl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Bf(r),[0]):r,o=[],l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function XSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function jd(){return jd=Object.assign?Object.assign.bind():function(t){for(var e=1;e0||!Zd(d,o)||!Zd(f,l))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(o,l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.top,d=a.left,f=a.xAxis,h=a.yAxis,p=a.width,m=a.height,x=a.isAnimationActive,v=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,y=l.length===1,w=Gt("recharts-area",c),j=f&&f.allowDataOverflow,k=h&&h.allowDataOverflow,S=j||k,_=_t(v)?this.id:v,C=(r=Ct(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=C.r,P=E===void 0?3:E,R=C.strokeWidth,A=R===void 0?2:R,T=o7(o)?o:{},D=T.clipDot,L=D===void 0?!0:D,X=P*2+A;return H.createElement(cn,{className:w},j||k?H.createElement("defs",null,H.createElement("clipPath",{id:"clipPath-".concat(_)},H.createElement("rect",{x:j?d:d-p/2,y:k?u:u-m/2,width:j?p:p*2,height:k?m:m*2})),!L&&H.createElement("clipPath",{id:"clipPath-dots-".concat(_)},H.createElement("rect",{x:d-X/2,y:u-X/2,width:p+X,height:m+X}))):null,y?null:this.renderArea(S,_),(o||y)&&this.renderDots(S,L,_),(!x||b)&&fl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(g.PureComponent);iW=Gu;rl(Gu,"displayName","Area");rl(Gu,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Uu.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});rl(Gu,"getBaseValue",function(t,e,n,r){var a=t.layout,s=t.baseValue,o=e.props.baseValue,l=o??s;if($e(l)&&typeof l=="number")return l;var c=a==="horizontal"?r:n,u=c.scale.domain();if(c.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return l==="dataMin"?f:l==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return l==="dataMin"?u[0]:l==="dataMax"?u[1]:u[0]});rl(Gu,"getComposedData",function(t){var e=t.props,n=t.item,r=t.xAxis,a=t.yAxis,s=t.xAxisTicks,o=t.yAxisTicks,l=t.bandSize,c=t.dataKey,u=t.stackedData,d=t.dataStartIndex,f=t.displayedData,h=t.offset,p=e.layout,m=u&&u.length,x=iW.getBaseValue(e,n,r,a),v=p==="horizontal",b=!1,y=f.map(function(j,k){var S;m?S=u[d+k]:(S=na(j,c),Array.isArray(S)?b=!0:S=[x,S]);var _=S[1]==null||m&&na(j,c)==null;return v?{x:vp({axis:r,ticks:s,bandSize:l,entry:j,index:k}),y:_?null:a.scale(S[1]),value:S,payload:j}:{x:_?null:r.scale(S[1]),y:vp({axis:a,ticks:o,bandSize:l,entry:j,index:k}),value:S,payload:j}}),w;return m||b?w=y.map(function(j){var k=Array.isArray(j.value)?j.value[0]:null;return v?{x:j.x,y:k!=null&&j.y!=null?a.scale(k):null}:{x:k!=null?r.scale(k):null,y:j.y}}):w=v?a.scale(x):r.scale(x),Pc({points:y,baseLine:w,layout:p,isRange:b},h)});rl(Gu,"renderDotItem",function(t,e){var n;if(H.isValidElement(t))n=H.cloneElement(t,e);else if(At(t))n=t(e);else{var r=Gt("recharts-area-dot",typeof t!="boolean"?t.className:""),a=e.key,s=oW(e,YSe);n=H.createElement(jj,jd({},s,{key:a,className:r}))}return n});function Op(t){"@babel/helpers - typeof";return Op=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Op(t)}function a_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s_e(t,e){for(var n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function p_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function m_e(t){var e=t.option,n=t.isActive,r=h_e(t,f_e);return typeof e=="string"?g.createElement(AE,xx({option:g.createElement(uj,xx({type:e},r)),isActive:n,shapeType:"symbols"},r)):g.createElement(AE,xx({option:e,isActive:n,shapeType:"symbols"},r))}function Tp(t){"@babel/helpers - typeof";return Tp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tp(t)}function yx(){return yx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function uNe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function dNe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function fNe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?o:e&&e.length&&$e(a)&&$e(s)?e.slice(a,s+1):[]};function EW(t){return t==="number"?[0,"auto"]:void 0}var QE=function(e,n,r,a){var s=e.graphicalItems,o=e.tooltipAxis,l=Rj(n,e);return r<0||!s||!s.length||r>=l.length?null:s.reduce(function(c,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:n;f&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=r&&(f=f.slice(e.dataStartIndex,e.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=f===void 0?l:f;h=L1(p,o.dataKey,a)}else h=f&&f[r]||l[r];return h?[].concat(Dp(c),[mV(u,h)]):c},[])},S$=function(e,n,r,a){var s=a||{x:e.chartX,y:e.chartY},o=SNe(s,r),l=e.orderedTooltipTicks,c=e.tooltipAxis,u=e.tooltipTicks,d=ove(o,l,u,c);if(d>=0&&u){var f=u[d]&&u[d].value,h=QE(e,n,d,f),p=_Ne(r,l,d,s);return{activeTooltipIndex:d,activeLabel:f,activePayload:h,activeCoordinate:p}}return null},NNe=function(e,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=e.stackOffset,p=fV(d,s);return r.reduce(function(m,x){var v,b=x.type.defaultProps!==void 0?je(je({},x.type.defaultProps),x.props):x.props,y=b.type,w=b.dataKey,j=b.allowDataOverflow,k=b.allowDuplicatedCategory,S=b.scale,_=b.ticks,C=b.includeHidden,E=b[o];if(m[E])return m;var P=Rj(e.data,{graphicalItems:a.filter(function(I){var q,M=o in I.props?I.props[o]:(q=I.type.defaultProps)===null||q===void 0?void 0:q[o];return M===E}),dataStartIndex:c,dataEndIndex:u}),R=P.length,A,T,D;Z_e(b.domain,j,y)&&(A=hE(b.domain,null,j),p&&(y==="number"||S!=="auto")&&(D=px(P,w,"category")));var L=EW(y);if(!A||A.length===0){var X,J=(X=b.domain)!==null&&X!==void 0?X:L;if(w){if(A=px(P,w,y),y==="category"&&p){var U=Kae(A);k&&U?(T=A,A=Sw(0,R)):k||(A=tI(J,A,x).reduce(function(I,q){return I.indexOf(q)>=0?I:[].concat(Dp(I),[q])},[]))}else if(y==="category")k?A=A.filter(function(I){return I!==""&&!_t(I)}):A=tI(J,A,x).reduce(function(I,q){return I.indexOf(q)>=0||q===""||_t(q)?I:[].concat(Dp(I),[q])},[]);else if(y==="number"){var Y=fve(P,a.filter(function(I){var q,M,B=o in I.props?I.props[o]:(q=I.type.defaultProps)===null||q===void 0?void 0:q[o],z="hide"in I.props?I.props.hide:(M=I.type.defaultProps)===null||M===void 0?void 0:M.hide;return B===E&&(C||!z)}),w,s,d);Y&&(A=Y)}p&&(y==="number"||S!=="auto")&&(D=px(P,w,"category"))}else p?A=Sw(0,R):l&&l[E]&&l[E].hasStack&&y==="number"?A=h==="expand"?[0,1]:pV(l[E].stackGroups,c,u):A=dV(P,a.filter(function(I){var q=o in I.props?I.props[o]:I.type.defaultProps[o],M="hide"in I.props?I.props.hide:I.type.defaultProps.hide;return q===E&&(C||!M)}),y,d,!0);if(y==="number")A=XE(f,A,E,s,_),J&&(A=hE(J,A,j));else if(y==="category"&&J){var W=J,G=A.every(function(I){return W.indexOf(I)>=0});G&&(A=W)}}return je(je({},m),{},xt({},E,je(je({},b),{},{axisType:s,domain:A,categoricalDomain:D,duplicateDomain:T,originalDomain:(v=b.domain)!==null&&v!==void 0?v:L,isCategorical:p,layout:d})))},{})},CNe=function(e,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=Rj(e.data,{graphicalItems:r,dataStartIndex:c,dataEndIndex:u}),p=h.length,m=fV(d,s),x=-1;return r.reduce(function(v,b){var y=b.type.defaultProps!==void 0?je(je({},b.type.defaultProps),b.props):b.props,w=y[o],j=EW("number");if(!v[w]){x++;var k;return m?k=Sw(0,p):l&&l[w]&&l[w].hasStack?(k=pV(l[w].stackGroups,c,u),k=XE(f,k,w,s)):(k=hE(j,dV(h,r.filter(function(S){var _,C,E=o in S.props?S.props[o]:(_=S.type.defaultProps)===null||_===void 0?void 0:_[o],P="hide"in S.props?S.props.hide:(C=S.type.defaultProps)===null||C===void 0?void 0:C.hide;return E===w&&!P}),"number",d),a.defaultProps.allowDataOverflow),k=XE(f,k,w,s)),je(je({},v),{},xt({},w,je(je({axisType:s},a.defaultProps),{},{hide:!0,orientation:Fi(kNe,"".concat(s,".").concat(x%2),null),domain:k,originalDomain:j,isCategorical:m,layout:d})))}return v},{})},ENe=function(e,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.children,f="".concat(a,"Id"),h=Ws(d,s),p={};return h&&h.length?p=NNe(e,{axes:h,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u}):o&&o.length&&(p=CNe(e,{Axis:s,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u})),p},ANe=function(e){var n=Vc(e),r=ql(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:c3(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:pw(n,r)}},_$=function(e){var n=e.children,r=e.defaultShowTooltip,a=oi(n,kp),s=0,o=0;return e.data&&e.data.length!==0&&(o=e.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(o=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},ONe=function(e){return!e||!e.length?!1:e.some(function(n){var r=Jl(n&&n.type);return r&&r.indexOf("Bar")>=0})},N$=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},TNe=function(e,n){var r=e.props,a=e.graphicalItems,s=e.xAxisMap,o=s===void 0?{}:s,l=e.yAxisMap,c=l===void 0?{}:l,u=r.width,d=r.height,f=r.children,h=r.margin||{},p=oi(f,kp),m=oi(f,ul),x=Object.keys(c).reduce(function(k,S){var _=c[S],C=_.orientation;return!_.mirror&&!_.hide?je(je({},k),{},xt({},C,k[C]+_.width)):k},{left:h.left||0,right:h.right||0}),v=Object.keys(o).reduce(function(k,S){var _=o[S],C=_.orientation;return!_.mirror&&!_.hide?je(je({},k),{},xt({},C,Fi(k,"".concat(C))+_.height)):k},{top:h.top||0,bottom:h.bottom||0}),b=je(je({},v),x),y=b.bottom;p&&(b.bottom+=p.props.height||kp.defaultProps.height),m&&n&&(b=uve(b,a,r,n));var w=u-b.left-b.right,j=d-b.top-b.bottom;return je(je({brushBottom:y},b),{},{width:Math.max(w,0),height:Math.max(j,0)})},PNe=function(e,n){if(n==="xAxis")return e[n].width;if(n==="yAxis")return e[n].height},q3=function(e){var n=e.chartName,r=e.GraphicalChild,a=e.defaultTooltipEventType,s=a===void 0?"axis":a,o=e.validateTooltipEventTypes,l=o===void 0?["axis"]:o,c=e.axisComponents,u=e.legendContent,d=e.formatAxisMap,f=e.defaultProps,h=function(b,y){var w=y.graphicalItems,j=y.stackGroups,k=y.offset,S=y.updateId,_=y.dataStartIndex,C=y.dataEndIndex,E=b.barSize,P=b.layout,R=b.barGap,A=b.barCategoryGap,T=b.maxBarSize,D=N$(P),L=D.numericAxisName,X=D.cateAxisName,J=ONe(w),U=[];return w.forEach(function(Y,W){var G=Rj(b.data,{graphicalItems:[Y],dataStartIndex:_,dataEndIndex:C}),I=Y.type.defaultProps!==void 0?je(je({},Y.type.defaultProps),Y.props):Y.props,q=I.dataKey,M=I.maxBarSize,B=I["".concat(L,"Id")],z=I["".concat(X,"Id")],Z={},pe=c.reduce(function(Be,st){var F=y["".concat(st.axisType,"Map")],se=I["".concat(st.axisType,"Id")];F&&F[se]||st.axisType==="zAxis"||ef();var ie=F[se];return je(je({},Be),{},xt(xt({},st.axisType,ie),"".concat(st.axisType,"Ticks"),ql(ie)))},Z),ae=pe[X],ue=pe["".concat(X,"Ticks")],de=j&&j[B]&&j[B].hasStack&&Sve(Y,j[B].stackGroups),Q=Jl(Y.type).indexOf("Bar")>=0,fe=pw(ae,ue),ne=[],ce=J&&lve({barSize:E,stackGroups:j,totalSize:PNe(pe,X)});if(Q){var he,be,Pe=_t(M)?T:M,Ce=(he=(be=pw(ae,ue,!0))!==null&&be!==void 0?be:Pe)!==null&&he!==void 0?he:0;ne=cve({barGap:R,barCategoryGap:A,bandSize:Ce!==fe?Ce:fe,sizeList:ce[z],maxBarSize:Pe}),Ce!==fe&&(ne=ne.map(function(Be){return je(je({},Be),{},{position:je(je({},Be.position),{},{offset:Be.position.offset-Ce/2})})}))}var Re=Y&&Y.type&&Y.type.getComposedData;Re&&U.push({props:je(je({},Re(je(je({},pe),{},{displayedData:G,props:b,dataKey:q,item:Y,bandSize:fe,barPosition:ne,offset:k,stackedData:de,layout:P,dataStartIndex:_,dataEndIndex:C}))),{},xt(xt(xt({key:Y.key||"item-".concat(W)},L,pe[L]),X,pe[X]),"animationId",S)),childIndex:ose(Y,b.children),item:Y})}),U},p=function(b,y){var w=b.props,j=b.dataStartIndex,k=b.dataEndIndex,S=b.updateId;if(!YM({props:w}))return null;var _=w.children,C=w.layout,E=w.stackOffset,P=w.data,R=w.reverseStackOrder,A=N$(C),T=A.numericAxisName,D=A.cateAxisName,L=Ws(_,r),X=wve(P,L,"".concat(T,"Id"),"".concat(D,"Id"),E,R),J=c.reduce(function(I,q){var M="".concat(q.axisType,"Map");return je(je({},I),{},xt({},M,ENe(w,je(je({},q),{},{graphicalItems:L,stackGroups:q.axisType===T&&X,dataStartIndex:j,dataEndIndex:k}))))},{}),U=TNe(je(je({},J),{},{props:w,graphicalItems:L}),y==null?void 0:y.legendBBox);Object.keys(J).forEach(function(I){J[I]=d(w,J[I],U,I.replace("Map",""),n)});var Y=J["".concat(D,"Map")],W=ANe(Y),G=h(w,je(je({},J),{},{dataStartIndex:j,dataEndIndex:k,updateId:S,graphicalItems:L,stackGroups:X,offset:U}));return je(je({formattedGraphicalItems:G,graphicalItems:L,offset:U,stackGroups:X},W),J)},m=function(v){function b(y){var w,j,k;return dNe(this,b),k=pNe(this,b,[y]),xt(k,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),xt(k,"accessibilityManager",new J_e),xt(k,"handleLegendBBoxUpdate",function(S){if(S){var _=k.state,C=_.dataStartIndex,E=_.dataEndIndex,P=_.updateId;k.setState(je({legendBBox:S},p({props:k.props,dataStartIndex:C,dataEndIndex:E,updateId:P},je(je({},k.state),{},{legendBBox:S}))))}}),xt(k,"handleReceiveSyncEvent",function(S,_,C){if(k.props.syncId===S){if(C===k.eventEmitterSymbol&&typeof k.props.syncMethod!="function")return;k.applySyncEvent(_)}}),xt(k,"handleBrushChange",function(S){var _=S.startIndex,C=S.endIndex;if(_!==k.state.dataStartIndex||C!==k.state.dataEndIndex){var E=k.state.updateId;k.setState(function(){return je({dataStartIndex:_,dataEndIndex:C},p({props:k.props,dataStartIndex:_,dataEndIndex:C,updateId:E},k.state))}),k.triggerSyncEvent({dataStartIndex:_,dataEndIndex:C})}}),xt(k,"handleMouseEnter",function(S){var _=k.getMouseInfo(S);if(_){var C=je(je({},_),{},{isTooltipActive:!0});k.setState(C),k.triggerSyncEvent(C);var E=k.props.onMouseEnter;At(E)&&E(C,S)}}),xt(k,"triggeredAfterMouseMove",function(S){var _=k.getMouseInfo(S),C=_?je(je({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};k.setState(C),k.triggerSyncEvent(C);var E=k.props.onMouseMove;At(E)&&E(C,S)}),xt(k,"handleItemMouseEnter",function(S){k.setState(function(){return{isTooltipActive:!0,activeItem:S,activePayload:S.tooltipPayload,activeCoordinate:S.tooltipPosition||{x:S.cx,y:S.cy}}})}),xt(k,"handleItemMouseLeave",function(){k.setState(function(){return{isTooltipActive:!1}})}),xt(k,"handleMouseMove",function(S){S.persist(),k.throttleTriggeredAfterMouseMove(S)}),xt(k,"handleMouseLeave",function(S){k.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};k.setState(_),k.triggerSyncEvent(_);var C=k.props.onMouseLeave;At(C)&&C(_,S)}),xt(k,"handleOuterEvent",function(S){var _=ise(S),C=Fi(k.props,"".concat(_));if(_&&At(C)){var E,P;/.*touch.*/i.test(_)?P=k.getMouseInfo(S.changedTouches[0]):P=k.getMouseInfo(S),C((E=P)!==null&&E!==void 0?E:{},S)}}),xt(k,"handleClick",function(S){var _=k.getMouseInfo(S);if(_){var C=je(je({},_),{},{isTooltipActive:!0});k.setState(C),k.triggerSyncEvent(C);var E=k.props.onClick;At(E)&&E(C,S)}}),xt(k,"handleMouseDown",function(S){var _=k.props.onMouseDown;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleMouseUp",function(S){var _=k.props.onMouseUp;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleTouchMove",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.throttleTriggeredAfterMouseMove(S.changedTouches[0])}),xt(k,"handleTouchStart",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.handleMouseDown(S.changedTouches[0])}),xt(k,"handleTouchEnd",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.handleMouseUp(S.changedTouches[0])}),xt(k,"handleDoubleClick",function(S){var _=k.props.onDoubleClick;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleContextMenu",function(S){var _=k.props.onContextMenu;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"triggerSyncEvent",function(S){k.props.syncId!==void 0&&AS.emit(OS,k.props.syncId,S,k.eventEmitterSymbol)}),xt(k,"applySyncEvent",function(S){var _=k.props,C=_.layout,E=_.syncMethod,P=k.state.updateId,R=S.dataStartIndex,A=S.dataEndIndex;if(S.dataStartIndex!==void 0||S.dataEndIndex!==void 0)k.setState(je({dataStartIndex:R,dataEndIndex:A},p({props:k.props,dataStartIndex:R,dataEndIndex:A,updateId:P},k.state)));else if(S.activeTooltipIndex!==void 0){var T=S.chartX,D=S.chartY,L=S.activeTooltipIndex,X=k.state,J=X.offset,U=X.tooltipTicks;if(!J)return;if(typeof E=="function")L=E(U,S);else if(E==="value"){L=-1;for(var Y=0;Y=0){var de,Q;if(T.dataKey&&!T.allowDuplicatedCategory){var fe=typeof T.dataKey=="function"?ue:"payload.".concat(T.dataKey.toString());de=L1(Y,fe,L),Q=W&&G&&L1(G,fe,L)}else de=Y==null?void 0:Y[D],Q=W&&G&&G[D];if(z||B){var ne=S.props.activeIndex!==void 0?S.props.activeIndex:D;return[g.cloneElement(S,je(je(je({},E.props),pe),{},{activeIndex:ne})),null,null]}if(!_t(de))return[ae].concat(Dp(k.renderActivePoints({item:E,activePoint:de,basePoint:Q,childIndex:D,isRange:W})))}else{var ce,he=(ce=k.getItemByXY(k.state.activeCoordinate))!==null&&ce!==void 0?ce:{graphicalItem:ae},be=he.graphicalItem,Pe=be.item,Ce=Pe===void 0?S:Pe,Re=be.childIndex,Be=je(je(je({},E.props),pe),{},{activeIndex:Re});return[g.cloneElement(Ce,Be),null,null]}return W?[ae,null,null]:[ae,null]}),xt(k,"renderCustomized",function(S,_,C){return g.cloneElement(S,je(je({key:"recharts-customized-".concat(C)},k.props),k.state))}),xt(k,"renderMap",{CartesianGrid:{handler:Wv,once:!0},ReferenceArea:{handler:k.renderReferenceElement},ReferenceLine:{handler:Wv},ReferenceDot:{handler:k.renderReferenceElement},XAxis:{handler:Wv},YAxis:{handler:Wv},Brush:{handler:k.renderBrush,once:!0},Bar:{handler:k.renderGraphicChild},Line:{handler:k.renderGraphicChild},Area:{handler:k.renderGraphicChild},Radar:{handler:k.renderGraphicChild},RadialBar:{handler:k.renderGraphicChild},Scatter:{handler:k.renderGraphicChild},Pie:{handler:k.renderGraphicChild},Funnel:{handler:k.renderGraphicChild},Tooltip:{handler:k.renderCursor,once:!0},PolarGrid:{handler:k.renderPolarGrid,once:!0},PolarAngleAxis:{handler:k.renderPolarAxis},PolarRadiusAxis:{handler:k.renderPolarAxis},Customized:{handler:k.renderCustomized}}),k.clipPathId="".concat((w=y.id)!==null&&w!==void 0?w:vf("recharts"),"-clip"),k.throttleTriggeredAfterMouseMove=uU(k.triggeredAfterMouseMove,(j=y.throttleDelay)!==null&&j!==void 0?j:1e3/60),k.state={},k}return xNe(b,v),hNe(b,[{key:"componentDidMount",value:function(){var w,j;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,j=w.children,k=w.data,S=w.height,_=w.layout,C=oi(j,xa);if(C){var E=C.props.defaultIndex;if(!(typeof E!="number"||E<0||E>this.state.tooltipTicks.length-1)){var P=this.state.tooltipTicks[E]&&this.state.tooltipTicks[E].value,R=QE(this.state,k,E,P),A=this.state.tooltipTicks[E].coordinate,T=(this.state.offset.top+S)/2,D=_==="horizontal",L=D?{x:A,y:T}:{y:A,x:T},X=this.state.formattedGraphicalItems.find(function(U){var Y=U.item;return Y.type.name==="Scatter"});X&&(L=je(je({},L),X.props.points[E].tooltipPosition),R=X.props.points[E].tooltipPayload);var J={activeTooltipIndex:E,isTooltipActive:!0,activeLabel:P,activePayload:R,activeCoordinate:L};this.setState(J),this.renderCursor(C),this.accessibilityManager.setIndex(E)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,j){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==j.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var k,S;this.accessibilityManager.setDetails({offset:{left:(k=this.props.margin.left)!==null&&k!==void 0?k:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0}})}return null}},{key:"componentDidUpdate",value:function(w){EC([oi(w.children,xa)],[oi(this.props.children,xa)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=oi(this.props.children,xa);if(w&&typeof w.props.shared=="boolean"){var j=w.props.shared?"axis":"item";return l.indexOf(j)>=0?j:s}return s}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var j=this.container,k=j.getBoundingClientRect(),S=Rme(k),_={chartX:Math.round(w.pageX-S.left),chartY:Math.round(w.pageY-S.top)},C=k.width/j.offsetWidth||1,E=this.inRange(_.chartX,_.chartY,C);if(!E)return null;var P=this.state,R=P.xAxisMap,A=P.yAxisMap,T=this.getTooltipEventType(),D=S$(this.state,this.props.data,this.props.layout,E);if(T!=="axis"&&R&&A){var L=Vc(R).scale,X=Vc(A).scale,J=L&&L.invert?L.invert(_.chartX):null,U=X&&X.invert?X.invert(_.chartY):null;return je(je({},_),{},{xValue:J,yValue:U},D)}return D?je(je({},_),D):null}},{key:"inRange",value:function(w,j){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=this.props.layout,_=w/k,C=j/k;if(S==="horizontal"||S==="vertical"){var E=this.state.offset,P=_>=E.left&&_<=E.left+E.width&&C>=E.top&&C<=E.top+E.height;return P?{x:_,y:C}:null}var R=this.state,A=R.angleAxisMap,T=R.radiusAxisMap;if(A&&T){var D=Vc(A);return aI({x:_,y:C},D)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,j=this.getTooltipEventType(),k=oi(w,xa),S={};k&&j==="axis"&&(k.props.trigger==="click"?S={onClick:this.handleClick}:S={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=F1(this.props,this.handleOuterEvent);return je(je({},_),S)}},{key:"addListener",value:function(){AS.on(OS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){AS.removeListener(OS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,j,k){for(var S=this.state.formattedGraphicalItems,_=0,C=S.length;_t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ge=(t,e)=>{const n=g.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:c,...u},d)=>g.createElement("svg",{ref:d,...RNe,width:a,height:a,stroke:r,strokeWidth:o?Number(s)*24/Number(a):s,className:["lucide",`lucide-${MNe(t)}`,l].join(" "),...u},[...e.map(([f,h])=>g.createElement(f,h)),...Array.isArray(c)?c:[c]]));return n.displayName=`${t}`,n};/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Uh=Ge("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Mj=Ge("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const I0=Ge("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ju=Ge("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const OW=Ge("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yb=Ge("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zw=Ge("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DNe=Ge("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Dj=Ge("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jh=Ge("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const INe=Ge("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gi=Ge("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ln=Ge("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $Ne=Ge("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const So=Ge("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hs=Ge("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LNe=Ge("CircleAlert",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const TW=Ge("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ip=Ge("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ij=Ge("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PW=Ge("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ld=Ge("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RW=Ge("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nf=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const C$=Ge("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FNe=Ge("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tA=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BNe=Ge("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $j=Ge("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jf=Ge("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const MW=Ge("FileText",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zNe=Ge("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $p=Ge("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UNe=Ge("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Lj=Ge("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VNe=Ge("GitCompare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const WNe=Ge("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const HNe=Ge("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qu=Ge("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K3=Ge("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Y3=Ge("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fj=Ge("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DW=Ge("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IW=Ge("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Su=Ge("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nA=Ge("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $W=Ge("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LW=Ge("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Sy=Ge("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _o=Ge("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const GNe=Ge("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jl=Ge("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rf=Ge("PieChart",[["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}],["path",{d:"M22 12A10 10 0 0 0 12 2v10z",key:"1rfc4y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Os=Ge("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qn=Ge("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _y=Ge("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Es=Ge("RefreshCw",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FW=Ge("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Lp=Ge("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BW=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qNe=Ge("ShieldAlert",[["path",{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",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const X3=Ge("ShieldCheck",[["path",{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",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ec=Ge("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zW=Ge("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PS=Ge("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7",key:"jon5kx"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ny=Ge("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Cy=Ge("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const KNe=Ge("ToggleRight",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wn=Ge("Trash2",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const J3=Ge("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bj=Ge("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wm=Ge("TriangleAlert",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UW=Ge("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const E$=Ge("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Z3=Ge("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vr=Ge("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VW=Ge("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"}]]),YNe="modulepreload",XNe=function(t){return"/decision-engine/"+t},A$={},JNe=function(e,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(n.map(c=>{if(c=XNe(c),c in A$)return;A$[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":YNe,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&s(l.reason);return e().catch(s)})};let O$=null;const Sd={get:()=>O$,set:t=>{O$=t}},WW="public",ZNe="/decision-engine/api",RS=ZNe.replace(/\/$/,""),HW="decision-engine";function Q3(t){if(/^https?:\/\//.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return e.startsWith(`${RS}/`)||e===RS?e:`${RS}${e}`}function QNe(t){return`${window.location.origin}${Q3(t)}`}function T$(t){return typeof t=="string"&&t.trim()?t.trim():typeof t=="number"||typeof t=="boolean"?String(t):null}function GW(t){if(!t||typeof t!="object")return T$(t);const e=t,n=["message","error_message","user_message","developer_message","error","detail","details"];for(const r of n){const a=T$(e[r]);if(a)return a}for(const r of["data","error_info","context"]){const a=GW(e[r]);if(a)return a}return null}const eCe=200,rA="Something went wrong. Please try again.";function qW(t,e,n){const r=n.trim();r&&console.error(`[api] ${t} ${e||""}`.trim(),r.slice(0,2e3));const a=/^\s*({const{useAuthStore:c}=await Promise.resolve().then(()=>fEe);return{useAuthStore:c}},void 0).then(({useAuthStore:c})=>{c.getState().clearAuth()}),window.location.href="/decision-engine/login",new Error("Session expired")}if(!s.ok){const l=new Error(qW(s.status,s.statusText,o));throw l.status=s.status,l.responseText=o,l}if(!o.trim())return;try{return JSON.parse(o)}catch(l){const c=new Error(rA);throw c.status=s.status,c.responseText=o,c.cause=l,console.error(`[api] ${s.status} non-JSON response`,o.slice(0,2e3)),c}}catch(r){throw r}}async function Fe(t,e){return aa(t,{method:"POST",body:e!==void 0?JSON.stringify(e):void 0})}async function zj(t,e){return aa(t,{method:"PUT",body:e!==void 0?JSON.stringify(e):void 0})}async function km(t){return aa(t,{method:"DELETE"})}function eT(t,e,n){const r=Q3(t),a=Sd.get();return new Promise((s,o)=>{const l=new XMLHttpRequest;l.open("POST",r),l.setRequestHeader("Content-Type","application/octet-stream"),l.setRequestHeader("x-tenant-id",WW),l.setRequestHeader("x-feature",HW),a&&l.setRequestHeader("Authorization",`Bearer ${a}`),l.upload.onprogress=c=>{c.lengthComputable&&(n==null||n({loaded:c.loaded,total:c.total,phase:"uploading"}))},l.upload.onload=()=>{n==null||n({loaded:e.size,total:e.size,phase:"processing"})},l.onload=()=>{const c=l.responseText??"";if(l.status>=200&&l.status<300){if(!c.trim()){s(void 0);return}try{s(JSON.parse(c))}catch{o(new Error("Invalid JSON in upload response"))}return}const u=new Error(qW(l.status,l.statusText,c));u.status=l.status,u.responseText=c,o(u)},l.timeout=30*60*1e3,l.onerror=()=>o(new Error("Could not reach the server. Check your connection and try again.")),l.ontimeout=()=>o(new Error("Upload timed out. Please try again.")),l.onabort=()=>o(new Error("Upload cancelled.")),l.send(e)})}async function Dt(t){return aa(t)}const Sh={GSM_RETRY_IN_SIMULATION:!1,SMART_RETRY_IN_ANALYTICS:!1,SMART_RETRY_IN_SIMULATION:!1},Zc={backgroundColor:"var(--chart-tooltip-bg)",border:"1px solid var(--chart-tooltip-border)",borderRadius:"14px",color:"var(--chart-tooltip-text)",boxShadow:"var(--chart-tooltip-shadow)",padding:"10px 12px"},Qc={color:"var(--chart-tooltip-label)",fontWeight:600,marginBottom:8},_h={color:"var(--chart-tooltip-text)"},tCe={primary:"bg-brand-600 text-white hover:bg-brand-700 disabled:opacity-50 shadow-sm border border-transparent dark:bg-white dark:text-black dark:hover:bg-slate-200",secondary:"bg-white text-slate-700 border border-slate-200 hover:bg-slate-50 hover:text-slate-900 disabled:opacity-40 shadow-sm dark:bg-[#121214] dark:text-[#a1a1aa] dark:border-[#27272a] dark:hover:bg-[#18181b] dark:hover:text-white",ghost:"text-slate-500 hover:text-slate-900 hover:bg-slate-100 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:text-white dark:hover:bg-[#121214]",danger:"bg-red-50 text-red-600 hover:bg-red-100 border border-red-200 disabled:opacity-40 dark:bg-[#2a0505] dark:text-red-500 dark:hover:bg-[#380808] dark:border-[#5c1c1c]"},nCe={sm:"px-4 py-1.5 text-xs font-semibold",md:"px-5 py-2.5 text-sm font-semibold"};function we({variant:t="primary",size:e="md",className:n="",...r}){return i.jsx("button",{className:`relative inline-flex items-center justify-center gap-2 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-brand-500/50 focus:ring-offset-1 focus:ring-offset-transparent focus:border-transparent ${tCe[t]} ${nCe[e]} ${n}`,...r,children:r.children})}function Te({children:t,className:e="",onClick:n}){const r=`relative min-w-0 overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-[0_18px_60px_-42px_rgba(15,23,42,0.15)] dark:border-[#2a303a] dark:bg-[#11151d] dark:shadow-[0_18px_60px_-42px_rgba(0,0,0,0.7)] ${n?"cursor-pointer text-left transition duration-300 hover:-translate-y-0.5 hover:border-[#3b82f6]/35 hover:bg-slate-50 dark:hover:bg-[#141923]":""} ${e}`,a=i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-[#3b82f6]/25 to-transparent dark:via-[#3b82f6]/30"}),i.jsx("div",{className:"absolute inset-0 bg-[linear-gradient(180deg,rgba(255,255,255,0.55),transparent_26%)] dark:bg-[linear-gradient(180deg,rgba(255,255,255,0.02),transparent_26%)]"}),i.jsx("div",{className:"relative min-w-0 flex flex-col h-full",children:t})]});return n?i.jsx("button",{type:"button",onClick:n,className:r,children:a}):i.jsx("div",{className:r,children:a})}function yt({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 border-b border-slate-200 px-6 py-5 dark:border-[#2a303a] ${e}`,children:t})}function He({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 px-6 py-5 ${e}`,children:t})}function vn({children:t,className:e=""}){return i.jsx("p",{className:`block max-w-full truncate text-[12px] font-medium leading-4 text-slate-500 dark:text-[#8d96aa] ${e}`,children:t})}function aA({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 overflow-hidden rounded-[22px] border border-slate-200 bg-white/80 px-4 py-4 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none ${e}`,children:t})}const rCe={green:"bg-emerald-500/10 text-emerald-600 ring-1 ring-inset ring-emerald-500/20 dark:text-emerald-300",gray:"bg-slate-900/[0.04] text-slate-700 ring-1 ring-inset ring-slate-900/8 dark:bg-white/[0.05] dark:text-slate-300 dark:ring-white/8",blue:"bg-sky-500/12 text-sky-700 ring-1 ring-inset ring-sky-500/22 dark:bg-sky-400/14 dark:text-sky-200 dark:ring-sky-400/28",red:"bg-red-500/10 text-red-600 ring-1 ring-inset ring-red-500/20 dark:text-red-300",orange:"bg-orange-500/10 text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300",purple:"bg-purple-500/10 text-purple-600 ring-1 ring-inset ring-purple-500/20 dark:text-purple-300"};function Me({variant:t="gray",children:e}){return i.jsx("span",{className:`inline-flex max-w-full min-w-0 items-center gap-1 overflow-hidden rounded-md px-2 py-0.5 text-xs font-medium tracking-wide ${rCe[t]}`,children:i.jsx("span",{className:"min-w-0 truncate",children:e})})}function at({size:t=20}){return i.jsxs("svg",{className:"animate-spin text-brand-600",width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:[i.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),i.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]})}function vt({error:t}){return t?i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-4 py-3 text-sm text-red-400 font-mono",children:t}):null}const aCe=["15m","1h","12h","1d","1w"],sCe=[{value:"15m",label:"Last 15 mins"},{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"},{value:"custom",label:"Custom window"}],iCe={"15m":15*60*1e3,"1h":60*60*1e3,"12h":12*60*60*1e3,"1d":24*60*60*1e3,"1w":7*24*60*60*1e3};function eu(t){const e=Date.now();return{start_ms:e-iCe[t],end_ms:e}}function oCe(t){return t==="custom"||aCe.includes(t)?t:"1d"}function $s(t){const e=new Date(t),n=r=>r.toString().padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`}function $0(t){const e=new Date(t).getTime();return Number.isFinite(e)?e:null}function Fp(t,e){const n=$0(t),r=$0(e),a=Date.now();if(!(n===null||r===null)&&!(r<=n||n>a||r>a))return{start_ms:n,end_ms:r}}function Uw(t){return new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}).format(new Date(t))}function lCe(t,e){return e?`${Uw(e.start_ms)} to ${Uw(e.end_ms)}`:"Custom window"}function MS(t){return t.toString().padStart(2,"0")}function rd(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function Fg(t){return new Date(t.getFullYear(),t.getMonth(),1)}function Bg(t){const e=new Date;return t.getTime()>e.getTime()?e:t}function cCe(t){return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(t)}function uCe(t){return new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(t)}function dCe(t){const e=Fg(t),n=new Date(e);n.setDate(n.getDate()-e.getDay());const r=Array.from({length:42},(s,o)=>{const l=new Date(n);return l.setDate(n.getDate()+o),{key:`${l.getFullYear()}-${l.getMonth()}-${l.getDate()}`,date:l,inMonth:l.getMonth()===t.getMonth()}});return r.slice(35).every(s=>!s.inMonth)?r.slice(0,35):r}function DS(t,e){const n=new Date(t);return n.setHours(e.getHours(),e.getMinutes(),0,0),n}function P$(t,e){const n=$0(t);return n===null?e:Bg(new Date(n))}function fCe({start:t,end:e,onApply:n,onCancel:r}){const a=new Date,s=g.useMemo(()=>P$(e,new Date),[e]),o=g.useMemo(()=>P$(t,new Date(s.getTime()-24*60*60*1e3)),[t,s]),[l,c]=g.useState({start:o,end:s}),[u,d]=g.useState(null),[f,h]=g.useState(Fg(s));g.useEffect(()=>{c({start:o,end:s}),h(Fg(s))},[o.getTime(),s.getTime()]);const p=g.useMemo(()=>dCe(f),[f]),m=Fg(f).getTime()>=Fg(a).getTime(),x=l.end??u,v=l.end!==null,b=l.end?{start:$s(l.start.getTime()),end:$s(l.end.getTime())}:null,y=b?Fp(b.start,b.end):void 0;function w(_){c(C=>C.end===null?rd(_).getTime(){const R=_==="start"?P.start:P.end;if(!R)return P;const A=new Date(R);return C==="hours"?A.setHours(Number(E)):A.setMinutes(Number(E)),{...P,[_]:Bg(A)}})}function k(){b&&n(b.start,b.end)}function S(_){const C=rd(_).getTime(),E=rd(l.start).getTime(),P=x?rd(x).getTime():null;return C===E||P!==null&&C===P?"edge":P!==null&&C>E&&Ch(_=>new Date(_.getFullYear(),_.getMonth()-1,1)),"aria-label":"Previous month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white",children:i.jsx($Ne,{size:12})}),i.jsx("button",{type:"button",disabled:m,onClick:()=>h(_=>new Date(_.getFullYear(),_.getMonth()+1,1)),"aria-label":"Next month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-35 disabled:hover:border-slate-200 disabled:hover:text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white dark:disabled:hover:text-[#8a8a93]",children:i.jsx(So,{size:12})})]})]}),i.jsx("div",{className:"grid grid-cols-7 text-center text-[11px] font-semibold uppercase leading-4 tracking-[0.1em] text-slate-500 dark:text-[#78849a]",children:["S","M","T","W","T","F","S"].map((_,C)=>i.jsx("span",{className:"py-0.5",children:_},C))}),i.jsx("div",{className:"grid grid-cols-7",onMouseLeave:()=>d(null),children:p.map(_=>{const C=rd(_.date).getTime()>rd(a).getTime(),E=C?"idle":S(_.date);return i.jsx("div",{className:`py-px ${E==="idle"?"":"bg-brand-500/10 dark:bg-brand-500/15"}`,children:i.jsx("button",{type:"button",disabled:C,"aria-label":cCe(_.date),onClick:()=>w(_.date),onMouseEnter:()=>d(v?null:_.date),className:`flex h-7 w-full items-center justify-center rounded-md text-[12px] leading-4 transition ${C?"cursor-not-allowed text-slate-500 opacity-35 dark:text-[#78849a]":E==="edge"?"bg-brand-600 text-white shadow-[0_8px_20px_-14px_rgba(59,130,246,0.7)] dark:bg-brand-500":E==="inside"?"text-brand-700 dark:text-brand-200":_.inMonth?"text-slate-700 hover:bg-slate-100 dark:text-[#e5ecf7] dark:hover:bg-[#1a2130]":"text-slate-500 hover:bg-slate-100 dark:text-[#4b5565] dark:hover:bg-[#161b24]"}`,children:_.date.getDate()})},_.key)})}),i.jsx("div",{className:"mt-2 space-y-1.5 border-t border-slate-100 pt-2 dark:border-[#2a303a]",children:["start","end"].map(_=>{const C=_==="start"?l.start:l.end;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-9 text-[11px] font-medium leading-4 text-slate-500 dark:text-[#8a8a93]",children:_==="start"?"From":"To"}),i.jsx(R$,{unit:"hours",value:C,disabled:!C,onChange:E=>j(_,"hours",E)}),i.jsx("span",{className:"text-[11px] font-semibold leading-4 text-slate-500 dark:text-[#8a8a93]",children:":"}),i.jsx(R$,{unit:"minutes",value:C,disabled:!C,onChange:E=>j(_,"minutes",E)}),i.jsx("span",{className:"ml-auto truncate text-[11px] leading-4 text-slate-500 dark:text-[#8a8a93]",children:C?new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short"}).format(C):"Pick a day"})]},_)})}),b&&!y?i.jsx("p",{className:"mt-2 text-[11px] leading-4 text-red-600 dark:text-red-400",children:"The end must come after the start, and neither may be in the future."}):null,i.jsxs("div",{className:"mt-2.5 flex items-center justify-end gap-1.5",children:[r?i.jsx(we,{size:"sm",variant:"secondary",onClick:r,children:"Cancel"}):null,i.jsx(we,{size:"sm",onClick:k,disabled:!y,children:"Apply"})]})]})}function R$({unit:t,value:e,disabled:n,onChange:r}){const a=t==="hours"?24:60,s=e?t==="hours"?e.getHours():e.getMinutes():0;return i.jsx("select",{value:MS(s),disabled:n,onChange:o=>r(o.target.value),"aria-label":t==="hours"?"Hour":"Minute",className:"h-7 w-[52px] rounded-lg border border-slate-200 bg-white/90 px-1.5 text-[12px] leading-4 text-slate-700 disabled:opacity-40 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7]",children:Array.from({length:a},(o,l)=>i.jsx("option",{value:MS(l),children:MS(l)},l))})}function tT({range:t,customStart:e,customEnd:n,onRangeChange:r,onCustomChange:a,align:s="right",className:o=""}){const l=g.useRef(null),[c,u]=g.useState(!1);g.useEffect(()=>{if(!c)return;function h(m){var x;(x=l.current)!=null&&x.contains(m.target)||u(!1)}function p(m){m.key==="Escape"&&u(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[c]),g.useEffect(()=>{t!=="custom"&&u(!1)},[t]);const d=t==="custom"?Fp(e,n):void 0;function f(h){if(h==="custom"){u(p=>t==="custom"?!p:!0),t!=="custom"&&r("custom");return}u(!1),r(h)}return i.jsxs("div",{ref:l,className:`relative ${o}`,children:[i.jsx("div",{className:"flex flex-wrap items-center gap-1 rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d]",children:sCe.map(h=>i.jsx(we,{size:"sm",variant:"secondary",title:h.label,className:hCe(t===h.value),onClick:()=>f(h.value),children:h.value==="custom"?"Custom":h.value},h.value))}),t==="custom"&&c?i.jsxs("div",{className:`absolute top-[calc(100%+10px)] z-[90] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-[0_24px_70px_-34px_rgba(15,23,42,0.48)] backdrop-blur dark:border-[#2a303a] dark:bg-[#11151d]/95 dark:shadow-[0_24px_70px_-34px_rgba(0,0,0,0.72)] ${s==="left"?"left-0":"right-0"}`,children:[i.jsxs("div",{className:"mb-3",children:[i.jsx("p",{className:"text-[13px] font-semibold leading-[18px] text-slate-900 dark:text-white",children:"Select time range"}),i.jsx("p",{className:"mt-1 text-[12px] leading-[18px] text-slate-500 dark:text-[#8a8a93]",children:d?lCe("custom",d):"Click a start day, then an end day"})]}),i.jsx(fCe,{start:e,end:n,onCancel:()=>u(!1),onApply:(h,p)=>{a(h,p),u(!1)}})]}):null]})}function hCe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}const M$="text-lg font-semibold text-slate-900 dark:text-white",pCe="mt-0.5 text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ra="text-[15px] leading-[22px] font-semibold text-slate-900 dark:text-white",fc="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ks="text-[13px] leading-[18px] font-medium text-slate-700 dark:text-[#c7cfdd]",pl="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96aa]";function Ba({title:t,description:e,badge:n,className:r=""}){return i.jsxs("div",{className:r||void 0,children:[n?i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h1",{className:M$,children:t}),n]}):i.jsx("h1",{className:M$,children:t}),e?i.jsx("p",{className:pCe,children:e}):null]})}function D$(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function mCe(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,notation:"compact",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(0)} ${e}`}}const gCe=["transactions","rule_based"],I$={transactions:"Multi-objective",rule_based:"Rule based / Volume based"},ao=["#0069ED","#14b8a6","#f97316","#e11d48","#8b5cf6","#22c55e"],IS={zIndex:30,outline:"none"},$$={dimensions:{},gateways:[]},mg=3,$S=50,xCe=5,L$=10,yCe=[750,2e3,4e3],Xb={share:{title:"Selected gateways over time",purpose:"Use this to see when traffic shifted from one connector to another for the selected merchant and routing slice.",calculation:"Decision events are grouped by time and chosen connector. The chart shows how many filtered decisions each gateway received over time.",source:"Reads ClickHouse-backed domain analytics rows from `analytics_domain_events`."},alignment:{title:"Routing alignment",purpose:"Use this to see whether the best-scoring connector is also leading traffic share.",calculation:"Compares the latest connector success-rate score with the gateways actually selected in the same time window.",source:"Reads the same ClickHouse-backed routing-stats response used by the gateway share and connector success-rate charts."},sr:{title:"Connector success rate over time",purpose:"Use this to explain why a connector won routing at a given time, based on the recorded historical score trail.",calculation:"Stored `score_snapshot` events are grouped over the selected window and averaged per connector. The line values are displayed as percentages.",source:"Reads ClickHouse-backed `score_snapshot` analytics rows from `analytics_domain_events`. The current score state still originates from Redis-backed scoring flows."},preview_activity:{title:"Connector selections over time",purpose:"Use this to see which connectors were selected over the chosen decision window.",calculation:"Returned decision traces are grouped by time using each trace's latest activity timestamp, then grouped by latest selected connector. The chart shows connector counts over time.",source:"Reads rule decision activity through `/analytics/preview-trace`."}};function YW(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Hv(t,e,n,r){const a={range:e==="custom"?"1h":e,start_ms:n==null?void 0:n.start_ms,end_ms:n==null?void 0:n.end_ms,gateway:r!=null&&r.gateways.length?r.gateways.join(","):void 0};Object.entries((r==null?void 0:r.dimensions)||{}).forEach(([o,l])=>{l&&(a[o]=l)});const s=YW(a);return s?`${t}?${s}`:t}function sA(t,e,n,r){const a={range:t==="custom"?"1h":t,start_ms:r==null?void 0:r.start_ms,end_ms:r==null?void 0:r.end_ms,page:e,page_size:n},s=YW(a);return s?`/analytics/preview-trace?${s}`:"/analytics/preview-trace"}async function vCe(t,e){const n=await Dt(sA(t,1,$S,e)),r=Math.min(Math.ceil(n.total_results/$S),xCe);if(r<=1)return n;const a=await Promise.all(Array.from({length:r-1},(s,o)=>Dt(sA(t,o+2,$S,e))));return{...n,results:[n.results,...a.map(s=>s.results)].flat()}}function ci(t,e=2){if(t==null||Number.isNaN(Number(t)))return"0";const n=Number(t);return Number.isInteger(n)?n.toString():n.toFixed(e)}function XW(t){return Number.isFinite(t)?t<=1?t*100:t:0}function Ko(t,e=1){return t==null||Number.isNaN(Number(t))?"0%":`${ci(XW(Number(t)),e)}%`}function bCe(t,e=1){return t===void 0||!Number.isFinite(t)?"No runner-up":`${t>0?"+":t<0?"-":""}${ci(Math.abs(t),e)} pp`}function LS(t,e){const n=t[e];return typeof n=="number"&&Number.isFinite(n)?n:0}function wCe(t,e){const n=Math.max(0,e.end_ms-e.start_ms);return n<=24*60*60*1e3?new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(t)):n<=7*24*60*60*1e3?new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short",hour:"2-digit"}).format(new Date(t)):new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short"}).format(new Date(t))}function zf(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function kCe(t,e){const n=e?e.end_ms-e.start_ms:t==="15m"?9e5:t==="1h"?36e5:t==="12h"?432e5:t==="1d"?864e5:6048e5;return n<=15*60*1e3?60*1e3:n<=60*60*1e3?5*60*1e3:n<=12*60*60*1e3||n<=24*60*60*1e3?60*60*1e3:24*60*60*1e3}function iA(t,e){return t-t%Math.max(1,e)}function F$(t){return Array.from(new Set(t)).sort((e,n)=>e.localeCompare(n)).slice(0,6)}function FS(t,e){const n=[],r=Math.max(1,e),a=iA(t.start_ms,r),s=iA(t.end_ms,r);for(let o=a;o<=s;o+=r)n.push(o);return n}function Il({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-dashed border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function Gv({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:20})}),i.jsx("p",{className:"mt-5 text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function jCe(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 shadow-sm outline-none transition focus:border-brand-500 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#e5e7eb]"}function B$(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Jb({content:t}){const[e,n]=g.useState(!1),r=g.useRef(null),[a,s]=g.useState({top:0,left:0,width:320});return g.useEffect(()=>{if(!e)return;function o(l){var c;(c=r.current)!=null&&c.contains(l.target)||n(!1)}return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[e]),g.useLayoutEffect(()=>{if(!e||!r.current)return;const o=320,l=280,c=16,u=12;function d(){if(!r.current)return;const f=r.current.getBoundingClientRect(),h=Math.min(o,window.innerWidth-c*2),p=Math.min(Math.max(f.right-h,c),window.innerWidth-h-c),x=f.bottom+u+l>window.innerHeight-c?Math.max(f.top-l-u,c):f.bottom+u;s({top:x,left:p,width:h})}return d(),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),()=>{window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0)}},[e]),i.jsxs("div",{ref:r,className:"relative shrink-0",children:[i.jsx("button",{type:"button","aria-label":`About ${t.title}`,onClick:()=>n(o=>!o),className:`flex h-7 w-7 items-center justify-center rounded-full border text-[13px] font-semibold transition ${e?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-500 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#8a8a93] dark:hover:text-white"} leading-[18px]`,children:"i"}),e?i.jsxs("div",{style:{position:"fixed",top:a.top,left:a.left,width:a.width},className:"z-[120] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-2xl backdrop-blur dark:border-[#1d1d23] dark:bg-[#09090d]/95",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.title}),i.jsxs("div",{className:"mt-3 space-y-3 text-[13px] leading-6 text-slate-600 dark:text-[#b3b3bd]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Why it matters"}),i.jsx("p",{className:"mt-2",children:t.purpose})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"How it is calculated"}),i.jsx("p",{className:"mt-2",children:t.calculation})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Data source"}),i.jsx("p",{className:"mt-2",children:t.source})]})]})]}):null]})}function SCe({summary:t,comparisonRows:e,expanded:n,onToggle:r}){var p,m,x,v;const a=t.srLeader&&t.srRunnerUp?t.srLeader.value-t.srRunnerUp.value:void 0,s=t.srLeaderVolume?`${ci(t.srLeaderVolume.count,0)} payments for ${t.srLeaderVolume.gateway}`:"No traffic share",o=t.comparableDecisionCount?`${ci(t.leaderDecisionCount,0)} of ${ci(t.comparableDecisionCount,0)} payments matched the best score`:s,l=t.alignmentPercent===null?"Not enough data":`${Ko(t.alignmentPercent)} traffic share`,c=((p=t.srLeader)==null?void 0:p.gateway)||"--",u=((m=t.volumeLeader)==null?void 0:m.gateway)||"--",d=!!(t.srLeader&&t.volumeLeader)&&((x=t.srLeader)==null?void 0:x.gateway)!==((v=t.volumeLeader)==null?void 0:v.gateway),f=t.volumeLeader?d?"orange":"green":"gray",h=[t.srLeader?`Best score: ${c}`:"No score",t.volumeLeader?`Traffic leader: ${u}`:"No traffic",l].join(" · ");return i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{className:n?"px-5 py-3":"px-5 py-3 !border-b-0",children:i.jsxs("div",{className:`flex flex-wrap justify-between gap-3 ${n?"items-start":"items-center"}`,children:[n?i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Routing alignment"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Traffic share: checks if the best-scoring connector is also getting the largest share."})]}):i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Ip,{size:18,className:"shrink-0 text-emerald-700"}),i.jsxs("span",{className:"min-w-0 text-[13px] text-slate-600 dark:text-[#9aa7bb] leading-[18px]",children:[i.jsx("span",{className:"font-semibold text-slate-800 dark:text-white",children:"Routing alignment"})," — ",h]})]}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:n?i.jsxs(i.Fragment,{children:[i.jsx(Jb,{content:Xb.alignment}),i.jsx(we,{size:"sm",variant:"secondary",onClick:r,children:"Hide details"})]}):i.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 text-[13px] font-semibold text-brand-600 transition hover:text-brand-700 dark:text-brand-300 dark:hover:text-brand-200 leading-[18px]",children:["Show details",i.jsx(So,{size:16})]})})]})}),n?i.jsxs(He,{className:"space-y-5 px-5 py-3",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(Me,{variant:"gray",children:["Best score: ",c]}),i.jsxs(Me,{variant:f,children:["Traffic leader: ",u]})]}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.headline}),i.jsx("p",{className:"text-[13px] leading-[21px] text-slate-500 dark:text-[#8a8a93]",children:t.detail})]}),i.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-2 rounded-2xl border border-slate-200 bg-slate-50/80 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("span",{className:"text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:t.alignmentPercent===null?"Not enough data":Ko(t.alignmentPercent)}),i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:o})]}),e.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("div",{className:"min-w-[640px]",children:[i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] font-medium text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] leading-[18px]",children:[i.jsx("span",{children:"Connector"}),i.jsx("span",{children:"Success rate"}),i.jsx("span",{children:"Traffic"}),i.jsx("span",{children:"Share"}),i.jsx("span",{children:"Role"})]}),e.map(b=>i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] last:border-b-0 dark:border-[#2a303a] leading-[18px]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:b.color}}),i.jsx("span",{className:"truncate font-medium text-slate-900 dark:text-white",children:b.gateway})]}),i.jsxs("span",{className:"flex flex-wrap items-baseline gap-2 text-slate-600 dark:text-[#cbd5e1]",children:[b.srValue===null?"--":Ko(b.srValue),b.isSrLeader&&a!==void 0?i.jsxs("span",{className:"text-slate-500 dark:text-[#78849a]",children:[bCe(a)," vs next"]}):null]}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:ci(b.count,0)}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:Ko(b.share)}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[b.isSrLeader?i.jsx(Me,{variant:"blue",children:"Best score"}):null,b.isVolumeLeader?i.jsx(Me,{variant:"green",children:"Traffic leader"}):null,!b.isSrLeader&&!b.isVolumeLeader?i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Secondary"}):null]})]},b.gateway))]})}):i.jsx(Il,{title:"No connector comparison yet",body:"This view needs both payment traffic and connector scores in the selected time window."})]}):null]})}function _Ce(t){return t==="/decide_gateway"?"Decide Gateway":t==="/update_gateway"?"Update Gateway":t==="/rule_evaluate"?"Rule Evaluate":t}function z$(t){return t>=.85?"text-emerald-700 dark:text-emerald-400":t>=.7?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}function NCe(t){return t>=85?"green":t>=70?"orange":"red"}function CCe(){var un,as,xn,ia,jr,oa,ja,El,ss,la,Sa,Yu,_a,or,Ns,Xu,Po,Na,Cf,Rt,ca,Sr,_r,Jt,qr;const t=wl(),[e,n]=g.useState("1d"),[r,a]=vc(),s=r.get("view"),o=gCe.includes(s)?s:"transactions",l=re=>{a(ke=>{const _e=new URLSearchParams(ke);return re==="transactions"?_e.delete("view"):_e.set("view",re),_e},{replace:!0})};g.useEffect(()=>{s!==(o==="transactions"?null:o)&&l(o)},[o,s]);const[c,u]=g.useState($$),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),[v,b]=g.useState(1),[y,w]=g.useState(()=>$s(Date.now()-24*60*60*1e3)),[j,k]=g.useState(()=>$s(Date.now())),[S,_]=g.useState(()=>eu("1d")),C=g.useMemo(()=>e==="custom"?Fp(y,j):void 0,[j,y,e]),E=e==="custom"?C:S,P="USD",R=E?Hv("/analytics/overview",e,E):null,A=E?Hv("/analytics/routing-stats",e,E):null,T=(()=>{if(!E)return null;const re=Hv("/analytics/cost-savings",e,E),ke=re.includes("?")?"&":"?";return`${re}${ke}currency=${encodeURIComponent(P)}`})(),D=E?Hv("/analytics/routing-stats",e,E,c):null,L=E?["preview-trace-analytics",e,E.start_ms,E.end_ms]:null,X=E?sA(e,v,L$,E):null,J={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},U={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},Y={...U,keepPreviousData:!0},W={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0,keepPreviousData:!0},G=ct(R,Dt,J),I=ct(A,Dt,U),q=ct(T,Dt,U),M=ct(D,Dt,Y),B=ct(L,async re=>{const[,ke,_e,ze]=re;return vCe(ke,_e!==null&&ze!==null?{start_ms:Number(_e),end_ms:Number(ze)}:void 0)},{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0}),z=ct(X,Dt,W);g.useEffect(()=>{const re=()=>{if(G.mutate(),o==="transactions"){I.mutate(),M.mutate();return}B.mutate(),z.mutate()};re();const ke=yCe.map(_e=>window.setTimeout(re,_e));return()=>{ke.forEach(_e=>window.clearTimeout(_e))}},[t.key,o]);const Z=!G.data&&G.isLoading||!I.data&&I.isLoading||!M.data&&M.isLoading,pe=!G.data&&G.isLoading||!B.data&&B.isLoading,ae=((un=G.error)==null?void 0:un.message)||((as=I.error)==null?void 0:as.message)||((xn=M.error)==null?void 0:xn.message)||null,ue=((ia=G.error)==null?void 0:ia.message)||((jr=B.error)==null?void 0:jr.message)||((oa=z.error)==null?void 0:oa.message)||null,de=o==="transactions"?Z:pe,Q=o==="transactions"?ae:ue,fe={dimensions:((El=(ja=I.data)==null?void 0:ja.available_filters)==null?void 0:El.dimensions)||((la=(ss=M.data)==null?void 0:ss.available_filters)==null?void 0:la.dimensions)||[],missing_dimensions:((Yu=(Sa=I.data)==null?void 0:Sa.available_filters)==null?void 0:Yu.missing_dimensions)||((or=(_a=M.data)==null?void 0:_a.available_filters)==null?void 0:or.missing_dimensions)||[],gateways:((Xu=(Ns=I.data)==null?void 0:Ns.available_filters)==null?void 0:Xu.gateways)||((Na=(Po=M.data)==null?void 0:Po.available_filters)==null?void 0:Na.gateways)||[]},ne=g.useMemo(()=>new Map(fe.dimensions.map(re=>[re.key,re])),[fe.dimensions]);g.useEffect(()=>{u(re=>{const ke=Object.fromEntries(Object.entries(re.dimensions).filter(([ze,Je])=>{if(!Je)return!1;const Ze=ne.get(ze);return Ze?Ze.values.includes(Je):!1})),_e=re.gateways.filter(ze=>fe.gateways.includes(ze));return Object.keys(ke).length===Object.keys(re.dimensions).length&&Object.entries(ke).every(([ze,Je])=>re.dimensions[ze]===Je)&&_e.length===re.gateways.length&&_e.every((ze,Je)=>ze===re.gateways[Je])?re:{dimensions:ke,gateways:_e}})},[ne,fe.gateways]),g.useEffect(()=>{fe.dimensions.length<=mg&&m&&x(!1)},[fe.dimensions.length,m]),g.useEffect(()=>{b(1)},[e,E==null?void 0:E.start_ms,E==null?void 0:E.end_ms]);const ce=g.useMemo(()=>E||eu(e),[E,e]),he=g.useMemo(()=>{var ke,_e;const re=[{route:"/decide_gateway",count:0},{route:"/update_gateway",count:0},{route:"/rule_evaluate",count:0}];return(_e=(ke=G.data)==null?void 0:ke.route_hits)!=null&&_e.length?re.map(ze=>{var Je,Ze;return{...ze,count:((Ze=(Je=G.data)==null?void 0:Je.route_hits.find(St=>St.route===ze.route))==null?void 0:Ze.count)||0}}):re},[G.data]),be=g.useMemo(()=>he.filter(re=>re.route!=="/rule_evaluate"),[he]),Pe=g.useMemo(()=>{var ze;const re=((ze=G.data)==null?void 0:ze.top_scores)??[],ke=re.reduce((Je,Ze)=>Je+Ze.transaction_count,0);return ke?re.reduce((Je,Ze)=>Je+Ze.score_value*Ze.transaction_count,0)/ke:null},[G.data]),Ce=g.useMemo(()=>{var re;return((re=he.find(ke=>ke.route==="/rule_evaluate"))==null?void 0:re.count)||0},[he]),Re=((Cf=B.data)==null?void 0:Cf.results)||[],Be=((Rt=z.data)==null?void 0:Rt.results)||[],st=g.useMemo(()=>{const re=new Map;for(const ke of Re){const _e=ke.latest_gateway||"No gateway selected";re.set(_e,(re.get(_e)||0)+1)}return Array.from(re.entries()).map(([ke,_e])=>({gateway:ke,count:_e})).sort((ke,_e)=>_e.count-ke.count).slice(0,6)},[Re]),F=g.useMemo(()=>{const re=new Map;for(const ke of Re){const _e=ke.latest_status||"unknown";re.set(_e,(re.get(_e)||0)+1)}return Array.from(re.entries()).map(([ke,_e])=>({status:ke,count:_e})).sort((ke,_e)=>_e.count-ke.count)},[Re]),se=g.useMemo(()=>F.reduce((re,ke)=>re+ke.count,0),[F]),ie=g.useMemo(()=>{var ke;return se?(((ke=F.find(_e=>_e.status==="success"))==null?void 0:ke.count)??0)/se:null},[F,se]),Se=g.useMemo(()=>kCe(e,E),[E,e]),te=g.useMemo(()=>re=>wCe(Number(re),ce),[ce]),me=g.useMemo(()=>{const re=st.map(_e=>_e.gateway).slice(0,6),ke=new Map;for(const _e of FS(ce,Se))ke.set(_e,re.reduce((ze,Je)=>(ze[Je]=0,ze),{bucket_ms:_e}));for(const _e of Re){const ze=_e.latest_gateway||"No gateway selected";if(!re.includes(ze))continue;const Je=iA(_e.last_seen_ms,Se),Ze=ke.get(Je)||re.reduce((St,Cn)=>(St[Cn]=0,St),{bucket_ms:Je});Ze[ze]=(Ze[ze]||0)+1,ke.set(Je,Ze)}return{gateways:re,rows:Array.from(ke.values()).sort((_e,ze)=>_e.bucket_ms-ze.bucket_ms)}},[Se,ce,Re,st]),ve=(ca=Re[0])==null?void 0:ca.last_seen_ms,Ee=((Sr=z.data)==null?void 0:Sr.total_results)||0,Oe=Math.max(1,Math.ceil(Ee/L$)),Tt=st.filter(re=>re.gateway!=="No gateway selected").length,Bt=((_r=st[0])==null?void 0:_r.count)||1,Pt=Ce>0&&!B.error&&!z.error&&Re.length===0&&Be.length===0;g.useEffect(()=>{if(!Ee&&v!==1){b(1);return}v>Oe&&b(Oe)},[v,Oe,Ee]);const sn=g.useMemo(()=>{var ze;const re=((ze=M.data)==null?void 0:ze.gateway_share)||[],ke=F$(re.map(Je=>Je.gateway||"No gateway selected"));if(!ke.length)return{gateways:ke,rows:[]};const _e=new Map;for(const Je of FS(ce,Se))_e.set(Je,ke.reduce((Ze,St)=>(Ze[St]=0,Ze),{bucket_ms:Je}));for(const Je of re){const Ze=Je.gateway||"No gateway selected";if(!ke.includes(Ze))continue;const St=_e.get(Je.bucket_ms)||ke.reduce((Cn,Qt)=>(Cn[Qt]=0,Cn),{bucket_ms:Je.bucket_ms});St[Ze]=Je.count,_e.set(Je.bucket_ms,St)}return{gateways:ke,rows:Array.from(_e.values()).sort((Je,Ze)=>Je.bucket_ms-Ze.bucket_ms)}},[Se,ce,M.data]),It=g.useMemo(()=>{var ze,Je;const re=F$((((ze=M.data)==null?void 0:ze.sr_trend)||[]).map(Ze=>Ze.gateway));if(!re.length)return{gateways:re,rows:[]};const ke=new Map;for(const Ze of FS(ce,Se))ke.set(Ze,re.reduce((St,Cn)=>(St[Cn]=null,St),{bucket_ms:Ze}));for(const Ze of((Je=M.data)==null?void 0:Je.sr_trend)||[]){if(!re.includes(Ze.gateway))continue;const St=ke.get(Ze.bucket_ms)||re.reduce((Cn,Qt)=>(Cn[Qt]=null,Cn),{bucket_ms:Ze.bucket_ms});St[Ze.gateway]=XW(Ze.score_value),ke.set(Ze.bucket_ms,St)}const _e=Array.from(ke.values()).sort((Ze,St)=>Number(Ze.bucket_ms)-Number(St.bucket_ms));for(const Ze of re){let St=null,Cn=!1;for(const Qt of _e){if(typeof Qt[Ze]=="number"){St=Qt[Ze],Cn=!0;continue}Cn&&(Qt[Ze]=St)}}return{gateways:re,rows:_e}},[Se,ce,M.data]),xr=g.useMemo(()=>{if(!It.rows.length)return[];const re=[...It.rows].reverse().find(ke=>It.gateways.some(_e=>typeof ke[_e]=="number"));return re?It.gateways.map(ke=>({gateway:ke,value:typeof re[ke]=="number"?re[ke]:null})).filter(ke=>ke.value!==null):[]},[It]),er=g.useMemo(()=>[...xr].sort((re,ke)=>ke.value-re.value),[xr]),za=g.useMemo(()=>It.gateways.reduce((re,ke)=>(re[ke]=It.rows.filter(_e=>typeof _e[ke]=="number").length,re),{}),[It]),Gr=g.useMemo(()=>{const re=It.rows.flatMap(Je=>It.gateways.map(Ze=>Je[Ze]).filter(Ze=>typeof Ze=="number"));if(!re.length)return[0,100];const ke=Math.min(...re),_e=Math.max(...re),ze=ke===_e?5:Math.max(2,(_e-ke)*.35);return[Math.max(0,Math.floor(ke-ze)),Math.min(100,Math.ceil(_e+ze))]},[It]),pn=g.useMemo(()=>{const re=new Map;for(const _e of sn.rows)for(const ze of sn.gateways)re.set(ze,(re.get(ze)||0)+LS(_e,ze));const ke=Array.from(re.values()).reduce((_e,ze)=>_e+ze,0);return sn.gateways.map(_e=>{const ze=re.get(_e)||0;return{gateway:_e,count:ze,share:ke?ze/ke*100:0}}).filter(_e=>_e.count>0).sort((_e,ze)=>ze.count-_e.count)},[sn]),mt=g.useMemo(()=>{const re=er[0]||null,ke=er[1]||null,_e=pn[0]||null,ze=re?pn.find(is=>is.gateway===re.gateway)||{gateway:re.gateway,count:0,share:0}:null,Je=new Map(It.rows.map(is=>[Number(is.bucket_ms),is]));let Ze=0,St=0;for(const is of sn.rows){const Un=sn.gateways.reduce((Vn,Ea)=>Vn+LS(is,Ea),0);if(Un<=0)continue;const Yi=Je.get(Number(is.bucket_ms));if(!Yi)continue;const Ca=It.gateways.map(Vn=>{const Ea=Yi[Vn];return typeof Ea=="number"&&Number.isFinite(Ea)?{gateway:Vn,value:Ea}:null}).filter(Vn=>Vn!==null).sort((Vn,Ea)=>Ea.value-Vn.value);if(!Ca.length)continue;const os=Ca[0].value,Ju=Ca.filter(Vn=>Math.abs(Vn.value-os)<1e-4).reduce((Vn,Ea)=>Vn+LS(is,Ea.gateway),0);St+=Un,Ze+=Ju}const Cn=St?Ze/St*100:null;let Qt="Waiting for traffic share and connector scores.",Rn="Run payments and send score updates in this time window to compare routing traffic.";if(re&&_e){const is=re.gateway!==_e.gateway,Un=St>0?`${re.gateway} handled ${ci((ze==null?void 0:ze.count)||0,0)} of ${ci(St,0)} payments (${Ko((ze==null?void 0:ze.share)||0)} traffic share).`:"Traffic and score updates did not happen close enough together to compare.";is?(Qt=`${re.gateway} has the better success rate; ${_e.gateway} still leads traffic share.`,Rn=`${Un} Traffic share is cumulative for this window, so earlier ${_e.gateway} selections can keep it ahead even after failures reduce its score.`):(Qt=`${re.gateway} has the better success rate and leads traffic share.`,Rn=Un)}else re?(Qt=`${re.gateway} has the better success rate, but no traffic share is available.`,Rn="Run decide-gateway traffic in this time window to compare scores against actual selections."):_e&&(Qt=`${_e.gateway} leads traffic share, but connector success rate is not available.`,Rn="Send update-gateway-score traffic in this time window to compare selections against success rates.");return{srLeader:re,srRunnerUp:ke,volumeLeader:_e,srLeaderVolume:ze,alignmentPercent:Cn,leaderDecisionCount:Ze,comparableDecisionCount:St,headline:Qt,detail:Rn}},[It,sn,pn,er]),Mt=g.useMemo(()=>{const re=new Map(er.map(Je=>[Je.gateway,Je.value])),ke=new Map(pn.map(Je=>[Je.gateway,Je])),_e=Array.from(new Set([...It.gateways,...sn.gateways])),ze=new Map(_e.map((Je,Ze)=>[Je,ao[Ze%ao.length]]));return _e.map(Je=>{var St,Cn;const Ze=ke.get(Je);return{gateway:Je,srValue:re.get(Je)??null,count:(Ze==null?void 0:Ze.count)||0,share:(Ze==null?void 0:Ze.share)||0,color:ze.get(Je)||ao[0],isSrLeader:((St=mt.srLeader)==null?void 0:St.gateway)===Je,isVolumeLeader:((Cn=mt.volumeLeader)==null?void 0:Cn.gateway)===Je}}).filter(Je=>Je.srValue!==null||Je.count>0).sort((Je,Ze)=>{const St=Je.srValue??-1,Cn=Ze.srValue??-1;return Cn!==St?Cn-St:Ze.count-Je.count}).slice(0,6)},[It.gateways,sn.gateways,pn,er,(Jt=mt.srLeader)==null?void 0:Jt.gateway,(qr=mt.volumeLeader)==null?void 0:qr.gateway]),gt=g.useMemo(()=>m||fe.dimensions.length<=mg?fe.dimensions:fe.dimensions.slice(0,mg),[fe.dimensions,m]),Lr=fe.dimensions.length>mg,zn=Lr?fe.dimensions.length-mg:0,mn=g.useMemo(()=>{const re=fe.dimensions.flatMap(_e=>{const ze=c.dimensions[_e.key];return ze?[{key:`dimension:${_e.key}`,label:`${_e.label}: ${ze}`}]:[]}),ke=c.gateways.map(_e=>({key:`gateway:${_e}`,label:`Connector: ${_e}`}));return[...re,...ke]},[fe.dimensions,c]);function ge(re){if(n(re),re==="custom")return;const ke=eu(re);_(ke),w($s(ke.start_ms)),k($s(ke.end_ms))}function ut(){if(e!=="custom"){_(eu(e));return}G.mutate(),I.mutate(),M.mutate(),B.mutate(),z.mutate()}function ft(re){u(ke=>{const _e=ke.gateways.includes(re);return{...ke,gateways:_e?ke.gateways.filter(ze=>ze!==re):[...ke.gateways,re]}})}function Kt(){u($$)}function gn(re){if(re.startsWith("dimension:")){zt(re.replace("dimension:",""),"");return}re.startsWith("gateway:")&&ft(re.replace("gateway:",""))}function zt(re,ke){u(_e=>{const ze={..._e.dimensions};return ke?ze[re]=ke:delete ze[re],{..._e,dimensions:ze}})}return i.jsxs("div",{className:"space-y-8 px-5 sm:px-5 lg:px-8 xl:px-8",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx("div",{className:"space-y-2",children:i.jsx(Ba,{title:"Analytics",description:"Real-time multi-gateway routing performance overview."})}),i.jsxs("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:[i.jsx(we,{size:"sm",variant:"secondary",className:B$(o==="transactions"),onClick:()=>l("transactions"),children:I$.transactions}),i.jsx(we,{size:"sm",variant:"secondary",className:B$(o==="rule_based"),onClick:()=>l("rule_based"),children:I$.rule_based})]}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(tT,{range:e,customStart:y,customEnd:j,onRangeChange:ge,onCustomChange:(re,ke)=>{w(re),k(ke)}}),i.jsx(we,{size:"sm",variant:"secondary",onClick:ut,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(Es,{className:"h-4 w-4"})})]})]}),i.jsx(vt,{error:Q}),de?i.jsxs("div",{className:"flex items-center gap-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[i.jsx(at,{size:16}),"Loading analytics…"]}):null,i.jsx("div",{className:"relative",children:o==="transactions"?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Overall auth rate"}),Pe!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${z$(Pe)} leading-[42px]`,children:Ko(Pe)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Weighted across all gateways"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No score data yet"})]})]})}),be.map(re=>i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:_Ce(re.route)}),i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-slate-950 dark:text-white leading-[42px]",children:ci(re.count,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.route==="/decide_gateway"?"routing decisions":"score feedback calls"})]})},re.route)),i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Total cost saved"}),q.data&&q.data.currency&&q.data.totals.saved_value>0?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-emerald-700 dark:text-emerald-400 leading-[42px]",children:D$(q.data.totals.saved_value,q.data.currency)}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:[ci(q.data.totals.cost_won_count,0)," of ",ci(q.data.totals.total_decisions,0)," cost decisions"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:q.data?"No multi-objective wins yet":"Loading…"})]})]})})]}),i.jsx(SCe,{summary:mt,comparisonRows:Mt,expanded:h,onToggle:()=>p(re=>!re)}),Sh.SMART_RETRY_IN_ANALYTICS,i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Selected gateways over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector decision counts for the same active filters used by the success-rate chart."})]}),i.jsx(Jb,{content:Xb.share})]})}),i.jsx(He,{children:sn.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:sn.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11}}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),sn.gateways.map((re,ke)=>i.jsx(pi,{dataKey:re,fill:ao[ke%ao.length],name:re,radius:[3,3,0,0]},re))]})})}):i.jsx(Il,{title:"No gateway share history yet",body:"Gateway traffic will appear here after payments are routed in this window."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsx("div",{className:"flex items-start justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Cost saved over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Savings from multi-objective routing promoting the higher-EV PSP within the derived auth band."})]})})}),i.jsx(He,{children:q.data&&q.data.currency&&q.data.trend.length>0?i.jsx("div",{className:"h-72",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:q.data.trend,barCategoryGap:"35%",children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11},tickFormatter:re=>mCe(re,q.data.currency),width:70}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),formatter:re=>[D$(re,q.data.currency),"Saved"],contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"saved_value",fill:"#10b981",name:"Saved",radius:[3,3,0,0]})]})})}):i.jsx(Il,{title:"No cost savings yet",body:"Cost savings appear once multi-objective routing promotes a higher-EV PSP within the derived auth band."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector success rate over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Historical connector success rate for the active filters; compare it with selected volume above."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>f(re=>!re),children:d?"Hide filters":"Show filters"}),i.jsx(Jb,{content:Xb.sr})]})]})}),i.jsxs(He,{className:"space-y-5",children:[d?i.jsxs("div",{className:"space-y-3 border-b border-slate-200 pb-5 dark:border-[#1d1d23]",children:[fe.dimensions.length?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:gt.map(re=>i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.label}),i.jsxs("select",{value:c.dimensions[re.key]||"",onChange:ke=>zt(re.key,ke.target.value),className:jCe(),disabled:!re.values.length,children:[i.jsxs("option",{value:"",children:["Any ",re.label.toLowerCase()]}),re.values.map(ke=>i.jsx("option",{value:ke,children:ke},ke))]})]},re.key))}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connectors"}),fe.gateways.length?fe.gateways.map(re=>{const ke=c.gateways.includes(re);return i.jsx("button",{type:"button","aria-pressed":ke,onClick:()=>ft(re),className:`rounded-full border px-3 py-2 text-[13px] font-medium transition ${ke?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#a1a1aa] dark:hover:text-white"} leading-[18px]`,children:re},re)}):i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No connector history yet for the selected window."})]})]}):fe.missing_dimensions.length?i.jsx(Il,{title:"No routing dimension values in this window",body:"Score history exists, but no routing dimensions have values recorded in the selected time window yet."}):null,i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[Lr?i.jsx("button",{type:"button",onClick:()=>x(re=>!re),className:"text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:m?"Fewer dimensions":`${zn} more dimension${zn===1?"":"s"}`}):null,fe.missing_dimensions.length?i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["No values yet: ",fe.missing_dimensions.map(re=>re.label).join(", ")]}):null,mn.map(re=>i.jsxs("button",{type:"button",onClick:()=>gn(re.key),className:"inline-flex items-center gap-2 rounded-full border border-brand-500/30 bg-brand-500/10 px-3 py-2 text-[13px] font-medium text-brand-700 transition hover:bg-brand-500/15 dark:text-brand-200 leading-[18px]",children:[i.jsx("span",{children:re.label}),i.jsx("span",{"aria-hidden":"true",children:"×"})]},re.key)),mn.length?i.jsx("button",{type:"button",onClick:Kt,className:"ml-auto text-[13px] font-medium text-slate-500 transition hover:text-slate-900 dark:text-[#8a8a93] dark:hover:text-white leading-[18px]",children:"Clear filters"}):null]})]}):null,xr.length?i.jsx("div",{className:"flex flex-wrap gap-2",children:xr.map(re=>i.jsxs(Me,{variant:NCe(re.value),children:[re.gateway,": ",Ko(re.value)]},re.gateway))}):null,It.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(AW,{data:It.rows,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0"}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{domain:Gr,tick:{fontSize:11},tickFormatter:re=>`${ci(Number(re),0)}%`}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),formatter:(re,ke)=>[Ko(re),String(ke)],contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),It.gateways.map((re,ke)=>i.jsx(dc,{type:"monotone",dataKey:re,stroke:ao[ke%ao.length],strokeWidth:3,dot:za[re]<=1?{r:4,strokeWidth:2}:!1,activeDot:{r:5},connectNulls:!0,name:re},re))]})})}):i.jsx(Il,{title:"No connector score history yet",body:"Connector history will appear after decide-gateway and update-gateway-score activity in this window."})]})]})]}):i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsx(He,{children:i.jsxs("div",{className:"grid gap-5 sm:grid-cols-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule match rate"}),ie!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${z$(ie)} leading-[42px]`,children:Ko(ie)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Decisions matched to a configured rule"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No decision data yet"})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule Evaluate"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:ci(Ce,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"routing decisions"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Gateways active"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:Tt}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"unique connectors selected"})]})]})})}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector selections over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector counts over time for selected rule decisions."})]}),i.jsx(Jb,{content:Xb.preview_activity})]})}),i.jsx(He,{children:me.gateways.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:me.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11}}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),me.gateways.map((re,ke)=>i.jsx(pi,{dataKey:re,fill:re==="No gateway selected"?"#64748b":ao[ke%ao.length],radius:[6,6,0,0],name:re},re))]})})}):Pt?i.jsx(Gv,{title:"Processing recent rule decisions",body:"Rule evaluate calls were received. Recent decisions are still being processed, and this view will update automatically."}):i.jsx(Il,{title:"No connector selections yet",body:"Rule decision traffic will appear here after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid items-stretch gap-5 xl:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Recent decisions"}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:["Latest decisions from ",i.jsx("code",{children:"/routing/evaluate"}),"."]})]}),i.jsx(Me,{variant:"purple",children:ve?`Latest ${zf(ve)}`:"No activity"})]})}),i.jsx(He,{children:Re.length?i.jsx("div",{className:"space-y-2",children:Re.slice(0,10).map(re=>{var _e,ze;const ke=(ze=(_e=re.latest_status)==null?void 0:_e.toLowerCase())!=null&&ze.includes("fail")?"red":re.latest_status==="default_selection"?"orange":"green";return i.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-slate-100 bg-slate-50/60 px-3 py-2.5 dark:border-[#1d1d23] dark:bg-[#0c0c0e]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Me,{variant:ke,children:re.latest_status||"decision"}),re.latest_gateway?i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-700 dark:text-[#c8d3e6] leading-[18px]",children:re.latest_gateway}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:zf(re.last_seen_ms)})]},re.lookup_key)})}):Pt?i.jsx(Gv,{title:"Processing recent decisions",body:"Rule evaluate calls were received. Decision rows will appear as soon as they are ready."}):i.jsx(Il,{title:"No decisions yet",body:"Recent rule decisions will appear after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid h-full gap-5 xl:grid-rows-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Gateway activity"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Recent decisions grouped by latest chosen gateway."})]})}),i.jsx(He,{children:st.length?i.jsx("div",{className:"space-y-3",children:st.map((re,ke)=>i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:re.gateway}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.count})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${re.count/Bt*100}%`,backgroundColor:ao[ke%ao.length]}})})]},re.gateway))}):Pt?i.jsx(Gv,{title:"Waiting for gateway activity",body:"Recent rule decisions are still being processed. Gateway activity will appear automatically once rows are available."}):i.jsx(Il,{title:"No gateway activity yet",body:"Once rule decisions are captured, this panel will show which connectors are being selected."})})]}),i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Decision outcomes"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"How decisions resolved — rule match vs. default fallback."})]})}),i.jsx(He,{children:F.length?i.jsx("div",{className:"space-y-5",children:F.map(re=>{const ke=se?re.count/se*100:0,_e=re.status.toLowerCase().includes("fail")?"red":re.status==="default_selection"?"orange":"green",ze=_e==="green"?"#22c55e":_e==="orange"?"#f97316":"#ef4444";return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx(Me,{variant:_e,children:re.status}),i.jsxs("span",{className:"text-[13px] font-semibold tabular-nums text-slate-900 dark:text-white leading-[18px]",children:[re.count," ",i.jsxs("span",{className:"font-normal text-slate-500 dark:text-[#8a8a93]",children:["(",Ko(ke),")"]})]})]}),i.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${ke}%`,backgroundColor:ze}})})]},re.status)})}):Pt?i.jsx(Gv,{title:"Waiting for decision outcomes",body:"Recent decision traffic is still being ingested. Outcome summaries will appear here automatically once the decision rows land."}):i.jsx(Il,{title:"No decision outcomes yet",body:"Recent rule decision results will appear here once decision traffic is recorded."})})]})]})]})]})})]})}const ECe={info:{box:"border-slate-200 bg-slate-50 text-slate-700 dark:border-[#2a303a] dark:bg-[#111820] dark:text-[#c7cfdd]",icon:"text-slate-500 dark:text-[#8d96aa]",Glyph:qu},success:{box:"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300",icon:"text-emerald-700 dark:text-emerald-400",Glyph:Ip},warning:{box:"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300",icon:"text-amber-700 dark:text-amber-400",Glyph:wm},danger:{box:"border-red-200 bg-red-50 text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",icon:"text-red-700 dark:text-red-400",Glyph:Ij}};function $a({tone:t="info",children:e,className:n=""}){const{box:r,icon:a,Glyph:s}=ECe[t];return i.jsxs("div",{role:"status",className:`flex items-start gap-2.5 rounded-lg border px-4 py-3 text-[13px] leading-[18px] ${r} ${n}`,children:[i.jsx(s,{size:16,"aria-hidden":!0,className:`mt-px shrink-0 ${a}`}),i.jsx("div",{className:"min-w-0 flex-1",children:e})]})}const BS=[{key:"payment_method",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],U$=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function V$(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function JW(t,e,n){for(const r of t.condition??[]){if(!r.lhs||e.has(r.lhs))continue;const a=r.value;if(!a)continue;let s="enum_variant",o="";a.type==="enum_variant"&&typeof a.value=="string"?(s="enum_variant",o=a.value):a.type==="enum_variant_array"&&Array.isArray(a.value)?(s="enum_variant",o=a.value[0]??""):a.type==="number"&&typeof a.value=="number"?(s="number",o=String(a.value)):a.type==="str_value"&&typeof a.value=="string"?(s="str_value",o=a.value):a.type==="number_array"&&Array.isArray(a.value)?(s="number",o=String(a.value[0]??0)):a.type==="metadata_variant"&&(s="metadata_variant",o=typeof a.value=="string"?a.value:"");const l=n[r.lhs];if((l==null?void 0:l.type)==="enum"){const c=l.values??[];c.length>0&&!c.includes(o)&&(o=c[0])}e.set(r.lhs,{key:r.lhs,type:s,value:o,metadataKey:""})}for(const r of t.nested??[])JW(r,e,n)}function zS(t,e){const n=t.algorithm_data||t.algorithm;if(!n||n.type!=="advanced")return[];const r=n.data;if(!(r!=null&&r.rules))return[];const a=new Map;for(const s of r.rules)for(const o of s.statements??[])JW(o,a,e);return Array.from(a.values())}function ACe(t){return t.toLowerCase().includes("no active routing algorithm")||t.toLowerCase().includes("active routing algorithm is not a volume split")}function ZW({merchantId:t,routingKeysConfig:e,routingConfigUnavailable:n,routingKeysLoading:r,resetSignal:a,onRunComplete:s,onOpenTrace:o}){const l=Hr(),c=g.useMemo(()=>Object.keys(e).sort(),[e]),{data:u}=ct(t?["active-routing",t]:null,()=>Fe(`/routing/list/active/${t}`),{revalidateOnFocus:!1}),{data:d}=ct(t?["routing-list",t]:null,()=>Fe(`/routing/list/${t}`),{revalidateOnFocus:!1}),f=(u==null?void 0:u.find(G=>{var I;return((I=G.algorithm_data||G.algorithm)==null?void 0:I.type)==="ab_test"}))??null,[h,p]=g.useState(BS),[m,x]=g.useState(U$),[v,b]=g.useState(null),[y,w]=g.useState(null),[j,k]=g.useState(!1),[S,_]=g.useState(null),[C,E]=g.useState(!1),[P,R]=g.useState(!1);g.useEffect(()=>{if(a===0)return;const G=BS.map(I=>{var q,M;return I.type==="enum_variant"&&I.value===""?{...I,value:((M=(q=e[I.key])==null?void 0:q.values)==null?void 0:M[0])??""}:I});p(G),x(U$),b(null),w(null),_(null),E(!1)},[a]),g.useEffect(()=>{var B;if(!u||!d||r||n)return;let I=u.find(z=>{var pe;const Z=(pe=z.algorithm_data||z.algorithm)==null?void 0:pe.type;return Z==="advanced"||Z==="priority"||Z==="single"}),q="";if(!I&&f){const z=(B=f.algorithm_data||f.algorithm)==null?void 0:B.data,Z=z!=null&&z.control_algorithm_id?d.find(ae=>ae.id===z.control_algorithm_id):void 0,pe=z!=null&&z.variant_algorithm_id?d.find(ae=>ae.id===z.variant_algorithm_id):void 0;Z&&zS(Z,e).length>0?(I=Z,q=" (control arm)"):pe&&zS(pe,e).length>0&&(I=pe,q=" (variant arm)")}if(!I)return;const M=zS(I,e);M.length!==0&&(p(z=>z.every(pe=>pe.value===""||BS.some(ae=>ae.key===pe.key))?M:z),w(I.name+q))},[u,d,r,n,e]);function A(){var B;const G=c[0]??"",I=e[G],q=V$(I==null?void 0:I.type),M=q==="enum_variant"?((B=I==null?void 0:I.values)==null?void 0:B[0])??"":"";p(z=>[...z,{key:G,type:q,value:M,metadataKey:""}])}function T(G){w(null),p(I=>I.filter((q,M)=>M!==G))}function D(G,I,q){w(null),p(M=>M.map((B,z)=>z===G?{...B,[I]:q}:B))}function L(G,I){var z;w(null);const q=e[I],M=V$(q==null?void 0:q.type),B=M==="enum_variant"?((z=q==null?void 0:q.values)==null?void 0:z[0])??"":"";p(Z=>Z.map((pe,ae)=>ae===G?{...pe,key:I,type:M,value:B,metadataKey:""}:pe))}function X(G,I){w(null),p(q=>q.map((M,B)=>B===G?{...M,metadataKey:I}:M))}function J(){x(G=>[...G,{gateway_name:"",gateway_id:""}])}function U(G){x(I=>I.filter((q,M)=>M!==G))}function Y(G,I,q){x(M=>M.map((B,z)=>z===G?{...B,[I]:q}:B))}async function W(){if(n){_("Routing key config unavailable. Fix /config/routing-keys and retry.");return}k(!0),_(null),E(!1),b(null);const G=`rule_decision_${Date.now()}`;try{const I={};h.forEach(M=>{M.key&&(M.type==="metadata_variant"?I[M.key]={type:M.type,value:{key:M.metadataKey||M.key,value:M.value}}:M.type==="number"?I[M.key]={type:M.type,value:parseFloat(M.value)||0}:M.value!==""&&(I[M.key]={type:M.type,value:M.value}))});const q=await Fe("/routing/evaluate",{created_by:t||"test_user",payment_id:G,fallback_output:m.filter(M=>M.gateway_name),parameters:I});b(q),s()}catch(I){const q=I instanceof Error?I.message:"Request failed";ACe(q)?E(!0):_(q)}finally{k(!1)}}return i.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:"Rule Evaluation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:"Rule Evaluation Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!t&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),r&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),n&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),f&&i.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg bg-amber-50 border border-amber-200 dark:bg-amber-900/20 dark:border-amber-700/40",children:[i.jsx("span",{className:"text-amber-700 mt-0.5 shrink-0",children:"⚠"}),i.jsxs("p",{className:"text-xs text-amber-700 dark:text-amber-300 leading-relaxed",children:[i.jsxs("span",{className:"font-semibold",children:['A/B experiment "',f.name,'" is active.']})," ","Results reflect whichever arm is assigned to the simulated payment ID — this mirrors real traffic. Stop the experiment to see baseline routing."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"}),y&&i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300 leading-4",children:["⚗ Prefilled from: ",y]})]}),i.jsx("div",{className:"space-y-1.5",children:h.map((G,I)=>{var q;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:G.key,onChange:M=>L(I,M.target.value),disabled:n||r,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:c.length===0?i.jsx("option",{value:"",children:"No keys available"}):c.map(M=>i.jsx("option",{value:M,children:M},M))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),G.type==="enum_variant"?i.jsx("select",{value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((q=e[G.key])==null?void 0:q.values)||[]).map(M=>i.jsx("option",{value:M,children:M},M))}):G.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):G.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>T(I),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),G.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:G.metadataKey||"",onChange:M=>X(I,M.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},I)})}),i.jsxs("button",{onClick:A,disabled:n||r||c.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:m.map((G,I)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:I+1}),i.jsx("input",{placeholder:"gateway name",value:G.gateway_name,onChange:q=>Y(I,"gateway_name",q.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:G.gateway_id||"",onChange:q=>Y(I,"gateway_id",q.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>U(I),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},I))}),i.jsxs("button",{onClick:J,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:S}),C&&i.jsxs($a,{tone:"warning",children:[i.jsx("p",{className:"font-semibold mb-1",children:"Configure rule-based routing first"}),i.jsx("p",{className:"mb-2 max-w-[57ch]",children:"Rule evaluation needs an active rule-based strategy before it can return a policy decision."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>l("/routing/rules"),children:"Configure routing"})]}),i.jsx(we,{onClick:W,disabled:j||n||!t,className:"w-full justify-center",children:j?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})})]})]}),i.jsx("div",{className:"space-y-4",children:v?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:v.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",v.output.type]})]}),v.payment_id&&i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>o(v.payment_id,"Rule Evaluation Decision"),children:"View decision trace"})]}),v.output.type==="single"&&v.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:v.output.connector.gateway_name}),v.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",v.output.connector.gateway_id]})]}),v.output.type==="priority"&&v.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:v.output.connectors.map((G,I)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:I+1}),i.jsx("span",{className:"font-medium",children:G.gateway_name}),G.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",G.gateway_id,")"]})]},I))})]}),v.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>R(G=>!G),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),P?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),P&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(v,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})})})]})}function bx({value:t,onChange:e,options:n,placeholder:r,className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(-1),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useMemo(()=>t?n.filter(b=>b.toLowerCase().includes(t.toLowerCase())):n,[n,t]),m=g.useCallback(()=>{o(!1),c(-1)},[]);function x(){var y;const b=(y=f.current)==null?void 0:y.getBoundingClientRect();b&&(d({position:"fixed",top:b.bottom+4,left:b.left,width:b.width,zIndex:9999}),c(-1),o(!0))}g.useEffect(()=>{if(!s)return;function b(y){var j,k;const w=y.target;!((j=f.current)!=null&&j.contains(w))&&!((k=h.current)!=null&&k.contains(w))&&m()}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s,m]),g.useEffect(()=>{c(-1)},[p.length]);function v(b){if(!s&&b.key!=="Escape"&&b.key!=="Tab"){x();return}switch(b.key){case"ArrowDown":b.preventDefault(),c(y=>yy>0?y-1:p.length-1);break;case"Enter":l>=0&&p[l]!==void 0&&(b.preventDefault(),e(p[l]),m());break;case"Escape":m();break}}return i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:f,type:"text",value:t,placeholder:r,className:a,onChange:b=>{e(b.target.value),x()},onFocus:x,onKeyDown:v,autoComplete:"off"}),s&&p.length>0&&gs.createPortal(i.jsx("div",{ref:h,style:u,className:"rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg overflow-hidden",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(p.length*32+8,240)}px`},children:p.map((b,y)=>i.jsx("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{e(b),m()},className:`w-full text-left px-3 py-2 text-xs transition-colors ${y===l?"bg-brand-500 text-white":b===t?"bg-brand-50/50 dark:bg-brand-900/10 text-brand-600 dark:text-brand-400 font-medium":"hover:bg-slate-50 dark:hover:bg-[#1c1c24] text-slate-700 dark:text-slate-200"}`,children:b},b))})}),document.body)]})}function Zb({text:t,children:e}){const[n,r]=g.useState(!1),[a,s]=g.useState({}),o=g.useRef(null);function l(){var u;const c=(u=o.current)==null?void 0:u.getBoundingClientRect();c&&(s({position:"fixed",top:c.top-6,left:c.left+c.width/2,transform:"translate(-50%, -100%)",zIndex:9999}),r(!0))}return g.useEffect(()=>{if(!n)return;function c(){r(!1)}return document.addEventListener("scroll",c,!0),()=>document.removeEventListener("scroll",c,!0)},[n]),i.jsxs("span",{ref:o,onMouseEnter:l,onMouseLeave:()=>r(!1),className:"inline-flex",children:[e,n&&gs.createPortal(i.jsx("span",{style:a,className:"pointer-events-none rounded-md bg-slate-800 dark:bg-slate-700 px-2 py-1 text-[11px] text-white shadow-md whitespace-nowrap leading-4",children:t}),document.body)]})}const _u={error_code:"",error_message:"",issuer_error_code:"",card_network:""},qv="w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs focus:outline-none focus:border-brand-500 text-slate-800 dark:text-slate-100 placeholder-slate-500",Kv="block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1";function nT(t){switch(t){case"Issue with Payment Method details":return!1;case"Issue with Integration":case"Issue with Configurations":case"Technical issue with PSP":case"Something went wrong":return!0;default:return null}}function OCe(t){switch(t.toLowerCase()){case"decline":return"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400";case"retry":return"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400";case"step_up":case"challenge":return"bg-blue-50 text-blue-600 dark:bg-blue-950/40 dark:text-blue-400";case"success":case"force_2ds_pass":return"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300";default:return"bg-slate-100 text-slate-500 dark:bg-[#1a1a24] dark:text-slate-400"}}function oA({info:t,onChange:e,rules:n,connector:r,showClassification:a=!0}){const[s,o]=g.useState(!1),l=g.useMemo(()=>[...new Set(n.filter(f=>!r||f.connector===r).map(f=>f.errorCode).filter(Boolean))].sort(),[n,r]),c=g.useMemo(()=>[...new Set(n.filter(f=>(!r||f.connector===r)&&(!t.error_code||f.errorCode===t.error_code)).map(f=>f.errorMessage).filter(Boolean))].sort(),[n,r,t.error_code]),u=g.useMemo(()=>{if(!t.error_code)return null;const f=n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.subFlow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.flow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code);return f?{unifiedMessage:f.unifiedMessage??null,decision:f.decision||null,penalized:nT(f.unifiedMessage)}:null},[n,r,t.error_code]),d=Object.values(t).some(Boolean);return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("button",{type:"button",onClick:()=>o(f=>!f),className:"w-full flex items-center justify-between gap-2 px-2.5 py-2 bg-slate-50 dark:bg-[#0d0d13] hover:bg-slate-100 dark:hover:bg-[#111118] transition-colors",children:[i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 shrink-0 leading-4",children:"Decline Error"}),t.error_code?i.jsx("span",{className:"font-mono text-[11px] text-brand-600 dark:text-brand-400 bg-brand-50 dark:bg-brand-900/30 px-1.5 py-0.5 rounded shrink-0 leading-4",children:t.error_code}):i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:"not set"}),a&&(u==null?void 0:u.decision)&&i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${OCe(u.decision)} leading-4`,children:u.decision}),a&&(u==null?void 0:u.penalized)!=null&&i.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${u.penalized?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300"} leading-4`,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${u.penalized?"bg-red-500":"bg-emerald-500"}`}),u.penalized?"Penalized":"Penalty skipped"]})]}),i.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[d&&i.jsx(Zb,{text:"Clear error info",children:i.jsx("span",{role:"button",onClick:f=>{f.stopPropagation(),e({error_code:"",error_message:"",issuer_error_code:"",card_network:""})},className:"rounded p-0.5 text-slate-500 hover:text-red-600 transition-colors",children:i.jsx(FW,{size:11})})}),i.jsx(ln,{size:13,className:`text-slate-500 transition-transform duration-200 ${s?"rotate-180":""}`})]})]}),s&&i.jsxs("div",{className:"px-2.5 py-2.5 space-y-2 border-t border-slate-200 dark:border-[#222226]",children:[(u==null?void 0:u.unifiedMessage)&&i.jsx("div",{className:`flex items-center gap-2 px-2.5 py-1.5 rounded-lg border-l-2 text-[11px] ${u.penalized===!0?"bg-red-50 border-red-400 text-red-700 dark:bg-red-950/20 dark:border-red-600 dark:text-red-400":u.penalized===!1?"bg-emerald-50 border-emerald-400 text-emerald-700 dark:bg-emerald-950/20 dark:border-emerald-600 dark:text-emerald-300":"bg-slate-50 border-slate-300 text-slate-500 dark:bg-[#111118] dark:border-slate-600 dark:text-slate-400"} leading-4`,children:i.jsx("span",{children:u.unifiedMessage})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Error Code"}),i.jsx(bx,{value:t.error_code,onChange:f=>e({error_code:f,error_message:""}),options:l,placeholder:"e.g. declined",className:qv})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Issuer Code"}),i.jsx("input",{value:t.issuer_error_code,onChange:f=>e({issuer_error_code:f.target.value}),placeholder:"e.g. 51",className:qv})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Error Message"}),i.jsx(bx,{value:t.error_message,onChange:f=>e({error_message:f}),options:c,placeholder:"e.g. Insufficient funds",className:qv})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Card Network"}),i.jsx("input",{value:t.card_network,onChange:f=>e({card_network:f.target.value}),placeholder:"e.g. Visa",className:qv})]})]})]})}function QW({merchantId:t,gsmRules:e,decideParams:n}){const[r,a]=g.useState(null),[s,o]=g.useState({}),[l,c]=g.useState({}),u=g.useMemo(()=>{const f=e.filter(p=>p.subFlow==="Authorize"||p.flow==="Authorize");return[...new Set(f.map(p=>p.unifiedMessage).filter(Boolean))].map(p=>{const m=nT(p)!==!1,x=f.filter(b=>b.unifiedMessage===p),v=[...new Set(x.map(b=>b.connector))];return{key:p,label:p,penalized:m,connectors:v,rulesForMsg:x}}).sort((p,m)=>Number(p.penalized)-Number(m.penalized))},[e]);async function d(f,h,p,m,x,v){var b,y;if(t){c(w=>({...w,[f]:{scoreBefore:null,scoreAfter:null,loading:!0,error:null}}));try{const k=n.eligibleGateways.split(",").map(L=>L.trim()).filter(Boolean).filter(L=>L!==h)[0]??(h==="stripe"?"adyen":"stripe"),S=[h,k],_={merchantId:t,paymentInfo:{paymentId:"",amount:parseFloat(n.amount)||1e3,currency:n.currency||"USD",paymentType:"ORDER_PAYMENT",paymentMethodType:n.paymentMethodType||"CARD",paymentMethod:n.paymentMethod||"CREDIT",authType:n.authType||"NO_THREE_DS",cardBrand:n.cardBrand||"VISA"},eligibleGatewayList:S,rankingAlgorithm:n.rankingAlgorithm,eliminationEnabled:!1},C=Date.now(),E=`scenario_test_${C}_0`,R=((b=(await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:E}})).gateway_priority_map)==null?void 0:b[h])??null;for(let L=1;L<=5;L++){const X=`scenario_test_${C}_${L}`;await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:X}}),await Fe("/update-gateway-score",{merchantId:t,gateway:h,gatewayReferenceId:null,status:"FAILURE",paymentId:X,errorInfo:{connector:h,flow:x,subFlow:v,errorCode:p,errorMessage:m}})}const A=`scenario_test_${C}_after`,D=((y=(await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:A}})).gateway_priority_map)==null?void 0:y[h])??null;c(L=>({...L,[f]:{scoreBefore:R,scoreAfter:D,loading:!1,error:null}}))}catch(w){const j=w instanceof Error?w.message:"Test failed";c(k=>({...k,[f]:{scoreBefore:null,scoreAfter:null,loading:!1,error:j}}))}}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Penalty Classification Guide"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"How the routing engine decides whether a failed payment penalises the gateway score."})]})}),i.jsx(He,{className:"space-y-4",children:e.length===0?i.jsx("p",{className:"text-xs text-slate-500",children:"Loading GSM rules…"}):i.jsxs(i.Fragment,{children:[["protected","penalized"].map(f=>{const h=u.filter(m=>(m.penalized?"penalized":"protected")===f);if(!h.length)return null;const p=f==="protected";return i.jsxs("div",{children:[i.jsx("p",{className:`text-[11px] font-semibold uppercase tracking-wider mb-2 ${p?"text-emerald-700 dark:text-emerald-400":"text-red-600 dark:text-red-400"} max-w-[68ch] leading-4`,children:p?"✓ Protected — gateway score unchanged":"✗ Penalised — gateway score decremented"}),i.jsx("div",{className:"space-y-2",children:h.map(m=>{var C,E;const x=m.rulesForMsg.slice(0,20),v=m.connectors,b=r===m.key,y=s[m.key]??v[0]??"",w=x.find(P=>P.connector===y&&P.subFlow==="Authorize")??x.find(P=>P.connector===y),j=l[m.key],k=(j==null?void 0:j.scoreBefore)!=null&&(j==null?void 0:j.scoreAfter)!=null?j.scoreAfter-j.scoreBefore:null,S=k!=null&&Math.abs(k)>.001,_=p?k!=null&&k<-.001:S;return i.jsxs("div",{className:`rounded-lg border overflow-hidden transition-all ${p?"border-emerald-200 dark:border-emerald-800/40":"border-red-200 dark:border-red-800/40"}`,children:[i.jsxs("button",{type:"button",onClick:()=>a(b?null:m.key),className:`w-full flex items-center justify-between px-3 py-2.5 text-left transition-colors ${p?"bg-emerald-50/50 dark:bg-emerald-900/10 hover:bg-emerald-50 dark:hover:bg-emerald-900/20":"bg-red-50/50 dark:bg-red-900/10 hover:bg-red-50 dark:hover:bg-red-900/20"}`,children:[i.jsx("div",{className:"flex items-center gap-2 min-w-0",children:i.jsx("span",{className:"text-xs font-semibold text-slate-800 dark:text-slate-100",children:m.label})}),i.jsxs("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[i.jsxs("span",{className:"text-[11px] text-slate-500 leading-4",children:[v.length," connector",v.length!==1?"s":""]}),i.jsx(ln,{size:12,className:`text-slate-500 transition-transform ${b?"rotate-180":""}`})]})]}),b&&i.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24] bg-white dark:bg-[#0d1117]",children:[i.jsxs("div",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:"Unified message: "}),i.jsx("span",{className:"font-mono",children:m.key})]}),v.length>0&&i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Select connector to test:"}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:v.map(P=>i.jsx("button",{type:"button",onClick:()=>o(R=>({...R,[m.key]:P})),className:`rounded-full px-2.5 py-1 text-[11px] font-medium ring-1 ring-inset transition-colors ${y===P?p?"bg-emerald-50 text-emerald-700 ring-emerald-300 dark:bg-emerald-900/30 dark:text-emerald-300 dark:ring-emerald-700":"bg-red-50 text-red-700 ring-red-300 dark:bg-red-900/30 dark:text-red-300 dark:ring-red-700":"bg-slate-50 text-slate-600 ring-slate-200 hover:bg-slate-100 dark:bg-[#1c1c24] dark:text-slate-400 dark:ring-[#2a2a35]"} leading-4`,children:P},P))})]}),w&&i.jsxs("div",{className:"rounded-lg bg-slate-50 dark:bg-[#10131c] px-3 py-2 text-[11px] space-y-0.5 leading-4",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Error code: "}),i.jsx("span",{className:"font-mono font-medium text-slate-700 dark:text-slate-200",children:w.errorCode})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Message: "}),i.jsx("span",{className:"text-slate-600 dark:text-slate-300",children:w.errorMessage})]})]}),y&&w&&i.jsx("button",{type:"button",disabled:!t||(j==null?void 0:j.loading),onClick:()=>d(m.key,y,w.errorCode,w.errorMessage,w.flow,w.subFlow),className:`flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${p?"bg-emerald-600 text-white hover:bg-emerald-700":"bg-red-500 text-white hover:bg-red-600"}`,children:j!=null&&j.loading?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:12})," Injecting 5 failures…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:12})," Test with ",y]})}),!t&&i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-400 leading-4",children:"Set a merchant ID in the top bar to run tests."}),j&&!j.loading&&i.jsx("div",{className:`rounded-lg border px-3 py-2.5 space-y-1.5 ${j.error||_?"border-amber-200 bg-amber-50 dark:border-amber-800/40 dark:bg-amber-900/10":p?"border-emerald-200 bg-emerald-50 dark:border-emerald-800/40 dark:bg-emerald-900/10":"border-red-200 bg-red-50 dark:border-red-800/40 dark:bg-red-900/10"}`,children:j.error?i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-300 leading-4",children:j.error}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 text-[11px] leading-4",children:[i.jsx("span",{className:"text-slate-500",children:"Score:"}),i.jsx("span",{className:"font-mono font-semibold text-slate-700 dark:text-slate-200",children:((C=j.scoreBefore)==null?void 0:C.toFixed(3))??"—"}),i.jsx("span",{className:"text-slate-500",children:"→"}),i.jsx("span",{className:`font-mono font-semibold ${S?"text-red-600 dark:text-red-400":"text-emerald-700 dark:text-emerald-400"}`,children:((E=j.scoreAfter)==null?void 0:E.toFixed(3))??"—"}),k!=null&&i.jsxs("span",{className:`text-[11px] font-medium ${S?"text-red-600":"text-emerald-700"} leading-4`,children:["(",k>0?"+":"",k.toFixed(3),")"]})]}),i.jsx("p",{className:`text-[11px] font-medium ${_?"text-amber-700 dark:text-amber-300":p?"text-emerald-700 dark:text-emerald-300":"text-red-600 dark:text-red-400"} leading-4`,children:p?_?`⚠ Score decreased — gateway was penalised (${k.toFixed(3)})`:k!=null&&k>.001?`✓ Score increased (+${k.toFixed(3)}) — no penalty applied (hedging)`:"✓ Score unchanged — gateway not penalised as expected":S?`✗ Gateway penalised (score dropped ${Math.abs(k).toFixed(3)})`:"⚠ Score unchanged — penalty may not have applied yet"})]})})]})]},m.key)})})]},f)}),i.jsxs("p",{className:"text-[11px] text-slate-500 dark:text-slate-400 pt-1 border-t border-slate-100 dark:border-[#1c1c24] leading-4",children:["Errors with no matching GSM rule, or calls made without ",i.jsx("span",{className:"font-mono",children:"error_info"}),", are always penalised. The GSM scoring filter must be enabled under SR Routing settings for skip-penalty logic to apply. Configure simulation parameters on the left and run to observe score changes live."]})]})})]})}const TCe={},W$=t=>{let e;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(e):d;if(!Object.is(h,e)){const p=e;e=f??(typeof h!="object"||h===null)?h:Object.assign({},e,h),n.forEach(m=>m(e,p))}},a=()=>e,c={setState:r,getState:a,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(TCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=e=t(r,a,c);return c},PCe=t=>t?W$(t):W$;var eH={exports:{}},tH={};/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Uj=g,RCe=xC;function MCe(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var DCe=typeof Object.is=="function"?Object.is:MCe,ICe=RCe.useSyncExternalStore,$Ce=Uj.useRef,LCe=Uj.useEffect,FCe=Uj.useMemo,BCe=Uj.useDebugValue;tH.useSyncExternalStoreWithSelector=function(t,e,n,r,a){var s=$Ce(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=FCe(function(){function c(p){if(!u){if(u=!0,d=p,p=r(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return f=m}return f=p}if(m=f,DCe(d,p))return m;var x=r(p);return a!==void 0&&a(m,x)?(d=p,m):(d=p,f=x)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return c(e())},h===null?void 0:function(){return c(h())}]},[e,n,r,a]);var l=ICe(t,s[0],s[1]);return LCe(function(){o.hasValue=!0,o.value=l},[l]),BCe(l),l};eH.exports=tH;var zCe=eH.exports;const UCe=Nn(zCe),nH={},{useDebugValue:VCe}=H,{useSyncExternalStoreWithSelector:WCe}=UCe;let H$=!1;const HCe=t=>t;function GCe(t,e=HCe,n){(nH?"production":void 0)!=="production"&&n&&!H$&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),H$=!0);const r=WCe(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return VCe(r),r}const qCe=t=>{(nH?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?PCe(t):t,n=(r,a)=>GCe(e,r,a);return Object.assign(n,e),n},rH=t=>qCe,KCe={};function YCe(t,e){let n;try{n=t()}catch{return}return{getItem:a=>{var s;const o=c=>c===null?null:JSON.parse(c,void 0),l=(s=n.getItem(a))!=null?s:null;return l instanceof Promise?l.then(o):o(l)},setItem:(a,s)=>n.setItem(a,JSON.stringify(s,void 0)),removeItem:a=>n.removeItem(a)}}const L0=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return L0(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return L0(r)(n)}}}},XCe=(t,e)=>(n,r,a)=>{let s={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:v=>v,version:0,merge:(v,b)=>({...b,...v}),...e},o=!1;const l=new Set,c=new Set;let u;try{u=s.getStorage()}catch{}if(!u)return t((...v)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...v)},r,a);const d=L0(s.serialize),f=()=>{const v=s.partialize({...r()});let b;const y=d({state:v,version:s.version}).then(w=>u.setItem(s.name,w)).catch(w=>{b=w});if(b)throw b;return y},h=a.setState;a.setState=(v,b)=>{h(v,b),f()};const p=t((...v)=>{n(...v),f()},r,a);let m;const x=()=>{var v;if(!u)return;o=!1,l.forEach(y=>y(r()));const b=((v=s.onRehydrateStorage)==null?void 0:v.call(s,r()))||void 0;return L0(u.getItem.bind(u))(s.name).then(y=>{if(y)return s.deserialize(y)}).then(y=>{if(y)if(typeof y.version=="number"&&y.version!==s.version){if(s.migrate)return s.migrate(y.state,y.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return y.state}).then(y=>{var w;return m=s.merge(y,(w=r())!=null?w:p),n(m,!0),f()}).then(()=>{b==null||b(m,void 0),o=!0,c.forEach(y=>y(m))}).catch(y=>{b==null||b(void 0,y)})};return a.persist={setOptions:v=>{s={...s,...v},v.getStorage&&(u=v.getStorage())},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>x(),hasHydrated:()=>o,onHydrate:v=>(l.add(v),()=>{l.delete(v)}),onFinishHydration:v=>(c.add(v),()=>{c.delete(v)})},x(),m||p},JCe=(t,e)=>(n,r,a)=>{let s={storage:YCe(()=>localStorage),partialize:x=>x,version:0,merge:(x,v)=>({...v,...x}),...e},o=!1;const l=new Set,c=new Set;let u=s.storage;if(!u)return t((...x)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...x)},r,a);const d=()=>{const x=s.partialize({...r()});return u.setItem(s.name,{state:x,version:s.version})},f=a.setState;a.setState=(x,v)=>{f(x,v),d()};const h=t((...x)=>{n(...x),d()},r,a);a.getInitialState=()=>h;let p;const m=()=>{var x,v;if(!u)return;o=!1,l.forEach(y=>{var w;return y((w=r())!=null?w:h)});const b=((v=s.onRehydrateStorage)==null?void 0:v.call(s,(x=r())!=null?x:h))||void 0;return L0(u.getItem.bind(u))(s.name).then(y=>{if(y)if(typeof y.version=="number"&&y.version!==s.version){if(s.migrate)return[!0,s.migrate(y.state,y.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,y.state];return[!1,void 0]}).then(y=>{var w;const[j,k]=y;if(p=s.merge(k,(w=r())!=null?w:h),n(p,!0),j)return d()}).then(()=>{b==null||b(p,void 0),p=r(),o=!0,c.forEach(y=>y(p))}).catch(y=>{b==null||b(void 0,y)})};return a.persist={setOptions:x=>{s={...s,...x},x.storage&&(u=x.storage)},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:x=>(l.add(x),()=>{l.delete(x)}),onFinishHydration:x=>(c.add(x),()=>{c.delete(x)})},s.skipHydration||m(),p||h},ZCe=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((KCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),XCe(t,e)):JCe(t,e),aH=ZCe,$r=rH()(aH(t=>({merchantId:"",setMerchantId:e=>{console.log(` -[STORE] Merchant ID changed: "${e}"`),t({merchantId:e})}}),{name:"merchant-store"}));function Sl(t){const e=t?`/merchant-account/${t}/features`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:3e5});function o(c){var u;return((u=n==null?void 0:n.features.find(d=>d.feature===c))==null?void 0:u.enabled)??!1}async function l(c,u){if(!t)throw new Error("Set a merchant ID first");const d=await Fe(`/merchant-account/${t}/features/${c}`,{enabled:u});return await s(d,!1),d}return{data:n,error:r,isLoading:a,isEnabled:o,setFeatureEnabled:l}}const rT="hs-dashboard-handoff",QCe="connectors",eEe="rule_id",tEe=["/routing/rules","/routing/volume"];function sH(t){if(!Array.isArray(t))return null;const e=t.filter(n=>!!n&&typeof n=="object"&&typeof n.merchant_connector_id=="string"&&typeof n.connector_name=="string");return e.length>0?e:null}function nEe(t){try{return sH(JSON.parse(t))}catch{return null}}function rEe(){const t=window.location.hash.replace(/^#/,"");if(!t)return null;const e=new URLSearchParams(t),n=e.get(QCe),r=e.get(eEe);return!n&&!r?null:{connectors:n?nEe(n):null,ruleId:r||null}}function aEe(){const t="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/",e=window.location.pathname;return t&&e.startsWith(t)?e.slice(t.length)||"/":e}function sEe(t){return/^\/(?![/\\])/.test(t)}function iEe(t){if(!new URLSearchParams(window.location.search).has("code"))return null;const e=aEe().replace(/\/+$/,"")||"/";return sEe(e)?t&&tEe.includes(e)?`${e}/${encodeURIComponent(t)}/edit`:e:null}function aT(t){try{sessionStorage.setItem(rT,JSON.stringify(t))}catch{}}function oEe(){try{const t=sessionStorage.getItem(rT);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const{connectors:n,ruleId:r,route:a,merchantId:s}=e;return{connectors:sH(n),ruleId:typeof r=="string"&&r?r:null,route:typeof a=="string"&&a?a:null,merchantId:typeof s=="string"&&s?s:null}}catch{return null}}function lEe(){const t=oEe(),e=rEe(),n=(e==null?void 0:e.connectors)??(t==null?void 0:t.connectors)??null,r=(e==null?void 0:e.ruleId)??(t==null?void 0:t.ruleId)??null,a=iEe(r)??(t==null?void 0:t.route)??null;if(!n&&!r&&!a)return null;const s={connectors:n,ruleId:r,route:a,merchantId:(t==null?void 0:t.merchantId)??null};return aT(s),s}let Za=lEe();function iH(){return Za?Za.merchantId?Za.merchantId===$r.getState().merchantId:!0:!1}function cEe(){return iH()?(Za==null?void 0:Za.connectors)??null:null}function uEe(t){!Za||!t||(Za.merchantId=t,aT(Za))}function dEe(){Za=null;try{sessionStorage.removeItem(rT)}catch{}}function oH(){if(!iH()||!(Za!=null&&Za.route))return null;const{route:t}=Za;return Za.route=null,aT(Za),t}function sT(t,e){return t!=null&&t.permissions?t.permissions.includes(e):!0}function Ao(){return hr(t=>sT(t.user,"routing:write"))}const hr=rH()(aH(t=>({token:null,user:null,merchants:[],hasHydrated:!1,setAuth:(e,n,r=[])=>{Sd.set(e),t({token:e,user:n,merchants:r})},updateMerchant:(e,n,r)=>{Sd.set(e),t(a=>({token:e,merchants:r,user:a.user?{...a.user,merchantId:n}:null}))},clearAuth:()=>{Sd.set(null),t({token:null,user:null,merchants:[]}),dEe()},setHasHydrated:e=>t({hasHydrated:e})}),{name:"auth-store",onRehydrateStorage:()=>t=>{t!=null&&t.token&&Sd.set(t.token),t==null||t.setHasHydrated(!0)}})),fEe=Object.freeze(Object.defineProperty({__proto__:null,sessionAllows:sT,useAuthStore:hr,useCanEditRouting:Ao},Symbol.toStringTag,{value:"Module"})),lH={SR_SELECTION_V3_ROUTING:"bg-blue-100 text-blue-800",SR_SELECTION_MULTI_OBJECTIVE:"bg-cyan-100 text-cyan-800",PRIORITY_LOGIC:"bg-purple-100 text-purple-800",NTW_BASED_ROUTING:"bg-green-100 text-green-800",SR_SELECTION_V3_ROUTING_WITH_HEDGING:"bg-orange-100 text-orange-800",HEDGING:"bg-orange-100 text-orange-800"},hEe=["card","card_redirect","pay_later","wallet","bank_redirect","bank_transfer","crypto","bank_debit","reward","real_time_payment","upi","voucher","gift_card","open_banking","mobile_payment","network_token"],pEe={card:["credit","debit","card"],bank_debit:["ach","sepa","bacs","becs","eft_debit_order","sepa_guarenteed_debit"],bank_transfer:["ach","sepa","sepa_bank_transfer","bacs","multibanco","pix","pse","permata_bank_transfer","bca_bank_transfer","bni_va","bri_va","cimb_va","danamon_va","mandiri_va","local_bank_transfer","instant_bank_transfer","pix_key","pix_emv","pix_qr","pix_automatico_push","pix_automatico_qr","payshap","payshap_proxy","instant_bank_transfer_finland","instant_bank_transfer_poland","indonesian_bank_transfer"],wallet:["amazon_pay","apple_pay","google_pay","paypal","ali_pay","ali_pay_hk","dana","mb_way","mobile_pay","samsung_pay","twint","vipps","touch_n_go","swish","we_chat_pay","go_pay","gcash","momo","kakao_pay","cashapp","mifinity","paze","bluecode","skrill","paysera","venmo","revolut_pay"],pay_later:["affirm","alma","afterpay_clearpay","klarna","pay_bright","atome","walley","flexiti","breadpay","payjustnow"],upi:["upi_collect","upi_intent","upi_qr"],voucher:["boleto","efecty","pago_efectivo","red_compra","red_pagos","indomaret","alfamart","oxxo","seven_eleven","lawson","mini_stop","family_mart","seicomart","pay_easy"],bank_redirect:["giropay","ideal","sofort","eft","eps","bancontact_card","blik","local_bank_redirect","online_banking_thailand","online_banking_czech_republic","online_banking_finland","online_banking_fpx","online_banking_poland","online_banking_slovakia","przelewy24","trustly","bizum","interac","open_banking_uk","open_banking_pis","open_banking"],gift_card:["givex","pay_safe_card","bhn_card_network"],card_redirect:["knet","benefit","momo_atm","card_redirect"],real_time_payment:["fps","duit_now","prompt_pay","viet_qr","qris"],crypto:["crypto_currency"],reward:["evoucher","classic_reward"],open_banking:["open_banking_pis"],mobile_payment:["direct_carrier_billing"]};function mEe(t){var r;if(!t)return[];const e=a=>{if(!a||typeof a!="object")return{};const s=a.keys;return s&&typeof s=="object"?s:a},n={...e(t.keys),...e((r=t.routing_config)==null?void 0:r.keys)};return Object.keys(n).length===0?[]:Object.entries(n).map(([a,s])=>{const o=(s.type||s.data_type||"str_value").toString().toLowerCase(),l={key:a,type:o};return s.values&&(l.values=Array.isArray(s.values)?s.values.map(c=>c.trim()):s.values.split(",").map(c=>c.trim())),s.min_value!==void 0&&(l.min_value=s.min_value),s.max_value!==void 0&&(l.max_value=s.max_value),s.min_length!==void 0&&(l.min_length=s.min_length),s.max_length!==void 0&&(l.max_length=s.max_length),s.exact_length!==void 0&&(l.exact_length=s.exact_length),s.regex&&(l.regex=s.regex),l})}function iT(){const{data:t,error:e,isLoading:n}=ct("/config/routing-keys",Dt,{refreshInterval:0,revalidateOnFocus:!1}),r=g.useMemo(()=>mEe(t||null),[t]),a=g.useMemo(()=>r.reduce((o,l)=>(o[l.key]=l,o),{}),[r]),s=g.useMemo(()=>{const o={};return r.forEach(l=>{o[l.key]={type:l.type,values:l.values||[]}}),o},[r]);return{config:t,keys:r,keysByName:a,routingKeysConfig:s,isLoading:n,error:e,getKeyValues:o=>{var l;return((l=a[o])==null?void 0:l.values)||[]},isIntegerKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="integer"},isEnumKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="enum"}}}function Ey(t){const e=t?`/merchant-account/${t}/debit-routing`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:3e5});async function o(l){if(!t||!e)throw new Error("Set a merchant ID first");const c=await Fe(e,{enabled:l});return await s(c,!1),c}return{data:n,error:r,isLoading:a,isEnabled:!!(n!=null&&n.debit_routing_enabled),mutate:s,setDebitRoutingEnabled:o}}const cH=["SR_BASED_ROUTING","SR_MULTI_OBJECTIVE"],gEe={SR_BASED_ROUTING:"Success Rate Based",SR_MULTI_OBJECTIVE:"Success Rate Based + Multi-Objective"},US="USD",G$=["CREDIT"],q$=["STANDARD","PREMIUM"],K$=["VISA","MASTERCARD"],Y$=[{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"PREMIUM"}],X$={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{..._u}},xEe={stripe:94,adyen:93};function VS(t){return{...X$,successRate:xEe[t.trim().toLowerCase()]??X$.successRate,errorInfo:{..._u}}}function uH(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function yEe(t,e,n){return uH(t/1e4*e,n)}function vEe(t){for(const[e,n]of Object.entries(lH))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Uf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],Vf=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],dH="decision-explorer-state-v2",fH=10*60*1e3,hH={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_BASED_ROUTING"},bEe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},wEe={totalPayments:"10"},kEe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],jEe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function pH(t){return t.map(e=>({...e}))}function mH(t){return t.map(e=>({...e}))}function SEe(t){return cH.includes(t)?t:hH.ranking_algorithm}function gH(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function Nh(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...hH},simulationConfig:{...wEe},gatewaySimConfigs:{},errorInfo:{..._u},debitForm:{...bEe},ruleParams:pH(kEe),fallbackConnectors:mH(jEe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1}}function _Ee(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function oT(t){return`${dH}:${encodeURIComponent(t)}`}function NEe(t){return!!(t&&Date.now()-t>fH)}function lA(t){typeof window>"u"||window.localStorage.removeItem(oT(t))}function CEe(t,e){typeof window>"u"||window.localStorage.setItem(oT(t),JSON.stringify(e))}function J$(t){var e,n,r,a;if(typeof window>"u")return Nh();try{const s=window.localStorage.getItem(oT(t))||window.localStorage.getItem(dH);if(!s)return{...Nh(),scopeKey:t};const o=JSON.parse(s),l=Nh();return o.scopeKey!==t||NEe(o.resultDataUpdatedAtMs)?(lA(t),{...l,scopeKey:t}):{...l,...o,scopeKey:t,resultDataUpdatedAtMs:o.resultDataUpdatedAtMs||null,activeTab:o.activeTab&&o.activeTab!=="single"?o.activeTab:l.activeTab,form:{...l.form,...o.form||{},ranking_algorithm:SEe((e=o.form)==null?void 0:e.ranking_algorithm)},simulationConfig:{...l.simulationConfig,...o.simulationConfig||{}},gatewaySimConfigs:o.gatewaySimConfigs||l.gatewaySimConfigs,errorInfo:{...l.errorInfo,...o.errorInfo||{}},debitForm:{...l.debitForm,...o.debitForm||{},card_type:gH((n=o.debitForm)==null?void 0:n.card_type)},ruleParams:(r=o.ruleParams)!=null&&r.length?pH(o.ruleParams):l.ruleParams,fallbackConnectors:(a=o.fallbackConnectors)!=null&&a.length?mH(o.fallbackConnectors):l.fallbackConnectors,volumeDistribution:o.volumeDistribution||l.volumeDistribution,volumeEvaluationLog:o.volumeEvaluationLog||l.volumeEvaluationLog,simulationResults:o.simulationResults||l.simulationResults}}catch{return{...Nh(),scopeKey:t}}}function zg(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function WS(t=[]){return Array.from(new Set(zg(t)))}function gg(t){return t.replace(/_/g," ").toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function EEe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function HS(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function xH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Ug(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ni(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function Vg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ni(t):"Unknown route"}function Z$(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ni(t):"Unknown event"}function lT(t){return t.flow_type||""}function Wg(t){const e=lT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ni(t.event_stage||e)}function cA(t){const e=lT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function Yv(t){const e=lT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function Q$(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function eL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function AEe(t){return KW(t)===404}function xg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function GS(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function yH(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function OEe(t){return`/analytics/payment-audit?${xH({range:"1d",page:1,page_size:25,payment_id:t})}`}function TEe(t){return`/analytics/preview-trace?${xH({range:"1d",page:1,page_size:25,payment_id:t})}`}function tL(t){if(!t)return null;const e=xg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??GS({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??GS({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=xg(n)?n:null,o=xg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:cA(t)},{label:"Stage",value:Wg(t)},{label:"Route",value:Vg(t.route)},{label:"Timestamp",value:Ug(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ni(t.status)}]:[]],d=GS(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:xg(r)&&!Object.keys(r).length?null:r,responsePayload:xg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function nL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Xv(t){return t?"border-slate-300 bg-white text-slate-950 shadow-sm dark:border-[#3b82f6]/45 dark:bg-[#182131] dark:text-white":"border-transparent text-slate-500 hover:border-slate-200 hover:bg-white/70 hover:text-slate-900 dark:text-[#8d9ab2] dark:hover:border-[#2a303a] dark:hover:bg-[#151b24] dark:hover:text-white"}function PEe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function REe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Hg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function qS({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function rL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Ml({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:yH(e)}):i.jsx(Hg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function MEe(){var Zy,Qy,td,ev,tv,nv,rv,Wm,Hm,av,sv,iv,Gm;const t=Hr(),{merchantId:e}=$r(),n=hr(O=>O.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=_Ee((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Sl(a||void 0).isEnabled("gsm-scoring-filter"),c=Ey(a),{routingKeysConfig:u,isLoading:d,error:f}=iT(),h=Object.keys(u).length>0,p=!d&&(!h||!!f),m=g.useMemo(()=>J$(s),[s]),[x,v]=g.useState(m.activeTab),[b,y]=g.useState(m.scopeKey||s),[w,j]=g.useState(m.resultDataUpdatedAtMs),[k,S]=g.useState(m.form),[_,C]=g.useState(m.simulationConfig),[E,P]=g.useState(m.errorInfo),[R,A]=g.useState(m.gatewaySimConfigs),T=g.useRef(R);g.useEffect(()=>{T.current=R},[R]);const D=Object.values(R).some(O=>O.failureMode==="timeout"),L=g.useRef(!1);g.useEffect(()=>()=>{L.current=!0},[]);const[X,J]=g.useState(m.debitForm),[U,Y]=g.useState(0),[W,G]=g.useState(m.ruleParams),[I,q]=g.useState(m.fallbackConnectors),[M,B]=g.useState(m.volumePayments),[z,Z]=g.useState(m.result),[pe,ae]=g.useState(m.debitResult),[ue,de]=g.useState(m.debitPaymentId),[Q,fe]=g.useState(m.singleRunPaymentId),[ne,ce]=g.useState(m.singleRunOutcome),[he,be]=g.useState(m.ruleResult),[Pe,Ce]=g.useState(m.volumeDistribution),[Re,Be]=g.useState(m.volumeEvaluationLog),[st,F]=g.useState(m.volumeProgress),[se,ie]=g.useState(m.simulationResults),[Se,te]=g.useState(!1),[me,ve]=g.useState(m.smartRetryEnabled),[Ee,Oe]=g.useState(null),[Tt,Bt]=g.useState(""),[Pt,sn]=g.useState(!1),[It,xr]=g.useState(new Set),er=O=>xr(V=>{const le=new Set(V);return le.has(O)?le.delete(O):le.add(O),le}),za=g.useRef(null),Gr=g.useRef(null),[pn,mt]=g.useState(null),[Mt,gt]=g.useState(!1),[Lr,zn]=g.useState(!1),[mn,ge]=g.useState(m.responseOpen),[ut,ft]=g.useState(m.debitResponseOpen),[Kt,gn]=g.useState(m.volumeResponseOpen),[zt,un]=g.useState(null),[as,xn]=g.useState(null),[ia,jr]=g.useState("summary"),[oa,ja]=g.useState(null),[El,ss]=g.useState(null),[la,Sa]=g.useState("summary"),[Yu,_a]=g.useState("Rule Evaluation Decision"),or=g.useDeferredValue(se),[Ns,Xu]=g.useState(!1),Po=g.useMemo(()=>Object.keys(u).sort(),[u]),Na=g.useMemo(()=>{var O;return zg(((O=u.payment_method)==null?void 0:O.values)||[])},[u]),Cf=g.useMemo(()=>{var V;const O=k.payment_method_type.toLowerCase();return zg(((V=u[O])==null?void 0:V.values)||[])},[k.payment_method_type,u]),Rt=g.useMemo(()=>{var O;return WS(((O=u.currency)==null?void 0:O.values)||[])},[u]),ca=g.useMemo(()=>{var O;return WS(((O=u.card_network)==null?void 0:O.values)||[])},[u]),Sr=g.useMemo(()=>{var O;return WS(((O=u.authentication_type)==null?void 0:O.values)||[])},[u]),_r=zt?OEe(zt):null,Jt=ct(_r,Dt,{revalidateOnFocus:!1}),qr=oa?TEe(oa):null,re=ct(qr,Dt,{revalidateOnFocus:!1}),{data:ke}=ct("/gsm/options",Dt,{revalidateOnFocus:!1,dedupingInterval:3e5}),_e=(ke==null?void 0:ke.rules)??[],{data:ze}=ct(a?["rule-elimination",a]:null,()=>Fe("/rule/get",{merchant_id:a,algorithm:"elimination"}).catch(()=>null),{revalidateOnFocus:!1,dedupingInterval:6e4}),Je=((Qy=(Zy=ze==null?void 0:ze.config)==null?void 0:Zy.data)==null?void 0:Qy.threshold)!=null;g.useEffect(()=>{p||d||(S(O=>{var Ve;const V={...O};let le=!1;Rt.length>0&&!Rt.includes(V.currency)&&(V.currency=Rt[0],le=!0),Na.length>0&&!Na.includes(V.payment_method_type)&&(V.payment_method_type=Na[0],le=!0);const xe=zg(((Ve=u[V.payment_method_type.toLowerCase()])==null?void 0:Ve.values)||[]);return xe.length>0&&!xe.includes(V.payment_method)&&(V.payment_method=xe[0],le=!0),Sr.length>0&&!Sr.includes(V.auth_type)&&(V.auth_type=Sr[0],le=!0),ca.length>0&&!ca.includes(V.card_brand)&&(V.card_brand=ca[0],le=!0),le?V:O}),G(O=>{let V=!1;const le=O.map(xe=>{if(!xe.key||!u[xe.key])return xe;const Ve=u[xe.key],dt=HS(Ve.type),Le=Ve.values||[],bt=dt==="enum_variant"?Le.includes(xe.value)?xe.value:Le[0]||"":xe.value;return xe.type!==dt||xe.value!==bt?(V=!0,{...xe,type:dt,value:bt}):xe});return V?le:O}))},[p,d,u,Rt,Na,Sr,ca]),g.useEffect(()=>{k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&S(O=>{if(O.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return O;const V={...O};let le=!1;V.currency!==US&&(V.currency=US,le=!0);const xe=Na.find(Ve=>Ve==="CARD")||"CARD";if(V.payment_method_type!==xe&&(V.payment_method_type=xe,le=!0),G$.includes(V.payment_method)||(V.payment_method="CREDIT",le=!0),!K$.includes(V.card_brand)){const Ve=ca.find(dt=>dt==="VISA")||ca.find(dt=>dt==="MASTERCARD")||ca[0]||"VISA";V.card_brand=Ve,le=!0}return q$.includes(V.card_program)||(V.card_program="STANDARD",le=!0),le?V:O})},[k.ranking_algorithm,Na,ca]),g.useEffect(()=>{if(!zt&&!oa&&!pn)return;const O=document.body.style.overflow,V=le=>{le.key==="Escape"&&(un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),mt(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",V),()=>{document.body.style.overflow=O,window.removeEventListener("keydown",V)}},[zt,oa,pn]);function Ze(){const O=Nh();Z(O.result),ae(O.debitResult),de(O.debitPaymentId),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),ie(O.simulationResults),ge(O.responseOpen),ft(O.debitResponseOpen),gn(O.volumeResponseOpen),un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),_a("Rule Evaluation Decision"),j(null),Oe(null),mt(null),gt(!1),L.current=!0,te(!1)}function St(){j(Date.now())}function Cn(O,V){v(O.activeTab),y(O.scopeKey||V),j(O.resultDataUpdatedAtMs),S(O.form),C(O.simulationConfig),A(O.gatewaySimConfigs),P(O.errorInfo),J(O.debitForm),G(O.ruleParams),q(O.fallbackConnectors),B(O.volumePayments),Z(O.result),ae(O.debitResult),de(O.debitPaymentId),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),ie(O.simulationResults),ge(O.responseOpen),ft(O.debitResponseOpen),gn(O.volumeResponseOpen),un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),_a("Rule Evaluation Decision"),zn(!1),Oe(null),mt(null),gt(!1),L.current=!0,te(!1)}g.useEffect(()=>{b!==s&&Cn(J$(s),s)},[s,b]),g.useEffect(()=>{if(!w)return;const O=b||s,V=fH-(Date.now()-w);if(V<=0){Ze(),lA(O);return}const le=window.setTimeout(()=>{Ze(),lA(O)},V);return()=>window.clearTimeout(le)},[s,w,b]),g.useEffect(()=>{if(b!==s||Se||Mt)return;CEe(s,{scopeKey:s,resultDataUpdatedAtMs:w,activeTab:x,form:k,simulationConfig:_,gatewaySimConfigs:R,errorInfo:E,debitForm:X,ruleParams:W,fallbackConnectors:I,volumePayments:M,result:z,debitResult:pe,debitPaymentId:ue,singleRunPaymentId:Q,singleRunOutcome:ne,ruleResult:he,volumeDistribution:Pe,volumeEvaluationLog:Re,volumeProgress:st,simulationResults:se,responseOpen:mn,debitResponseOpen:ut,volumeResponseOpen:Kt,smartRetryEnabled:me})},[s,b,Se,Mt,w,x,k,_,R,E,X,W,I,M,z,pe,ue,Q,ne,he,Pe,Re,st,se,mn,ut,Kt,me]);function Qt(O,V){S(le=>({...le,[O]:V}))}function Rn(O,V){J(le=>({...le,[O]:V}))}function is(O){P(V=>({...V,...O}))}function Un(O){return T.current[O]??VS(O)}function Yi(O){return Un(O).successRate}function Ca(O){return Un(O).failureMode}function os(O,V){A(le=>({...le,[O]:{...Un(O),...le[O],successRate:V}}))}function Xi(O,V){A(le=>({...le,[O]:{...Un(O),...le[O],failureMode:V}}))}function Ju(O,V,le){const dt=le?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return _e.find(Le=>Le.connector===O&&(Le.subFlow==="Authorize"||Le.flow==="Authorize")&&Le.decision===V&&Le.unifiedMessage!=null&&dt.has(Le.unifiedMessage)&&!!Le.errorCode&&Le.errorCode.toLowerCase()!=="no error code")}function Vn(O,V,le){const xe=Ju(O,V,le);return xe?{error_code:xe.errorCode,error_message:xe.errorMessage,issuer_error_code:"",card_network:""}:{..._u}}function Ea(O,V){A(le=>{const xe=Un(O);return{...le,[O]:{...xe,...le[O],penalized:V,errorInfo:Vn(O,(le[O]??xe).gsmDecision,V)}}})}function Ji(O,V){A(le=>{const xe=Un(O),Ve=le[O]??xe,dt={...Ve.errorInfo,...V};let Le=Ve.gsmDecision,bt=Ve.penalized;if(V.error_code){const pt=_e.find(Ut=>Ut.connector===O&&Ut.errorCode===V.error_code&&(Ut.subFlow==="Authorize"||Ut.flow==="Authorize"))??_e.find(Ut=>Ut.connector===O&&Ut.errorCode===V.error_code);((pt==null?void 0:pt.decision)==="retry"||(pt==null?void 0:pt.decision)==="do_default")&&(Le=pt.decision);const Zt=nT(pt==null?void 0:pt.unifiedMessage);Zt!==null&&(bt=Zt)}return{...le,[O]:{...xe,...Ve,errorInfo:dt,gsmDecision:Le,penalized:bt}}})}function Gy(O,V){return _e.find(le=>le.connector===O&&le.errorCode===V&&le.subFlow==="Authorize")??_e.find(le=>le.connector===O&&le.errorCode===V&&le.flow==="Authorize")??_e.find(le=>le.connector===O&&le.errorCode===V)}function Zu(O){if(!O)return;const V=Un(O).errorInfo;if(!V.error_code)return;const le=Gy(O,V.error_code);return{connector:O,...(le==null?void 0:le.flow)&&{flow:le.flow},...(le==null?void 0:le.subFlow)&&{subFlow:le.subFlow},errorCode:V.error_code,...V.error_message&&{errorMessage:V.error_message},...V.issuer_error_code&&{issuerErrorCode:V.issuer_error_code},...V.card_network&&{cardNetwork:V.card_network}}}function En(O,V=E){if(!O||!V.error_code)return;const le=Gy(O,V.error_code);return{connector:O,...(le==null?void 0:le.flow)&&{flow:le.flow},...(le==null?void 0:le.subFlow)&&{subFlow:le.subFlow},errorCode:V.error_code,...V.error_message&&{errorMessage:V.error_message},...V.issuer_error_code&&{issuerErrorCode:V.issuer_error_code},...V.card_network&&{cardNetwork:V.card_network}}}function Ro(O,V){Oe(null),mt(REe(O,V))}function Zi(O,V,le="Request failed"){const xe=O instanceof Error?O.message:le;if(PEe(xe)){Ro(V,xe);return}Oe(xe)}function Sc(){const O=X.co_badged_networks.split(",").map(V=>V.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:X.merchant_category_code.trim(),acquirer_country:X.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:O,issuer_country:X.issuer_country.trim().toUpperCase(),is_regulated:X.is_regulated,regulated_name:X.is_regulated&&X.regulated_name.trim()?X.regulated_name.trim():null,card_type:gH(X.card_type)}})}function qy(){var Ve;if(Po.length===0)return;const O=Po[0],V=u[O],le=HS(V==null?void 0:V.type),xe=le==="enum_variant"&&((Ve=V==null?void 0:V.values)==null?void 0:Ve[0])||"";G([...W,{key:O,type:le,value:xe,metadataKey:""}])}function _c(O){G(W.filter((V,le)=>le!==O))}function Qu(O,V,le){G(W.map((xe,Ve)=>Ve===O?{...xe,[V]:le}:xe))}function Pm(O,V){G(W.map((le,xe)=>xe===O?{...le,metadataKey:V}:le))}function Rm(O,V){var dt;const le=u[V],xe=HS(le==null?void 0:le.type),Ve=xe==="enum_variant"&&((dt=le==null?void 0:le.values)==null?void 0:dt[0])||"";G(W.map((Le,bt)=>bt===O?{...Le,key:V,type:xe,value:Ve,metadataKey:""}:Le))}function Ky(){q([...I,{gateway_name:"",gateway_id:""}])}function Mm(O){q(I.filter((V,le)=>le!==O))}function Dm(O,V,le){q(I.map((xe,Ve)=>Ve===O?{...xe,[V]:le}:xe))}async function Im(){var le;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");gt(!0),Oe(null),mt(null),fe(null);const O=k.eligible_gateways.split(",").map(xe=>xe.trim()).filter(Boolean),V=`explorer_${Date.now()}`;try{const xe=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:V,amount:parseFloat(k.amount)||1e3,currency:k.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,cardSwitchProvider:k.card_brand,cardType:k.payment_method,...k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:k.card_program}},eligibleGatewayList:O,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:D}),Ve=await Fe("/update-gateway-score",{merchantId:a,gateway:xe.decided_gateway,gatewayReferenceId:null,status:ne,paymentId:V,enforceDynamicRoutingFailure:null,...ne==="FAILURE"&&{errorInfo:En(xe.decided_gateway)}});if(me&&l&&ne==="FAILURE"&&((le=Ve.gsm_info)==null?void 0:le.decision)==="retry"&&xe.fallback_gateways.length>0){const dt=xe.fallback_gateways[0];await Fe("/update-gateway-score",{merchantId:a,gateway:dt,gatewayReferenceId:null,status:"CHARGED",paymentId:V,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),Z({...xe,decided_gateway:dt}),fe(V)}else Z(xe),fe(V);St()}catch(xe){Zi(xe,"single")}finally{gt(!1)}}async function x2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");gt(!0),Oe(null),mt(null);try{await c.setDebitRoutingEnabled(!0)}catch(O){Zi(O,"debit","Failed to enable debit routing")}finally{gt(!1)}}async function Yy(){if(!a)return Oe("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ro("debit","Debit routing is disabled.");const O=X.eligible_gateways.split(",").map(le=>le.trim()).filter(Boolean);if(O.length===0)return Oe("Add at least one eligible gateway");gt(!0),Oe(null),mt(null),ae(null);const V=`debit_${Date.now()}`;try{const le=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:V,amount:parseFloat(X.amount)||1e3,currency:X.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:X.auth_type,metadata:Sc()},eligibleGatewayList:O,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});ae(le),de(V),St()}catch(le){Zi(le,"debit")}finally{gt(!1)}}async function y2(){var bt;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");const O=parseInt(_.totalPayments)||0;if(O<=0)return Oe("Total Payments must be greater than 0");te(!0),Oe(null),mt(null),ie([]),L.current=!1;const V=k.eligible_gateways.split(",").map(pt=>pt.trim()).filter(Boolean),le=[],xe=3;let Ve=0,dt=0;const Le=k.ranking_algorithm==="SR_MULTI_OBJECTIVE";try{for(let pt=0;pt0){Aa=Gn.fallback_gateways[0];const us=Yi(Aa),Er=Math.random()*100150||pt===O-1)&&(ie([...le]),St(),dt=dn)}catch(Gn){if(Ve++,Ve>=xe){Zi(Gn,"batch",`Simulation stopped after ${xe} consecutive backend errors. Check that the server is running.`);return}await new Promise(yr=>setTimeout(yr,1e3));continue}}}finally{ie([...le]),te(!1)}}async function Xs(){if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");gt(!0),Oe(null),mt(null),be(null),Ce([]),Be([]),F(0);const O=`rule_decision_${Date.now()}`;try{const V={};W.forEach(xe=>{xe.key&&(xe.type==="metadata_variant"?V[xe.key]={type:xe.type,value:{key:xe.metadataKey||xe.key,value:xe.value}}:xe.type==="number"?V[xe.key]={type:xe.type,value:parseFloat(xe.value)||0}:xe.value!==""&&(V[xe.key]={type:xe.type,value:xe.value}))});const le=await Fe("/routing/evaluate",{created_by:a||"test_user",payment_id:O,fallback_output:I.filter(xe=>xe.gateway_name),parameters:V});if(be(le),St(),le.output.type==="volume_split"&&le.output.splits){const xe=parseInt(M)||100,Ve=le.output.splits.map(dt=>({name:dt.connector.gateway_name,count:Math.round(dt.split/100*xe),percentage:dt.split}));Ce(Ve)}}catch(V){Zi(V,"rule")}finally{gt(!1)}}async function v2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");gt(!0),Oe(null),mt(null),be(null),Ce([]),Be([]),F(0);const O=parseInt(M)||0;if(O<=0)return gt(!1),Oe("Total Payments must be greater than 0");try{const le=`volume_decision_${Date.now()}`,xe=[],Ve=new Map;let dt=null;const Le=bt=>Array.from(Ve.entries()).map(([pt,Zt])=>({name:pt,count:Zt,percentage:Number((Zt/Math.max(1,bt)*100).toFixed(1))})).sort((pt,Zt)=>Zt.count-pt.count);for(let bt=0;bt{const Vt=bt+tr,Wn=`${le}_${Vt}`,cr=await Fe("/routing/evaluate",{created_by:a,payment_id:Wn,fallback_output:I.filter(Hn=>Hn.gateway_name),parameters:{}});return{paymentId:Wn,response:cr}}));for(const{paymentId:Ut,response:tr}of Zt){if(tr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const Vt=EEe(tr);if(!Vt)throw new Error("Volume split evaluation did not return a connector.");dt||(dt=tr,be(tr)),Ve.set(Vt,(Ve.get(Vt)||0)+1),xe.push({paymentId:Ut,connector:Vt})}F(xe.length),Be([...xe]),Ce(Le(xe.length)),St()}}catch(V){Zi(V,"volume")}finally{gt(!1)}}const Ef=z!=null&&z.gateway_priority_map?Object.entries(z.gateway_priority_map).sort(([,O],[,V])=>V-O).map(([O,V])=>({name:O,score:Math.round(V*1e3)/10})):[],Mo=parseInt(_.totalPayments)||0,ls=se.length,Al=Mo>0?Math.round(ls/Mo*100):0,Js=Se||ls>0,ua=g.useMemo(()=>k.eligible_gateways.split(",").map(O=>O.trim().toLowerCase()).filter(Boolean),[k.eligible_gateways]),Af=g.useMemo(()=>Object.fromEntries(ua.map((O,V)=>[O,Vf[V%Vf.length]])),[ua]);g.useEffect(()=>{_e.length===0||ua.length===0||A(O=>{var xe,Ve;let V=!1;const le={...O};for(const dt of ua){if((Ve=(xe=O[dt])==null?void 0:xe.errorInfo)!=null&&Ve.error_code)continue;const Le=O[dt]??VS(dt),bt=Ju(dt,Le.gsmDecision,Le.penalized);bt&&(le[dt]={...Le,errorInfo:{error_code:bt.errorCode,error_message:bt.errorMessage,issuer_error_code:"",card_network:""}},V=!0)}return V?le:O})},[_e,ua]);const lr=g.useMemo(()=>or.reduce((O,V)=>(O[V.decidedGateway]||(O[V.decidedGateway]={total:0,success:0,failure:0}),O[V.decidedGateway].total++,V.status==="CHARGED"?O[V.decidedGateway].success++:O[V.decidedGateway].failure++,O),{}),[or]),$m=g.useMemo(()=>{var Vt;const O=or,V={series:{},paymentNums:[],yMin:0,yMax:100};if(O.length<2)return V;const xe=Math.max(1,Math.floor(O.length/200)),Ve=Object.keys(lr),dt={},Le={};Ve.forEach(Wn=>{Le[Wn]=[]});const bt=[];for(let Wn=0;Wn0&&(crZt&&(Zt=cr));pt>Zt&&(pt=0,Zt=100);const Ut=Math.max(0,pt-5),tr=Math.min(100,Zt+5);return{series:Le,paymentNums:bt,yMin:Ut,yMax:tr}},[or,lr]),Nr=g.useMemo(()=>or.filter(O=>{var V;return(V=O.routingApproach)==null?void 0:V.includes("HEDGING")}).length,[or]),Ol=g.useMemo(()=>{const O=or.filter(le=>le.retryGateway!==void 0).length,V=or.filter(le=>le.retryStatus==="CHARGED").length;return{triggered:O,recovered:V}},[or]),Zs=g.useMemo(()=>{let O=0,V="";for(const le of or)le.costWon&&le.costSavedBps!=null&&le.costSavedBps>0&&le.status==="CHARGED"&&(O+=le.costSavedBps/1e4*le.amount,V=le.currency);return{value:O,currency:V}},[or]),Lm=((td=pe==null?void 0:pe.debit_routing_output)==null?void 0:td.co_badged_card_networks_info)||[],Do=g.useMemo(()=>new Map(Pe.map((O,V)=>[O.name,V])),[Pe]),Xy=g.useMemo(()=>Object.entries(lr).sort((O,V)=>V[1].total-O[1].total),[lr]),b2=g.useMemo(()=>Object.values(lr).reduce((O,V)=>O+V.total,0),[lr]),Of=g.useMemo(()=>[...Pe].sort((O,V)=>V.count-O.count),[Pe]),cs=Of[0],Tf=Re.length,Qi=Number.parseInt(M,10)||0,Jy=Qi>0?Math.min(100,Math.round(st/Qi*100)):0,Ua=g.useMemo(()=>{var V;const O=((V=Jt.data)==null?void 0:V.results)||[];return O.find(le=>le.payment_id===zt)||O[0]||null},[(ev=Jt.data)==null?void 0:ev.results,zt]),yn=g.useMemo(()=>{var V;const O=((V=Jt.data)==null?void 0:V.timeline)||[];return O.find(le=>le.id===as)||O[0]||null},[(tv=Jt.data)==null?void 0:tv.timeline,as]);g.useEffect(()=>{var V,le;if(yn!=null&&yn.id){xn(yn.id);return}const O=(le=(V=Jt.data)==null?void 0:V.timeline)==null?void 0:le[0];O!=null&&O.id&&xn(O.id)},[(nv=Jt.data)==null?void 0:nv.timeline,yn==null?void 0:yn.id]);const Fm=g.useMemo(()=>{var V;const O=[];for(const le of((V=Jt.data)==null?void 0:V.timeline)||[]){const xe=cA(le),Ve=O[O.length-1];!Ve||Ve.phase!==xe?O.push({phase:xe,events:[le]}):Ve.events.push(le)}return O},[(rv=Jt.data)==null?void 0:rv.timeline]),bi=g.useMemo(()=>tL(yn),[yn]),Cr=g.useMemo(()=>{var V;const O=((V=re.data)==null?void 0:V.results)||[];return O.find(le=>le.payment_id===oa)||O[0]||null},[(Wm=re.data)==null?void 0:Wm.results,oa]),jn=g.useMemo(()=>{var V;const O=((V=re.data)==null?void 0:V.timeline)||[];return O.find(le=>le.id===El)||O[0]||null},[(Hm=re.data)==null?void 0:Hm.timeline,El]);g.useEffect(()=>{var V,le;if(jn!=null&&jn.id){ss(jn.id);return}const O=(le=(V=re.data)==null?void 0:V.timeline)==null?void 0:le[0];O!=null&&O.id&&ss(O.id)},[(av=re.data)==null?void 0:av.timeline,jn==null?void 0:jn.id]);const Bm=g.useMemo(()=>{var V;const O=[];for(const le of((V=re.data)==null?void 0:V.timeline)||[]){const xe=cA(le),Ve=O[O.length-1];!Ve||Ve.phase!==xe?O.push({phase:xe,events:[le]}):Ve.events.push(le)}return O},[(sv=re.data)==null?void 0:sv.timeline]),Tl=g.useMemo(()=>tL(jn),[jn]);g.useEffect(()=>{const O=Gr.current;O&&(O.scrollTop=O.scrollHeight)},[or.length]);function zm(O){ja(null),ss(null),Sa("summary"),un(O),xn(null),jr("summary")}function Um(){un(null),xn(null),jr("summary")}function ed(O,V){un(null),xn(null),jr("summary"),_a(V),ja(O),ss(null),Sa("summary")}function Vm(){ja(null),ss(null),Sa("summary")}function Nc(){const O=Nh();function V(le){var dt;const xe={...le};Rt.length>0&&!Rt.includes(xe.currency)&&(xe.currency=Rt[0]),Na.length>0&&!Na.includes(xe.payment_method_type)&&(xe.payment_method_type=Na[0]);const Ve=zg(((dt=u[xe.payment_method_type.toLowerCase()])==null?void 0:dt.values)||[]);return Ve.length>0&&!Ve.includes(xe.payment_method)&&(xe.payment_method=Ve[0]),Sr.length>0&&!Sr.includes(xe.auth_type)&&(xe.auth_type=Sr[0]),ca.length>0&&!ca.includes(xe.card_brand)&&(xe.card_brand=ca[0]),xe}x==="single"?(S(V(O.form)),Z(O.result),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),ge(O.responseOpen)):x==="batch"?(S(V(O.form)),C(O.simulationConfig),A({}),ie(O.simulationResults),te(!1)):x==="rule"?Y(le=>le+1):x==="volume"?(B(O.volumePayments),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),gn(O.volumeResponseOpen),ja(null),ss(null),Sa("summary"),_a("Volume Split Decision")):x==="debit"&&(J(O.debitForm),ae(O.debitResult),de(O.debitPaymentId),ft(O.debitResponseOpen),un(null),xn(null),jr("summary")),Oe(null),mt(null),gt(!1),zn(!1),un(null),xn(null),jr("summary")}const w2=x==="batch"?"Reset Auth-Rate Based Routing":x==="rule"?"Reset Rule Based Routing":x==="volume"?"Reset Volume Based Routing":"Reset Debit Routing";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx(vn,{children:"Simulation console"}),i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[i.jsx(Ba,{title:"Decision Explorer"}),i.jsx(Me,{variant:"blue",children:a||"No merchant"})]})]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:Nc,children:[i.jsx(Es,{size:14}),w2]})]}),i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50/80 p-1 dark:border-[#242b36] dark:bg-[#0c1118]",children:i.jsxs("div",{className:"grid gap-1 sm:grid-cols-2 xl:grid-cols-4",children:[i.jsxs("button",{onClick:()=>{L.current=!0,v("batch")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="batch")}`,children:[i.jsx("span",{className:"block",children:"Auth-rate"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Score simulation"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("rule")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="rule")}`,children:[i.jsx("span",{className:"block",children:"Rule based"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Policy evaluator"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("volume")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="volume")}`,children:[i.jsx("span",{className:"block",children:"Volume split"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Distribution run"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("debit")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="debit")}`,children:[i.jsx("span",{className:"block",children:"Debit routing"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Network decision"})]})]})}),x==="rule"&&i.jsx(ZW,{merchantId:a,routingKeysConfig:u,routingConfigUnavailable:p,routingKeysLoading:d,resetSignal:U,onRunComplete:St,onOpenTrace:ed}),i.jsxs("div",{className:x==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:x==="rule"?{display:"none"}:void 0,children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:x==="rule"?"Rule Evaluation":x==="volume"?"Volume Split":x==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:x==="rule"?"Rule Evaluation Parameters":x==="volume"?"Volume Split Configuration":x==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),x!=="volume"&&x!=="debit"&&d&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),x!=="volume"&&x!=="debit"&&p&&i.jsx(vt,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),x==="rule"?i.jsxs(i.Fragment,{children:[d&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),p&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:W.map((O,V)=>{var le;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:O.key,onChange:xe=>Rm(V,xe.target.value),disabled:p||d,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:Po.length===0?i.jsx("option",{value:"",children:"No keys available"}):Po.map(xe=>i.jsx("option",{value:xe,children:xe},xe))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),O.type==="enum_variant"?i.jsx("select",{value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((le=u[O.key])==null?void 0:le.values)||[]).map(xe=>i.jsx("option",{value:xe,children:xe},xe))}):O.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):O.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>_c(V),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),O.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:O.metadataKey||"",onChange:xe=>Pm(V,xe.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},V)})}),i.jsxs("button",{onClick:qy,disabled:p||d||Po.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:I.map((O,V)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:V+1}),i.jsx("input",{placeholder:"gateway name",value:O.gateway_name,onChange:le=>Dm(V,"gateway_name",le.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:O.gateway_id||"",onChange:le=>Dm(V,"gateway_id",le.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>Mm(V),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},V))}),i.jsxs("button",{onClick:Ky,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):x==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(at,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx($a,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx($a,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:x2,disabled:!a||Mt,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:X.amount,onChange:O=>Rn("amount",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:X.currency,onChange:O=>Rn("currency",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:X.auth_type,onChange:O=>Rn("auth_type",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:X.card_type,onChange:O=>Rn("card_type",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:X.eligible_gateways,onChange:O=>Rn("eligible_gateways",O.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:X.merchant_category_code,onChange:O=>Rn("merchant_category_code",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:X.acquirer_country,onChange:O=>Rn("acquirer_country",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:X.co_badged_networks,onChange:O=>Rn("co_badged_networks",O.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:X.issuer_country,onChange:O=>Rn("issuer_country",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:X.is_regulated,onChange:O=>Rn("is_regulated",O.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),X.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:X.regulated_name,onChange:O=>Rn("regulated_name",O.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):x==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:M,onChange:O=>B(O.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(we,{onClick:v2,disabled:Mt||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(rf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Qi||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Mt?st:Tf||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${Mt?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${Mt?Jy:Tf&&Qi?Math.min(100,Math.round(Tf/Qi*100)):0}%`}})}),Mt&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[Jy,"%"]})]})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"space-y-2",children:[(()=>{const O=k.ranking_algorithm==="SR_MULTI_OBJECTIVE",V=O?Na.includes("CARD")?["CARD"]:["CARD",...Na]:Na,le=O?[...G$]:Cf,xe=O?[US]:Rt,Ve=O?[...K$]:ca,dt=[{label:"Amount",content:i.jsx("input",{value:k.amount,onChange:Le=>Qt("amount",Le.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500"})},{label:"Currency",content:i.jsx("select",{value:k.currency,onChange:Le=>Qt("currency",Le.target.value),disabled:p||d||O,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:xe.map(Le=>i.jsx("option",{value:Le,children:Le},Le))})},{label:"Method Type",content:i.jsx("select",{value:k.payment_method_type,onChange:Le=>Qt("payment_method_type",Le.target.value),disabled:p||d||O,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:V.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Payment Method",content:i.jsx("select",{value:k.payment_method,onChange:Le=>Qt("payment_method",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:le.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Card Brand",content:i.jsx("select",{value:k.card_brand,onChange:Le=>Qt("card_brand",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Ve.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Auth Type",content:i.jsx("select",{value:k.auth_type,onChange:Le=>Qt("auth_type",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Sr.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})}];return O&&dt.push({label:"Card Type",content:i.jsx("select",{value:k.card_program,onChange:Le=>Qt("card_program",Le.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:q$.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})}),i.jsx("div",{className:"grid grid-cols-3 gap-x-3 gap-y-2.5",children:dt.map(({label:Le,content:bt})=>i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:Le}),bt]},Le))})})(),i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:"Algorithm"}),i.jsx("select",{value:k.ranking_algorithm,onChange:O=>Qt("ranking_algorithm",O.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm font-medium text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 cursor-pointer",children:cH.map(O=>i.jsx("option",{value:O,children:gEe[O]},O))})]})]}),x==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:ne,onChange:O=>ce(O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),ne==="FAILURE"&&i.jsx(oA,{info:E,onChange:is,rules:_e})]}),x==="batch"&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] pt-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Uh,{size:13,className:"text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400",children:"Simulation"})]}),i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("label",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Payments"}),i.jsx("input",{type:"number",min:1,max:5e3,value:_.totalPayments,onChange:O=>C({totalPayments:O.target.value}),onBlur:O=>{const V=Math.max(1,Math.min(5e3,parseInt(O.target.value)||1));C({totalPayments:String(V)})},className:"w-24 bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-2 text-sm font-semibold text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"})]})]}),i.jsxs("div",{className:"space-y-2",children:[ua.map(O=>{var bt,pt,Zt,Ut,tr;const V=((bt=R[O])==null?void 0:bt.successRate)??VS(O).successRate,le=((pt=R[O])==null?void 0:pt.failureMode)??"decline";(Zt=R[O])==null||Zt.gsmDecision;const xe=((Ut=R[O])==null?void 0:Ut.penalized)??!0,Ve=It.has(O),dt=V>=80?"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300":V>=50?"bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300":"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300",Le=V>=80?"#10b981":V>=50?"#f59e0b":"#ef4444";return i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0a0a10] overflow-hidden",children:[i.jsxs("div",{role:"button",tabIndex:0,onClick:()=>er(O),onKeyDown:Vt=>{(Vt.key==="Enter"||Vt.key===" ")&&(Vt.preventDefault(),er(O))},className:"flex items-center gap-2.5 px-3 pt-3 pb-5 cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f18] transition-colors select-none",children:[i.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-lg text-xs font-bold uppercase shrink-0",style:{backgroundColor:`${Af[O]??Vf[0]}22`,color:Af[O]??Vf[0]},children:O.charAt(0)}),i.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100 capitalize shrink-0 w-16 truncate",children:O}),i.jsxs("div",{className:"relative flex-1 min-w-0 mr-2",children:[i.jsx("input",{type:"range",min:0,max:100,value:V,onChange:Vt=>os(O,parseInt(Vt.target.value)),onClick:Vt=>Vt.stopPropagation(),onMouseDown:Vt=>Vt.stopPropagation(),style:{accentColor:Le},className:"w-full h-2 cursor-pointer"}),i.jsxs("div",{className:"absolute top-full left-0 right-2 flex justify-between pointer-events-none",children:[i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"0"}),i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"100%"})]})]}),i.jsx(Zb,{text:"Simulated success rate for this gateway",children:i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-bold tabular-nums shrink-0 ${dt}`,children:[V,"%"]})}),Sh.GSM_RETRY_IN_SIMULATION,i.jsx("button",{type:"button",disabled:Se,onClick:Vt=>{Vt.stopPropagation();const Wn=ua.filter(cr=>cr!==O);Qt("eligible_gateways",Wn.join(", ")),xr(cr=>{const Hn=new Set(cr);return Hn.delete(O),Hn})},className:"text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400 disabled:opacity-30 disabled:cursor-not-allowed transition-colors shrink-0",children:i.jsx(Vr,{size:13})}),i.jsx(ln,{size:13,className:`text-slate-500 dark:text-slate-400 transition-transform duration-200 shrink-0 ${Ve?"rotate-180":""}`})]}),i.jsx("div",{className:`grid transition-all duration-200 ease-in-out ${Ve?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:i.jsx("div",{className:"overflow-hidden min-h-0",children:i.jsxs("div",{className:"px-4 pb-4 pt-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24]",children:[i.jsxs("div",{className:`grid grid-cols-2 rounded-lg overflow-hidden border text-xs font-semibold ${Se?"opacity-50 pointer-events-none border-slate-100 dark:border-[#1c1c24]":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsx("button",{type:"button",disabled:Se,onClick:()=>Xi(O,"decline"),className:`py-2 transition-colors ${le==="decline"?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Decline"}),i.jsx("button",{type:"button",disabled:Se,onClick:()=>Xi(O,"timeout"),className:`py-2 border-l border-slate-200 dark:border-[#222226] transition-colors ${le==="timeout"?"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Timeout"})]}),le==="timeout"&&i.jsx("p",{className:`text-xs px-3 py-2 rounded-lg ${Je?"bg-amber-50 text-amber-700 dark:bg-amber-950/30 dark:text-amber-400":"bg-red-50 text-red-600 dark:bg-red-950/30 dark:text-red-400"} max-w-[68ch]`,children:Je?`Removed from routing below ${ze.config.data.threshold} threshold.`:"Elimination not configured. Set it up in SR Routing settings."}),le==="decline"&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid gap-2 grid-cols-1",children:[Sh.GSM_RETRY_IN_SIMULATION,i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Score Impact"}),i.jsxs("select",{value:xe?"penalized":"skipped",onChange:Vt=>Ea(O,Vt.target.value==="penalized"),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"penalized",children:"Penalized"}),i.jsx("option",{value:"skipped",children:"Penalty skipped"})]})]})]}),i.jsx(oA,{info:((tr=R[O])==null?void 0:tr.errorInfo)??_u,onChange:Vt=>Ji(O,Vt),rules:_e,connector:O,showClassification:!1})]})]})})})]},O)}),Pt?i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:za,type:"text",value:Tt,onChange:O=>Bt(O.target.value),onKeyDown:O=>{if(O.key==="Enter"){const V=Tt.trim().toLowerCase();V&&!ua.includes(V)&&(Qt("eligible_gateways",[...ua,V].join(", ")),xr(le=>new Set(le).add(V))),Bt(""),sn(!1)}O.key==="Escape"&&(Bt(""),sn(!1))},onBlur:()=>{Bt(""),sn(!1)},placeholder:"e.g. stripe",autoFocus:!0,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-brand-300 dark:border-brand-700 rounded-lg px-3 py-2 pr-16 text-sm text-slate-800 dark:text-slate-100 placeholder-slate-500 focus:outline-none focus:border-brand-500"}),i.jsx("kbd",{className:"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-xs text-slate-500 dark:text-slate-500 bg-slate-100 dark:bg-[#1c1c24] border border-slate-200 dark:border-[#2a2a35] px-1.5 py-0.5 rounded font-mono",children:"Enter ↵"})]}),i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Press Enter to add · Esc to cancel"})]}):i.jsxs("button",{type:"button",disabled:Se,onClick:()=>{sn(!0),setTimeout(()=>{var O;return(O=za.current)==null?void 0:O.focus()},0)},className:"w-full rounded-xl border border-dashed border-slate-200 dark:border-[#2a2a3a] flex items-center justify-center gap-2 h-11 text-slate-500 hover:text-brand-600 hover:border-brand-400 dark:hover:text-brand-400 dark:hover:border-brand-600 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",children:[i.jsx(Qn,{size:14}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider",children:"Add connector"})]})]})]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:Ee}),x==="rule"?i.jsx(we,{onClick:Xs,disabled:Mt||p,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})}):x==="debit"?i.jsx(we,{onClick:Yy,disabled:Mt||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(_o,{size:14})," Run Debit Routing"]})}):x==="volume"?null:x==="batch"?i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Se?()=>{L.current=!0}:y2,disabled:!a||p,variant:Se?"secondary":"primary",className:"w-full justify-center",children:Se?i.jsxs(i.Fragment,{children:[i.jsx(Vr,{size:14}),"Stop (",se.length,"/",_.totalPayments||0,")"]}):i.jsxs(i.Fragment,{children:[i.jsx(Uh,{size:14})," Run Auth-Rate Simulation"]})})]}):i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Im,disabled:Mt||!a||p,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Run Single Transaction"]})})]})]})]}),i.jsx("div",{className:"min-w-0 flex flex-col gap-4",children:x==="debit"?pe?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),ue?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>zm(ue),children:"View audit"}):null]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:pe.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:ue})]})]}),pe.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(He,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:Lm.map((O,V)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",V+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:O.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[O.saving_percentage.toFixed(2),"%"]})]},`${O.network}-${V}`))})]})})]})]}):i.jsx(vt,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>ft(!ut),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[ut?i.jsx(hs,{size:14}):i.jsx(ln,{size:14}),"Raw response"]}),ut&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(pe,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(He,{className:"py-12 text-center",children:[i.jsx(_o,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):x==="volume"?Pe.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Tf})," evaluations"]}),cs&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:cs.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[cs.percentage,"%"]})]})]})]})]}),he!=null&&he.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>ed(he.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[Of.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:Of.map(O=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${O.percentage}%`,backgroundColor:Uf[(Do.get(O.name)??0)%Uf.length]},title:`${O.name}: ${O.percentage}%`},O.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:Of.map(O=>{const V=Uf[(Do.get(O.name)??0)%Uf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:V}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:O.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[O.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[O.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${O.percentage}%`,backgroundColor:V}})})]},O.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:Re.slice(-200).map((O,V)=>{const le=Math.max(0,Re.length-200)+V;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>ed(O.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:le+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:O.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Uf[(Do.get(O.connector)??0)%Uf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:O.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:xe=>{xe.stopPropagation(),ed(O.paymentId,"Volume Split Decision")},children:"Open"})})]},O.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>gn(O=>!O),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API response"]}),Kt?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]}),Kt&&he&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(he,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(rf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):x==="rule"?he?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:he.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",he.output.type]})]}),he.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>ed(he.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),he.output.type==="single"&&he.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:he.output.connector.gateway_name}),he.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",he.output.connector.gateway_id]})]}),he.output.type==="priority"&&he.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:he.output.connectors.map((O,V)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:V+1}),i.jsx("span",{className:"font-medium",children:O.gateway_name}),O.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",O.gateway_id,")"]})]},V))})]}),he.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ge(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),mn?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),mn&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(he,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):x==="batch"?Js?i.jsxs(i.Fragment,{children:[i.jsxs(Te,{className:"shrink-0",children:[i.jsx(yt,{className:"!py-3",children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Gateway Selection Summary"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[Mo>0&&(()=>{const V=2*Math.PI*6,le=V*(1-Al/100);return i.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",className:"-rotate-90",children:[i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",className:"stroke-slate-200 dark:stroke-slate-700"}),i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:V,strokeDashoffset:le,className:"stroke-brand-500 transition-[stroke-dashoffset] duration-300"})]})})(),i.jsxs("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[ls," / ",Mo||0]}),ls>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),Nr>0?i.jsxs("span",{className:"text-[11px] font-medium text-brand-600 dark:text-sky-400 leading-4",children:[Math.round(Nr/ls*100),"% hedged"]}):i.jsx(Zb,{text:"Enable ENABLE_EXPLORE_AND_EXPLOIT_ON_SRV3_{PMT} or ENABLE_MERCHANT_ON_VOLUME_DISTRIBUTION_FEATURE_SR_V3 in Redis",children:i.jsx("span",{className:"text-[11px] text-amber-700 dark:text-amber-400 cursor-help leading-4",children:"0 hedged"})}),me&&Ol.triggered>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsx(Zb,{text:`${Ol.triggered} retries triggered · ${Ol.recovered} recovered`,children:i.jsxs("span",{className:"text-[11px] font-medium text-orange-700 dark:text-orange-400 cursor-help leading-4",children:[Ol.triggered," retried · ",Ol.recovered," recovered"]})})]}),Zs.value>0&&Zs.currency&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-[11px] font-medium text-emerald-700 dark:text-emerald-400 leading-4",children:["saved ",uH(Zs.value,Zs.currency)]})]})]})]})]})}),i.jsxs(He,{className:"!pt-3",children:[Xy.length>0&&(()=>{const O=b2,V=Xy,le=V.some(([xe])=>{var Ve;return(((Ve=$m.series[xe])==null?void 0:Ve.length)??0)>=2});return i.jsxs("div",{className:"flex flex-wrap gap-3 items-start",children:[i.jsx("div",{className:"flex-1 space-y-2 min-w-[320px]",children:V.map(([xe,Ve])=>{const dt=O>0?Math.round(Ve.total/O*100):0,Le=Ve.total>0?Math.round(Ve.success/Ve.total*100):0,bt=Af[xe]??Vf[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:bt}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 w-20 truncate shrink-0",children:xe}),i.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-slate-100 dark:bg-[#1c1c24] overflow-hidden min-w-0",children:i.jsx("div",{className:"h-full rounded-full transition-[width] duration-300",style:{width:`${dt}%`,backgroundColor:bt}})}),i.jsxs("div",{className:"flex items-center gap-2.5 text-[11px] shrink-0 leading-4",children:[i.jsxs("span",{className:`font-bold tabular-nums ${Le>=80?"text-emerald-700 dark:text-emerald-400":Le>=50?"text-amber-700":"text-red-600"}`,children:[Le,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums",children:[dt,"% routed"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"tabular-nums text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ve.success}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 mx-0.5",children:"/"}),i.jsx("span",{className:"text-red-600",children:Ve.failure})]})]})]})},xe)})}),le&&(()=>{const{series:xe,paymentNums:Ve}=$m,dt=Ve.length,Le=7,bt=Math.max(64,V.length*28),pt=14,Zt=28,Ut=Math.max(200,dt*Le),tr=bt+pt,Vt=6,Wn=wt=>wt/Math.max(dt-1,1)*Ut,{yMin:cr,yMax:Hn}=$m,Gn=Hn-cr||1,yr=wt=>Vt+(Hn-wt)/Gn*(bt-Vt*2),Cc=Gn<=10?2:Gn<=30?5:10,Pf=Math.ceil(cr/Cc)*Cc,Ec=[];for(let wt=Pf;wt<=Hn;wt+=Cc)Ec.push(wt);const Ac=wt=>{if(wt.length<2)return"";const dn=wt.map((Er,Qs)=>[Wn(Qs),yr(Er)]);let us=`M ${dn[0][0]},${dn[0][1]}`;for(let Er=1;Er({n:wt,i:dn})).filter(({i:wt})=>wt%wi===0||wt===dt-1),Pl=Aa.filter((wt,dn)=>dn===Aa.length-2?Aa[Aa.length-1].i-Aa[dn].i>=Math.ceil(wi*.5):!0);return i.jsxs("div",{className:"relative self-start flex-1",style:{minWidth:200+Zt},children:[i.jsx("div",{className:"overflow-x-auto",style:{width:`calc(100% - ${Zt}px)`,scrollbarWidth:"none"},ref:wt=>{wt&&(wt.scrollLeft=wt.scrollWidth)},children:i.jsxs("svg",{width:Ut,height:tr,viewBox:`0 0 ${Ut} ${tr}`,style:{display:"block"},children:[Ec.map(wt=>i.jsx("line",{x1:0,y1:yr(wt),x2:Ut,y2:yr(wt),stroke:"#e2e8f0",strokeWidth:"0.5",strokeDasharray:"2,2"},wt)),V.map(([wt])=>{const dn=xe[wt];if(!dn||dn.length<2)return null;const us=Af[wt]??Vf[0],Er=Ac(dn),Qs=`${Er} L ${Wn(dn.length-1)},${bt} L 0,${bt} Z`;return i.jsxs("g",{children:[i.jsx("path",{d:Qs,fill:us,fillOpacity:.07}),i.jsx("path",{d:Er,fill:"none",stroke:us,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]},wt)}),i.jsx("line",{x1:0,y1:bt,x2:Ut,y2:bt,stroke:"#e2e8f0",strokeWidth:"0.5"}),Pl.map(({n:wt,i:dn},us)=>i.jsx("text",{x:Wn(dn),y:bt+10,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",textAnchor:us===0?"start":us===Pl.length-1?"end":"middle",children:wt},dn))]})}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:Zt},children:i.jsxs("svg",{width:Zt,height:bt,viewBox:`0 0 ${Zt} ${bt}`,style:{display:"block"},children:[i.jsx("line",{x1:2,y1:Vt,x2:2,y2:bt-Vt,stroke:"#cbd5e1",strokeWidth:"0.5"}),Ec.map(wt=>i.jsxs("g",{children:[i.jsx("line",{x1:0,y1:yr(wt),x2:4,y2:yr(wt),stroke:"#cbd5e1",strokeWidth:"0.5"}),i.jsxs("text",{x:6,y:yr(wt)+3,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",children:[wt,"%"]})]},wt))]})})]})})(),!le&&null]})})(),Object.keys(lr).length===1&&ua.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})]}),i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),or.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[or.length," transactions"]})]}),i.jsx(He,{className:"p-0",children:or.length>0?i.jsx("div",{ref:Gr,className:"max-h-[480px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-10",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Payment ID"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),me&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),me&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"}),i.jsx("th",{className:"w-8"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:or.map((O,V)=>{var xe;const le=V;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>zm(O.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:le+1}),i.jsx("td",{className:"px-3 py-2 max-w-[180px]",children:i.jsx("span",{className:"block truncate font-mono text-xs text-slate-700 dark:text-slate-300 group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:O.paymentId})}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:O.decidedGateway}),i.jsx("td",{className:"px-3 py-2",children:(xe=O.routingApproach)!=null&&xe.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Hedging"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:O.routingApproach==="SR_SELECTION_V3_ROUTING"?"SR V3":O.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?"Multi-Obj":O.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(Me,{variant:O.status==="CHARGED"?"green":O.status==="PENDING_VBV"?"orange":"red",children:O.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:O.costWon&&O.costSavedBps!=null&&O.costSavedBps>0&&O.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:yEe(O.costSavedBps,O.amount,O.currency)}):null}),me&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:O.retryGateway??"—"}),me&&i.jsx("td",{className:"px-3 py-2",children:O.retryStatus?i.jsx(Me,{variant:O.retryStatus==="CHARGED"?"green":O.retryStatus==="PENDING_VBV"?"orange":"red",children:O.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})}),i.jsx("td",{className:"pr-3 py-2",children:i.jsx("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity text-slate-500 dark:text-slate-400",children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",className:"w-3.5 h-3.5",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})})})]},O.paymentId)})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Waiting for the first simulated payment result…"]})})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("button",{type:"button",onClick:()=>Xu(O=>!O),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Ns?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Ns&&i.jsx(QW,{merchantId:a,gsmRules:_e,decideParams:{amount:k.amount,currency:k.currency,paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:k.eligible_gateways}})]}):z?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:z.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${vEe(z.routing_approach)}`,children:z.routing_approach})}),Q?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>zm(Q),children:"View audit"}):null,z.is_scheduled_outage&&i.jsx(Me,{variant:"red",children:"Scheduled Outage"}),Q?i.jsx(Me,{variant:ne==="CHARGED"?"green":"red",children:ne}):null,z.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[z.latency,"ms"]})]})]}),Q?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:Q}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",ne,". Open audit to inspect the full decide and update flow."]})]}):null,z.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:z.routing_dimension})]}),z.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:z.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:z.reset_approach})]})]})]})}),z.multi_objective_info&&i.jsx(DEe,{info:z.multi_objective_info}),Ef.length>0&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Im,className:"text-xs",children:[i.jsx(Es,{size:12})," Refresh"]})]})}),i.jsx(He,{children:i.jsx(tl,{width:"100%",height:Ef.length*40+20,children:i.jsxs(vx,{data:Ef,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(ys,{type:"number",domain:[0,100],tickFormatter:O=>`${O}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(Qa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(xa,{formatter:O=>`${O}%`,contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"score",radius:[0,4,4,0],children:Ef.map((O,V)=>i.jsx(vy,{fill:O.name===z.decided_gateway?"#0069ED":O.score<30?"#ef4444":O.score<60?"#f59e0b":"#10b981"},V))})]})})})]}),z.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>zn(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Lr?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),Lr&&i.jsx(He,{className:"space-y-2",children:Object.entries(z.filter_wise_gateways).map(([O,V])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:O}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(V)?V.map(le=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:le},le)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},O))})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ge(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),mn?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),mn&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(z,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})})]}),pn&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>mt(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(BW,{size:22})}),i.jsxs("div",{children:[i.jsx(vn,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:pn.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>mt(null),children:i.jsx(Vr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:pn.body}),pn.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:pn.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(we,{variant:"secondary",onClick:()=>mt(null),children:"Dismiss"}),pn.configurePath&&i.jsx(we,{onClick:()=>{mt(null),t(pn.configurePath)},children:"Configure"})]})]})]})]}),zt&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Um}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:zt}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Ua!=null&&Ua.latest_gateway?i.jsx(Me,{variant:"green",children:Ua.latest_gateway}):null,Ua!=null&&Ua.latest_status?i.jsx(Me,{variant:Q$(Ua.latest_status),children:Ni(Ua.latest_status)}):null,Ua!=null&&Ua.event_count?i.jsxs(Me,{variant:"gray",children:[Ua.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>Jt.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Um,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Jt.isLoading&&!Jt.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading payment audit…"]}):Jt.error?i.jsx(vt,{error:Jt.error.message}):Fm.length?i.jsx("div",{className:"space-y-4",children:Fm.map(O=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:eL(O.phase),children:O.phase})}),i.jsx("div",{className:"space-y-2",children:O.events.map(V=>i.jsxs("button",{type:"button",onClick:()=>{xn(V.id),jr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(yn==null?void 0:yn.id)===V.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Wg(V)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Ug(V.created_at_ms)})]}),i.jsx(Me,{variant:Yv(V),children:Ni(V.status)||Z$(V.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:Vg(V.route)}),V.gateway?i.jsx(Me,{variant:"green",children:V.gateway}):null,V.request_id?i.jsx(Me,{variant:"blue",children:"Request"}):null]})]},V.id))})]},O.phase))}):i.jsx(Hg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:yn?Wg(yn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:yn?`${Vg(yn.route)} · ${Ug(yn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[yn!=null&&yn.gateway?i.jsx(Me,{variant:"green",children:yn.gateway}):null,yn!=null&&yn.status?i.jsx(Me,{variant:Yv(yn),children:Ni(yn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(O=>i.jsx("button",{type:"button",onClick:()=>jr(O),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${nL(ia===O)}`,children:O==="raw"?"Raw JSON":Ni(O)},O))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Jt.isLoading&&!Jt.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading inspector…"]}):bi?i.jsxs("div",{className:"space-y-5",children:[ia==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(rL,{rows:bi.summaryRows}),bi.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:yH(bi.selectionReason)})]}):null,i.jsx(Ml,{title:"Score Context",value:bi.scoreContext,emptyMessage:"No scoring context was captured for this event."}),bi.signalRecord?i.jsx(Ml,{title:"Additional Signals",value:bi.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ia==="input"?i.jsx(Ml,{title:"Request Payload",value:bi.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ia==="response"?i.jsx(Ml,{title:"Response Payload",value:bi.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ia==="raw"?i.jsx(Ml,{title:"Raw Event JSON",value:bi.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Hg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),oa&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Vm}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:oa}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Yu,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Cr!=null&&Cr.latest_gateway?i.jsx(Me,{variant:"green",children:Cr.latest_gateway}):null,Cr!=null&&Cr.latest_status?i.jsx(Me,{variant:Q$(Cr.latest_status),children:Ni(Cr.latest_status)}):null,Cr!=null&&Cr.event_count?i.jsxs(Me,{variant:"gray",children:[Cr.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>re.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Vm,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:re.isLoading&&!re.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision trace…"]}):re.error&&AEe(re.error)&&oa?i.jsx(qS,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):re.error?i.jsx(vt,{error:re.error.message}):Bm.length?i.jsx("div",{className:"space-y-4",children:Bm.map(O=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:eL(O.phase),children:O.phase})}),i.jsx("div",{className:"space-y-2",children:O.events.map(V=>i.jsxs("button",{type:"button",onClick:()=>{ss(V.id),Sa("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(jn==null?void 0:jn.id)===V.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Wg(V)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Ug(V.created_at_ms)})]}),i.jsx(Me,{variant:Yv(V),children:Ni(V.status)||Z$(V.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:Vg(V.route)}),V.gateway?i.jsx(Me,{variant:"green",children:V.gateway}):null]})]},V.id))})]},O.phase))}):oa?i.jsx(qS,{title:Cr?"Decision summary available":"Decision trace still arriving",body:Cr?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Hg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:jn?Wg(jn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:jn?`${Vg(jn.route)} · ${Ug(jn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[jn!=null&&jn.gateway?i.jsx(Me,{variant:"green",children:jn.gateway}):null,jn!=null&&jn.status?i.jsx(Me,{variant:Yv(jn),children:Ni(jn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(O=>i.jsx("button",{type:"button",onClick:()=>Sa(O),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${nL(la===O)}`,children:O==="raw"?"Raw JSON":Ni(O)},O))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:re.isLoading&&!re.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision inspector…"]}):Tl?i.jsxs("div",{className:"space-y-5",children:[la==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(rL,{rows:Tl.summaryRows}),i.jsx(Ml,{title:"Decision Signals",value:Tl.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,la==="input"?i.jsx(Ml,{title:"Request Payload",value:Tl.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,la==="response"?i.jsx(Ml,{title:"Response Payload",value:Tl.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,la==="raw"?i.jsx(Ml,{title:"Raw Event JSON",value:Tl.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):oa&&!((Gm=(iv=re.data)==null?void 0:iv.timeline)!=null&&Gm.length)?i.jsx(qS,{title:Cr?"Waiting for detailed decision step":"Waiting for decision step",body:Cr?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Hg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function DEe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(He,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(IEe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function IEe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function Hs({open:t,title:e,description:n,confirmLabel:r="Confirm",cancelLabel:a="Cancel",variant:s="primary",onConfirm:o,onCancel:l}){const c=g.useRef(null);return g.useEffect(()=>{var u;t&&((u=c.current)==null||u.focus())},[t]),g.useEffect(()=>{if(!t)return;function u(d){d.key==="Escape"&&l()}return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[t,l]),t?i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:l}),i.jsxs("div",{ref:c,tabIndex:-1,className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e}),i.jsx("p",{className:"mt-2 max-w-[57ch] text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:n}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:l,children:a}),i.jsx(we,{variant:s==="danger"?"danger":"primary",size:"sm",onClick:o,children:r})]})]})]}):null}function Vj(t){const e=t?`/merchant-account/${t}/cost-coverage`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:6e4});return{coverage:n,error:r,isLoading:a,mutate:s}}function vH(t){const e=t?`/merchant-account/${t}/connector-fees`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{fees:n??[],error:r,isLoading:a,mutate:s}}async function $Ee(t,e,n){return zj(`/merchant-account/${t}/connectors/${e}/fee-override`,n)}async function LEe(t,e){return km(`/merchant-account/${t}/connectors/${e}/fee-override`)}function cT(t){var n;let e=(n=t.q)!=null&&n.trim()?1:0;for(const[r,a]of Object.entries(t))r!=="q"&&Array.isArray(a)&&(e+=a.length);return e}function uT(t,e={}){const{limit:n=10,order:r,connector:a,account:s,reportDate:o,ingestionId:l,filters:c}=e;let u=null;if(t){const m=new URLSearchParams({limit:String(n)});for(const[x,v]of Object.entries(c??{}))if(Array.isArray(v))for(const b of v)b!=null&&b.trim()&&m.append(x,b.trim());else typeof v=="string"&&v.trim()&&m.set(x,v.trim());a&&m.set("connector",a),s&&m.set("account",s),o&&m.set("report_date",o),l&&m.set("ingestion_id",l),r==="n"&&m.set("order","txns"),u=`/merchant-account/${t}/cost-clusters?${m.toString()}`}const{data:d,error:f,isLoading:h,mutate:p}=ct(u,Dt,{revalidateOnFocus:!1});return{clusters:d??[],error:f,isLoading:h,mutate:p}}function bH(t,e={}){const{connector:n,account:r,reportDate:a,ingestionId:s}=e;let o=null;if(t){const f=new URLSearchParams;n&&f.set("connector",n),r&&f.set("account",r),a&&f.set("report_date",a),s&&f.set("ingestion_id",s);const h=f.toString();o=`/merchant-account/${t}/cost-cluster-facets${h?`?${h}`:""}`}const{data:l,error:c,isLoading:u}=ct(o,Dt,{revalidateOnFocus:!1});return{facets:g.useMemo(()=>{var h;const f={};for(const p of l??[])(f[h=p.dim]??(f[h]=[])).push(p);return f},[l]),error:c,isLoading:u}}async function wH(t,e,n){return zj(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`,n)}async function FEe(t,e){return km(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`)}function kH(t){const e=t?`/merchant-account/${t}/seed-costs`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{rows:n??[],error:r,isLoading:a,mutate:s}}async function BEe(t,e){return zj(`/merchant-account/${t}/seed-costs`,{rows:e})}async function zEe(t){return km(`/merchant-account/${t}/seed-costs`)}function UEe(t){const e=t?`/merchant-account/${t}/connectors`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{sources:n??[],error:r,isLoading:a,mutate:s}}function dT(t){const e=t?`/merchant-account/${t}/cost-ingestions`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,refreshInterval:o=>o!=null&&o.some(l=>l.status==="processing"||l.status==="pending")?2e3:0});return{ingestions:n??[],error:r,isLoading:a,mutate:s}}async function VEe(t,e,n){return Fe(`/merchant-account/${t}/connectors/${e}/credentials`,n)}async function WEe(t,e,n){return km(`/merchant-account/${t}/connectors/${e}/credentials/${encodeURIComponent(n)}`)}async function HEe(t,e,n,r,a){return eT(`/merchant-account/${t}/connectors/${e}/report?account=${encodeURIComponent(n)}`,r,a)}const aL=64*1024;async function GEe(t,e,n,r){const a=r?`?account=${encodeURIComponent(r)}`:"";return eT(`/merchant-account/${t}/connectors/${e}/report/validate-headers${a}`,n)}async function qEe(t,e,n,r,a){return Fe(`/merchant-account/${t}/connectors/${e}/report/preview`,{columns:n,sample:r,truncated:a})}function KEe(){const{data:t,error:e,isLoading:n}=ct("/cost-ingestion/connectors",Dt,{revalidateOnFocus:!1});return{connectors:t??[],error:e,isLoading:n}}async function YEe(t,e,n,r,a,s){return zj(`/merchant-account/${t}/connectors/${e}/report/column-mapping?account=${encodeURIComponent(n)}`,{columns:r,sample:a,truncated:s})}async function XEe(t,e){return Fe(`/merchant-account/${t}/connectors/${e}/report/sample`)}async function JEe(t,e){return km(`/merchant-account/${t}/cost-ingestions/${e}`)}function ZEe(t){const e=t?`/merchant-account/${t}/invoice-addons`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{addons:n??[],error:r,isLoading:a,mutate:s}}async function QEe(t,e,n,r,a,s){const o=new URLSearchParams({account:n});return a&&o.set("invoice_ref",a),eT(`/merchant-account/${t}/connectors/${e}/invoice?${o.toString()}`,r,s)}async function eAe(t,e){return km(`/merchant-account/${t}/connectors/${e}/invoice-addon`)}const uA=1e3,tAe="routing_events_seen",nAe=500,dA="1h";function rAe(t){return t==="15m"||t==="1h"?"1s":"1m"}function jH(t,e){return t?`/analytics/routing-events?range=${e}&bucket=${rAe(e)}`:null}function SH(t){return`${tAe}:${t}`}function sL(t){try{const e=localStorage.getItem(SH(t));if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function aAe(t,e){try{localStorage.setItem(SH(t),JSON.stringify(Array.from(e).slice(-nAe)))}catch{}}const _H=g.createContext(null);function sAe({children:t}){const e=hr(k=>{var S;return(S=k.user)==null?void 0:S.merchantId})??"",[n,r]=g.useState(uA),a=g.useRef(0),[s,o]=g.useState(!1),l=g.useCallback(()=>(a.current+=1,o(!0),()=>{a.current-=1,a.current<=0&&(a.current=0,o(!1))}),[]),{data:c,error:u,isLoading:d,mutate:f}=ct(s?jH(e,dA):null,Dt,{refreshInterval:n,revalidateOnFocus:!1}),[h,p]=g.useState(()=>sL(e));g.useEffect(()=>{p(sL(e))},[e]);const m=g.useCallback(k=>h.has(k),[h]),x=g.useCallback(k=>{p(S=>{const _=new Set(S);for(const C of k)_.add(C.id);return aAe(e,_),_})},[e]),v=g.useCallback(()=>{f()},[f]),b=g.useCallback(k=>{r(k??uA)},[]),y=g.useRef([]);g.useEffect(()=>{c!=null&&c.events&&(y.current=c.events)},[c]);const w=g.useMemo(()=>u?[]:(c==null?void 0:c.events)??y.current,[u,c]),j=g.useMemo(()=>({liveEvents:w,isLoading:d,isUnavailable:!!u,isSeen:m,markSeen:x,refresh:v,requestPollInterval:b,subscribe:l}),[w,d,u,m,x,v,b,l]);return g.createElement(_H.Provider,{value:j},t)}function iAe(){const t=g.useContext(_H);if(!t)throw new Error("useRoutingEvents must be used within a ");return t}function fT(t=dA,e={}){const{refreshInterval:n,enabled:r=!0}=e,a=hr(C=>{var E;return(E=C.user)==null?void 0:E.merchantId})??"",{liveEvents:s,isLoading:o,isUnavailable:l,isSeen:c,markSeen:u,refresh:d,requestPollInterval:f,subscribe:h}=iAe(),p=t===dA;g.useEffect(()=>{if(!(!p||!r))return h()},[p,r,h]),g.useEffect(()=>{if(!(!p||n===void 0))return f(n),()=>f(null)},[p,n,f]);const{data:m,error:x,isLoading:v,mutate:b}=ct(!p&&r?jH(a,t):null,Dt,{refreshInterval:n??uA,revalidateOnFocus:!1}),y=p?s:x?[]:(m==null?void 0:m.events)??[],w=p?o:v,j=p?l:!!x,k=g.useMemo(()=>y.filter(C=>!c(C.id)),[y,c]),S=g.useCallback(()=>{u(y)},[y,u]),_=g.useCallback(()=>{p?d():b()},[p,d,b]);return{events:y,unseenEvents:k,unseenCount:k.length,markAllSeen:S,refresh:_,isLoading:w,isUnavailable:j}}function hT(t){switch(t.event_type){case"leader_changed":return`switching psp to ${t.gateway}`;case"gateway_entered_auth_band":return`${t.gateway} now good enough on success — routing it to save cost`;case"gateway_exited_auth_band":return`${t.gateway} slipped on success — not eligible for cost override anymore`;case"calibration_applied":return oAe(t)}}function oAe(t){const e=[t.payment_method_type,t.payment_method,t.card_network,t.currency,t.country,t.auth_type].filter(s=>!!s),n=e.length?e.join(" · "):"default",r=[];if(t.bucket_size!=null&&r.push(t.previous_bucket_size!=null&&t.previous_bucket_size!==t.bucket_size?`bucket ${t.previous_bucket_size} → ${t.bucket_size}`:`bucket ${t.bucket_size}`),t.hedging_percent!=null){const s=`${t.hedging_percent.toFixed(1)}%`;r.push(t.previous_hedging_percent!=null&&t.previous_hedging_percent!==t.hedging_percent?`hedging ${t.previous_hedging_percent.toFixed(1)}% → ${s}`:`hedging ${s}`)}const a=r.length?r.join(", "):"settings";return`autopilot tuned ${n} — ${a}`}const fA="USD",lAe=["USD","EUR","GBP","AUD","CAD"],cAe=["CREDIT"],uAe=["STANDARD","PREMIUM"],dAe=["VISA","MASTERCARD"],NH=[{label:"US debit",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US standard credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US premium credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"US corporate",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"COMMERCIAL",cardIssuerCountry:"US"},{label:"Amex US consumer",paymentMethod:"CREDIT",cardSwitchProvider:"AMEX",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"FR debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT debit (Mastercard)",paymentMethod:"DEBIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"FR credit (Visa)",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT credit (Mastercard)",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"AU debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"AU"}],fAe=Math.max(0,NH.findIndex(t=>t.label==="US debit"));function KS(t){const e=(t??"").trim().toLowerCase();return e==="mastercard"?"mc":e}function hAe(t,e,n,r){const a=e.toUpperCase(),s=KS(n),o=(r??"").trim().toLowerCase(),l=[c=>KS(c.card_network)===s&&(c.funding??"").toLowerCase()===o,c=>KS(c.card_network)===s,()=>!0];for(const c of l){const u=new Map;for(const h of t){if((h.currency??"").toUpperCase()!==a)continue;const p=(h.issuer_country??"").trim().toUpperCase();!p||!c(h)||u.set(p,(u.get(p)??0)+h.gross_sum)}let d,f=0;for(const[h,p]of u)p>f&&(d=h,f=p);if(d)return d}}function pAe(t,e,n){const r=(t.card_issuing_country??"").trim().toLowerCase();return r.length===2&&r!=="eu"?r.toUpperCase():hAe(n,e,t.card_network??"",t.payment_method_type??"")}function mAe(t,e,n){var o;const r=e.toUpperCase(),a=[],s=new Set;for(const l of t){if(l.is_default||(l.transaction_currency??"").toUpperCase()!==r)continue;const c=[(l.card_network??"").toLowerCase(),(l.payment_method_type??"").toLowerCase(),(l.card_type??"").toLowerCase(),(l.card_issuing_country??"").toLowerCase()].join("|");if(s.has(c))continue;s.add(c);const u=((o=l.label)==null?void 0:o.trim())||`${l.card_network??""} ${l.payment_method_type??""}`.trim()||"Scenario";a.push({label:u,paymentMethod:(l.payment_method_type??"").toUpperCase()==="DEBIT"?"DEBIT":"CREDIT",cardSwitchProvider:(l.card_network??"").toUpperCase()||"VISA",cardProgram:(l.card_type??"").toUpperCase()||"STANDARD",cardIssuerCountry:pAe(l,r,n),exampleAmount:l.example_amount??void 0})}return a}const hA={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{..._u}},gAe={stripe:94,adyen:93,braintree:92,chase:92};function Jv(t){return{...hA,successRate:gAe[t.trim().toLowerCase()]??hA.successRate,errorInfo:{..._u}}}function Wf({label:t,abbr:e}){return i.jsxs("p",{className:"text-[14px] font-semibold leading-snug text-slate-500 dark:text-slate-400",children:[t,e&&i.jsx("span",{className:"ml-1 text-[11px] font-normal uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:e})]})}function Qf(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function xAe(t,e,n){return Qf(t/1e4*e,n)}function yAe(t){for(const[e,n]of Object.entries(lH))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Hf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],ni=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],iL={stripe:"#8b5cf6",adyen:"#0abf53"},vAe=3e3,bAe={leader_changed:{icon:I0,iconClass:"text-sky-700"},gateway_entered_auth_band:{icon:Cy,iconClass:"text-emerald-700"},gateway_exited_auth_band:{icon:J3,iconClass:"text-amber-700"},calibration_applied:{icon:ec,iconClass:"text-violet-600"}};function Zv(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}const CH="decision-explorer-state-v2",EH=10*60*1e3,AH={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_MULTI_OBJECTIVE"},wAe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},oL=AH.eligible_gateways.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean);function lL(...t){const e=new Set,n=[];for(const r of t)for(const a of r){const s=a.trim().toLowerCase();s&&!e.has(s)&&(e.add(s),n.push(s))}return n}const pT="5000",kAe=1,yg=50,cL=1,uL=1e5,jAe=10,SAe=100,_Ae=.5,NAe={totalPayments:pT,tps:kAe,minAmount:jAe,maxAmount:SAe},CAe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],EAe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function OH(t){return t.map(e=>({...e}))}function TH(t){return t.map(e=>({...e}))}function PH(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function tu(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...AH},simulationConfig:{...NAe},gatewaySimConfigs:{},errorInfo:{..._u},debitForm:{...wAe},ruleParams:OH(CAe),fallbackConnectors:TH(EAe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1,multiObjScenario:fAe,moCurrency:fA,extraConnectors:[],removedConnectors:[],resumableRun:null}}function AAe(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function mT(t){return`${CH}:${encodeURIComponent(t)}`}function OAe(t){return!!(t&&Date.now()-t>EH)}function pA(t){typeof window>"u"||window.localStorage.removeItem(mT(t))}function TAe(t,e){typeof window>"u"||window.localStorage.setItem(mT(t),JSON.stringify(e))}function dL(t){var e,n,r;if(typeof window>"u")return tu();try{const a=window.localStorage.getItem(mT(t))||window.localStorage.getItem(CH);if(!a)return{...tu(),scopeKey:t};const s=JSON.parse(a),o=tu();return s.scopeKey!==t||OAe(s.resultDataUpdatedAtMs)?(pA(t),{...o,scopeKey:t}):{...o,...s,scopeKey:t,resultDataUpdatedAtMs:s.resultDataUpdatedAtMs||null,activeTab:o.activeTab,form:{...o.form,...s.form||{},ranking_algorithm:"SR_MULTI_OBJECTIVE"},simulationConfig:{...o.simulationConfig,...s.simulationConfig||{},totalPayments:pT},gatewaySimConfigs:s.gatewaySimConfigs||o.gatewaySimConfigs,errorInfo:{...o.errorInfo,...s.errorInfo||{}},debitForm:{...o.debitForm,...s.debitForm||{},card_type:PH((e=s.debitForm)==null?void 0:e.card_type)},ruleParams:(n=s.ruleParams)!=null&&n.length?OH(s.ruleParams):o.ruleParams,fallbackConnectors:(r=s.fallbackConnectors)!=null&&r.length?TH(s.fallbackConnectors):o.fallbackConnectors,volumeDistribution:s.volumeDistribution||o.volumeDistribution,volumeEvaluationLog:s.volumeEvaluationLog||o.volumeEvaluationLog,simulationResults:s.simulationResults||o.simulationResults,extraConnectors:s.extraConnectors||o.extraConnectors,removedConnectors:s.removedConnectors||o.removedConnectors}}catch{return{...tu(),scopeKey:t}}}function Qb(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function YS(t=[]){return Array.from(new Set(Qb(t)))}function PAe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function XS(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function RH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Gg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ci(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function qg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ci(t):"Unknown route"}function fL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ci(t):"Unknown event"}function gT(t){return t.flow_type||""}function Kg(t){const e=gT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ci(t.event_stage||e)}function mA(t){const e=gT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function Qv(t){const e=gT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function hL(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function pL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function RAe(t){return KW(t)===404}function vg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function JS(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function MH(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function MAe(t){return`/analytics/payment-audit?${RH({range:"1d",page:1,page_size:25,payment_id:t})}`}function DAe(t){return`/analytics/preview-trace?${RH({range:"1d",page:1,page_size:25,payment_id:t})}`}function mL(t){if(!t)return null;const e=vg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??JS({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??JS({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=vg(n)?n:null,o=vg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:mA(t)},{label:"Stage",value:Kg(t)},{label:"Route",value:qg(t.route)},{label:"Timestamp",value:Gg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ci(t.status)}]:[]],d=JS(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:vg(r)&&!Object.keys(r).length?null:r,responsePayload:vg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function gL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function IAe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function $Ae(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Yg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function ZS({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function xL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Dl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:MH(e)}):i.jsx(Yg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function yL({value:t,min:e,max:n,ariaLabel:r,className:a,onCommit:s,onSettle:o}){const[l,c]=g.useState(null);return i.jsx("input",{type:"number",min:e,max:n,step:5,"aria-label":r,value:l??String(t),onChange:u=>{const d=u.target.value;c(d);const f=Number(d);d!==""&&Number.isFinite(f)&&s(Math.max(e,Math.min(n,f)))},onBlur:()=>{c(null),o()},className:a})}function LAe(){var YP,XP,JP,ZP,QP,eR,tR,nR,rR,aR,sR;const t=Hr(),{merchantId:e}=$r(),n=hr(N=>N.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=AAe((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Sl(a||void 0).isEnabled("gsm-scoring-filter"),c=Ey(a),{fees:u}=vH(a||void 0),{rows:d}=kH(a||void 0),{clusters:f}=uT(a||void 0,{limit:2e3}),h=g.useMemo(()=>u.filter(N=>N.model_pct_bps!=null).map(N=>N.connector.toLowerCase()),[u]),{routingKeysConfig:p,isLoading:m,error:x}=iT(),v=Object.keys(p).length>0,b=!m&&(!v||!!x),y=g.useMemo(()=>dL(s),[s]),[w,j]=g.useState(y.activeTab),[k,S]=g.useState(y.scopeKey||s),[_,C]=g.useState(y.resultDataUpdatedAtMs),[E,P]=g.useState(y.form),R=g.useRef(E);g.useEffect(()=>{R.current=E},[E]);const[A,T]=g.useState(y.simulationConfig),D=g.useRef({min:A.minAmount,max:A.maxAmount});g.useEffect(()=>{D.current={min:A.minAmount,max:A.maxAmount}},[A.minAmount,A.maxAmount]);const[L,X]=g.useState(y.errorInfo),[J,U]=g.useState(y.gatewaySimConfigs),Y=g.useRef(J);g.useEffect(()=>{Y.current=J},[J]);const W=Object.values(J).some(N=>N.failureMode==="timeout"),G=g.useRef(!1);g.useEffect(()=>()=>{G.current=!0},[]);const I=g.useRef(0),[q,M]=g.useState(y.debitForm),[B,z]=g.useState(0),[Z,pe]=g.useState(y.ruleParams),[ae,ue]=g.useState(y.fallbackConnectors),[de,Q]=g.useState(y.volumePayments),[fe,ne]=g.useState(y.result),[ce,he]=g.useState(y.debitResult),[be,Pe]=g.useState(y.debitPaymentId),[Ce,Re]=g.useState(y.singleRunPaymentId),[Be,st]=g.useState(y.singleRunOutcome),[F,se]=g.useState(y.ruleResult),[ie,Se]=g.useState(y.volumeDistribution),[te,me]=g.useState(y.volumeEvaluationLog),[ve,Ee]=g.useState(y.volumeProgress),[Oe,Tt]=g.useState(y.simulationResults),Bt=g.useRef(Oe);g.useEffect(()=>{Bt.current=Oe},[Oe]);const[Pt,sn]=g.useState(!1),[It,xr]=g.useState(!1),er=g.useRef(!1),za=g.useRef(0),[Gr,pn]=g.useState(y.resumableRun),[mt,Mt]=g.useState({}),[gt,Lr]=g.useState(y.smartRetryEnabled),zn=g.useRef(gt);g.useEffect(()=>{zn.current=gt},[gt]);const[mn,ge]=g.useState(!1),[ut,ft]=g.useState(!1),[Kt,gn]=g.useState(y.extraConnectors),[zt,un]=g.useState(y.removedConnectors),[as,xn]=g.useState(!1),[ia,jr]=g.useState(""),[oa,ja]=g.useState(null),[El,ss]=g.useState(!1),[la,Sa]=g.useState(y.multiObjScenario),Yu=g.useRef(la);g.useEffect(()=>{Yu.current=la},[la]);const[_a,or]=g.useState(y.moCurrency),Ns=g.useMemo(()=>{const N=mAe(d,_a,f);return N.length?N:NH},[d,_a,f]),Xu=g.useRef(Ns);g.useEffect(()=>{Xu.current=Ns},[Ns]);const Po=g.useMemo(()=>{const N=Array.from(new Set(d.filter($=>!$.is_default).map($=>($.transaction_currency??"").toUpperCase()).filter(Boolean)));return Array.from(new Set([...lAe,...N]))},[d]);g.useEffect(()=>{Sa(N=>N==="ALL"||N{var ee;if(la==="ALL")return;const N=(ee=Ns[la])==null?void 0:ee.exampleAmount;if(N==null||N<=0)return;const $=Math.max(cL,Math.round(N*.5)),K=Math.min(uL,Math.round(N*1.5));T(ye=>ye.minAmount===$&&ye.maxAmount===K?ye:{...ye,minAmount:$,maxAmount:K})},[la,Ns]);const Na="ecom",[Cf,Rt]=g.useState(null),ca=g.useRef(null),[Sr,_r]=g.useState(null),[Jt,qr]=g.useState(!1),[re,ke]=g.useState(!1),[_e,ze]=g.useState(y.responseOpen),[Je,Ze]=g.useState(y.debitResponseOpen),[St,Cn]=g.useState(y.volumeResponseOpen),[Qt,Rn]=g.useState(null),[is,Un]=g.useState(null),[Yi,Ca]=g.useState("summary"),[os,Xi]=g.useState(null),[Ju,Vn]=g.useState(null),[Ea,Ji]=g.useState("summary"),[Gy,Zu]=g.useState("Rule Evaluation Decision"),En=g.useDeferredValue(Oe),[Ro,Zi]=g.useState(null),Sc=fT("1h",{refreshInterval:Pt&&!It?500:15e3}),qy=g.useMemo(()=>{if(Ro==null)return[];const N=Ro-vAe;return Sc.events.filter($=>$.bucket_ms>=N)},[Sc.events,Ro]),[_c,Qu]=g.useState([]),Pm=g.useRef(new Set);g.useEffect(()=>{Pm.current=new Set,Qu([])},[Ro]),g.useEffect(()=>{const N=qy.filter($=>!Pm.current.has($.id));N.length!==0&&(N.forEach($=>Pm.current.add($.id)),Qu($=>$.concat(N).sort((K,ee)=>ee.bucket_ms-K.bucket_ms||ee.id.localeCompare(K.id)).slice(0,200)))},[qy]);const[Rm,Ky]=g.useState(new Set),Mm=g.useRef(new Set),Dm=g.useRef(!1),Im=g.useRef([]);g.useEffect(()=>{const N=_c.map(ee=>ee.id);if(!Dm.current){N.forEach(ee=>Mm.current.add(ee)),Dm.current=!0;return}const $=N.filter(ee=>!Mm.current.has(ee));if($.length===0)return;$.forEach(ee=>Mm.current.add(ee)),Ky(ee=>{const ye=new Set(ee);return $.forEach(Ae=>ye.add(Ae)),ye});const K=window.setTimeout(()=>{Ky(ee=>{const ye=new Set(ee);return $.forEach(Ae=>ye.delete(Ae)),ye})},12e3);Im.current.push(K)},[_c]),g.useEffect(()=>()=>{Im.current.forEach(N=>window.clearTimeout(N))},[]);const x2=g.useMemo(()=>{const N=ye=>ye==="gateway_entered_auth_band"||ye==="gateway_exited_auth_band",$=_c.slice(0,50),K=[];let ee=0;for(;ee<$.length;){const ye=$[ee];if(N(ye.event_type)){let Ae=ee;for(;Ae<$.length&&N($[Ae].event_type)&&$[Ae].gateway===ye.gateway;)Ae++;const nt=Ae-ee;nt>1?K.push({kind:"flap",gateway:ye.gateway,crossings:nt,latest:ye,inBand:ye.event_type==="gateway_entered_auth_band"}):K.push({kind:"single",event:ye}),ee=Ae}else if(ye.event_type==="leader_changed"){let Ae=ee;for(;Ae<$.length&&$[Ae].event_type==="leader_changed";)Ae++;const nt=Ae-ee;if(nt>1){const ot=Array.from(new Set($.slice(ee,Ae).map(Qe=>Qe.gateway))).sort();K.push({kind:"leaderFlap",gateways:ot,crossings:nt,latest:ye})}else K.push({kind:"single",event:ye});ee=Ae}else K.push({kind:"single",event:ye}),ee++}return K},[_c]),[Yy,y2]=g.useState(!1),[Xs,v2]=g.useState(100),Ef=[100,500,"all"],Mo=g.useMemo(()=>Object.keys(p).sort(),[p]),ls=g.useMemo(()=>{var N;return Qb(((N=p.payment_method)==null?void 0:N.values)||[])},[p]),Al=g.useMemo(()=>{var N;return YS(((N=p.currency)==null?void 0:N.values)||[])},[p]),Js=g.useMemo(()=>{var N;return YS(((N=p.card_network)==null?void 0:N.values)||[])},[p]),ua=g.useMemo(()=>{var N;return YS(((N=p.authentication_type)==null?void 0:N.values)||[])},[p]),Af=Qt?MAe(Qt):null,lr=ct(Af,Dt,{revalidateOnFocus:!1}),$m=os?DAe(os):null,Nr=ct($m,Dt,{revalidateOnFocus:!1}),{data:Ol}=ct("/gsm/options",Dt,{revalidateOnFocus:!1,dedupingInterval:3e5}),Zs=(Ol==null?void 0:Ol.rules)??[];g.useEffect(()=>{b||m||(P(N=>{var ye;const $={...N};let K=!1;Al.length>0&&!Al.includes($.currency)&&($.currency=Al[0],K=!0),ls.length>0&&!ls.includes($.payment_method_type)&&($.payment_method_type=ls[0],K=!0);const ee=Qb(((ye=p[$.payment_method_type.toLowerCase()])==null?void 0:ye.values)||[]);return ee.length>0&&!ee.includes($.payment_method)&&($.payment_method=ee[0],K=!0),ua.length>0&&!ua.includes($.auth_type)&&($.auth_type=ua[0],K=!0),Js.length>0&&!Js.includes($.card_brand)&&($.card_brand=Js[0],K=!0),K?$:N}),pe(N=>{let $=!1;const K=N.map(ee=>{if(!ee.key||!p[ee.key])return ee;const ye=p[ee.key],Ae=XS(ye.type),nt=ye.values||[],ot=Ae==="enum_variant"?nt.includes(ee.value)?ee.value:nt[0]||"":ee.value;return ee.type!==Ae||ee.value!==ot?($=!0,{...ee,type:Ae,value:ot}):ee});return $?K:N}))},[b,m,p,Al,ls,ua,Js]),g.useEffect(()=>{E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&P(N=>{if(N.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return N;const $={...N};let K=!1;$.currency!==_a&&($.currency=_a,K=!0);const ee=ls.find(ye=>ye==="CARD")||"CARD";if($.payment_method_type!==ee&&($.payment_method_type=ee,K=!0),cAe.includes($.payment_method)||($.payment_method="CREDIT",K=!0),!dAe.includes($.card_brand)){const ye=Js.find(Ae=>Ae==="VISA")||Js.find(Ae=>Ae==="MASTERCARD")||Js[0]||"VISA";$.card_brand=ye,K=!0}return uAe.includes($.card_program)||($.card_program="STANDARD",K=!0),K?$:N})},[E.ranking_algorithm,ls,Js,_a]),g.useEffect(()=>{if(Pt)return;const N=E.ranking_algorithm==="SR_MULTI_OBJECTIVE"?lL(oL,h,Kt):lL(oL,Kt),$=new Set(zt),K=N.filter(ee=>!$.has(ee)).join(", ");P(ee=>ee.eligible_gateways===K?ee:{...ee,eligible_gateways:K})},[E.ranking_algorithm,h,Kt,zt,Pt]),g.useEffect(()=>{if(!Qt&&!os&&!Sr)return;const N=document.body.style.overflow,$=K=>{K.key==="Escape"&&(Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),_r(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",$),()=>{document.body.style.overflow=N,window.removeEventListener("keydown",$)}},[Qt,os,Sr]);function Lm(){const N=tu();ne(N.result),he(N.debitResult),Pe(N.debitPaymentId),Re(N.singleRunPaymentId),st(N.singleRunOutcome),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Tt(N.simulationResults),Zi(null),ze(N.responseOpen),Ze(N.debitResponseOpen),Cn(N.volumeResponseOpen),Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),Zu("Rule Evaluation Decision"),C(null),pn(null),Rt(null),_r(null),qr(!1),G.current=!0,I.current++,sn(!1)}function Do(){C(Date.now())}function Xy(N,$){j(N.activeTab),S(N.scopeKey||$),C(N.resultDataUpdatedAtMs),P(N.form),T(N.simulationConfig),U(N.gatewaySimConfigs),X(N.errorInfo),M(N.debitForm),pe(N.ruleParams),ue(N.fallbackConnectors),Q(N.volumePayments),ne(N.result),he(N.debitResult),Pe(N.debitPaymentId),Re(N.singleRunPaymentId),st(N.singleRunOutcome),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Tt(N.simulationResults),Zi(null),ze(N.responseOpen),Ze(N.debitResponseOpen),Cn(N.volumeResponseOpen),Sa(N.multiObjScenario),or(N.moCurrency),gn(N.extraConnectors),un(N.removedConnectors),pn(N.resumableRun),Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),Zu("Rule Evaluation Decision"),ke(!1),Rt(null),_r(null),qr(!1),G.current=!0,I.current++,sn(!1)}g.useEffect(()=>{k!==s&&Xy(dL(s),s)},[s,k]),g.useEffect(()=>{if(!_)return;const N=k||s,$=EH-(Date.now()-_);if($<=0){Lm(),pA(N);return}const K=window.setTimeout(()=>{Lm(),pA(N)},$);return()=>window.clearTimeout(K)},[s,_,k]),g.useEffect(()=>{if(k!==s||Jt||Pt&&!It)return;const N=It?{total:parseInt(A.totalPayments)||0,nextIndex:za.current}:Gr;TAe(s,{scopeKey:s,resultDataUpdatedAtMs:_,activeTab:w,form:E,simulationConfig:A,gatewaySimConfigs:J,errorInfo:L,debitForm:q,ruleParams:Z,fallbackConnectors:ae,volumePayments:de,result:fe,debitResult:ce,debitPaymentId:be,singleRunPaymentId:Ce,singleRunOutcome:Be,ruleResult:F,volumeDistribution:ie,volumeEvaluationLog:te,volumeProgress:ve,simulationResults:Oe,responseOpen:_e,debitResponseOpen:Je,volumeResponseOpen:St,smartRetryEnabled:gt,multiObjScenario:la,moCurrency:_a,extraConnectors:Kt,removedConnectors:zt,resumableRun:N})},[s,k,Pt,It,Gr,Jt,_,w,E,A,J,L,q,Z,ae,de,fe,ce,be,Ce,Be,F,ie,te,ve,Oe,_e,Je,St,gt,la,_a,Kt,zt]);function b2(){Gr&&Gm({resumeFrom:Gr.nextIndex})}function Of(){pn(null),Lm()}function cs(N,$){M(K=>({...K,[N]:$}))}function Tf(N){X($=>({...$,...N}))}function Qi(N){return Y.current[N]??Jv(N)}function Jy(N){return Qi(N).successRate}function Ua(N){return Qi(N).failureMode}function yn(N,$){U(K=>({...K,[N]:{...Qi(N),...K[N],successRate:$}}))}function Fm(N){return Number.isFinite(N)?Math.round(Math.max(0,Math.min(100,N))):0}function bi(){jr(""),ja(null),xn(!0)}function Cr(){const N=ia.trim().toLowerCase();if(!N){ja("Enter a connector name.");return}if(!/^[a-z0-9_-]+$/.test(N)){ja("Use only letters, numbers, hyphens or underscores.");return}if(pt.includes(N)){ja(`${N.charAt(0).toUpperCase()+N.slice(1)} is already in the comparison.`);return}gn($=>$.includes(N)?$:[...$,N]),un($=>$.filter(K=>K!==N)),xn(!1)}function jn(N){const $=N.trim().toLowerCase();gn(K=>K.filter(ee=>ee!==$)),un(K=>K.includes($)?K:[...K,$])}function Bm(N,$,K){const Ae=K?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return Zs.find(nt=>nt.connector===N&&(nt.subFlow==="Authorize"||nt.flow==="Authorize")&&nt.decision===$&&nt.unifiedMessage!=null&&Ae.has(nt.unifiedMessage)&&!!nt.errorCode&&nt.errorCode.toLowerCase()!=="no error code")}function Tl(N,$){return Zs.find(K=>K.connector===N&&K.errorCode===$&&K.subFlow==="Authorize")??Zs.find(K=>K.connector===N&&K.errorCode===$&&K.flow==="Authorize")??Zs.find(K=>K.connector===N&&K.errorCode===$)}function zm(N){if(!N)return;const $=Qi(N).errorInfo;if(!$.error_code)return;const K=Tl(N,$.error_code);return{connector:N,...(K==null?void 0:K.flow)&&{flow:K.flow},...(K==null?void 0:K.subFlow)&&{subFlow:K.subFlow},errorCode:$.error_code,...$.error_message&&{errorMessage:$.error_message},...$.issuer_error_code&&{issuerErrorCode:$.issuer_error_code},...$.card_network&&{cardNetwork:$.card_network}}}function Um(N,$){if(!N)return;const K=Bm(N,$?"retry":"do_default",Qi(N).penalized);return K!=null&&K.errorCode?{connector:N,...K.flow&&{flow:K.flow},...K.subFlow&&{subFlow:K.subFlow},errorCode:K.errorCode,...K.errorMessage&&{errorMessage:K.errorMessage}}:zm(N)}function ed(N,$=L){if(!N||!$.error_code)return;const K=Tl(N,$.error_code);return{connector:N,...(K==null?void 0:K.flow)&&{flow:K.flow},...(K==null?void 0:K.subFlow)&&{subFlow:K.subFlow},errorCode:$.error_code,...$.error_message&&{errorMessage:$.error_message},...$.issuer_error_code&&{issuerErrorCode:$.issuer_error_code},...$.card_network&&{cardNetwork:$.card_network}}}function Vm(N,$){Rt(null),_r($Ae(N,$))}function Nc(N,$,K="Request failed"){const ee=N instanceof Error?N.message:K;if(IAe(ee)){Vm($,ee);return}Rt(ee)}function w2(){const N=q.co_badged_networks.split(",").map($=>$.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:q.merchant_category_code.trim(),acquirer_country:q.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:N,issuer_country:q.issuer_country.trim().toUpperCase(),is_regulated:q.is_regulated,regulated_name:q.is_regulated&&q.regulated_name.trim()?q.regulated_name.trim():null,card_type:PH(q.card_type)}})}function Zy(){var ye;if(Mo.length===0)return;const N=Mo[0],$=p[N],K=XS($==null?void 0:$.type),ee=K==="enum_variant"&&((ye=$==null?void 0:$.values)==null?void 0:ye[0])||"";pe([...Z,{key:N,type:K,value:ee,metadataKey:""}])}function Qy(N){pe(Z.filter(($,K)=>K!==N))}function td(N,$,K){pe(Z.map((ee,ye)=>ye===N?{...ee,[$]:K}:ee))}function ev(N,$){pe(Z.map((K,ee)=>ee===N?{...K,metadataKey:$}:K))}function tv(N,$){var Ae;const K=p[$],ee=XS(K==null?void 0:K.type),ye=ee==="enum_variant"&&((Ae=K==null?void 0:K.values)==null?void 0:Ae[0])||"";pe(Z.map((nt,ot)=>ot===N?{...nt,key:$,type:ee,value:ye,metadataKey:""}:nt))}function nv(){ue([...ae,{gateway_name:"",gateway_id:""}])}function rv(N){ue(ae.filter(($,K)=>K!==N))}function Wm(N,$,K){ue(ae.map((ee,ye)=>ye===N?{...ee,[$]:K}:ee))}async function Hm(){var K;if(!a)return Rt("Sign in with a merchant-linked account to continue");if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");qr(!0),Rt(null),_r(null),Re(null);const N=E.eligible_gateways.split(",").map(ee=>ee.trim()).filter(Boolean),$=`explorer_${Date.now()}`;try{const ee=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:$,amount:parseFloat(E.amount)||1e3,currency:E.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,cardSwitchProvider:E.card_brand,cardType:E.payment_method,...E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:E.card_program}},eligibleGatewayList:N,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:W}),ye=await Fe("/update-gateway-score",{merchantId:a,gateway:ee.decided_gateway,gatewayReferenceId:null,status:Be,paymentId:$,enforceDynamicRoutingFailure:null,...Be==="FAILURE"&&{errorInfo:ed(ee.decided_gateway)}});if(gt&&l&&Be==="FAILURE"&&((K=ye.gsm_info)==null?void 0:K.decision)==="retry"&&ee.fallback_gateways.length>0){const Ae=ee.fallback_gateways[0];await Fe("/update-gateway-score",{merchantId:a,gateway:Ae,gatewayReferenceId:null,status:"CHARGED",paymentId:$,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),ne({...ee,decided_gateway:Ae}),Re($)}else ne(ee),Re($);Do()}catch(ee){Nc(ee,"single")}finally{qr(!1)}}async function av(){if(!a)return Rt("Sign in with a merchant-linked account to continue");qr(!0),Rt(null),_r(null);try{await c.setDebitRoutingEnabled(!0)}catch(N){Nc(N,"debit","Failed to enable debit routing")}finally{qr(!1)}}async function sv(){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Vm("debit","Debit routing is disabled.");const N=q.eligible_gateways.split(",").map(K=>K.trim()).filter(Boolean);if(N.length===0)return Rt("Add at least one eligible gateway");qr(!0),Rt(null),_r(null),he(null);const $=`debit_${Date.now()}`;try{const K=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:$,amount:parseFloat(q.amount)||1e3,currency:q.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:q.auth_type,metadata:w2()},eligibleGatewayList:N,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});he(K),Pe($),Do()}catch(K){Nc(K,"debit")}finally{qr(!1)}}async function iv(){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(!Pt){ge(!0),Rt(null);try{await Fe("/gateway-score/reset",{merchantId:a}),Tt([]),Mt({}),Sc.refresh(),Rt(null)}catch(N){Rt(N instanceof Error?N.message:"Failed to flush gateway scores")}finally{ge(!1)}}}async function Gm(N={}){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");const $=parseInt(A.totalPayments)||0;if($<=0)return Rt("Total Payments must be greater than 0");const K=N.resumeFrom&&N.resumeFrom>0&&N.resumeFrom<$?N.resumeFrom:0,ee=K>0;sn(!0),xr(!1),er.current=!1,pn(null),Zi(Date.now()),Rt(null),_r(null),ee||Tt([]),G.current=!1;const ye=++I.current,Ae=()=>I.current===ye,nt=E.eligible_gateways.split(",").map(ur=>ur.trim()).filter(Boolean),ot=ee?[...Bt.current]:[],Qe=3;let rt=0,In=0,vr=0;const nr={},$n=ur=>{const ti=Math.max(0,Math.min(1,Jy(ur)/100));return nr[ur]===void 0&&(nr[ur]=Math.random()),nr[ur]+=ti,nr[ur]>=1?(nr[ur]-=1,!0):!1},Fr=E.ranking_algorithm==="SR_MULTI_OBJECTIVE",da=Math.max(1,Math.min(yg,Math.round(A.tps)||1)),$o=async ur=>{var oR,lR,cR,uR;const ti=`sim_${Date.now()}_${ur}`,Lo=Yu.current,Wt=Xu.current,kt=Fr?Lo==="ALL"?Wt[ur%Wt.length]:Wt[Lo]??Wt[0]:null,jt=Fr?"CARD":E.payment_method_type,dr=kt?kt.paymentMethod:E.payment_method,fa=kt?kt.cardSwitchProvider:E.card_brand,eo=kt?kt.cardProgram:E.card_program,ha=kt?kt.cardIssuerCountry:void 0,to=Math.min(D.current.min,D.current.max),ov=Math.max(D.current.min,D.current.max),lv=Fr?Math.floor(to+Math.random()*(ov-to+1)):parseFloat(E.amount)||1e3,Mf=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:ti,amount:lv,currency:R.current.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:jt,paymentMethod:dr,authType:E.auth_type,cardBrand:fa,cardSwitchProvider:fa,cardType:dr,cardProgram:eo,...ha&&{cardIssuerCountry:ha},channel:Na},eligibleGatewayList:nt,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:W}),Ym=Mf.decided_gateway,JX=$n(Ym),ZX=Ua(Ym),cv=JX?"CHARGED":ZX==="timeout"?"PENDING_VBV":"FAILURE",iR=zn.current&&cv==="FAILURE"&&Mf.fallback_gateways.length>0&&Math.random()<_Ae;await Fe("/update-gateway-score",{merchantId:a,gateway:Ym,gatewayReferenceId:null,status:cv,paymentId:ti,enforceDynamicRoutingFailure:null,...cv==="FAILURE"&&{errorInfo:Um(Ym,iR)}});let Df,uv;if(iR){Df=Mf.fallback_gateways[0];const Xm=$n(Df),QX=Ua(Df);uv=Xm?"CHARGED":QX==="timeout"?"PENDING_VBV":"FAILURE",await Fe("/update-gateway-score",{merchantId:a,gateway:Df,gatewayReferenceId:null,status:uv,paymentId:ti,enforceDynamicRoutingFailure:null,isSmartRetry:!0,...uv==="FAILURE"&&{errorInfo:Um(Df,!1)}})}const Ar=Mf.multi_objective_info??null;return{paymentId:ti,decidedGateway:Ym,status:cv,timestamp:new Date().toISOString(),routingApproach:Mf.routing_approach??null,gatewayPriorityMap:Mf.gateway_priority_map??null,retryGateway:Df,retryStatus:uv,costSavedBps:(Ar==null?void 0:Ar.costSavedBps)??null,costWon:(Ar==null?void 0:Ar.outcome)==="COST_WON",authWon:(Ar==null?void 0:Ar.outcome)==="AUTH_WON",headAuthRate:((lR=(oR=Ar==null?void 0:Ar.ranked)==null?void 0:oR.find(Xm=>Xm.isSrHead))==null?void 0:lR.authRate)??null,chosenAuthRate:((uR=(cR=Ar==null?void 0:Ar.ranked)==null?void 0:cR.find(Xm=>Xm.isChosen))==null?void 0:uR.authRate)??null,margin:(Ar==null?void 0:Ar.margin)??null,evGapTop2:(Ar==null?void 0:Ar.evGapTop2)??null,amount:lv,currency:R.current.currency,cardNetwork:fa,cardProgram:eo,cardIssuerRegion:ha,cardScenario:kt==null?void 0:kt.label}};try{let ur=K,ti=null;const Lo=kt=>{if(!Ae())return;const jt=Date.now();(kt||jt-In>150)&&(Tt([...ot]),Do(),In=jt),(kt||jt-vr>250)&&(Sc.refresh(),vr=jt)},Wt=async()=>{for(;;){if(G.current||!Ae())return;if(er.current){for(za.current=ot.length,Lo(!0);er.current&&!G.current&&Ae();)await new Promise(jt=>setTimeout(jt,120));continue}const kt=ur;if(kt>=$)return;ur++;try{const jt=await $o(kt);ot.push(jt),rt=0}catch(jt){if(ti=jt,rt++,rt>=Qe){G.current=!0;return}await new Promise(dr=>setTimeout(dr,300))}if(!Ae())return;za.current=ot.length,Lo(!1)}};if(await Promise.all(Array.from({length:da},()=>Wt())),rt>=Qe&&Ae()){Nc(ti,"batch",`Simulation stopped after ${Qe} consecutive errors. Check that the server is running.`);return}}finally{Ae()&&(Tt([...ot]),sn(!1),xr(!1),er.current=!1),Sc.refresh()}}function O(){er.current=!0,xr(!0)}function V(){er.current=!1,xr(!1)}async function le(){if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");qr(!0),Rt(null),_r(null),se(null),Se([]),me([]),Ee(0);const N=`rule_decision_${Date.now()}`;try{const $={};Z.forEach(ee=>{ee.key&&(ee.type==="metadata_variant"?$[ee.key]={type:ee.type,value:{key:ee.metadataKey||ee.key,value:ee.value}}:ee.type==="number"?$[ee.key]={type:ee.type,value:parseFloat(ee.value)||0}:ee.value!==""&&($[ee.key]={type:ee.type,value:ee.value}))});const K=await Fe("/routing/evaluate",{created_by:a||"test_user",payment_id:N,fallback_output:ae.filter(ee=>ee.gateway_name),parameters:$});if(se(K),Do(),K.output.type==="volume_split"&&K.output.splits){const ee=parseInt(de)||100,ye=K.output.splits.map(Ae=>({name:Ae.connector.gateway_name,count:Math.round(Ae.split/100*ee),percentage:Ae.split}));Se(ye)}}catch($){Nc($,"rule")}finally{qr(!1)}}async function xe(){if(!a)return Rt("Sign in with a merchant-linked account to continue");qr(!0),Rt(null),_r(null),se(null),Se([]),me([]),Ee(0);const N=parseInt(de)||0;if(N<=0)return qr(!1),Rt("Total Payments must be greater than 0");try{const K=`volume_decision_${Date.now()}`,ee=[],ye=new Map;let Ae=null;const nt=ot=>Array.from(ye.entries()).map(([Qe,rt])=>({name:Qe,count:rt,percentage:Number((rt/Math.max(1,ot)*100).toFixed(1))})).sort((Qe,rt)=>rt.count-Qe.count);for(let ot=0;ot{const nr=ot+vr,$n=`${K}_${nr}`,Fr=await Fe("/routing/evaluate",{created_by:a,payment_id:$n,fallback_output:ae.filter(da=>da.gateway_name),parameters:{}});return{paymentId:$n,response:Fr}}));for(const{paymentId:In,response:vr}of rt){if(vr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const nr=PAe(vr);if(!nr)throw new Error("Volume split evaluation did not return a connector.");Ae||(Ae=vr,se(vr)),ye.set(nr,(ye.get(nr)||0)+1),ee.push({paymentId:In,connector:nr})}Ee(ee.length),me([...ee]),Se(nt(ee.length)),Do()}}catch($){Nc($,"volume")}finally{qr(!1)}}const Ve=fe!=null&&fe.gateway_priority_map?Object.entries(fe.gateway_priority_map).sort(([,N],[,$])=>$-N).map(([N,$])=>({name:N,score:Math.round($*1e4)/100})):[],dt=parseInt(A.totalPayments)||0,Le=Oe.length,bt=Pt||Le>0,pt=g.useMemo(()=>E.eligible_gateways.split(",").map(N=>N.trim().toLowerCase()).filter(Boolean),[E.eligible_gateways]),Zt=g.useMemo(()=>{const N=new Set(h),$=new Set(pt);return[...new Set([...d.map(ee=>ee.psp.trim().toLowerCase()).filter(Boolean),...N])].filter(ee=>!$.has(ee)).sort().map(ee=>({name:ee,hasCostModel:N.has(ee)}))},[d,h,pt]),Ut=g.useMemo(()=>{const N=new Set(pt.map(K=>iL[K.toLowerCase()]).filter(Boolean)),$=K=>{for(let ee=0;ee{const ye=iL[K.toLowerCase()];if(ye)return[K,ye];const Ae=$(ee);return N.add(Ae),[K,Ae]}))},[pt]);g.useEffect(()=>{Zs.length===0||pt.length===0||U(N=>{var ee,ye;let $=!1;const K={...N};for(const Ae of pt){if((ye=(ee=N[Ae])==null?void 0:ee.errorInfo)!=null&&ye.error_code)continue;const nt=N[Ae]??Jv(Ae),ot=Bm(Ae,nt.gsmDecision,nt.penalized);ot&&(K[Ae]={...nt,errorInfo:{error_code:ot.errorCode,error_message:ot.errorMessage,issuer_error_code:"",card_network:""}},$=!0)}return $?K:N})},[Zs,pt]);const tr=g.useMemo(()=>En.reduce((N,$)=>(N[$.decidedGateway]||(N[$.decidedGateway]={total:0,success:0,failure:0}),N[$.decidedGateway].total++,$.status==="CHARGED"?N[$.decidedGateway].success++:N[$.decidedGateway].failure++,N),{}),[En]),Vt=g.useMemo(()=>{var Wt;const N=En,$={series:{},evSeries:[],decidedSeries:[],paymentNums:[],yMin:0,yMax:100};if(N.length<2)return $;const K=Xs==="all"?0:Math.max(0,N.length-Xs),ee=N.length-K,ye=Xs==="all"?Math.max(1,ee):Xs,Ae=Math.max(1,Math.ceil(ee/ye)),nt=Object.keys(tr),ot={};nt.forEach(kt=>{ot[kt]={}});const Qe=kt=>{const jt=ot[kt];let dr=0,fa=0;for(const eo in jt)dr+=jt[eo],fa++;return fa>0?dr/fa:null},rt={},In=()=>{let kt=0,jt=0;for(const dr in rt)kt+=rt[dr],jt++;return jt>0?kt/jt:null},vr={};nt.forEach(kt=>{vr[kt]=[]});const nr=[],$n=[];let Fr=null;const da=[];for(let kt=0;kt0&&(jt<$o&&($o=jt),jt>ur&&(ur=jt));$o>ur&&($o=0,ur=100);const ti=Math.max(0,$o-2),Lo=Math.min(100,ur+2);return{series:vr,evSeries:nr,decidedSeries:$n,paymentNums:da,yMin:ti,yMax:Lo}},[En,tr,Xs]),Wn=g.useMemo(()=>{const N=En,$=Object.keys(tr),K={data:[],gateways:$,windowSize:1};if(N.length<2)return K;const ee=50,ye=Xs==="all"?0:Math.max(0,N.length-Xs),Ae=N.length-ye,nt=Xs==="all"?Math.max(1,Ae):Xs,ot=Math.max(1,Math.ceil(Ae/nt)),Qe=[],rt=[];for(let In=0;Inee&&Qe.shift(),InN!=null&&N.includes("HEDGING")?"Hedging":N==="SR_SELECTION_MULTI_OBJECTIVE"?"Cost Based":N==="SR_SELECTION_V3_ROUTING"?"Auth Based":N??"—",Hn=g.useMemo(()=>{const N=new Set,$=new Set,K=new Set,ee=new Set,ye=new Set,Ae=new Set,nt=new Set;for(const Qe of En)N.add(Qe.decidedGateway),Qe.cardNetwork&&$.add(Qe.cardNetwork),Qe.cardProgram&&K.add(Qe.cardProgram),ee.add(cr(Qe.routingApproach)),Qe.status&&ye.add(Qe.status),Qe.retryGateway&&Ae.add(Qe.retryGateway),Qe.retryStatus&&nt.add(Qe.retryStatus);const ot=Qe=>Array.from(Qe).sort();return{gateways:ot(N),networks:ot($),programs:ot(K),routings:ot(ee),outcomes:ot(ye),retryGateways:ot(Ae),retryOutcomes:ot(nt)}},[En]),Gn=g.useMemo(()=>{const N=mt,$=Object.values(N).some(Boolean),K=En.map((ye,Ae)=>({res:ye,idx:Ae}));if(!$)return K;const ee=ye=>{var nt;const Ae=(nt=ye.gatewayPriorityMap)==null?void 0:nt[ye.decidedGateway];return typeof Ae=="number"?(Ae*100).toFixed(1):""};return K.filter(({res:ye})=>{if(N.gateway&&ye.decidedGateway!==N.gateway||N.network&&(ye.cardNetwork??"")!==N.network||N.program&&(ye.cardProgram??"")!==N.program||N.routing&&cr(ye.routingApproach)!==N.routing||N.outcome&&ye.status!==N.outcome||N.retryGateway&&(ye.retryGateway??"")!==N.retryGateway||N.retryOutcome&&(ye.retryStatus??"")!==N.retryOutcome||N.amount&&!Qf(ye.amount,ye.currency).toLowerCase().includes(N.amount.toLowerCase())||N.sr&&!ee(ye).includes(N.sr)||N.evGap&&!(ye.evGapTop2!=null?(ye.evGapTop2*100).toFixed(2):"").includes(N.evGap))return!1;if(N.cost){const Ae=!!ye.costWon&&ye.costSavedBps!=null&&ye.costSavedBps>0&&ye.status==="CHARGED";if(N.cost==="yes"&&!Ae||N.cost==="no"&&Ae)return!1}return!0})},[En,mt]),yr=g.useMemo(()=>{var nt;let N=0,$=0,K=0,ee=0;for(const{res:ot}of Gn)N+=ot.amount,ot.costWon&&ot.costSavedBps!=null&&ot.costSavedBps>0&&ot.status==="CHARGED"&&($+=ot.costSavedBps/1e4*ot.amount),ot.evGapTop2!=null&&(K+=ot.evGapTop2*100,ee+=1);const ye=((nt=Gn[0])==null?void 0:nt.res.currency)||E.currency||"USD",Ae=ee>0?K/ee:null;return{amount:N,savings:$,currency:ye,count:Gn.length,evGapPctAvg:Ae}},[Gn,E.currency]),Cc=Object.values(mt).some(Boolean),Pf=g.useMemo(()=>En.filter(N=>{var $;return($=N.routingApproach)==null?void 0:$.includes("HEDGING")}).length,[En]),Ec=g.useMemo(()=>{let N=0,$="";for(const K of En)K.costWon&&K.costSavedBps!=null&&K.costSavedBps>0&&K.status==="CHARGED"&&(N+=K.costSavedBps/1e4*K.amount,$=K.currency);return{value:N,currency:$}},[En]),Ac=g.useMemo(()=>{let N=0,$=0,K=0,ee=0,ye=0,Ae=0,nt="";for(const rt of En)if(rt.currency&&(nt=rt.currency),rt.costWon){if(ee++,rt.status==="CHARGED"&&(K++,rt.costSavedBps!=null&&rt.costSavedBps>0&&(N+=rt.costSavedBps/1e4*rt.amount)),rt.headAuthRate!=null&&rt.chosenAuthRate!=null&&rt.margin!=null){const In=Math.max(0,rt.headAuthRate-rt.chosenAuthRate);$+=In*rt.amount*rt.margin}}else rt.authWon&&(Ae++,rt.status==="CHARGED"&&ye++);const ot=ee>0?K/ee:null,Qe=Ae>0?ye/Ae:null;return{currency:nt,feeSaved:N,authValueRisked:$,netProfit:N-$,overrideSr:ot,authKeptSr:Qe,overrideTotal:ee,authKeptTotal:Ae}},[En]),wi=g.useMemo(()=>{let N=0,$=0,K=0,ee=0,ye=0,Ae=0,nt=0,ot="";for(const rt of En)Ae++,nt+=rt.amount,rt.currency&&(ot=rt.currency),rt.costWon?(N++,rt.status==="CHARGED"?$++:K++):rt.status==="CHARGED"?ee++:ye++;return{srBased:Ae-N,srSuccess:ee,srFailure:ye,costWon:N,costSuccess:$,costFailure:K,total:Ae,tpv:nt,currency:ot}},[En]),Aa=g.useMemo(()=>{let N=0,$=0,K=0;for(const ee of En){N++;const ye=ee.status==="CHARGED";ye&&$++,(ye||ee.retryStatus==="CHARGED")&&K++}return{total:N,firstAttemptSuccess:$,finalSuccess:K,faar:N>0?$/N:null,nar:N>0?K/N:null}},[En]),Pl=((YP=ce==null?void 0:ce.debit_routing_output)==null?void 0:YP.co_badged_card_networks_info)||[],wt=g.useMemo(()=>new Map(ie.map((N,$)=>[N.name,$])),[ie]),dn=g.useMemo(()=>Object.entries(tr).sort((N,$)=>$[1].total-N[1].total),[tr]),us=g.useMemo(()=>[...ie].sort((N,$)=>$.count-N.count),[ie]),Er=us[0],Qs=te.length,qm=Number.parseInt(de,10)||0,zP=qm>0?Math.min(100,Math.round(ve/qm*100)):0,ei=g.useMemo(()=>{var $;const N=(($=lr.data)==null?void 0:$.results)||[];return N.find(K=>K.payment_id===Qt)||N[0]||null},[(XP=lr.data)==null?void 0:XP.results,Qt]),Mn=g.useMemo(()=>{var $;const N=(($=lr.data)==null?void 0:$.timeline)||[];return N.find(K=>K.id===is)||N[0]||null},[(JP=lr.data)==null?void 0:JP.timeline,is]);g.useEffect(()=>{var $,K;if(Mn!=null&&Mn.id){Un(Mn.id);return}const N=(K=($=lr.data)==null?void 0:$.timeline)==null?void 0:K[0];N!=null&&N.id&&Un(N.id)},[(ZP=lr.data)==null?void 0:ZP.timeline,Mn==null?void 0:Mn.id]);const UP=g.useMemo(()=>{var $;const N=[];for(const K of(($=lr.data)==null?void 0:$.timeline)||[]){const ee=mA(K),ye=N[N.length-1];!ye||ye.phase!==ee?N.push({phase:ee,events:[K]}):ye.events.push(K)}return N},[(QP=lr.data)==null?void 0:QP.timeline]),Io=g.useMemo(()=>mL(Mn),[Mn]),Oa=g.useMemo(()=>{var $;const N=(($=Nr.data)==null?void 0:$.results)||[];return N.find(K=>K.payment_id===os)||N[0]||null},[(eR=Nr.data)==null?void 0:eR.results,os]),Dn=g.useMemo(()=>{var $;const N=(($=Nr.data)==null?void 0:$.timeline)||[];return N.find(K=>K.id===Ju)||N[0]||null},[(tR=Nr.data)==null?void 0:tR.timeline,Ju]);g.useEffect(()=>{var $,K;if(Dn!=null&&Dn.id){Vn(Dn.id);return}const N=(K=($=Nr.data)==null?void 0:$.timeline)==null?void 0:K[0];N!=null&&N.id&&Vn(N.id)},[(nR=Nr.data)==null?void 0:nR.timeline,Dn==null?void 0:Dn.id]);const VP=g.useMemo(()=>{var $;const N=[];for(const K of(($=Nr.data)==null?void 0:$.timeline)||[]){const ee=mA(K),ye=N[N.length-1];!ye||ye.phase!==ee?N.push({phase:ee,events:[K]}):ye.events.push(K)}return N},[(rR=Nr.data)==null?void 0:rR.timeline]),Rf=g.useMemo(()=>mL(Dn),[Dn]);g.useEffect(()=>{const N=ca.current;N&&(N.scrollTop=N.scrollHeight)},[En.length]);function k2(N){Xi(null),Vn(null),Ji("summary"),Rn(N),Un(null),Ca("summary")}function WP(){Rn(null),Un(null),Ca("summary")}function Km(N,$){Rn(null),Un(null),Ca("summary"),Zu($),Xi(N),Vn(null),Ji("summary")}function HP(){Xi(null),Vn(null),Ji("summary")}function GP(N){var ee;const $={...N};Al.length>0&&!Al.includes($.currency)&&($.currency=Al[0]),ls.length>0&&!ls.includes($.payment_method_type)&&($.payment_method_type=ls[0]);const K=Qb(((ee=p[$.payment_method_type.toLowerCase()])==null?void 0:ee.values)||[]);return K.length>0&&!K.includes($.payment_method)&&($.payment_method=K[0]),ua.length>0&&!ua.includes($.auth_type)&&($.auth_type=ua[0]),Js.length>0&&!Js.includes($.card_brand)&&($.card_brand=Js[0]),$}function qP(){const N=tu();P({...GP(N.form),currency:fA}),or(fA),T(N.simulationConfig),Sa(N.multiObjScenario),gn(N.extraConnectors),un(N.removedConnectors),Lr(N.smartRetryEnabled),U($=>Object.fromEntries(Object.entries($).map(([K,ee])=>[K,{...hA,successRate:ee.successRate}]))),Rt(null),_r(null)}function KP(){const N=tu();Tt(N.simulationResults),pn(N.resumableRun),G.current=!0,I.current++,Zi(null),sn(!1),xr(!1),er.current=!1,Mt({}),Rt(null)}function YX(){const N=tu();w==="single"?(P(GP(N.form)),ne(N.result),Re(N.singleRunPaymentId),st(N.singleRunOutcome),ze(N.responseOpen)):w==="batch"?(qP(),KP()):w==="rule"?z($=>$+1):w==="volume"?(Q(N.volumePayments),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Cn(N.volumeResponseOpen),Xi(null),Vn(null),Ji("summary"),Zu("Volume Split Decision")):w==="debit"&&(M(N.debitForm),he(N.debitResult),Pe(N.debitPaymentId),Ze(N.debitResponseOpen),Rn(null),Un(null),Ca("summary")),Rt(null),_r(null),qr(!1),ke(!1),Rn(null),Un(null),Ca("summary")}const XX=w==="rule"?"Reset Rule Based Routing":w==="volume"?"Reset Volume Based Routing":w==="debit"?"Reset Debit Routing":"Reset";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsx("div",{children:i.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:i.jsx(Ba,{title:"Decision Simulator"})})}),i.jsx("button",{type:"button",onClick:()=>ft(!0),disabled:Pt||!a||mn,title:"Hard refresh — flush this merchant's SR scores from Redis so the next run starts fresh. Use sparingly.","aria-label":"Hard refresh gateway scores",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-600 disabled:pointer-events-none disabled:opacity-40 dark:text-slate-400 dark:hover:bg-white/5 dark:hover:text-slate-300",children:i.jsx(Es,{size:14,className:mn?"animate-spin":""})})]}),i.jsx(Hs,{open:ut,variant:"danger",title:"Hard refresh SR scores?",description:"This flushes all of this merchant's accumulated SR scores from Redis. The next run starts from fresh scores — there's no undo.",confirmLabel:"Flush scores",cancelLabel:"Cancel",onConfirm:()=>{ft(!1),iv()},onCancel:()=>ft(!1)}),as&&i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>xn(!1)}),i.jsxs("div",{className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Add a processor"}),i.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:Zt.length>0?"Pick a processor we can already price, or type any other connector name. It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs.":"Enter a connector name (e.g. braintree, worldpay). It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs."}),Zt.length>0&&i.jsxs("div",{className:"mt-4",children:[i.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-500 leading-4",children:"Known processors"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:Zt.map(({name:N,hasCostModel:$})=>{const K=ia.trim().toLowerCase()===N;return i.jsxs("button",{type:"button",onClick:()=>{jr(N),ja(null)},onDoubleClick:Cr,"aria-pressed":K,title:$?`${N} — has a fitted cost model from ingested reports`:`${N} — priced from your contract seed rates`,className:`rounded-full border px-2.5 py-1 text-xs font-medium transition-colors ${K?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#2a303a] dark:text-[#9ca7ba] dark:hover:bg-white/5"}`,children:[N,$&&i.jsx("span",{className:"ml-1.5 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle","aria-hidden":!0})]},N)})}),i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:[i.jsx("span",{className:"mr-1 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle"}),"has a fitted cost model; the rest use contract seed rates."]})]}),i.jsx("input",{autoFocus:!0,type:"text",value:ia,placeholder:Zt.length>0?"Or type a connector name":"Connector name",onChange:N=>{jr(N.target.value.toLowerCase()),oa&&ja(null)},onKeyDown:N=>{N.key==="Enter"?Cr():N.key==="Escape"&&xn(!1)},className:"mt-4 w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),oa&&i.jsx("p",{className:"mt-2 text-xs text-red-600",children:oa}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>xn(!1),children:"Cancel"}),i.jsx(we,{variant:"primary",size:"sm",onClick:Cr,children:"Add processor"})]})]})]}),w==="rule"&&i.jsx(ZW,{merchantId:a,routingKeysConfig:p,routingConfigUnavailable:b,routingKeysLoading:m,resetSignal:B,onRunComplete:Do,onOpenTrace:Km}),w==="batch"&&i.jsxs("div",{className:"flex flex-wrap items-start gap-x-6 gap-y-3 rounded-2xl border border-slate-200 bg-white px-5 py-3 dark:border-[#222226] dark:bg-[#0b0b10]",children:[i.jsx("div",{className:"-mb-1 -mr-2 -mt-2 flex w-full justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:qP,title:"Restore the controls in this panel to their defaults (per-processor success rates are kept). Leaves the results below untouched.",children:[i.jsx(Es,{size:14}),"Reset inputs"]})}),pt.map(N=>{const $=`${N.charAt(0).toUpperCase()+N.slice(1)} success rate`,K=Ut[N]??ni[0],ee=(J[N]??Jv(N)).successRate;return i.jsxs("div",{className:"flex w-[190px] flex-col gap-1.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:K}}),i.jsx(vn,{children:$}),pt.length>1&&!Pt&&i.jsx("button",{type:"button",onClick:()=>jn(N),className:"ml-auto text-slate-500 transition-colors hover:text-red-600",title:`Remove ${N} from the comparison`,"aria-label":`Remove ${N}`,children:i.jsx(Vr,{size:13})})]}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:"number",min:0,max:100,step:1,value:ee,onChange:ye=>yn(N,ye.target.value===""?0:Fm(parseFloat(ye.target.value))),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 pr-7 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),i.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-slate-500",children:"%"})]}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:ee,onChange:ye=>yn(N,Fm(Number(ye.target.value))),className:`mt-1 h-1.5 w-full cursor-pointer appearance-none rounded-full outline-none - [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:bg-[color:var(--thumb)] [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-webkit-slider-thumb]:active:scale-95 - [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-white [&::-moz-range-thumb]:border-solid [&::-moz-range-thumb]:bg-[color:var(--thumb)] [&::-moz-range-thumb]:shadow`,style:{"--thumb":K,background:`linear-gradient(to right, ${K} ${ee}%, rgba(148,163,184,0.45) ${ee}%)`}})]},N)}),El&&i.jsxs("div",{className:"flex w-[100px] flex-col gap-1.5",children:[i.jsx(vn,{children:"Processor"}),i.jsxs("button",{type:"button",onClick:bi,title:"Add another processor to the comparison",className:"flex items-center justify-center gap-1.5 rounded-lg border border-dashed border-slate-300 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-500 transition-colors hover:border-brand-400 hover:text-brand-600 dark:border-[#33333a] dark:bg-[#0d0d13] dark:text-[#8a93a6] dark:hover:border-brand-500 dark:hover:text-brand-400",children:[i.jsx(Qn,{size:14})," Add"]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[175px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:"Pin every multi-objective transaction to one card scenario so the SR Trend shows a single clean per-segment bucket. 'All scenarios' rotates through this currency's scenarios (interleaves dimensions on one chart). Choosing a currency with configured contract rates (e.g. AED) lists those scenarios here. Editable while paused — the rest of the run continues in the new segment on resume.",children:"Card scenario"})}),i.jsxs("select",{value:String(la),disabled:Pt&&!It,onChange:N=>Sa(N.target.value==="ALL"?"ALL":Number(N.target.value)),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:[i.jsx("option",{value:"ALL",children:"All scenarios (rotate)"}),Ns.map((N,$)=>i.jsx("option",{value:$,children:N.label},N.label))]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[130px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:"Settlement currency sent on each transaction. USD exercises the seed-cost fallback; EUR/AUD (and others) let a transaction match the in-house fitted cost models, which are keyed by currency.",children:"Currency"})}),i.jsx("select",{value:_a,disabled:Pt&&!It,onChange:N=>or(N.target.value),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:Po.map(N=>i.jsx("option",{value:N,children:N},N))})]}),El&&(()=>{const N=Math.max(1,Math.min(yg,A.tps||1));return i.jsxs("div",{className:"flex w-[62px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:`Transactions kept in flight at once (1–${yg}). Higher = more decide+feedback round-trips per second, so gateway scores move faster. Applies on the next run.`,children:"TPS"})}),i.jsx("input",{type:"number",min:1,max:yg,step:1,value:N,disabled:Pt,onChange:$=>{const K=Math.round(Number($.target.value)),ee=Number.isFinite(K)?Math.max(1,Math.min(yg,K)):1;T(ye=>({...ye,tps:ee}))},className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"})]})})(),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx("span",{className:"block h-4","aria-hidden":!0}),i.jsxs("label",{className:"flex h-[34px] items-center gap-2 cursor-pointer select-none",title:"When on, ~50% of failed transactions are treated as soft declines (GSM retry) and retried on the next eligible processor (alternate PSP).",children:[i.jsx("input",{type:"checkbox",checked:gt,onChange:N=>Lr(N.target.checked),className:"cursor-pointer rounded border-slate-300 dark:border-slate-600"}),i.jsx("span",{className:"text-xs font-medium text-slate-600 dark:text-slate-300",children:"Retry Enabled"})]})]}),(()=>{const N=cL,$=uL,K="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold tabular-nums text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none";return i.jsxs("div",{className:"flex w-[220px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsxs("span",{title:"Per-transaction amount range (multi-objective sim). Each payment's amount is drawn uniformly from this range. Smaller amounts make the flat per-txn fee a bigger share of cost. Applies on the next run.",children:["Amount range (",_a,")"]})}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(yL,{ariaLabel:"Minimum amount",value:A.minAmount,min:N,max:$,onCommit:ee=>T(ye=>({...ye,minAmount:ee})),onSettle:()=>T(ee=>({...ee,minAmount:Math.min(ee.minAmount,ee.maxAmount)})),className:K}),i.jsx("span",{className:"shrink-0 text-xs text-slate-500",children:"–"}),i.jsx(yL,{ariaLabel:"Maximum amount",value:A.maxAmount,min:N,max:$,onCommit:ee=>T(ye=>({...ye,maxAmount:ee})),onSettle:()=>T(ee=>({...ee,maxAmount:Math.max(ee.minAmount,ee.maxAmount)})),className:K})]})]})})(),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 self-end lg:ml-auto",children:[i.jsxs(we,{size:"sm",variant:"ghost",onClick:()=>ss(N=>!N),title:"Show or hide the advanced controls (TPS, Add processor)",children:[i.jsx(ec,{size:14}),El?"Less":"More"]}),Pt?i.jsxs(i.Fragment,{children:[It?i.jsxs(we,{onClick:V,variant:"primary",children:[i.jsx(Os,{size:14,className:"fill-current"})," Resume"]}):i.jsxs(we,{onClick:O,variant:"secondary",children:[i.jsx(GNe,{size:14})," Pause"]}),i.jsxs(we,{onClick:()=>{G.current=!0},variant:"secondary",children:[i.jsx(Vr,{size:14})," Stop"]})]}):Gr?i.jsxs(i.Fragment,{children:[i.jsxs(we,{onClick:b2,disabled:!a||b,variant:"primary",title:`Continue the paused run from transaction ${Gr.nextIndex+1} of ${Gr.total}`,children:[i.jsx(Os,{size:14,className:"fill-current"})," Resume run"]}),i.jsxs(we,{onClick:Of,variant:"secondary",children:[i.jsx(Es,{size:14})," Start over"]})]}):i.jsxs(we,{onClick:()=>Gm(),disabled:!a||b,variant:"primary",children:[i.jsx(Os,{size:14,className:"fill-current"})," Run simulation"]})]})]}),i.jsxs("div",{className:w==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":w==="batch"?"grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] lg:items-stretch":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:w==="rule"?{display:"none"}:void 0,children:[i.jsxs("div",{className:`flex flex-col gap-6 min-w-0 ${w==="batch"?"lg:min-h-0":"self-start"}`,children:[w==="batch"&&i.jsx(Te,{className:"flex-1",children:i.jsxs(He,{className:"!pt-4 flex flex-1 flex-col",children:[dn.length>0?(()=>{const N=dn,$=N.some(([K])=>{var ee;return(((ee=Vt.series[K])==null?void 0:ee.length)??0)>=2});return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[$&&(()=>{const{series:K,evSeries:ee,decidedSeries:ye,paymentNums:Ae}=Vt,nt=Ae.map((Wt,kt)=>{const jt={step:Wt};N.forEach(([eo])=>{var to;const ha=(to=K[eo])==null?void 0:to[kt];ha!=null&&(jt[eo]=ha)});const dr=ye[kt];dr!=null&&(jt.selectedGw=dr);const fa=ee[kt];return fa!=null&&(jt.evLead=fa),jt}),ot=[];nt.forEach(Wt=>{N.forEach(([kt])=>{const jt=Wt[kt];typeof jt=="number"&&ot.push(jt)})});const Qe=ot.length?Math.min(...ot):0,rt=ot.length?Math.max(...ot):100,In=Math.max(rt-Qe,0),vr=6,nr=Math.max(In,vr),$n=nr<=10?2:nr<=30?5:10,Fr=(Qe+rt)/2,da=Math.max(In/2,vr/2),$o=Math.max(0,Math.floor((Fr-da)/$n)*$n),ur=Math.min(100,Math.ceil((Fr+da)/$n)*$n),ti=ur+Math.min($n,2),Lo=[];for(let Wt=$o;Wt<=ur;Wt+=$n)Lo.push(Wt);return i.jsxs("div",{className:"w-full flex-1 min-h-[380px] flex flex-col",children:[i.jsxs("div",{className:"mb-2 flex items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Success Rate Trend"})}),i.jsx("div",{className:"flex items-center gap-2 shrink-0",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 dark:border-[#1f1f29] p-0.5",children:Ef.map(Wt=>{const kt=Xs===Wt;return i.jsx("button",{type:"button",onClick:()=>v2(Wt),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${kt?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:Wt==="all"?"All":`Last ${Wt}`},String(Wt))})})})]}),i.jsx("div",{className:"min-h-0 flex-1",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:nt,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[$o,ti],ticks:Lo,allowDataOverflow:!0,tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:Wt=>`${Wt}%`}),i.jsx(xa,{content:Wt=>{const{active:kt,payload:jt}=Wt;if(!kt||!jt||!jt.length)return null;const dr=jt[0].payload;if(!dr)return null;const fa=typeof dr.selectedGw=="string"?dr.selectedGw:null,eo=typeof dr.evLead=="number"?dr.evLead:null;return i.jsxs("div",{style:{...Zc,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:190},children:[i.jsxs("p",{style:{...Qc,margin:"0 0 6px"},children:["Payment ",dr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:N.map(([ha])=>{const to=dr[ha];if(typeof to!="number")return null;const ov=Ut[ha]??ni[0],lv=fa===ha;return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:ov,flexShrink:0}}),i.jsx("span",{style:{color:ov,fontWeight:600},children:ha}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[to.toFixed(1),"%"]}),fa!=null&&i.jsx("span",{style:{fontSize:10,fontWeight:600,width:56,textAlign:"right",color:"#64748b"},children:lv?"★ Selected":""})]},ha)})}),i.jsxs("div",{style:{marginTop:6,paddingTop:6,borderTop:"1px solid rgba(148,163,184,0.25)",display:"flex",alignItems:"center",gap:6},children:[i.jsxs("span",{style:{color:"#64748b"},children:["EV lead",fa!=null?` · ${fa}`:""]}),i.jsx("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums",fontWeight:600},children:eo!=null?`+${(eo*100).toFixed(2)}% of ticket`:"—"})]})]})}}),N.map(([Wt])=>i.jsx(dc,{type:"natural",dataKey:Wt,name:Wt,stroke:Ut[Wt]??ni[0],strokeWidth:2.5,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!0},Wt))]})})}),i.jsx("div",{className:"mt-3 flex flex-wrap items-center justify-center gap-x-5 gap-y-1.5 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:N.map(([Wt])=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Ut[Wt]??ni[0]}}),Wt]},Wt))})]})})(),Wn.data.length>=2&&(()=>{const{data:K,gateways:ee}=Wn,ye=K[K.length-1]??{},Ae=(Qe,rt)=>Ut[Qe]??ni[rt%ni.length],nt=ee.map((Qe,rt)=>({gw:Qe,share:ye[Qe]??0,color:Ae(Qe,rt)})).sort((Qe,rt)=>rt.share-Qe.share),ot=ee.map((Qe,rt)=>({gw:Qe,idx:rt,share:ye[Qe]??0})).sort((Qe,rt)=>rt.share-Qe.share);return i.jsxs("div",{className:"w-full border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Routing Distribution"})}),i.jsx("div",{className:"flex flex-wrap items-center gap-1.5",children:nt.map(({gw:Qe,share:rt,color:In})=>i.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-slate-50 px-2 py-0.5 text-[11px] font-medium text-slate-600 ring-1 ring-inset ring-slate-200/70 dark:bg-[#12121a] dark:text-slate-300 dark:ring-[#22222c] leading-4",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:In}}),Qe,i.jsxs("span",{className:"tabular-nums font-semibold text-slate-900 dark:text-white",children:[Math.round(rt),"%"]})]},Qe))})]}),i.jsx("div",{className:"h-[200px] w-full",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:K,margin:{top:8,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[0,100],ticks:[0,25,50,75,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:Qe=>`${Qe}%`}),i.jsx(xa,{cursor:{stroke:"#cbd5e1",strokeWidth:1},content:Qe=>{const{active:rt,payload:In}=Qe;if(!rt||!In||!In.length)return null;const vr=In[0].payload;if(!vr)return null;const nr=ee.map(($n,Fr)=>({gw:$n,share:vr[$n]??0,color:Ae($n,Fr)})).sort(($n,Fr)=>Fr.share-$n.share);return i.jsxs("div",{style:{...Zc,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:170},children:[i.jsxs("p",{style:{...Qc,margin:"0 0 6px"},children:["Payment ",vr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:nr.map(({gw:$n,share:Fr,color:da})=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:da,flexShrink:0}}),i.jsx("span",{style:{color:da,fontWeight:600},children:$n}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[Fr.toFixed(1),"%"]})]},$n))})]})}}),ot.map(({gw:Qe,idx:rt})=>i.jsx(Gu,{type:"monotone",dataKey:Qe,name:Qe,stroke:Ae(Qe,rt),fill:Ae(Qe,rt),fillOpacity:.18,strokeWidth:2.5,isAnimationActive:!1,legendType:"none",activeDot:{r:3.5,strokeWidth:0}},Qe))]})})})]})})()]})})():(()=>{const N=pt;if(N.length===0)return null;const $=N.map(ye=>({gw:ye,sr:(J[ye]??Jv(ye)).successRate})),K=dt||Number(pT),ee=[{step:1},{step:K}];return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[i.jsx("div",{className:"space-y-2",children:$.map(({gw:ye,sr:Ae})=>{const nt=Ut[ye]??ni[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:nt}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 truncate shrink-0 w-14 text-left",children:ye}),i.jsxs("span",{className:`font-bold tabular-nums text-[11px] w-14 text-right ${Ae>=80?"text-emerald-700 dark:text-emerald-400":Ae>=50?"text-amber-700":"text-red-600"} leading-4`,children:[Ae,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 text-[11px] leading-4",children:"·"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums text-[11px] w-16 text-right leading-4",children:"0% routed"})]})},ye)})}),i.jsx("div",{className:"w-full flex-1 min-h-[300px]",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(AW,{data:ee,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[0,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:ye=>`${ye}%`})]})})}),i.jsx("p",{className:"pt-1 text-center text-[11px] text-slate-500 leading-4",children:"Projected from configured success rates · run a simulation to see live routing."})]})})(),Object.keys(tr).length===1&&pt.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 mx-auto max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})}),w!=="batch"&&i.jsxs(Te,{className:"!rounded-2xl",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:w==="rule"?"Rule Evaluation":w==="volume"?"Volume Split":w==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:w==="rule"?"Rule Evaluation Parameters":w==="volume"?"Volume Split Configuration":w==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),w!=="volume"&&w!=="debit"&&m&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),w!=="volume"&&w!=="debit"&&b&&i.jsx(vt,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),w==="rule"?i.jsxs(i.Fragment,{children:[m&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),b&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:Z.map((N,$)=>{var K;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:N.key,onChange:ee=>tv($,ee.target.value),disabled:b||m,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:Mo.length===0?i.jsx("option",{value:"",children:"No keys available"}):Mo.map(ee=>i.jsx("option",{value:ee,children:ee},ee))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),N.type==="enum_variant"?i.jsx("select",{value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((K=p[N.key])==null?void 0:K.values)||[]).map(ee=>i.jsx("option",{value:ee,children:ee},ee))}):N.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):N.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>Qy($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),N.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:N.metadataKey||"",onChange:ee=>ev($,ee.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},$)})}),i.jsxs("button",{onClick:Zy,disabled:b||m||Mo.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:ae.map((N,$)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:$+1}),i.jsx("input",{placeholder:"gateway name",value:N.gateway_name,onChange:K=>Wm($,"gateway_name",K.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:N.gateway_id||"",onChange:K=>Wm($,"gateway_id",K.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>rv($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},$))}),i.jsxs("button",{onClick:nv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):w==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(at,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx($a,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx($a,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:av,disabled:!a||Jt,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:q.amount,onChange:N=>cs("amount",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:q.currency,onChange:N=>cs("currency",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:q.auth_type,onChange:N=>cs("auth_type",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:q.card_type,onChange:N=>cs("card_type",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:q.eligible_gateways,onChange:N=>cs("eligible_gateways",N.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:q.merchant_category_code,onChange:N=>cs("merchant_category_code",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:q.acquirer_country,onChange:N=>cs("acquirer_country",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:q.co_badged_networks,onChange:N=>cs("co_badged_networks",N.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:q.issuer_country,onChange:N=>cs("issuer_country",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:q.is_regulated,onChange:N=>cs("is_regulated",N.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),q.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:q.regulated_name,onChange:N=>cs("regulated_name",N.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):w==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:de,onChange:N=>Q(N.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(we,{onClick:xe,disabled:Jt||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(rf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:qm||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Jt?ve:Qs||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${Jt?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${Jt?zP:Qs&&qm?Math.min(100,Math.round(Qs/qm*100)):0}%`}})}),Jt&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[zP,"%"]})]})]}):i.jsx(i.Fragment,{children:w==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:Be,onChange:N=>st(N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),Be==="FAILURE"&&i.jsx(oA,{info:L,onChange:Tf,rules:Zs})]})})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:Cf}),w==="rule"?i.jsx(we,{onClick:le,disabled:Jt||b,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})}):w==="debit"?i.jsx(we,{onClick:sv,disabled:Jt||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(_o,{size:14})," Run Debit Routing"]})}):w==="volume"?null:i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Hm,disabled:Jt||!a||b,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Run Single Transaction"]})})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:YX,children:[i.jsx(Es,{size:14}),XX]})})]})]})]}),i.jsxs("div",{className:`min-w-0 flex flex-col gap-4 ${w==="batch"?"lg:min-h-0":""}`,children:[w==="batch"&&i.jsxs("div",{className:"flex flex-col justify-center gap-5 rounded-2xl border border-slate-200 bg-white px-5 py-4 dark:border-[#222226] dark:bg-[#0b0b10]",children:[bt&&i.jsx("div",{className:"-mb-3 -mr-2 -mt-2 flex justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:KP,title:"Clear these stats, the charts and the transaction log. Leaves the controls above untouched.",children:[i.jsx(wn,{size:14}),"Clear"]})}),(()=>{const N=Ac.currency||E.currency||"USD";return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",title:"First Attempt Auth Rate — share of decisions charged on the first attempt (first-attempt charges ÷ total decisions).",children:[i.jsx(Wf,{label:"First-attempt auth rate",abbr:"FAAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Aa.faar!=null?`${(Aa.faar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Net Auth Rate — share of decisions charged in the end, counting a successful smart retry (final charges ÷ total decisions). NAR ≥ FAAR when retries recover failures.",children:[i.jsx(Wf,{label:"Net auth rate",abbr:"NAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Aa.nar!=null?`${(Aa.nar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Realized fee saved on charged cost-override decisions: Σ (costSavedBps ÷ 10000) × amount.",children:[i.jsx(Wf,{label:"Realized cost savings"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Qf(Ec.value,Ec.currency||N)})]})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"Total decisions"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:wi.total.toLocaleString()})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"SR-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[wi.srBased.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:wi.srSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:wi.srFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"Cost-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[wi.costWon.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:wi.costSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:wi.costFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]})]})]})})()]}),w==="debit"?ce?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),be?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>k2(be),children:"View audit"}):null]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:ce.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:be})]})]}),ce.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(He,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:Pl.map((N,$)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",$+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:N.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[N.saving_percentage.toFixed(2),"%"]})]},`${N.network}-${$}`))})]})})]})]}):i.jsx(vt,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>Ze(!Je),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[Je?i.jsx(hs,{size:14}):i.jsx(ln,{size:14}),"Raw response"]}),Je&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(ce,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(He,{className:"py-12 text-center",children:[i.jsx(_o,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):w==="volume"?ie.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Qs})," evaluations"]}),Er&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Er.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[Er.percentage,"%"]})]})]})]})]}),F!=null&&F.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>Km(F.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[us.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:us.map(N=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${N.percentage}%`,backgroundColor:Hf[(wt.get(N.name)??0)%Hf.length]},title:`${N.name}: ${N.percentage}%`},N.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:us.map(N=>{const $=Hf[(wt.get(N.name)??0)%Hf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:$}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:N.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[N.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[N.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${N.percentage}%`,backgroundColor:$}})})]},N.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:te.slice(-200).map((N,$)=>{const K=Math.max(0,te.length-200)+$;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>Km(N.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:K+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:N.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Hf[(wt.get(N.connector)??0)%Hf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:N.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ee=>{ee.stopPropagation(),Km(N.paymentId,"Volume Split Decision")},children:"Open"})})]},N.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>Cn(N=>!N),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API response"]}),St?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]}),St&&F&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(F,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(rf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):w==="rule"?F?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:F.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",F.output.type]})]}),F.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>Km(F.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),F.output.type==="single"&&F.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:F.output.connector.gateway_name}),F.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",F.output.connector.gateway_id]})]}),F.output.type==="priority"&&F.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:F.output.connectors.map((N,$)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:$+1}),i.jsx("span",{className:"font-medium",children:N.gateway_name}),N.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",N.gateway_id,")"]})]},$))})]}),F.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ze(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),_e?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),_e&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(F,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):w==="batch"?i.jsxs(i.Fragment,{children:[bt&&i.jsx(Te,{className:"lg:shrink-0",children:i.jsxs(yt,{className:"flex flex-row items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-[14px] font-semibold text-slate-500 dark:text-slate-400 leading-5",children:"Gateway Selection Summary"})}),i.jsxs("span",{className:"text-[13px] tabular-nums flex items-center gap-1.5 shrink-0 leading-[18px]",children:[i.jsxs("span",{className:"text-slate-500",children:[Le," / ",dt||0]}),Le>0&&Pf>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"font-medium text-brand-600 dark:text-sky-400",children:[Math.round(Pf/Le*100),"% hedged"]})]})]})]})}),i.jsxs(Te,{className:"lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3 lg:shrink-0",children:[i.jsx("span",{className:"flex items-center gap-2.5",children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Autopilot Actions"})}),_c.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[_c.length," actions"]})]}),i.jsx(He,{className:"p-0 lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:Ro==null?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No events yet"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400 mx-auto max-w-[57ch]",children:"Start a simulation — leader changes and auth-band crossings appear here as gateway scores shift."})]}):Sc.isUnavailable?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Events unavailable"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"The analytics pipeline (Kafka → ClickHouse) is offline for this environment."})]}):i.jsxs("div",{className:"max-h-[240px] overflow-y-auto lg:max-h-[360px] lg:flex-1 lg:min-h-0 divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[x2.map(N=>{if(N.kind==="leaderFlap"){const Ae=Rm.has(N.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Ae?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(I0,{size:16,className:"text-sky-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[N.latest.gateway,N.latest.score!=null?` (${(N.latest.score*100).toFixed(1)}%)`:""," now leads on success rate",N.latest.previous_gateway?` over ${N.latest.previous_gateway}${N.latest.previous_score!=null?` (${(N.latest.previous_score*100).toFixed(1)}%)`:""}`:"",i.jsxs("span",{className:"ml-1.5 rounded-full bg-sky-100 px-1.5 py-0.5 text-[11px] font-medium text-sky-700 dark:bg-sky-900/30 dark:text-sky-300 leading-4",children:["×",N.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:["now routing to the best PSP · ",Zv(N.latest.bucket_ms)]})]})]},N.latest.id)}if(N.kind==="flap"){const Ae=Rm.has(N.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Ae?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Es,{size:16,className:"text-amber-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[N.gateway," fluctuating at the cost-savings cutoff",i.jsxs("span",{className:"ml-1.5 rounded-full bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-300 leading-4",children:["×",N.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:["now ",N.inBand?"routed to save cost":"using top performer only"," · ",Zv(N.latest.bucket_ms)]})]})]},N.latest.id)}const $=N.event,K=bAe[$.event_type],ee=(K==null?void 0:K.icon)??I0,ye=Rm.has($.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${ye?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(ee,{size:16,className:(K==null?void 0:K.iconClass)??"text-slate-500"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:hT($)}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:Zv($.bucket_ms)})]})]},$.id)}),i.jsxs("div",{className:"flex items-start gap-2.5 px-4 py-2.5 bg-gradient-to-r from-sky-50 via-transparent to-violet-50 dark:from-sky-500/10 dark:to-violet-500/10",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(zNe,{size:16,className:"text-violet-600"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:["Started tracking"," ",i.jsx("span",{className:"font-semibold text-emerald-700 dark:text-emerald-400",children:"SR"})," ","and"," ",i.jsx("span",{className:"font-semibold text-violet-600 dark:text-violet-400",children:"Cost"})," ","for"," ",pt.map((N,$)=>i.jsxs("span",{children:[i.jsx("span",{className:"font-semibold capitalize",style:{color:Ut[N]??ni[0]},children:N}),$y2(N=>!N),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Yy?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Yy&&i.jsx(QW,{merchantId:a,gsmRules:Zs,decideParams:{amount:E.amount,currency:E.currency,paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:E.eligible_gateways}})]})]}):fe?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:fe.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${yAe(fe.routing_approach)}`,children:fe.routing_approach})}),Ce?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>k2(Ce),children:"View audit"}):null,fe.is_scheduled_outage&&i.jsx(Me,{variant:"red",children:"Scheduled Outage"}),Ce?i.jsx(Me,{variant:Be==="CHARGED"?"green":"red",children:Be}):null,fe.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[fe.latency,"ms"]})]})]}),Ce?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:Ce}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",Be,". Open audit to inspect the full decide and update flow."]})]}):null,fe.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:fe.routing_dimension})]}),fe.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:fe.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:fe.reset_approach})]})]})]})}),fe.multi_objective_info&&i.jsx(FAe,{info:fe.multi_objective_info}),Ve.length>0&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Hm,className:"text-xs",children:[i.jsx(Es,{size:12})," Refresh"]})]})}),i.jsx(He,{children:i.jsx(tl,{width:"100%",height:Ve.length*40+20,children:i.jsxs(vx,{data:Ve,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(ys,{type:"number",domain:[0,100],tickFormatter:N=>`${N}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(Qa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(xa,{formatter:N=>`${N}%`,contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"score",radius:[0,4,4,0],children:Ve.map((N,$)=>i.jsx(vy,{fill:N.name===fe.decided_gateway?"#0069ED":N.score<30?"#ef4444":N.score<60?"#f59e0b":"#10b981"},$))})]})})})]}),fe.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ke(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",re?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),re&&i.jsx(He,{className:"space-y-2",children:Object.entries(fe.filter_wise_gateways).map(([N,$])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:N}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray($)?$.map(K=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:K},K)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},N))})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ze(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),_e?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),_e&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(fe,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})]})]}),w==="batch"&&bt&&i.jsxs(Te,{className:"mt-6",children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),En.length>0&&i.jsxs("span",{className:"flex items-center gap-2 text-xs text-slate-500 tabular-nums",children:[Cc&&i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onClick:()=>Mt({}),className:"rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-600 hover:bg-brand-50 dark:text-brand-400 dark:hover:bg-brand-900/20 leading-4",children:"Clear filters"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"})]}),i.jsxs("span",{children:[Cc?`${Gn.length} / ${En.length}`:En.length," ","transactions"]})]})]}),i.jsx(He,{className:"p-0",children:En.length>0?i.jsx("div",{ref:ca,className:"max-h-[560px] overflow-y-auto overflow-x-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsxs("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:[i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-8",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Amount"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap w-20",children:"Network"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap ",children:"Program"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",children:"SR Score"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",title:"Expected-value gap between the top-two EV-ranked PSPs (% of ticket) — the decision's margin of victory. Small values mean it was a close call.",children:"EV Δ (top 2)"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),gt&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),gt&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"})]}),(()=>{const N="w-full rounded border border-slate-200 bg-white px-1.5 py-1 text-[11px] font-normal text-slate-700 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-200 dark:placeholder:text-slate-600",$=(ee,ye)=>Mt(Ae=>({...Ae,[ee]:ye})),K=(ee,ye,Ae)=>i.jsxs("select",{value:mt[ee]??"",onChange:nt=>$(ee,nt.target.value),className:N,children:[i.jsx("option",{value:"",children:Ae}),ye.map(nt=>i.jsx("option",{value:nt,children:nt},nt))]});return i.jsxs("tr",{className:"bg-white dark:bg-[#0a0a0f] border-b border-slate-100 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"px-2 py-1.5"}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.amount??"",onChange:ee=>$("amount",ee.target.value),placeholder:"search",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:K("network",Hn.networks,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("program",Hn.programs,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("gateway",Hn.gateways,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.sr??"",onChange:ee=>$("sr",ee.target.value),placeholder:"e.g. 90",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.evGap??"",onChange:ee=>$("evGap",ee.target.value),placeholder:"e.g. 0.12",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:K("routing",Hn.routings,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("outcome",Hn.outcomes,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsxs("select",{value:mt.cost??"",onChange:ee=>$("cost",ee.target.value),className:N,children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"yes",children:"Has savings"}),i.jsx("option",{value:"no",children:"None"})]})}),gt&&i.jsx("th",{className:"px-2 py-1.5",children:K("retryGateway",Hn.retryGateways,"All")}),gt&&i.jsx("th",{className:"px-2 py-1.5",children:K("retryOutcome",Hn.retryOutcomes,"All")})]})})()]}),i.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[Gn.map(({res:N,idx:$})=>{var K;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>k2(N.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:$+1}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap",children:i.jsx("span",{className:"block font-mono text-xs text-slate-700 dark:text-slate-300 tabular-nums group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:Qf(N.amount,N.currency)})}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.cardNetwork??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.cardProgram??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.decidedGateway}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:(()=>{var ye;const ee=(ye=N.gatewayPriorityMap)==null?void 0:ye[N.decidedGateway];return typeof ee=="number"?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(ee*100).toFixed(1),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})})()}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:N.evGapTop2!=null?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(N.evGapTop2*100).toFixed(2),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})}),i.jsx("td",{className:"px-3 py-2",children:(K=N.routingApproach)!=null&&K.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-amber-50 px-2 py-0.5 text-[11px] font-medium text-amber-700 ring-1 ring-inset ring-amber-200 dark:bg-amber-900/20 dark:text-amber-300 dark:ring-amber-800 leading-4",children:"Hedging"}):N.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-emerald-50 px-2 py-0.5 text-[11px] font-medium text-emerald-700 ring-1 ring-inset ring-emerald-200 dark:bg-emerald-900/20 dark:text-emerald-300 dark:ring-emerald-800 leading-4",children:"Cost Based"}):N.routingApproach==="SR_SELECTION_V3_ROUTING"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Auth Based"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:N.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx("span",{className:`text-xs font-semibold ${N.status==="CHARGED"?"text-emerald-700 dark:text-emerald-400":N.status==="PENDING_VBV"?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}`,children:N.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:N.costWon&&N.costSavedBps!=null&&N.costSavedBps>0&&N.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:xAe(N.costSavedBps,N.amount,N.currency)}):null}),gt&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:N.retryGateway??"—"}),gt&&i.jsx("td",{className:"px-3 py-2",children:N.retryStatus?i.jsx(Me,{variant:N.retryStatus==="CHARGED"?"green":N.retryStatus==="PENDING_VBV"?"orange":"red",children:N.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},N.paymentId)}),Gn.length===0&&i.jsx("tr",{children:i.jsx("td",{colSpan:gt?12:10,className:"px-3 py-8 text-center text-sm text-slate-500 dark:text-slate-400",children:"No transactions match the current filters."})})]}),Gn.length>0&&i.jsx("tfoot",{className:"sticky bottom-0 z-10 bg-slate-50 dark:bg-[#0a0a0f] border-t border-slate-200 dark:border-[#1c1c24]",children:i.jsxs("tr",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200",children:[i.jsx("td",{className:"px-3 py-2 text-slate-500",children:"Σ"}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap tabular-nums",children:Qf(yr.amount,yr.currency)}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsxs("td",{className:"px-3 py-2 whitespace-nowrap font-normal text-slate-500",children:[yr.count.toLocaleString()," rows"]}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums font-normal text-slate-500",title:"Average EV margin of victory across these rows",children:yr.evGapPctAvg!=null?`${yr.evGapPctAvg.toFixed(2)}% avg`:""}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums text-emerald-700 dark:text-emerald-400",children:Qf(yr.savings,yr.currency)}),gt&&i.jsx("td",{className:"px-3 py-2"}),gt&&i.jsx("td",{className:"px-3 py-2"})]})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Waiting for the first simulated payment result…"]})})]}),Sr&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>_r(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(BW,{size:22})}),i.jsxs("div",{children:[i.jsx(vn,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Sr.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>_r(null),children:i.jsx(Vr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Sr.body}),Sr.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Sr.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(we,{variant:"secondary",onClick:()=>_r(null),children:"Dismiss"}),Sr.configurePath&&i.jsx(we,{onClick:()=>{_r(null),t(Sr.configurePath)},children:"Configure"})]})]})]})]}),Qt&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:WP}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Qt}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[ei!=null&&ei.latest_gateway?i.jsx(Me,{variant:"green",children:ei.latest_gateway}):null,ei!=null&&ei.latest_status?i.jsx(Me,{variant:hL(ei.latest_status),children:Ci(ei.latest_status)}):null,ei!=null&&ei.event_count?i.jsxs(Me,{variant:"gray",children:[ei.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>lr.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:WP,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:lr.isLoading&&!lr.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading payment audit…"]}):lr.error?i.jsx(vt,{error:lr.error.message}):UP.length?i.jsx("div",{className:"space-y-4",children:UP.map(N=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:pL(N.phase),children:N.phase})}),i.jsx("div",{className:"space-y-2",children:N.events.map($=>i.jsxs("button",{type:"button",onClick:()=>{Un($.id),Ca("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Mn==null?void 0:Mn.id)===$.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Kg($)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Gg($.created_at_ms)})]}),i.jsx(Me,{variant:Qv($),children:Ci($.status)||fL($.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:qg($.route)}),$.gateway?i.jsx(Me,{variant:"green",children:$.gateway}):null,$.request_id?i.jsx(Me,{variant:"blue",children:"Request"}):null]})]},$.id))})]},N.phase))}):i.jsx(Yg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Mn?Kg(Mn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Mn?`${qg(Mn.route)} · ${Gg(Mn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Mn!=null&&Mn.gateway?i.jsx(Me,{variant:"green",children:Mn.gateway}):null,Mn!=null&&Mn.status?i.jsx(Me,{variant:Qv(Mn),children:Ci(Mn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(N=>i.jsx("button",{type:"button",onClick:()=>Ca(N),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${gL(Yi===N)}`,children:N==="raw"?"Raw JSON":Ci(N)},N))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:lr.isLoading&&!lr.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading inspector…"]}):Io?i.jsxs("div",{className:"space-y-5",children:[Yi==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(xL,{rows:Io.summaryRows}),Io.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:MH(Io.selectionReason)})]}):null,i.jsx(Dl,{title:"Score Context",value:Io.scoreContext,emptyMessage:"No scoring context was captured for this event."}),Io.signalRecord?i.jsx(Dl,{title:"Additional Signals",value:Io.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,Yi==="input"?i.jsx(Dl,{title:"Request Payload",value:Io.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,Yi==="response"?i.jsx(Dl,{title:"Response Payload",value:Io.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,Yi==="raw"?i.jsx(Dl,{title:"Raw Event JSON",value:Io.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Yg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),os&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:HP}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:os}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Gy,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Oa!=null&&Oa.latest_gateway?i.jsx(Me,{variant:"green",children:Oa.latest_gateway}):null,Oa!=null&&Oa.latest_status?i.jsx(Me,{variant:hL(Oa.latest_status),children:Ci(Oa.latest_status)}):null,Oa!=null&&Oa.event_count?i.jsxs(Me,{variant:"gray",children:[Oa.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>Nr.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:HP,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Nr.isLoading&&!Nr.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision trace…"]}):Nr.error&&RAe(Nr.error)&&os?i.jsx(ZS,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):Nr.error?i.jsx(vt,{error:Nr.error.message}):VP.length?i.jsx("div",{className:"space-y-4",children:VP.map(N=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:pL(N.phase),children:N.phase})}),i.jsx("div",{className:"space-y-2",children:N.events.map($=>i.jsxs("button",{type:"button",onClick:()=>{Vn($.id),Ji("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Dn==null?void 0:Dn.id)===$.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Kg($)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Gg($.created_at_ms)})]}),i.jsx(Me,{variant:Qv($),children:Ci($.status)||fL($.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:qg($.route)}),$.gateway?i.jsx(Me,{variant:"green",children:$.gateway}):null]})]},$.id))})]},N.phase))}):os?i.jsx(ZS,{title:Oa?"Decision summary available":"Decision trace still arriving",body:Oa?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Yg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Dn?Kg(Dn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Dn?`${qg(Dn.route)} · ${Gg(Dn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Dn!=null&&Dn.gateway?i.jsx(Me,{variant:"green",children:Dn.gateway}):null,Dn!=null&&Dn.status?i.jsx(Me,{variant:Qv(Dn),children:Ci(Dn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(N=>i.jsx("button",{type:"button",onClick:()=>Ji(N),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${gL(Ea===N)}`,children:N==="raw"?"Raw JSON":Ci(N)},N))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Nr.isLoading&&!Nr.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision inspector…"]}):Rf?i.jsxs("div",{className:"space-y-5",children:[Ea==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(xL,{rows:Rf.summaryRows}),i.jsx(Dl,{title:"Decision Signals",value:Rf.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,Ea==="input"?i.jsx(Dl,{title:"Request Payload",value:Rf.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,Ea==="response"?i.jsx(Dl,{title:"Response Payload",value:Rf.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,Ea==="raw"?i.jsx(Dl,{title:"Raw Event JSON",value:Rf.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):os&&!((sR=(aR=Nr.data)==null?void 0:aR.timeline)!=null&&sR.length)?i.jsx(ZS,{title:Oa?"Waiting for detailed decision step":"Waiting for decision step",body:Oa?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Yg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function FAe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(He,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(BAe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function BAe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function zAe(){const{merchantId:t}=$r(),{data:e,error:n,isLoading:r,isEnabled:a,setDebitRoutingEnabled:s}=Ey(t),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(null);async function h(p){if(!t){u("Set a merchant ID first");return}l(!0),u(null),f(null);try{const m=await s(p);f(m.debit_routing_enabled?"Debit routing enabled.":"Debit routing disabled.")}catch(m){u(m instanceof Error?m.message:"Failed to update debit routing")}finally{l(!1)}}return i.jsxs("div",{className:"max-w-3xl space-y-6",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Network / Debit Routing"})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(_o,{size:16,className:"text-brand-600"}),i.jsxs("div",{children:[i.jsx(vn,{children:"Debit routing access"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Debit Routing Runtime Access"})]})]})}),i.jsxs(He,{className:"space-y-5",children:[!t&&i.jsx($a,{tone:"warning",children:"Set a merchant ID in the top bar to load debit routing access."}),t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Loading debit routing flag..."]}):i.jsx("div",{className:"rounded-[24px] border border-slate-200 bg-slate-50 p-5 dark:border-[#232833] dark:bg-[#0b1017]",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#78849a] leading-4",children:"Current state"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:a?"Enabled":"Disabled"}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:(e==null?void 0:e.merchant_id)||t||"No merchant selected"})]}),i.jsx(we,{onClick:()=>h(!a),disabled:!t||o||r,variant:a?"secondary":"primary",children:o?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Updating..."]}):a?"Disable Debit Routing":"Enable Debit Routing"})]})}),i.jsx(vt,{error:c||(n instanceof Error?n.message:n?"Failed to load debit routing flag":null)}),d&&i.jsx("p",{className:"text-sm text-emerald-700",children:d})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h2",{className:"font-medium text-slate-800 dark:text-white",children:"What This Controls"})}),i.jsxs(He,{className:"space-y-3 text-sm text-slate-600 dark:text-[#aab5c8]",children:[i.jsxs("p",{children:["This toggle controls the backend runtime gate for ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"NTW_BASED_ROUTING"})," and hybrid debit routing."]}),i.jsx("p",{children:"Detailed debit fee tables and network cost configuration are still managed outside the dashboard. This toggle enables or disables access to the runtime debit-routing flow."}),i.jsxs("p",{children:["Use Decision Explorer's Debit Routing tab to send a real ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"/decide-gateway"})," request and inspect the ranked debit networks."]})]})]})]})}function Vw({label:t,value:e,options:n,onChange:r,ariaLabel:a}){const[s,o]=g.useState(!1),l=e!=="all",c=n.find(u=>u.value===e);return i.jsxs("div",{className:"relative inline-flex",children:[i.jsxs("button",{type:"button","aria-label":a,"aria-expanded":s,onClick:()=>o(u=>!u),className:`inline-flex items-center gap-1 rounded uppercase tracking-wide transition-colors ${l?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]"}`,children:[l?`${t}: ${(c==null?void 0:c.label)??e}`:t,i.jsx(ln,{size:13,className:"shrink-0"})]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>o(!1)}),i.jsx("div",{className:"absolute left-0 top-full z-20 mt-1.5 max-h-64 min-w-[170px] overflow-y-auto rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:n.map(u=>i.jsxs("button",{type:"button",onClick:()=>{r(u.value),o(!1)},className:`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs normal-case tracking-normal transition-colors hover:bg-slate-50 dark:hover:bg-[#1c2030] ${u.value===e?"font-semibold text-brand-600 dark:text-brand-400":"text-slate-600 dark:text-slate-300"}`,children:[i.jsx("span",{className:"truncate",children:u.label}),u.value===e&&i.jsx(gi,{size:12,className:"shrink-0"})]},u.value))})]})]})}function DH({label:t,value:e,onChange:n,ariaLabel:r}){const[a,s]=g.useState(!1);return!a&&!e?i.jsxs("button",{type:"button","aria-label":r,onClick:()=>s(!0),className:"inline-flex items-center gap-1 uppercase tracking-wide text-slate-500 transition-colors hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]",children:[t,i.jsx(Lp,{size:13,className:"shrink-0"})]}):i.jsxs("div",{className:"relative w-[240px] max-w-full",children:[i.jsx(Lp,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{autoFocus:!0,value:e,onChange:o=>n(o.target.value),placeholder:"Filter by name or ID","aria-label":r,className:"w-full rounded-lg border border-slate-200 bg-white py-1.5 pl-8 pr-8 text-sm font-normal normal-case tracking-normal text-slate-800 placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#0d1018] dark:text-slate-100 dark:placeholder:text-[#5b6577]"}),i.jsx("button",{type:"button","aria-label":"Clear name filter",onClick:()=>{n(""),s(!1)},className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200",children:i.jsx(Vr,{size:14})})]})}function IH({items:t}){const[e,n]=g.useState(!1),[r,a]=g.useState({}),s=g.useRef(null),o=g.useRef(null);g.useEffect(()=>{if(!e)return;function u(h){var m,x;const p=h.target;!((m=s.current)!=null&&m.contains(p))&&!((x=o.current)!=null&&x.contains(p))&&n(!1)}function d(h){h.key==="Escape"&&n(!1)}function f(){n(!1)}return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),window.addEventListener("resize",f),window.addEventListener("scroll",f,!0),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d),window.removeEventListener("resize",f),window.removeEventListener("scroll",f,!0)}},[e]);function l(){var p;if(e){n(!1);return}const u=(p=s.current)==null?void 0:p.getBoundingClientRect();if(!u)return;const d=190,f=t.length*38+8,h=u.bottom+f>window.innerHeight-8;a({position:"fixed",top:h?Math.max(8,u.top-f-4):u.bottom+4,left:Math.max(8,u.right-d),width:d,zIndex:9999}),n(!0)}const c={default:"text-slate-700 dark:text-slate-300",positive:"text-emerald-700 dark:text-emerald-400",danger:"text-red-600 dark:text-red-400"};return i.jsxs("div",{className:"flex justify-end",children:[i.jsx("button",{ref:s,type:"button",onClick:l,"aria-label":"Rule actions","aria-haspopup":"menu","aria-expanded":e,className:`rounded-md p-1.5 transition-colors ${e?"bg-slate-100 text-slate-700 dark:bg-[#1c2030] dark:text-white":"text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1c2030] dark:hover:text-white"}`,children:i.jsx(BNe,{size:16})}),e&&gs.createPortal(i.jsx("div",{ref:o,role:"menu",style:r,className:"overflow-hidden rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:t.map(u=>{const d=u.icon;return i.jsxs("button",{type:"button",role:"menuitem",disabled:u.disabled,title:u.disabled?u.hint:void 0,onClick:()=>{n(!1),u.onSelect()},className:`flex w-full items-center gap-2.5 px-3 py-2 text-left text-[13px] font-medium transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent dark:hover:bg-[#1c2030] ${c[u.tone??"default"]} leading-[18px]`,children:[i.jsx(d,{size:14,className:"shrink-0"}),u.label]},u.label)})}),document.body)]})}const UAe=/(Z|[+-]\d{2}:?\d{2})$/i;function VAe(t){const e=t.trim();if(!e)return 0;const n=e.replace(/(\.\d{3})\d+/,"$1"),r=new Date(UAe.test(n)?n:`${n}Z`).getTime();return Number.isFinite(r)?r:0}function F0(t){const e=t.modified_at||t.created_at;return e?VAe(e):0}function $H(t){const e=F0(t);if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}const QS={"==":"equal","!=":"not_equal",">":"greater_than","<":"less_than",">=":"greater_than_equal","<=":"less_than_equal",in:"equal",not_in:"not_equal"},LH={"==":"equals","!=":"not equals",">":"greater than","<":"less than",">=":"greater than or equal","<=":"less than or equal",in:"is one of",not_in:"is not one of"};function tc(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function FH(t){var r;const e=Object.keys(t)[0]||"payment_method",n=((r=t[e])==null?void 0:r.values)||[];return{id:crypto.randomUUID(),lhs:e,operator:"==",value:n[0]||"",metadataKey:""}}function xT(t){return{id:crypto.randomUUID(),conditions:[FH(t)],nested:[]}}function WAe(t){return{equal:"=",not_equal:"≠",greater_than:">",less_than:"<",greater_than_equal:"≥",less_than_equal:"≤"}[t]??t.replace(/_/g," ")}function HAe(t,e,n){function r(l){return{priority:l.map(c=>({gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}))}}function a(l){return l.outputType==="volume_split"?{volume_split:l.volumeSplitEntries.map(c=>({split:c.split,output:{gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}}))}:l.outputType==="volume_split_priority"?{volume_split_priority:l.volumeSplitPriorityEntries.map(c=>({split:c.split,output:c.gateways.map(u=>({gateway_name:u.gatewayName,gateway_id:u.gatewayId||null}))}))}:r(l.priorityGateways)}function s(l){var f;const c=(f=n[l.lhs])==null?void 0:f.type;if((l.operator==="in"||l.operator==="not_in")&&Array.isArray(l.value))return{lhs:l.lhs,comparison:QS[l.operator],value:{type:"enum_variant_array",value:l.value},metadata:{}};if(c==="udf"||c==="global_ref")return{lhs:l.lhs,comparison:QS[l.operator]||l.operator,value:{type:"metadata_variant",value:{key:l.metadataKey||l.lhs,value:l.value}},metadata:{}};const d=c==="integer"?"number":c==="str_value"?"str_value":"enum_variant";return{lhs:l.lhs,comparison:QS[l.operator]||l.operator,value:{type:d,value:c==="integer"?Number(l.value):l.value},metadata:{}}}function o(l){return{condition:l.conditions.map(s),nested:l.nested.length>0?l.nested.map(o):null}}return{globals:{},default_selection:r(e.priorityGateways),rules:t.map(l=>({name:l.name,routing_type:l.outputType,output:a(l),statements:l.statements.map(o)}))}}const GAe={equal:"==",not_equal:"!=",greater_than:">",less_than:"<",greater_than_equal:">=",less_than_equal:"<="};function qAe(t){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data;if(!n)return{ruleBlocks:[],defaultOutput:{priorityGateways:[]}};function r(u){return u.map(d=>({id:crypto.randomUUID(),gatewayName:d.gateway_name,gatewayId:d.gateway_id??""}))}function a(u){var m,x,v,b,y,w;const d=((m=u.value)==null?void 0:m.type)==="enum_variant_array",f=((x=u.value)==null?void 0:x.type)==="metadata_variant";let h=GAe[u.comparison]??u.comparison;if(d&&u.comparison==="equal"&&(h="in"),d&&u.comparison==="not_equal"&&(h="not_in"),f){const j=(v=u.value)==null?void 0:v.value;return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:String((j==null?void 0:j.value)??""),metadataKey:String((j==null?void 0:j.key)??u.lhs)}}const p=d?Array.isArray((b=u.value)==null?void 0:b.value)?u.value.value:[String((y=u.value)==null?void 0:y.value)]:String(((w=u.value)==null?void 0:w.value)??"");return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:p,metadataKey:""}}function s(u){return{id:crypto.randomUUID(),conditions:(u.condition??[]).map(a),nested:(u.nested??[]).map(s)}}const o=(n.rules??[]).map(u=>{const d=u.output,f=u.routing_type??"priority",h=(d==null?void 0:d.priority)??(d==null?void 0:d.data),p=(d==null?void 0:d.volume_split)??((d==null?void 0:d.type)==="volume_split"?d==null?void 0:d.data:void 0),m=d==null?void 0:d.volume_split_priority;return{id:crypto.randomUUID(),name:u.name||"Cloned Rule",statements:(u.statements??[]).map(s),outputType:f,priorityGateways:f==="priority"?r(Array.isArray(h)?h:[]):[],volumeSplitEntries:f==="volume_split"?(Array.isArray(p)?p:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gatewayName:x.output.gateway_name,gatewayId:x.output.gateway_id??""})):[],volumeSplitPriorityEntries:f==="volume_split_priority"?(Array.isArray(m)?m:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gateways:r(x.output)})):[]}}),l=n.default_selection||n.defaultSelection,c=Array.isArray(l==null?void 0:l.priority)?l.priority:Array.isArray(l==null?void 0:l.data)?l.data:[];return{ruleBlocks:o,defaultOutput:{priorityGateways:r(c)}}}const KAe={equal:"equals",not_equal:"does not equal",greater_than:"greater than",less_than:"less than",greater_than_equal:"at least",less_than_equal:"at most"};function YAe(t,e){return e?t==="not_equal"?"is not one of":"is one of":KAe[t]??LH[t]??t.replace(/_/g," ")}function XAe(t){const e=t.value,n=e==null?void 0:e.value,r=e==null?void 0:e.type;return r==="metadata_variant"&&n&&typeof n=="object"?String(n.value??""):Array.isArray(n)?n.map(a=>tc(String(a))).join(", "):r==="enum_variant"||r==="enum_variant_array"?tc(String(n??"")):String(n??"")}function JAe(t){const e=t.value;if((e==null?void 0:e.type)==="metadata_variant"&&e.value&&typeof e.value=="object"){const n=e.value.key;if(n&&n!==t.lhs)return`${tc(t.lhs)}.${n}`}return tc(t.lhs)}function ZAe(t){const e=t.value,n=Array.isArray(e==null?void 0:e.value),r=XAe(t);return`${JAe(t)} ${YAe(t.comparison,n)} ${r||"…"}`.trim()}function QAe(t){var r,a;const e=((r=t.condition)==null?void 0:r.length)??0,n=((a=t.nested)==null?void 0:a.length)??0;return e+(n>0?1:0)>1}function gA(t){let n=(t.condition??[]).map(a=>`(${ZAe(a)})`).join(" and ");const r=t.nested??[];if(r.length>0){const a=r.map(s=>QAe(s)?`(${gA(s)})`:gA(s)).filter(Boolean).join(" or ");a&&(n=n?`${n} and (${a})`:`(${a})`)}return n}function eOe(t){const e=(t.statements??[]).map(gA).filter(Boolean);return e.length===0?"Always matches":e.length===1?e[0]:e.map(n=>n.includes(" and ")?`(${n})`:n).join(" or ")}function nu(t){const e=t==null?void 0:t.gateway_name;if(e)return t!=null&&t.gateway_id?`${e} (${t.gateway_id})`:e}function yT(t){const e=t.output,n=(e==null?void 0:e.priority)??(e==null?void 0:e.data),r=(e==null?void 0:e.volume_split)??((e==null?void 0:e.type)==="volume_split"?e==null?void 0:e.data:void 0),a=e==null?void 0:e.volume_split_priority,s=Array.isArray(n)?n:[],o=Array.isArray(r)?r:[],l=Array.isArray(a)?a:[];return{priorityGateways:s,volumeSplits:o,volumeSplitPriorityEntries:l,isVolumeSplit:t.routing_type==="volume_split"||o.length>0,isVolumeSplitPriority:t.routing_type==="volume_split_priority"||l.length>0}}function vT(t){const e=t.algorithm_data||t.algorithm;return e==null?void 0:e.data}function tOe(t){var r;const e=((r=vT(t))==null?void 0:r.rules)??[];if(e.length===0)return"No conditions — always matches";const n=eOe(e[0]);return e.length>1?`${n} (+${e.length-1} more)`:n}function nOe(t){var c;const e=vT(t),n=(c=e==null?void 0:e.rules)==null?void 0:c[0];let r="";if(n){const u=yT(n);u.isVolumeSplitPriority?r=u.volumeSplitPriorityEntries.map(d=>{var f;return`${nu((f=d.output)==null?void 0:f[0])??"?"} (${d.split}%)`}).join(" / "):u.isVolumeSplit?r=u.volumeSplits.map(d=>`${nu(d.output)??"?"} (${d.split}%)`).join(" / "):u.priorityGateways.length>0&&(r=`${nu(u.priorityGateways[0])} (Priority 100%)`)}const s=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection),o=Array.isArray(s==null?void 0:s.priority)?s.priority:Array.isArray(s==null?void 0:s.data)?s.data:[],l=nu(o[0]);return r?l?`${r} — fallback ${l}`:r:l?`${l} (fallback only)`:"No destination configured"}function vL(t){const e=vT(t),n=new Set;((e==null?void 0:e.rules)??[]).forEach(o=>{const l=yT(o);l.priorityGateways.forEach(c=>c.gateway_name&&n.add(c.gateway_name)),l.volumeSplits.forEach(c=>{var u;return((u=c.output)==null?void 0:u.gateway_name)&&n.add(c.output.gateway_name)}),l.volumeSplitPriorityEntries.forEach(c=>(c.output??[]).forEach(u=>u.gateway_name&&n.add(u.gateway_name)))});const a=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection);return(Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[]).forEach(o=>o.gateway_name&&n.add(o.gateway_name)),Array.from(n)}function bT({algo:t}){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data,r=(n==null?void 0:n.default_selection)||(n==null?void 0:n.defaultSelection);return i.jsxs("div",{className:"space-y-2.5",children:[((n==null?void 0:n.rules)??[]).map((a,s)=>{const{priorityGateways:o,volumeSplits:l,volumeSplitPriorityEntries:c,isVolumeSplit:u,isVolumeSplitPriority:d}=yT(a);return i.jsxs("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0d1018]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-3 py-1.5",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#78849a] leading-4",children:a.name||`Rule ${s+1}`}),a.routing_type&&i.jsx("span",{className:`text-[11px] font-semibold px-1.5 py-0.5 rounded-full ${a.routing_type==="volume_split_priority"?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":a.routing_type==="volume_split"?"bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-400":"bg-brand-100 dark:bg-brand-900/30 text-brand-600 dark:text-brand-400"} leading-4`,children:a.routing_type==="volume_split_priority"?"Split + Priority":a.routing_type==="volume_split"?"Volume Split":"Priority"})]}),i.jsxs("div",{className:"space-y-1.5 px-3 py-2.5",children:[(a.statements??[]).map((f,h)=>i.jsxs("div",{children:[h>0&&i.jsxs("div",{className:"flex items-center gap-2 my-1.5",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"}),i.jsx("span",{className:"text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"})]}),i.jsx(BH,{statement:f})]},h)),i.jsxs("div",{className:"flex items-start gap-2 pt-0.5 text-xs",children:[i.jsx("span",{className:"w-7 shrink-0 text-right text-[11px] font-bold text-brand-600 select-none leading-4",children:"→"}),i.jsxs("div",{className:"flex flex-wrap gap-1",children:[d?c.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-purple-50 dark:bg-purple-900/20 px-2 py-0.5 text-[11px] font-medium text-purple-700 dark:text-purple-300 leading-4",children:[f.split,"%: ",f.output.map(nu).join(", ")]},h)):u?l.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300 leading-4",children:[nu(f.output)," ",f.split,"%"]},h)):o.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-[11px] font-medium text-brand-700 dark:text-brand-300 leading-4",children:[h+1,". ",nu(f)]},h)),!d&&!u&&o.length===0&&i.jsx("span",{className:"text-slate-500 italic",children:"No output configured"})]})]})]})]},s)}),(()=>{const a=r,s=Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[];return s.length>0?i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("div",{className:"flex flex-wrap gap-1",children:s.map((o,l)=>i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-[11px] font-medium text-slate-600 dark:text-[#8090a8] leading-4",children:nu(o)},l))})]}):i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("span",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Not set — unmatched payments have no gateway"})]})})(),(!(n!=null&&n.rules)||n.rules.length===0)&&i.jsx("p",{className:"text-xs text-slate-500 italic",children:"No rules configured."})]})}function rOe({cond:t,op:e}){var n,r;return i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs",children:[i.jsx("span",{className:"select-none text-[11px] font-bold text-slate-500 dark:text-[#78849a] leading-4",children:e}),i.jsxs("span",{className:"rounded-md bg-slate-100 px-2 py-1 text-slate-700 dark:bg-[#1a1f2a] dark:text-[#c8d0de]",children:[tc(String(t.lhs??""))," ",i.jsx("span",{className:"font-mono text-slate-500 dark:text-[#78849a]",children:WAe(String(t.comparison??""))})," ",i.jsx("span",{className:"font-medium",children:((n=t.value)==null?void 0:n.type)==="metadata_variant"&&t.value.value&&typeof t.value.value=="object"?`{ "${t.value.value.key??""}" : "${t.value.value.value??""}" }`:tc(String(((r=t.value)==null?void 0:r.value)??""))})]})]})}function BH({statement:t}){const e=t.condition??[],n=t.nested??[];return i.jsxs("div",{className:"overflow-hidden rounded-lg border border-slate-200 dark:border-[#1e2330]",children:[i.jsx("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 px-2 py-2",children:e.map((r,a)=>i.jsx(rOe,{cond:r,op:a===0?"IF":"AND"},a))}),n.length>0&&i.jsxs("div",{className:"border-t border-slate-100 px-2 py-2 dark:border-[#1e2330]",children:[i.jsx("p",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:e.length>0?"and any of":"any of"}),i.jsx("div",{className:"space-y-1.5",children:n.map((r,a)=>i.jsxs("div",{children:[a>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("div",{className:"border-l-2 border-sky-200 pl-2 dark:border-sky-800",children:i.jsx(BH,{statement:r})})]},a))})]})]})}function aOe(){const t=Ao(),e=Hr(),{merchantId:n}=$r(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState("all"),[k,S]=g.useState("all"),[_,C]=g.useState(""),{data:E,mutate:P}=ct(n?`/routing/list/${n}`:null,()=>Fe(`/routing/list/${n}`)),{data:R,mutate:A}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`)),T=new Set((R||[]).map(z=>z.id)),D=(R||[]).find(z=>{var Z;return((Z=z.algorithm_data||z.algorithm)==null?void 0:Z.type)==="volume_split"}),L=(R||[]).find(z=>{var Z;return((Z=z.algorithm_data||z.algorithm)==null?void 0:Z.type)==="ab_test"}),X=L?(()=>{var Z;const z=(Z=L.algorithm_data||L.algorithm)==null?void 0:Z.data;return new Set([z==null?void 0:z.control_algorithm_id,z==null?void 0:z.variant_algorithm_id].filter(Boolean))})():new Set,J=(E||[]).filter(z=>{const Z=z.algorithm_data||z.algorithm;return(Z==null?void 0:Z.type)!=="volume_split"&&(Z==null?void 0:Z.type)!=="ab_test"&&(Z==null?void 0:Z.type)!=="volume_contract"}).sort((z,Z)=>F0(Z)-F0(z)),U=Array.from(new Set(J.flatMap(vL))).sort(),Y=J.filter(z=>{if(w==="active"&&!T.has(z.id)||w==="inactive"&&T.has(z.id)||k!=="all"&&!vL(z).includes(k))return!1;if(_.trim()){const Z=_.trim().toLowerCase();if(!z.name.toLowerCase().includes(Z)&&!z.id.toLowerCase().includes(Z))return!1}return!0});function W(z){a(Z=>{const pe=new Set(Z);return pe.has(z)?pe.delete(z):pe.add(z),pe})}async function G(z){if(n){if(D){o(z);return}await I(z)}}async function I(z){h(!0),v(null),y(null);try{await Fe("/routing/activate",{created_by:n,routing_algorithm_id:z}),y("Rule activated successfully."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{h(!1)}}async function q(z){m(z),v(null),y(null);try{await Fe("/routing/deactivate",{created_by:n,routing_algorithm_id:z}),y("Rule deactivated successfully."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{m(null)}}async function M(z){if(n){v(null),y(null);try{await Fe("/routing/delete",{created_by:n,routing_algorithm_id:z}),y("Rule deleted."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{d(null)}}}const B=J.find(z=>z.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Hs,{open:s!==null,title:"Switch to Rule-Based Routing?",description:`"${D==null?void 0:D.name}" (Volume Split) is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const z=s;o(null),I(z)},onCancel:()=>o(null)}),i.jsx(Hs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const z=l;c(null),q(z)},onCancel:()=>c(null)}),i.jsx(Hs,{open:u!==null,title:"Delete this rule?",description:`"${B==null?void 0:B.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>M(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(Ba,{title:"Rule-Based Routing",description:"Create conditions to route card and alternative payment transactions dynamically across multiple active gateways."})}),i.jsxs(we,{onClick:()=>e("/routing/rules/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?J.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No rule-based rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(DH,{label:"Rule Name & ID",value:_,onChange:C,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:z=>j(z),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Conditions Overview"}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Destination Gateway",value:k,options:[{value:"all",label:"All gateways"},...U.map(z=>({value:z,label:z}))],onChange:S,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Y.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:6,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),S("all"),C("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Y.map(z=>{const Z=T.has(z.id),pe=X.has(z.id),ae=r.has(z.id),ue=tOe(z),de=nOe(z),Q=Z?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":z.name,onClick:()=>W(z.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${Z?"bg-emerald-50/50 dark:bg-emerald-900/10":pe?"bg-purple-50/40 dark:bg-purple-900/10":""}`,children:[i.jsx("td",{className:"align-top px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[ae?i.jsx(ln,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(So,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:z.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:z.id})]})]})}),i.jsxs("td",{className:"align-top px-5 py-4",children:[i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${Z?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:Z?"Active":"Inactive"}),pe&&i.jsx("span",{className:"mt-1.5 block text-[11px] font-medium text-purple-600 dark:text-purple-400 leading-4",children:"In A/B test"})]}),i.jsx("td",{className:"max-w-[420px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words font-mono text-xs leading-[18px] text-slate-600 dark:text-[#8d96a8]",title:ue,children:ue})}),i.jsx("td",{className:"max-w-[300px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",title:de,children:de})}),i.jsx("td",{className:"align-top whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const fe=$H(z);return fe?i.jsxs("span",{title:fe.full,children:[fe.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:fe.time})]}):"—"})()}),i.jsx("td",{className:"align-top px-5 py-4",onClick:fe=>fe.stopPropagation(),children:i.jsx(IH,{items:[Z?{label:p===z.id?"Deactivating…":"Deactivate",icon:_y,onSelect:()=>c(z.id),disabled:p===z.id||!t}:{label:"Activate",icon:VW,tone:"positive",onSelect:()=>G(z.id),disabled:f||!t},{label:"Edit",icon:jl,onSelect:()=>e(`/routing/rules/${z.id}/edit`),disabled:!!Q,hint:Q},{label:"Duplicate",icon:nf,onSelect:()=>e(`/routing/rules/new?cloneFrom=${z.id}`),disabled:!t},{label:"Delete",icon:wn,tone:"danger",onSelect:()=>d(z.id),disabled:!!Q,hint:Q}]})})]},z.id),ae?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:6,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[z.description&&z.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:z.description}),i.jsx(bT,{algo:z})]})},`${z.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"Volume Split is active"})," — activating a rule-based rule will automatically deactivate it."]}),L&&i.jsxs($a,{tone:"info",children:[i.jsxs("strong",{children:['A/B experiment "',L.name,'" is active']}),' — rules marked "In A/B test" are used as experiment arms. Activating a rule directly will stop the experiment.']})]})}function Go({value:t,onChange:e,options:n,className:r="",triggerClassName:a,disabled:s=!1,dataCy:o}){var k;const[l,c]=g.useState(!1),[u,d]=g.useState(""),[f,h]=g.useState({}),p=g.useRef(null),m=g.useRef(null),x=g.useRef(null),v=((k=n.find(S=>S.value===t))==null?void 0:k.label)??t,b=(u?n.filter(S=>S.label.toLowerCase().includes(u.toLowerCase())||S.value.toLowerCase().includes(u.toLowerCase())):n).slice().sort((S,_)=>S.label.localeCompare(_.label));function y(){var _;const S=(_=p.current)==null?void 0:_.getBoundingClientRect();S&&(h({position:"fixed",top:S.bottom+4,left:S.left,minWidth:S.width,zIndex:9999}),c(!0))}g.useEffect(()=>{var S;l&&((S=x.current)==null||S.focus())},[l]),g.useEffect(()=>{if(!l)return;function S(C){var P,R;const E=C.target;!((P=p.current)!=null&&P.contains(E))&&!((R=m.current)!=null&&R.contains(E))&&w()}function _(C){C.key==="Escape"&&w()}return document.addEventListener("mousedown",S),document.addEventListener("keydown",_),()=>{document.removeEventListener("mousedown",S),document.removeEventListener("keydown",_)}},[l]);function w(){c(!1),d("")}function j(S){e(S),w()}return i.jsxs("div",{className:`relative ${r||(a?"block":"inline-block")}`,"data-cy":o,children:[i.jsxs("button",{ref:p,type:"button",disabled:s,onClick:()=>l?w():y(),className:a?`flex w-full items-center justify-between gap-2 text-left ${a}`:"cond-select flex w-full items-center justify-between gap-1 pr-2",style:{backgroundImage:"none",display:"flex",alignItems:"center"},"data-value":t,children:[i.jsx("span",{className:"min-w-0 truncate text-left",children:v||i.jsx("span",{className:"text-slate-500",children:"select..."})}),i.jsx(ln,{size:11,className:`shrink-0 text-slate-500 transition-transform duration-150 ${l?"rotate-180":""}`})]}),l&&gs.createPortal(i.jsxs("div",{ref:m,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"p-1.5 border-b border-slate-100 dark:border-[#1c1c24]",children:i.jsx("input",{ref:x,type:"text",value:u,onChange:S=>d(S.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(b.length*32+8,272)}px`},children:b.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):b.map(S=>i.jsx("button",{type:"button","data-value":S.value,onClick:()=>j(S.value),className:`w-full px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${S.value===t?"text-brand-600 dark:text-brand-400 font-medium bg-brand-50/50 dark:bg-brand-900/10":""}`,children:S.label},S.value))})]}),document.body)]})}const qn="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-brand-500 dark:border-[#222226]",sOe=["adyen","stripe","checkout","worldpay","braintree","paypal","chase","cybersource","globalpay","nuvei","rapyd","fiserv","authorizedotnet"],iOe=["USD","EUR","GBP","INR","JPY","AUD","CAD","SGD","AED","BHD","KWD"],oOe=["UTC","America/New_York","America/Chicago","America/Los_Angeles","Europe/London","Europe/Amsterdam","Europe/Berlin","Asia/Kolkata","Asia/Singapore","Asia/Tokyo","Australia/Sydney"],lOe={calendar_month:"Day of month the cycle starts (1–30)",calendar_quarter:"Month within the quarter the cycle starts (1–3)",calendar_year:"Month the cycle starts (1–12)"};let cOe=1;function zH(t){return{kind:"retroactive",bps:"",threshold:"",targeted:t,rebateLagDays:"0",rebateSettlement:"cash"}}function e_(){return{key:cOe++,id:"",connector:"",status:"active",cycleType:"calendar_month",anchor:"1",timezone:"UTC",archetype:"lumpsum",target:"",rewardKind:"flat",flatAmount:"",rebateBps:"",tiers:[zH(!0)]}}function eb(t){return t.trim()}function uOe(){const t=$r(te=>te.merchantId),e=Ao(),{mutate:n}=Wk(),{data:r,isLoading:a}=ct(t?`/routing/list/${t}`:null,te=>Fe(te),{revalidateOnFocus:!1}),{data:s}=ct(t?`/routing/list/active/${t}`:null,te=>Fe(te),{revalidateOnFocus:!1}),o=g.useMemo(()=>(r??[]).filter(te=>te.algorithm_for==="volume_commitment").sort((te,me)=>new Date(me.created_at??0).getTime()-new Date(te.created_at??0).getTime()),[r]),l=g.useMemo(()=>{var te;return((te=(s??[]).find(me=>me.algorithm_for==="volume_commitment"))==null?void 0:te.id)??null},[s]);function c(){n(`/routing/list/${t}`),n(`/routing/list/active/${t}`)}const[u,d]=g.useState(""),[f,h]=g.useState(""),[p,m]=g.useState("pace_guarded"),[x,v]=g.useState("5"),[b,y]=g.useState("gmv"),[w,j]=g.useState("USD"),[k,S]=g.useState("major"),[_,C]=g.useState(""),[E,P]=g.useState(""),[R,A]=g.useState(""),[T,D]=g.useState([e_()]),[L,X]=g.useState(!1),[J,U]=g.useState(null),[Y,W]=g.useState(null),[G,I]=g.useState(null),[q,M]=g.useState(null),[B,z]=g.useState(null),[Z,pe]=g.useState(null),[ae,ue]=g.useState(null),[de,Q]=g.useState(null),[fe,ne]=g.useState(null),[ce,he]=g.useState(null);function be(te,me){D(ve=>ve.map(Ee=>Ee.key===te?{...Ee,...me}:Ee))}function Pe(te,me,ve){D(Ee=>Ee.map(Oe=>{if(Oe.key!==te)return Oe;const Tt=Oe.tiers.map((Bt,Pt)=>ve.targeted===!0?Pt===me?{...Bt,...ve}:{...Bt,targeted:!1}:Pt===me?{...Bt,...ve}:Bt);return{...Oe,tiers:Tt}}))}function Ce(){const te={schema_version:1,routing_mode:p,tolerance:`${Math.round(parseFloat(x||"0")*100)}bps`,metric:b,currency:{denomination:w.trim().toUpperCase(),amount_units:k},expected_daily_traffic:eb(_),volume_contracts:T.map(me=>{const ve={id:me.id.trim(),connector:me.connector.trim(),status:me.status,billing_cycle:{type:me.cycleType,anchor:parseInt(me.anchor,10)||0,timezone:me.timezone.trim()}};return me.archetype==="lumpsum"?{...ve,archetype:"lumpsum",terms:{target:eb(me.target),reward:me.rewardKind==="flat"?{kind:"flat",value:{flat_amount:eb(me.flatAmount)}}:{kind:"percentage",value:{rebate_bps:parseInt(me.rebateBps,10)||0}}}}:{...ve,archetype:"tiered",terms:{tiers:me.tiers.map(Ee=>({kind:Ee.kind,rate:Ee.kind==="retroactive"?{rebate_bps:parseInt(Ee.bps,10)||0}:{rate_bps:parseInt(Ee.bps,10)||0},threshold:eb(Ee.threshold),targeted:Ee.targeted,rebate_lag_days:parseInt(Ee.rebateLagDays,10)||0,rebate_settlement:Ee.rebateSettlement}))}}})};return E.trim()&&(te.forecast_interval_secs=parseInt(E,10)),R.trim()&&(te.steering_interval_secs=parseInt(R,10)),te}function Re(){d(""),h(""),m("pace_guarded"),v("5"),y("gmv"),j("USD"),S("major"),C(""),P(""),A(""),D([e_()])}async function Be(){if(t){X(!0),U(null),W(null);try{const te={name:u.trim(),description:f.trim()||`Volume commitments for ${t}`,created_by:t,algorithm_for:"volume_commitment",algorithm:{type:"volume_contract",data:Ce()}};await Fe("/routing/create",te),W(u.trim()),Re(),c()}catch(te){U(te instanceof Error?te.message:"Failed to create contract document")}finally{X(!1)}}}async function st(te){M(te),he(null);try{await Fe("/routing/activate",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to activate")}finally{M(null)}}async function F(te){z(te),he(null);try{await Fe("/routing/deactivate",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to deactivate")}finally{z(null)}}async function se(te){pe(te),he(null);try{await Fe("/routing/delete",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to delete")}finally{pe(null)}}function ie(te,me){return i.jsxs("div",{className:"mb-1.5 flex items-baseline justify-between gap-2",children:[i.jsx("span",{className:ks,children:te}),me?i.jsx("span",{className:"text-[11px] text-slate-400 dark:text-[#8d96aa]",children:me}):null]})}const Se=b==="volume"?"transaction count":`${k} ${w.toUpperCase()} units`;return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-end justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Volume Contracts"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Express PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic; nothing here changes routing until activated."})]})}),i.jsxs("div",{className:"grid grid-cols-1 gap-6 xl:grid-cols-3",children:[i.jsxs(Te,{className:"xl:col-span-1",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(Fj,{size:18,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("h2",{className:ra,children:"Contract Documents"})]})}),i.jsxs(He,{children:[t?a?i.jsxs("div",{className:"flex items-center gap-2 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading…"]}):o.length===0?i.jsx("p",{className:pl,children:"No contract documents yet. Build one on the right."}):i.jsx("ul",{className:"space-y-2",children:o.map(te=>{var Oe,Tt,Bt;const me=te.id===l,ve=G===te.id,Ee=(Oe=te.algorithm_data??te.algorithm)==null?void 0:Oe.data;return i.jsxs("li",{className:`rounded-xl border px-3 py-2.5 transition-colors ${me?"border-emerald-200 bg-emerald-50/50 dark:border-emerald-500/25 dark:bg-emerald-500/5":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("button",{type:"button",className:"min-w-0 flex-1 text-left",onClick:()=>I(ve?null:te.id),children:[i.jsx("span",{className:"block truncate text-sm font-medium text-slate-800 dark:text-white",children:te.name}),i.jsxs("span",{className:"block text-[11px] text-slate-400 dark:text-[#8d96aa]",children:[((Tt=Ee==null?void 0:Ee.volume_contracts)==null?void 0:Tt.length)??0," contract",(((Bt=Ee==null?void 0:Ee.volume_contracts)==null?void 0:Bt.length)??0)===1?"":"s",te.created_at?` · ${new Date(te.created_at).toLocaleDateString()}`:""]})]}),me?i.jsx(Me,{variant:"green",children:"Active"}):i.jsx(Me,{variant:"gray",children:"Inactive"}),i.jsx("button",{type:"button",className:"text-slate-400 hover:text-slate-600 dark:hover:text-white",onClick:()=>I(ve?null:te.id),"aria-label":ve?"Collapse":"Expand",children:ve?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})})]}),ve?i.jsxs("div",{className:"mt-2 space-y-2",children:[i.jsx("pre",{className:"max-h-64 overflow-auto rounded-lg bg-slate-50 p-2.5 text-[11px] leading-relaxed text-slate-600 dark:bg-[#0a0d12] dark:text-[#9ca7ba]",children:JSON.stringify(Ee,null,2)}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:me?i.jsxs(we,{size:"sm",variant:"danger",disabled:B===te.id||!e,onClick:()=>Q(te.id),children:[B===te.id?i.jsx(at,{size:12}):null," Deactivate"]}):i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",disabled:q===te.id||!e,onClick:()=>l?ue(te.id):st(te.id),children:[q===te.id?i.jsx(at,{size:12}):null," Activate"]}),i.jsxs(we,{size:"sm",variant:"ghost",disabled:Z===te.id||!e,onClick:()=>ne(te.id),children:[i.jsx(wn,{size:12})," Delete"]})]})})]}):null]},te.id)})}):i.jsx("p",{className:pl,children:"Set a merchant ID to see its contract documents."}),i.jsx("div",{className:"mt-3",children:i.jsx(vt,{error:ce})})]})]}),i.jsxs(Te,{className:"xl:col-span-2",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(Cy,{size:18,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("h2",{className:ra,children:"New Contract Document"})]})}),i.jsx(He,{children:i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[ie("Name"),i.jsx("input",{className:qn,placeholder:"q3_volume_contracts",value:u,onChange:te=>d(te.target.value)})]}),i.jsxs("div",{children:[ie("Description"),i.jsx("input",{className:qn,placeholder:"Q3 PSP volume commitments",value:f,onChange:te=>h(te.target.value)})]})]}),i.jsxs(aA,{children:[i.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[i.jsx(INe,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ks,children:"Merchant-level settings"})]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[ie("Routing mode"),i.jsx(Go,{triggerClassName:qn,value:p,onChange:te=>m(te),options:[{value:"pace_guarded",label:"Pace-guarded (auth-rate first)"},{value:"volume_commitment",label:"Volume-commitment first"}]})]}),i.jsxs("div",{children:[ie("Tolerance","percentage points"),i.jsx("input",{className:qn,type:"number",min:0,step:.5,placeholder:"5",value:x,onChange:te=>v(te.target.value)})]}),i.jsxs("div",{children:[ie("Metric"),i.jsx(Go,{triggerClassName:qn,value:b,onChange:te=>y(te),options:[{value:"gmv",label:"GMV (money processed)"},{value:"volume",label:"Volume (transaction count)"}]})]}),i.jsxs("div",{children:[ie("Currency"),i.jsx(bx,{className:qn,value:w,onChange:j,options:iOe,placeholder:"USD"})]}),i.jsxs("div",{children:[ie("Amount units"),i.jsx(Go,{triggerClassName:qn,value:k,onChange:te=>S(te),options:[{value:"major",label:"Major (6000000 = $6M)"},{value:"minor",label:"Minor (600000000 = $6M in cents)"}]})]}),i.jsxs("div",{children:[ie("Expected daily traffic",Se),i.jsx("input",{className:qn,placeholder:"800000",value:_,onChange:te=>C(te.target.value)})]}),i.jsxs("div",{children:[ie("Forecast interval","seconds, optional"),i.jsx("input",{className:qn,type:"number",min:60,placeholder:"engine default",value:E,onChange:te=>P(te.target.value)})]}),i.jsxs("div",{children:[ie("Steering interval","seconds, optional"),i.jsx("input",{className:qn,type:"number",min:60,placeholder:"engine default",value:R,onChange:te=>A(te.target.value)})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[T.map((te,me)=>i.jsxs(aA,{children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsxs("span",{className:ks,children:["Contract ",me+1]}),T.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>D(ve=>ve.filter(Ee=>Ee.key!==te.key)),"aria-label":"Remove contract",children:i.jsx(wn,{size:14})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[ie("Contract ID"),i.jsx("input",{className:qn,placeholder:"adyen_2026_lumpsum",value:te.id,onChange:ve=>be(te.key,{id:ve.target.value})})]}),i.jsxs("div",{children:[ie("Connector","exact gateway name"),i.jsx(bx,{className:qn,value:te.connector,onChange:ve=>be(te.key,{connector:ve}),options:sOe,placeholder:"adyen"})]}),i.jsxs("div",{children:[ie("Status"),i.jsx(Go,{triggerClassName:qn,value:te.status,onChange:ve=>be(te.key,{status:ve}),options:[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}]})]}),i.jsxs("div",{children:[ie("Billing cycle"),i.jsx(Go,{triggerClassName:qn,value:te.cycleType,onChange:ve=>be(te.key,{cycleType:ve}),options:[{value:"calendar_month",label:"Calendar month"},{value:"calendar_quarter",label:"Calendar quarter"},{value:"calendar_year",label:"Calendar year"}]})]}),i.jsxs("div",{children:[ie("Anchor",lOe[te.cycleType]),i.jsx("input",{className:qn,type:"number",min:1,value:te.anchor,onChange:ve=>be(te.key,{anchor:ve.target.value})})]}),i.jsxs("div",{children:[ie("Timezone","IANA"),i.jsx(bx,{className:qn,value:te.timezone,onChange:ve=>be(te.key,{timezone:ve}),options:oOe,placeholder:"UTC"})]})]}),i.jsxs("div",{className:"mt-4",children:[ie("Archetype"),i.jsx("div",{className:"flex gap-2",children:[["lumpsum","Lumpsum — reward on hitting a target"],["tiered","Tiered — rebate ladder by threshold"]].map(([ve,Ee])=>i.jsx("button",{type:"button",onClick:()=>be(te.key,{archetype:ve}),className:`rounded-full border px-4 py-1.5 text-xs font-medium transition-colors ${te.archetype===ve?"border-brand-600 bg-brand-600 text-white":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-[#9ca7ba] dark:hover:bg-[#151518]"}`,children:Ee},ve))})]}),te.archetype==="lumpsum"?i.jsxs("div",{className:"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-3",children:[i.jsxs("div",{children:[ie("Target",Se),i.jsx("input",{className:qn,placeholder:"6000000",value:te.target,onChange:ve=>be(te.key,{target:ve.target.value})})]}),i.jsxs("div",{children:[ie("Reward kind"),i.jsx(Go,{triggerClassName:qn,value:te.rewardKind,onChange:ve=>be(te.key,{rewardKind:ve}),options:[{value:"flat",label:"Flat amount"},{value:"percentage",label:"Percentage rebate"}]})]}),te.rewardKind==="flat"?i.jsxs("div",{children:[ie("Flat amount",Se),i.jsx("input",{className:qn,placeholder:"15000",value:te.flatAmount,onChange:ve=>be(te.key,{flatAmount:ve.target.value})})]}):i.jsxs("div",{children:[ie("Rebate","basis points"),i.jsx("input",{className:qn,type:"number",min:1,max:1e4,placeholder:"25",value:te.rebateBps,onChange:ve=>be(te.key,{rebateBps:ve.target.value})})]})]}):i.jsxs("div",{className:"mt-4 space-y-3",children:[te.tiers.map((ve,Ee)=>i.jsxs("div",{className:"rounded-xl border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] font-medium text-slate-600 dark:text-[#9ca7ba]",children:[i.jsx("input",{type:"radio",name:`targeted-${te.key}`,checked:ve.targeted,onChange:()=>Pe(te.key,Ee,{targeted:!0}),disabled:ve.kind==="marginal"}),"Targeted tier (the goal the engine steers for)"]}),te.tiers.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>be(te.key,{tiers:te.tiers.filter((Oe,Tt)=>Tt!==Ee)}),"aria-label":"Remove tier",children:i.jsx(wn,{size:13})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-5",children:[i.jsxs("div",{children:[ie("Kind"),i.jsx(Go,{triggerClassName:qn,value:ve.kind,onChange:Oe=>Pe(te.key,Ee,{kind:Oe,...Oe==="marginal"?{targeted:!1}:{}}),options:[{value:"retroactive",label:"Retroactive (whole period)"},{value:"marginal",label:"Marginal (above threshold)"}]})]}),i.jsxs("div",{children:[ie("Threshold",Se),i.jsx("input",{className:qn,placeholder:"8000000",value:ve.threshold,onChange:Oe=>Pe(te.key,Ee,{threshold:Oe.target.value})})]}),i.jsxs("div",{children:[ie(ve.kind==="retroactive"?"Rebate":"Rate","bps"),i.jsx("input",{className:qn,type:"number",min:1,max:1e4,placeholder:"20",value:ve.bps,onChange:Oe=>Pe(te.key,Ee,{bps:Oe.target.value})})]}),i.jsxs("div",{children:[ie("Rebate lag","days"),i.jsx("input",{className:qn,type:"number",min:0,max:365,value:ve.rebateLagDays,onChange:Oe=>Pe(te.key,Ee,{rebateLagDays:Oe.target.value})})]}),i.jsxs("div",{children:[ie("Settlement"),i.jsx(Go,{triggerClassName:qn,value:ve.rebateSettlement,onChange:Oe=>Pe(te.key,Ee,{rebateSettlement:Oe}),options:[{value:"cash",label:"Cash"},{value:"credit_note",label:"Credit note"}]})]})]})]},Ee)),i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>be(te.key,{tiers:[...te.tiers,zH(!1)]}),children:[i.jsx(Qn,{size:13})," Add tier"]})]})]},te.key)),i.jsxs(we,{variant:"secondary",onClick:()=>D(te=>[...te,e_()]),children:[i.jsx(Qn,{size:14})," Add PSP contract"]})]}),i.jsxs("div",{className:"space-y-3 border-t border-slate-100 pt-4 dark:border-[#1a1d25]",children:[i.jsx(vt,{error:J}),Y?i.jsxs("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/10 px-4 py-3 text-sm text-emerald-600 dark:text-emerald-400",children:["“",Y,"” created. Activate it from the list to hand it to the routing engine."]}):null,i.jsxs("div",{className:"flex items-center justify-end gap-3",children:[i.jsx(we,{variant:"ghost",onClick:Re,disabled:L,children:"Reset"}),i.jsxs(we,{onClick:Be,disabled:L||!t||!u.trim()||!e,children:[L?i.jsx(at,{size:14}):null," Create Document"]})]})]})]})})]})]}),i.jsx(Hs,{open:ae!=null,title:"Replace the active document?",description:"Another contract document is currently active. Activating this one hands the engine this document instead.",confirmLabel:"Activate",variant:"primary",onConfirm:()=>{ae&&st(ae),ue(null)},onCancel:()=>ue(null)}),i.jsx(Hs,{open:de!=null,title:"Deactivate this document?",description:"The routing engine stops receiving volume-commitment configuration until another document is activated.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{de&&F(de),Q(null)},onCancel:()=>Q(null)}),i.jsx(Hs,{open:fe!=null,title:"Delete this document?",description:"This permanently removes the contract document. Only inactive documents can be deleted.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{fe&&se(fe),ne(null)},onCancel:()=>ne(null)})]})}function Ww({message:t}){return t?i.jsxs("p",{role:"alert",className:"mt-1.5 flex items-start gap-1.5 text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:[i.jsx(LNe,{size:14,className:"mt-px shrink-0"}),i.jsx("span",{children:t})]}):null}function UH(t){return t?"!border-red-400 focus:!ring-red-400 dark:!border-red-500/60":""}let xA=[],VH=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e>1;if(t=VH[r])e=r+1;else return!0;if(e==n)return!1}}function bL(t){return t>=127462&&t<=127487}const wL=8205;function fOe(t,e,n=!0,r=!0){return(n?WH:hOe)(t,e,r)}function WH(t,e,n){if(e==t.length)return e;e&&HH(t.charCodeAt(e))&&GH(t.charCodeAt(e-1))&&e--;let r=t_(t,e);for(e+=kL(r);e=0&&bL(t_(t,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function hOe(t,e,n){for(;e>0;){let r=WH(t,e-2,n);if(r=56320&&t<57344}function GH(t){return t>=55296&&t<56320}function kL(t){return t<65536?1:2}class en{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,r){[e,n]=Bp(this,e,n);let a=[];return this.decompose(0,e,a,2),r.length&&r.decompose(0,r.length,a,3),this.decompose(n,this.length,a,1),Jo.from(a,this.length-(n-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=Bp(this,e,n);let r=[];return this.decompose(e,n,r,0),Jo.from(r,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),a=new wx(this),s=new wx(e);for(let o=n,l=n;;){if(a.next(o),s.next(o),o=0,a.lineBreak!=s.lineBreak||a.done!=s.done||a.value!=s.value)return!1;if(l+=a.value.length,a.done||l>=r)return!0}}iter(e=1){return new wx(this,e)}iterRange(e,n=this.length){return new qH(this,e,n)}iterLines(e,n){let r;if(e==null)r=this.iter();else{n==null&&(n=this.lines+1);let a=this.line(e).from;r=this.iterRange(a,Math.max(a,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new KH(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?en.empty:e.length<=32?new Tr(e):Jo.from(Tr.split(e,[]))}}class Tr extends en{constructor(e,n=pOe(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.text[s],l=a+o.length;if((n?r:l)>=e)return new mOe(a,l,r,o);a=l+1,r++}}decompose(e,n,r,a){let s=e<=0&&n>=this.length?this:new Tr(jL(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(a&1){let o=r.pop(),l=e1(s.text,o.text.slice(),0,s.length);if(l.length<=32)r.push(new Tr(l,o.length+s.length));else{let c=l.length>>1;r.push(new Tr(l.slice(0,c)),new Tr(l.slice(c)))}}else r.push(s)}replace(e,n,r){if(!(r instanceof Tr))return super.replace(e,n,r);[e,n]=Bp(this,e,n);let a=e1(this.text,e1(r.text,jL(this.text,0,e)),n),s=this.length+r.length-(n-e);return a.length<=32?new Tr(a,s):Jo.from(Tr.split(a,[]),s)}sliceString(e,n=this.length,r=` -`){[e,n]=Bp(this,e,n);let a="";for(let s=0,o=0;s<=n&&oe&&o&&(a+=r),es&&(a+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return a}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let r=[],a=-1;for(let s of e)r.push(s),a+=s.length+1,r.length==32&&(n.push(new Tr(r,a)),r=[],a=-1);return a>-1&&n.push(new Tr(r,a)),n}}class Jo extends en{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.children[s],l=a+o.length,c=r+o.lines-1;if((n?c:l)>=e)return o.lineInner(e,n,r,a);a=l+1,r=c+1}}decompose(e,n,r,a){for(let s=0,o=0;o<=n&&s=o){let u=a&((o<=e?1:0)|(c>=n?2:0));o>=e&&c<=n&&!u?r.push(l):l.decompose(e-o,n-o,r,u)}o=c+1}}replace(e,n,r){if([e,n]=Bp(this,e,n),r.lines=s&&n<=l){let c=o.replace(e-s,n-s,r),u=this.lines-o.lines+c.lines;if(c.lines>4&&c.lines>u>>6){let d=this.children.slice();return d[a]=c,new Jo(d,this.length-(n-e)+r.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,r)}sliceString(e,n=this.length,r=` -`){[e,n]=Bp(this,e,n);let a="";for(let s=0,o=0;se&&s&&(a+=r),eo&&(a+=l.sliceString(e-o,n-o,r)),o=c+1}return a}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof Jo))return 0;let r=0,[a,s,o,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;a+=n,s+=n){if(a==o||s==l)return r;let c=this.children[a],u=e.children[s];if(c!=u)return r+c.scanIdentical(u,n);r+=c.length+1}}static from(e,n=e.reduce((r,a)=>r+a.length+1,-1)){let r=0;for(let p of e)r+=p.lines;if(r<32){let p=[];for(let m of e)m.flatten(p);return new Tr(p,n)}let a=Math.max(32,r>>5),s=a<<1,o=a>>1,l=[],c=0,u=-1,d=[];function f(p){let m;if(p.lines>s&&p instanceof Jo)for(let x of p.children)f(x);else p.lines>o&&(c>o||!c)?(h(),l.push(p)):p instanceof Tr&&c&&(m=d[d.length-1])instanceof Tr&&p.lines+m.lines<=32?(c+=p.lines,u+=p.length+1,d[d.length-1]=new Tr(m.text.concat(p.text),m.length+1+p.length)):(c+p.lines>a&&h(),c+=p.lines,u+=p.length+1,d.push(p))}function h(){c!=0&&(l.push(d.length==1?d[0]:Jo.from(d,u)),u=-1,c=d.length=0)}for(let p of e)f(p);return h(),l.length==1?l[0]:new Jo(l,n)}}en.empty=new Tr([""],0);function pOe(t){let e=-1;for(let n of t)e+=n.length+1;return e}function e1(t,e,n=0,r=1e9){for(let a=0,s=0,o=!0;s=n&&(c>r&&(l=l.slice(0,r-a)),a0?1:(e instanceof Tr?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,a=this.nodes[r],s=this.offsets[r],o=s>>1,l=a instanceof Tr?a.text.length:a.children.length;if(o==(n>0?l:0)){if(r==0)return this.done=!0,this.value="",this;n>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[r]+=n,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(a instanceof Tr){let c=a.text[o+(n<0?-1:0)];if(this.offsets[r]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=a.children[o+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[r]+=n):(n<0&&this.offsets[r]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof Tr?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class qH{constructor(e,n,r){this.value="",this.done=!1,this.cursor=new wx(e,n>r?-1:1),this.pos=n>r?e.length:0,this.from=Math.min(n,r),this.to=Math.max(n,r)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let r=n<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:a}=this.cursor.next(e);return this.pos+=(a.length+e)*n,this.value=a.length<=r?a:n<0?a.slice(a.length-r):a.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class KH{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:r,value:a}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=a,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(en.prototype[Symbol.iterator]=function(){return this.iter()},wx.prototype[Symbol.iterator]=qH.prototype[Symbol.iterator]=KH.prototype[Symbol.iterator]=function(){return this});class mOe{constructor(e,n,r,a){this.from=e,this.to=n,this.number=r,this.text=a}get length(){return this.to-this.from}}function Bp(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function ba(t,e,n=!0,r=!0){return fOe(t,e,n,r)}function gOe(t){return t>=56320&&t<57344}function xOe(t){return t>=55296&&t<56320}function Ps(t,e){let n=t.charCodeAt(e);if(!xOe(n)||e+1==t.length)return n;let r=t.charCodeAt(e+1);return gOe(r)?(n-55296<<10)+(r-56320)+65536:n}function wT(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function Zo(t){return t<65536?1:2}const yA=/\r\n?|\n/;var ps=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(ps||(ps={}));class ml{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;ne)return s+(e-a);s+=l}else{if(r!=ps.Simple&&u>=e&&(r==ps.TrackDel&&ae||r==ps.TrackBefore&&ae))return null;if(u>e||u==e&&n<0&&!l)return e==a||n<0?s:s+c;s+=c}a=u}if(e>a)throw new RangeError(`Position ${e} is out of range for changeset of length ${a}`);return s}touchesRange(e,n=e){for(let r=0,a=0;r=0&&a<=n&&l>=e)return an?"cover":!0;a=l}return!1}toString(){let e="";for(let n=0;n=0?":"+a:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ml(e)}static create(e){return new ml(e)}}class Jr extends ml{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return vA(this,(n,r,a,s,o)=>e=e.replace(a,a+(r-n),o),!1),e}mapDesc(e,n=!1){return bA(this,e,n,!0)}invert(e){let n=this.sections.slice(),r=[];for(let a=0,s=0;a=0){n[a]=l,n[a+1]=o;let c=a>>1;for(;r.length0&&ru(r,n,s.text),s.forward(d),l+=d}let u=e[o++];for(;l>1].toJSON()))}return e}static of(e,n,r){let a=[],s=[],o=0,l=null;function c(d=!1){if(!d&&!a.length)return;oh||f<0||h>n)throw new RangeError(`Invalid change range ${f} to ${h} (in doc of length ${n})`);let m=p?typeof p=="string"?en.of(p.split(r||yA)):p:en.empty,x=m.length;if(f==h&&x==0)return;fo&&qa(a,f-o,-1),qa(a,h-f,x),ru(s,a,m),o=h}}return u(e),c(!l),l}static empty(e){return new Jr(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let a=0;al&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;r.length=0&&n<=0&&n==t[a+1]?t[a]+=e:a>=0&&e==0&&t[a]==0?t[a+1]+=n:r?(t[a]+=e,t[a+1]+=n):t.push(e,n)}function ru(t,e,n){if(n.length==0)return;let r=e.length-2>>1;if(r>1])),!(n||o==t.sections.length||t.sections[o+1]<0);)l=t.sections[o++],c=t.sections[o++];e(a,u,s,d,f),a=u,s=d}}}function bA(t,e,n,r=!1){let a=[],s=r?[]:null,o=new B0(t),l=new B0(e);for(let c=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let u=Math.min(o.len,l.len);qa(a,u,-1),o.forward(u),l.forward(u)}else if(l.ins>=0&&(o.ins<0||c==o.i||o.off==0&&(l.len=0&&c=0){let u=0,d=o.len;for(;d;)if(l.ins==-1){let f=Math.min(d,l.len);u+=f,d-=f,l.forward(f)}else if(l.ins==0&&l.lenc||o.ins>=0&&o.len>c)&&(l||r.length>u),s.forward2(c),o.forward(c)}}}}class B0{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return n>=e.length?en.empty:e[n]}textBit(e){let{inserted:n}=this.set,r=this.i-2>>1;return r>=n.length&&!e?en.empty:n[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class _d{constructor(e,n,r){this.from=e,this.to=n,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let r,a;return this.empty?r=a=e.mapPos(this.from,n):(r=e.mapPos(this.from,1),a=e.mapPos(this.to,-1)),r==this.from&&a==this.to?this:new _d(r,a,this.flags)}extend(e,n=e,r=0){if(e<=this.anchor&&n>=this.anchor)return Ne.range(e,n,void 0,void 0,r);let a=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return Ne.range(this.anchor,a,void 0,void 0,r)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Ne.range(e.anchor,e.head)}static create(e,n,r){return new _d(e,n,r)}}class Ne{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:Ne.create(this.ranges.map(r=>r.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Ne(e.ranges.map(n=>_d.fromJSON(n)),e.main)}static single(e,n=e){return new Ne([Ne.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,a=0;aa.from-s.from),n=e.indexOf(r);for(let a=1;as.head?Ne.range(c,l):Ne.range(l,c))}}return new Ne(e,n)}}function XH(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let kT=0;class Ye{constructor(e,n,r,a,s){this.combine=e,this.compareInput=n,this.compare=r,this.isStatic=a,this.id=kT++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Ye(e.combine||(n=>n),e.compareInput||((n,r)=>n===r),e.compare||(e.combine?(n,r)=>n===r:jT),!!e.static,e.enables)}of(e){return new t1([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new t1(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new t1(e,this,2,n)}from(e,n){return n||(n=r=>r),this.compute([e],r=>n(r.field(e)))}}function jT(t,e){return t==e||t.length==e.length&&t.every((n,r)=>n===e[r])}class t1{constructor(e,n,r,a){this.dependencies=e,this.facet=n,this.type=r,this.value=a,this.id=kT++}dynamicSlot(e){var n;let r=this.value,a=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,c=!1,u=!1,d=[];for(let f of this.dependencies)f=="doc"?c=!0:f=="selection"?u=!0:((n=e[f.id])!==null&&n!==void 0?n:1)&1||d.push(e[f.id]);return{create(f){return f.values[o]=r(f),1},update(f,h){if(c&&h.docChanged||u&&(h.docChanged||h.selection)||wA(f,d)){let p=r(f);if(l?!SL(p,f.values[o],a):!a(p,f.values[o]))return f.values[o]=p,1}return 0},reconfigure:(f,h)=>{let p,m=h.config.address[s];if(m!=null){let x=Gw(h,m);if(this.dependencies.every(v=>v instanceof Ye?h.facet(v)===f.facet(v):v instanceof ns?h.field(v,!1)==f.field(v,!1):!0)||(l?SL(p=r(f),x,a):a(p=r(f),x)))return f.values[o]=x,0}else p=r(f);return f.values[o]=p,1}}}}function SL(t,e,n){if(t.length!=e.length)return!1;for(let r=0;rt[c.id]),a=n.map(c=>c.type),s=r.filter(c=>!(c&1)),o=t[e.id]>>1;function l(c){let u=[];for(let d=0;dr===a),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(tb).find(r=>r.field==this);return((n==null?void 0:n.create)||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:r=>(r.values[n]=this.create(r),1),update:(r,a)=>{let s=r.values[n],o=this.updateF(s,a);return this.compareF(s,o)?0:(r.values[n]=o,1)},reconfigure:(r,a)=>{let s=r.facet(tb),o=a.facet(tb),l;return(l=s.find(c=>c.field==this))&&l!=o.find(c=>c.field==this)?(r.values[n]=l.create(r),1):a.config.address[this.id]!=null?(r.values[n]=a.field(this),0):(r.values[n]=this.create(r),1)}}}init(e){return[this,tb.of({field:this,create:e})]}get extension(){return this}}const fd={lowest:4,low:3,default:2,high:1,highest:0};function bg(t){return e=>new JH(e,t)}const _f={highest:bg(fd.highest),high:bg(fd.high),default:bg(fd.default),low:bg(fd.low),lowest:bg(fd.lowest)};class JH{constructor(e,n){this.inner=e,this.prec=n}}class Wj{of(e){return new kA(this,e)}reconfigure(e){return Wj.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class kA{constructor(e,n){this.compartment=e,this.inner=n}}class Hw{constructor(e,n,r,a,s,o){for(this.base=e,this.compartments=n,this.dynamicSlots=r,this.address=a,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,n,r){let a=[],s=Object.create(null),o=new Map;for(let h of vOe(e,n,o))h instanceof ns?a.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h);let l=Object.create(null),c=[],u=[];for(let h of a)l[h.id]=u.length<<1,u.push(p=>h.slot(p));let d=r==null?void 0:r.config.facets;for(let h in s){let p=s[h],m=p[0].facet,x=d&&d[h]||[];if(p.every(v=>v.type==0))if(l[m.id]=c.length<<1|1,jT(x,p))c.push(r.facet(m));else{let v=m.combine(p.map(b=>b.value));c.push(r&&m.compare(v,r.facet(m))?r.facet(m):v)}else{for(let v of p)v.type==0?(l[v.id]=c.length<<1|1,c.push(v.value)):(l[v.id]=u.length<<1,u.push(b=>v.dynamicSlot(b)));l[m.id]=u.length<<1,u.push(v=>yOe(v,m,p))}}let f=u.map(h=>h(l));return new Hw(e,o,f,l,c,s)}}function vOe(t,e,n){let r=[[],[],[],[],[]],a=new Map;function s(o,l){let c=a.get(o);if(c!=null){if(c<=l)return;let u=r[c].indexOf(o);u>-1&&r[c].splice(u,1),o instanceof kA&&n.delete(o.compartment)}if(a.set(o,l),Array.isArray(o))for(let u of o)s(u,l);else if(o instanceof kA){if(n.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let u=e.get(o.compartment)||o.inner;n.set(o.compartment,u),s(u,l)}else if(o instanceof JH)s(o.inner,o.prec);else if(o instanceof ns)r[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof t1)r[l].push(o),o.facet.extensions&&s(o.facet.extensions,fd.default);else{let u=o.extension;if(!u)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(u,l)}}return s(t,fd.default),r.reduce((o,l)=>o.concat(l))}function kx(t,e){if(e&1)return 2;let n=e>>1,r=t.status[n];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;t.status[n]=4;let a=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|a}function Gw(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const ZH=Ye.define(),jA=Ye.define({combine:t=>t.some(e=>e),static:!0}),QH=Ye.define({combine:t=>t.length?t[0]:void 0,static:!0}),eG=Ye.define(),tG=Ye.define(),nG=Ye.define(),rG=Ye.define({combine:t=>t.length?t[0]:!1});class _l{constructor(e,n){this.type=e,this.value=n}static define(){return new bOe}}class bOe{of(e){return new _l(this,e)}}class wOe{constructor(e){this.map=e}of(e){return new Ot(this,e)}}class Ot{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Ot(this.type,n)}is(e){return this.type==e}static define(e={}){return new wOe(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let r=[];for(let a of e){let s=a.map(n);s&&r.push(s)}return r}}Ot.reconfigure=Ot.define();Ot.appendConfig=Ot.define();class ta{constructor(e,n,r,a,s,o){this.startState=e,this.changes=n,this.selection=r,this.effects=a,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&XH(r,n.newLength),s.some(l=>l.type==ta.time)||(this.annotations=s.concat(ta.time.of(Date.now())))}static create(e,n,r,a,s,o){return new ta(e,n,r,a,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(ta.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}ta.time=_l.define();ta.userEvent=_l.define();ta.addToHistory=_l.define();ta.remote=_l.define();function kOe(t,e){let n=[];for(let r=0,a=0;;){let s,o;if(r=t[r]))s=t[r++],o=t[r++];else if(a=0;a--){let s=r[a](t);s instanceof ta?t=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ta?t=s[0]:t=sG(e,Vh(s),!1)}return t}function SOe(t){let e=t.startState,n=e.facet(nG),r=t;for(let a=n.length-1;a>=0;a--){let s=n[a](t);s&&Object.keys(s).length&&(r=aG(r,SA(e,s,t.changes.newLength),!0))}return r==t?t:ta.create(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}const _Oe=[];function Vh(t){return t==null?_Oe:Array.isArray(t)?t:[t]}var sr=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(sr||(sr={}));const NOe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let _A;try{_A=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function COe(t){if(_A)return _A.test(t);for(let e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||NOe.test(n)))return!0}return!1}function EOe(t){return e=>{if(!/\S/.test(e))return sr.Space;if(COe(e))return sr.Word;for(let n=0;n-1)return sr.Word;return sr.Other}}class Xt{constructor(e,n,r,a,s,o){this.config=e,this.doc=n,this.selection=r,this.values=a,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;la.set(u,c)),n=null),a.set(l.value.compartment,l.value.extension)):l.is(Ot.reconfigure)?(n=null,r=l.value):l.is(Ot.appendConfig)&&(n=null,r=Vh(r).concat(l.value));let s;n?s=e.startState.values.slice():(n=Hw.resolve(r,a,this),s=new Xt(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,u)=>u.reconfigure(c,this),null).values);let o=e.startState.facet(jA)?e.newSelection:e.newSelection.asSingle();new Xt(n,e.newDoc,o,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Ne.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,r=e(n.ranges[0]),a=this.changes(r.changes),s=[r.range],o=Vh(r.effects);for(let l=1;lo.spec.fromJSON(l,c)))}}return Xt.create({doc:e.doc,selection:Ne.fromJSON(e.selection),extensions:n.extensions?a.concat([n.extensions]):a})}static create(e={}){let n=Hw.resolve(e.extensions||[],new Map),r=e.doc instanceof en?e.doc:en.of((e.doc||"").split(n.staticFacet(Xt.lineSeparator)||yA)),a=e.selection?e.selection instanceof Ne?e.selection:Ne.single(e.selection.anchor,e.selection.head):Ne.single(0);return XH(a,r.length),n.staticFacet(jA)||(a=a.asSingle()),new Xt(n,r,a,n.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(Xt.tabSize)}get lineBreak(){return this.facet(Xt.lineSeparator)||` -`}get readOnly(){return this.facet(rG)}phrase(e,...n){for(let r of this.facet(Xt.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(r,a)=>{if(a=="$")return"$";let s=+(a||1);return!s||s>n.length?r:n[s-1]})),e}languageDataAt(e,n,r=-1){let a=[];for(let s of this.facet(ZH))for(let o of s(this,n,r))Object.prototype.hasOwnProperty.call(o,e)&&a.push(o[e]);return a}charCategorizer(e){let n=this.languageDataAt("wordChars",e);return EOe(n.length?n[0]:"")}wordAt(e){let{text:n,from:r,length:a}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,l=e-r;for(;o>0;){let c=ba(n,o,!1);if(s(n.slice(c,o))!=sr.Word)break;o=c}for(;lt.length?t[0]:4});Xt.lineSeparator=QH;Xt.readOnly=rG;Xt.phrases=Ye.define({compare(t,e){let n=Object.keys(t),r=Object.keys(e);return n.length==r.length&&n.every(a=>t[a]==e[a])}});Xt.languageData=ZH;Xt.changeFilter=eG;Xt.transactionFilter=tG;Xt.transactionExtender=nG;Wj.reconfigure=Ot.define();function Nl(t,e,n={}){let r={};for(let a of t)for(let s of Object.keys(a)){let o=a[s],l=r[s];if(l===void 0)r[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(n,s))r[s]=n[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let a in e)r[a]===void 0&&(r[a]=e[a]);return r}class Nu{eq(e){return this==e}range(e,n=e){return NA.create(e,n,this)}}Nu.prototype.startSide=Nu.prototype.endSide=0;Nu.prototype.point=!1;Nu.prototype.mapMode=ps.TrackDel;function ST(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let NA=class iG{constructor(e,n,r){this.from=e,this.to=n,this.value=r}static create(e,n,r){return new iG(e,n,r)}};function CA(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class _T{constructor(e,n,r,a){this.from=e,this.to=n,this.value=r,this.maxPoint=a}get length(){return this.to[this.to.length-1]}findIndex(e,n,r,a=0){let s=r?this.to:this.from;for(let o=a,l=s.length;;){if(o==l)return o;let c=o+l>>1,u=s[c]-e||(r?this.value[c].endSide:this.value[c].startSide)-n;if(c==o)return u>=0?o:l;u>=0?l=c:o=c+1}}between(e,n,r,a){for(let s=this.findIndex(n,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sp||h==p&&u.startSide>0&&u.endSide<=0)continue;(p-h||u.endSide-u.startSide)<0||(o<0&&(o=h),u.point&&(l=Math.max(l,p-h)),r.push(u),a.push(h-o),s.push(p-o))}return{mapped:r.length?new _T(a,s,r,l):null,pos:o}}}class Lt{constructor(e,n,r,a){this.chunkPos=e,this.chunk=n,this.nextLayer=r,this.maxPoint=a}static create(e,n,r,a){return new Lt(e,n,r,a)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:r=!1,filterFrom:a=0,filterTo:s=this.length}=e,o=e.filter;if(n.length==0&&!o)return this;if(r&&(n=n.slice().sort(CA)),this.isEmpty)return n.length?Lt.of(n):this;let l=new oG(this,null,-1).goto(0),c=0,u=[],d=new hc;for(;l.value||c=0){let f=n[c++];d.addInner(f.from,f.to,f.value)||u.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,n-s,r)===!1)return}this.nextLayer.between(e,n,r)}}iter(e=0){return z0.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return z0.from(e).goto(n)}static compare(e,n,r,a,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=n.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),c=_L(o,l,r),u=new wg(o,c,s),d=new wg(l,c,s);r.iterGaps((f,h,p)=>NL(u,f,d,h,p,a)),r.empty&&r.length==0&&NL(u,0,d,0,0,a)}static eq(e,n,r=0,a){a==null&&(a=999999999);let s=e.filter(d=>!d.isEmpty&&n.indexOf(d)<0),o=n.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=_L(s,o),c=new wg(s,l,0).goto(r),u=new wg(o,l,0).goto(r);for(;;){if(c.to!=u.to||!EA(c.active,u.active)||c.point&&(!u.point||!ST(c.point,u.point)))return!1;if(c.to>a)return!0;c.next(),u.next()}}static spans(e,n,r,a,s=-1){let o=new wg(e,null,s).goto(n),l=n,c=o.openStart;for(;;){let u=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),f=o.pointFroml&&(a.span(l,u,o.active,c),c=o.openEnd(u));if(o.to>r)return c+(o.point&&o.to>r?1:0);l=o.to,o.next()}}static of(e,n=!1){let r=new hc;for(let a of e instanceof NA?[e]:n?AOe(e):e)r.add(a.from,a.to,a.value);return r.finish()}static join(e){if(!e.length)return Lt.empty;let n=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let a=e[r];a!=Lt.empty;a=a.nextLayer)n=new Lt(a.chunkPos,a.chunk,n,Math.max(a.maxPoint,n.maxPoint));return n}}Lt.empty=new Lt([],[],null,-1);function AOe(t){if(t.length>1)for(let e=t[0],n=1;n0)return t.slice().sort(CA);e=r}return t}Lt.empty.nextLayer=Lt.empty;class hc{finishChunk(e){this.chunks.push(new _T(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,r){this.addInner(e,n,r)||(this.nextLayer||(this.nextLayer=new hc)).add(e,n,r)}addInner(e,n,r){let a=e-this.lastTo||r.startSide-this.last.endSide;if(a<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return a<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=n,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let r=n.value.length-1;return this.last=n.value[r],this.lastFrom=n.from[r]+e,this.lastTo=n.to[r]+e,!0}finish(){return this.finishInner(Lt.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=Lt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function _L(t,e,n){let r=new Map;for(let s of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&a.push(new oG(o,n,r,s));return a.length==1?a[0]:new z0(a)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let r of this.heap)r.goto(e,n);for(let r=this.heap.length>>1;r>=0;r--)n_(this.heap,r);return this.next(),this}forward(e,n){for(let r of this.heap)r.forward(e,n);for(let r=this.heap.length>>1;r>=0;r--)n_(this.heap,r);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),n_(this.heap,0)}}}function n_(t,e){for(let n=t[e];;){let r=(e<<1)+1;if(r>=t.length)break;let a=t[r];if(r+1=0&&(a=t[r+1],r++),n.compare(a)<0)break;t[r]=n,t[e]=a,e=r}}class wg{constructor(e,n,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=z0.from(e,n,r)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){nb(this.active,e),nb(this.activeTo,e),nb(this.activeRank,e),this.minActive=CL(this.active,this.activeTo)}addActive(e){let n=0,{value:r,to:a,rank:s}=this.cursor;for(;n0;)n++;rb(this.active,n,r),rb(this.activeTo,n,a),rb(this.activeRank,n,s),e&&rb(e,n,this.cursor.from),this.minActive=CL(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>e){this.to=this.activeTo[a],this.endSide=this.active[a].endSide;break}this.removeActive(a),r&&nb(r,a)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from=0&&r[a]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&n.push(this.active[r]);return n.reverse()}openEnd(e){let n=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)n++;return n}}function NL(t,e,n,r,a,s){t.goto(e),n.goto(r);let o=r+a,l=r,c=r-e,u=!!s.boundChange;for(let d=!1;;){let f=t.to+c-n.to,h=f||t.endSide-n.endSide,p=h<0?t.to+c:n.to,m=Math.min(p,o);if(t.point||n.point?(t.point&&n.point&&ST(t.point,n.point)&&EA(t.activeForPoint(t.to),n.activeForPoint(n.to))||s.comparePoint(l,m,t.point,n.point),d=!1):(d&&s.boundChange(l),m>l&&!EA(t.active,n.active)&&s.compareRange(l,m,t.active,n.active),u&&mo)break;l=p,h<=0&&t.next(),h>=0&&n.next()}}function EA(t,e){if(t.length!=e.length)return!1;for(let n=0;n=e;r--)t[r+1]=t[r];t[e]=n}function CL(t,e){let n=-1,r=1e9;for(let a=0;a=e)return a;if(a==t.length)break;s+=t.charCodeAt(a)==9?n-s%n:1,a=ba(t,a)}return r===!0?-1:t.length}const OA="ͼ",EL=typeof Symbol>"u"?"__"+OA:Symbol.for(OA),TA=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),AL=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Cu{constructor(e,n){this.rules=[];let{finish:r}=n||{};function a(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,c,u){let d=[],f=/^@(\w+)\b/.exec(o[0]),h=f&&f[1]=="keyframes";if(f&&l==null)return c.push(o[0]+";");for(let p in l){let m=l[p];if(/&/.test(p))s(p.split(/,\s*/).map(x=>o.map(v=>x.replace(/&/,v))).reduce((x,v)=>x.concat(v)),m,c);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(a(p),m,d,h)}else m!=null&&d.push(p.replace(/_.*/,"").replace(/[A-Z]/g,x=>"-"+x.toLowerCase())+": "+m+";")}(d.length||h)&&c.push((r&&!f&&!u?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(a(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=AL[EL]||1;return AL[EL]=e+1,OA+e.toString(36)}static mount(e,n,r){let a=e[TA],s=r&&r.nonce;a?s&&a.setNonce(s):a=new OOe(e,s),a.mount(Array.isArray(n)?n:[n],e)}}let OL=new Map;class OOe{constructor(e,n){let r=e.ownerDocument||e,a=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&a.CSSStyleSheet){let s=OL.get(r);if(s)return e[TA]=s;this.sheet=new a.CSSStyleSheet,OL.set(r,this)}else this.styleTag=r.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[TA]=this}mount(e,n){let r=this.sheet,a=0,s=0;for(let o=0;o-1&&(this.modules.splice(c,1),s--,c=-1),c==-1){if(this.modules.splice(s++,0,l),r)for(let u=0;u",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},TOe=typeof navigator<"u"&&/Mac/.test(navigator.platform),POe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ma=0;Ma<10;Ma++)Eu[48+Ma]=Eu[96+Ma]=String(Ma);for(var Ma=1;Ma<=24;Ma++)Eu[Ma+111]="F"+Ma;for(var Ma=65;Ma<=90;Ma++)Eu[Ma]=String.fromCharCode(Ma+32),U0[Ma]=String.fromCharCode(Ma);for(var r_ in Eu)U0.hasOwnProperty(r_)||(U0[r_]=Eu[r_]);function ROe(t){var e=TOe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||POe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?U0:Eu)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function Sn(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var a=n[r];typeof a=="string"?t.setAttribute(r,a):a!=null&&(t[r]=a)}e++}for(;e2);var Ke={mac:RL||/Mac/.test(fs.platform),windows:/Win/.test(fs.platform),linux:/Linux|X11/.test(fs.platform),ie:Hj,ie_version:cG?PA.documentMode||6:MA?+MA[1]:RA?+RA[1]:0,gecko:TL,gecko_version:TL?+(/Firefox\/(\d+)/.exec(fs.userAgent)||[0,0])[1]:0,chrome:!!a_,chrome_version:a_?+a_[1]:0,ios:RL,android:/Android\b/.test(fs.userAgent),webkit:PL,webkit_version:PL?+(/\bAppleWebKit\/(\d+)/.exec(fs.userAgent)||[0,0])[1]:0,safari:DA,safari_version:DA?+(/\bVersion\/(\d+(\.\d+)?)/.exec(fs.userAgent)||[0,0])[1]:0,tabSize:PA.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function NT(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const qw=Object.create(null);function CT(t,e,n){if(t==e)return!0;t||(t=qw),e||(e=qw);let r=Object.keys(t),a=Object.keys(e);if(r.length-0!=a.length-0)return!1;for(let s of r)if(s!=n&&(a.indexOf(s)==-1||t[s]!==e[s]))return!1;return!0}function MOe(t,e){for(let n=t.attributes.length-1;n>=0;n--){let r=t.attributes[n].name;e[r]==null&&t.removeAttribute(r)}for(let n in e){let r=e[n];n=="style"?t.style.cssText=r:t.getAttribute(n)!=r&&t.setAttribute(n,r)}}function ML(t,e,n){let r=!1;if(e)for(let a in e)n&&a in n||(r=!0,a=="style"?t.style.cssText="":t.removeAttribute(a));if(n)for(let a in n)e&&e[a]==n[a]||(r=!0,a=="style"?t.style.cssText=n[a]:t.setAttribute(a,n[a]));return r}function DOe(t){let e=Object.create(null);for(let n=0;n0?3e8:-4e8:n>0?1e8:-1e8,new af(e,n,n,r,e.widget||null,!1)}static replace(e){let n=!!e.block,r,a;if(e.isBlockGap)r=-5e8,a=4e8;else{let{start:s,end:o}=uG(e,n);r=(s?n?-3e8:-1:5e8)-1,a=(o?n?2e8:1:-6e8)+1}return new af(e,r,a,n,e.widget||null,!0)}static line(e){return new Oy(e)}static set(e,n=!1){return Lt.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}ht.none=Lt.empty;class Ay extends ht{constructor(e){let{start:n,end:r}=uG(e);super(n?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?NT(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||qw}eq(e){return this==e||e instanceof Ay&&this.tagName==e.tagName&&CT(this.attrs,e.attrs)}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}Ay.prototype.point=!1;class Oy extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Oy&&this.spec.class==e.spec.class&&CT(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}Oy.prototype.mapMode=ps.TrackBefore;Oy.prototype.point=!0;class af extends ht{constructor(e,n,r,a,s,o){super(n,r,s,e),this.block=a,this.isReplace=o,this.mapMode=a?n<=0?ps.TrackBefore:ps.TrackAfter:ps.TrackDel}get type(){return this.startSide!=this.endSide?La.WidgetRange:this.startSide<=0?La.WidgetBefore:La.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof af&&IOe(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}af.prototype.point=!0;function uG(t,e=!1){let{inclusiveStart:n,inclusiveEnd:r}=t;return n==null&&(n=t.inclusive),r==null&&(r=t.inclusive),{start:n??e,end:r??e}}function IOe(t,e){return t==e||!!(t&&e&&t.compare(e))}function Wh(t,e,n,r=0){let a=n.length-1;a>=0&&n[a]+r>=t?n[a]=Math.max(n[a],e):n.push(t,e)}class V0 extends Nu{constructor(e,n){super(),this.tagName=e,this.attributes=n}eq(e){return e==this||e instanceof V0&&this.tagName==e.tagName&&CT(this.attributes,e.attributes)}static create(e){return new V0(e.tagName,e.attributes||qw)}static set(e,n=!1){return Lt.of(e,n)}}V0.prototype.startSide=V0.prototype.endSide=-1;function W0(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function IA(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function jx(t,e){if(!e.anchorNode)return!1;try{return IA(t,e.anchorNode)}catch{return!1}}function Sx(t){return t.nodeType==3?G0(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function _x(t,e,n,r){return n?DL(t,e,n,r,-1)||DL(t,e,n,r,1):!1}function Au(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function Kw(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function DL(t,e,n,r,a){for(;;){if(t==n&&e==r)return!0;if(e==(a<0?0:pc(t))){if(t.nodeName=="DIV")return!1;let s=t.parentNode;if(!s||s.nodeType!=1)return!1;e=Au(t)+(a<0?0:1),t=s}else if(t.nodeType==1){if(t=t.childNodes[e+(a<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=a<0?pc(t):0}else return!1}}function pc(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function H0(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function $Oe(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function dG(t,e){let n=e.width/t.offsetWidth,r=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-t.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}function LOe(t,e,n,r,a,s,o,l){let c=t.ownerDocument,u=c.defaultView||window;for(let d=t,f=!1;d&&!f;)if(d.nodeType==1){let h,p=d==c.body,m=1,x=1;if(p)h=$Oe(u);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(f=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let y=d.getBoundingClientRect();({scaleX:m,scaleY:x}=dG(d,y)),h={left:y.left,right:y.left+d.clientWidth*m,top:y.top,bottom:y.top+d.clientHeight*x}}let v=0,b=0;if(a=="nearest")e.top0&&e.bottom>h.bottom+b&&(b=e.bottom-h.bottom+o)):e.bottom>h.bottom-o&&(b=e.bottom-h.bottom+o,n<0&&e.top-b0&&e.right>h.right+v&&(v=e.right-h.right+s)):e.right>h.right-s&&(v=e.right-h.right+s,n<0&&e.lefth.bottom||e.lefth.right)&&(e={left:Math.max(e.left,h.left),right:Math.min(e.right,h.right),top:Math.max(e.top,h.top),bottom:Math.min(e.bottom,h.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function fG(t,e=!0){let n=t.ownerDocument,r=null,a=null;for(let s=t.parentNode;s&&!(s==n.body||(!e||r)&&a);)if(s.nodeType==1)!a&&s.scrollHeight>s.clientHeight&&(a=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:a}}class FOe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:r}=e;this.set(n,Math.min(e.anchorOffset,n?pc(n):0),r,Math.min(e.focusOffset,r?pc(r):0))}set(e,n,r,a){this.anchorNode=e,this.anchorOffset=n,this.focusNode=r,this.focusOffset=a}}let dd=null;Ke.safari&&Ke.safari_version>=26&&(dd=!1);function hG(t){if(t.setActive)return t.setActive();if(dd)return t.focus(dd);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(dd==null?{get preventScroll(){return dd={preventScroll:!0},!0}}:void 0),!dd){dd=!1;for(let n=0;nMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function mG(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r>0)return{node:n,offset:r};if(n.nodeType==1&&r>0){if(n.contentEditable=="false")return null;n=n.childNodes[r-1],r=pc(n)}else if(n.parentNode&&!Kw(n))r=Au(n),n=n.parentNode;else return null}}function gG(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r=n){if(l.level==r)return o;(s<0||(a!=0?a<0?l.fromn:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}}function vG(t,e){if(t.length!=e.length)return!1;for(let n=0;n=0;x-=3)if(Bo[x+1]==-p){let v=Bo[x+2],b=v&2?a:v&4?v&1?s:a:0;b&&(On[f]=On[Bo[x]]=b),l=x;break}}else{if(Bo.length==189)break;Bo[l++]=f,Bo[l++]=h,Bo[l++]=c}else if((m=On[f])==2||m==1){let x=m==a;c=x?0:1;for(let v=l-3;v>=0;v-=3){let b=Bo[v+2];if(b&2)break;if(x)Bo[v+2]|=2;else{if(b&4)break;Bo[v+2]|=4}}}}}function qOe(t,e,n,r){for(let a=0,s=r;a<=n.length;a++){let o=a?n[a-1].to:t,l=ac;)m==v&&(m=n[--x].from,v=x?n[x-1].to:t),On[--m]=p;c=d}else s=u,c++}}}function LA(t,e,n,r,a,s,o){let l=r%2?2:1;if(r%2==a%2)for(let c=e,u=0;cc&&o.push(new al(c,x.from,p));let v=x.direction==sf!=!(p%2);FA(t,v?r+1:r,a,x.inner,x.from,x.to,o),c=x.to}m=x.to}else{if(m==n||(d?On[m]!=l:On[m]==l))break;m++}h?LA(t,c,m,r+1,a,h,o):ce;){let d=!0,f=!1;if(!u||c>s[u-1].to){let x=On[c-1];x!=l&&(d=!1,f=x==16)}let h=!d&&l==1?[]:null,p=d?r:r+1,m=c;e:for(;;)if(u&&m==s[u-1].to){if(f)break e;let x=s[--u];if(!d)for(let v=x.from,b=u;;){if(v==e)break e;if(b&&s[b-1].to==v)v=s[--b].from;else{if(On[v-1]==l)break e;break}}if(h)h.push(x);else{x.toOn.length;)On[On.length]=256;let r=[],a=e==sf?0:1;return FA(t,a,a,n,0,t.length,r),r}function bG(t){return[new al(0,t,0)]}let wG="";function YOe(t,e,n,r,a){var s;let o=r.head-t.from,l=al.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),c=e[l],u=c.side(a,n);if(o==u){let h=l+=a?1:-1;if(h<0||h>=e.length)return null;c=e[l=h],o=c.side(!a,n),u=c.side(a,n)}let d=ba(t.text,o,c.forward(a,n));(dc.to)&&(d=u),wG=t.text.slice(Math.min(o,d),Math.max(o,d));let f=l==(a?e.length-1:0)?null:e[l+(a?1:-1)];return f&&d==u&&f.level+(a?0:1)t.some(e=>e)}),AG=Ye.define({combine:t=>t.some(e=>e)}),OG=Ye.define();class Gh{constructor(e,n,r,a,s,o=!1){this.range=e,this.y=n,this.x=r,this.yMargin=a,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new Gh(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Gh(Ne.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const ab=Ot.define({map:(t,e)=>t.map(e)}),TG=Ot.define();function vs(t,e,n){let r=t.facet(_G);r.length?r[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const zl=Ye.define({combine:t=>t.length?t[0]:!0});let JOe=0;const Ch=Ye.define({combine(t){return t.filter((e,n)=>{for(let r=0;r{let c=[];return o&&c.push(Gj.of(u=>{let d=u.plugin(l);return d?o(d):ht.none})),s&&c.push(s(l)),c})}static fromClass(e,n){return gr.define((r,a)=>new e(r,a),n)}}class s_{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(r){if(vs(n.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){vs(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(r){vs(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const PG=Ye.define(),TT=Ye.define(),Gj=Ye.define(),RG=Ye.define(),PT=Ye.define(),Ty=Ye.define(),MG=Ye.define();function $L(t,e){let n=t.state.facet(MG);if(!n.length)return n;let r=n.map(s=>s instanceof Function?s(t):s),a=[];return Lt.spans(r,e.from,e.to,{point(){},span(s,o,l,c){let u=s-e.from,d=o-e.from,f=a;for(let h=l.length-1;h>=0;h--,c--){let p=l[h].spec.bidiIsolate,m;if(p==null&&(p=XOe(e.text,u,d)),c>0&&f.length&&(m=f[f.length-1]).to==u&&m.direction==p)m.to=d,f=m.inner;else{let x={from:u,to:d,direction:p,inner:[]};f.push(x),f=x.inner}}}}),a}const DG=Ye.define();function RT(t){let e=0,n=0,r=0,a=0;for(let s of t.state.facet(DG)){let o=s(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(a=Math.max(a,o.bottom)))}return{left:e,right:n,top:r,bottom:a}}const Xg=Ye.define();class Di{constructor(e,n,r,a){this.fromA=e,this.toA=n,this.fromB=r,this.toB=a}join(e){return new Di(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,r=this;for(;n>0;n--){let a=e[n-1];if(!(a.fromA>r.toA)){if(a.toAa.push(new Di(s,o,l,c))),this.changedRanges=a}static create(e,n,r){return new Yw(e,n,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const ZOe=[];class kr{constructor(e,n,r=0){this.dom=e,this.length=n,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return ZOe}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let n=this.domAttrs;n&&MOe(this.dom,n)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,n=this.posAtStart){let r=n;for(let a of this.children){if(a==e)return r;r+=a.length+a.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,n){return null}domPosFor(e,n){let r=Au(this.dom),a=this.length?e>0:n>0;return new xo(this.parent.dom,r+(a?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Kj)return e;return null}static get(e){return e.cmTile}}class qj extends kr{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let n=this.dom,r=null,a,s=(e==null?void 0:e.node)==n?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,a=r?r.nextSibling:n.firstChild,s&&a!=l.dom&&(s.written=!0),l.dom.parentNode==n)for(;a&&a!=l.dom;)a=LL(a);else n.insertBefore(l.dom,a);r=l.dom}for(a=r?r.nextSibling:n.firstChild,s&&a&&(s.written=!0);a;)a=LL(a);this.length=o}}function LL(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Kj extends qj{constructor(e,n){super(n),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let n=kr.get(e);if(n&&this.owns(n))return n;e=e.parentNode}}blockTiles(e){for(let n=[],r=this,a=0,s=0;;)if(a==r.children.length){if(!n.length)return;r=r.parent,r.breakAfter&&s++,a=n.pop()}else{let o=r.children[a++];if(o instanceof nc)n.push(a),r=o,a=0;else{let l=s+o.length,c=e(o,s);if(c!==void 0)return c;s=l+o.breakAfter}}}resolveBlock(e,n){let r,a=-1,s,o=-1;if(this.blockTiles((l,c)=>{let u=c+l.length;if(e>=c&&e<=u){if(l.isWidget()&&n>=-1&&n<=1){if(l.flags&32)return!0;l.flags&16&&(r=void 0)}(ce||e==c&&(n>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-c)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&n<0||!s?{tile:r,offset:a}:{tile:s,offset:o}}}class nc extends qj{constructor(e,n){super(e),this.wrapper=n}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,n){let r=new nc(n||document.createElement(e.tagName),e);return n||(r.flags|=4),r}}class zp extends qj{constructor(e,n){super(e),this.attrs=n}isLine(){return!0}static start(e,n,r){let a=new zp(n||document.createElement("div"),e);return(!n||!r)&&(a.flags|=4),a}get domAttrs(){return this.attrs}resolveInline(e,n,r){let a=null,s=-1,o=null,l=-1;function c(d,f){for(let h=0,p=0;h=f&&(m.isComposite()?c(m,f-p):(!o||o.isHidden&&(n>0||r&&e5e(o,m)))&&(x>f||m.flags&32)?(o=m,l=f-p):(pr&&(e=r);let a=e,s=e,o=0;e==0&&n<0||e==r&&n>=0?Ke.chrome||Ke.gecko||(e?(a--,o=1):s=0)?0:l.length-1];return Ke.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(l,u=>u.width)||c),o?H0(c,o<0):c||null}static of(e,n){let r=new Nd(n||document.createTextNode(e),e);return n||(r.flags|=2),r}}class of extends kr{constructor(e,n,r,a){super(e,n,a),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,n){return this.coordsInWidget(e,n,!1)}coordsInWidget(e,n,r){let a=this.widget.coordsAt(this.dom,e,n);if(a)return a;if(r)return H0(this.dom.getBoundingClientRect(),this.length?e==0:n<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let c=l?s.length-1:0;o=s[c],!(e>0?c==0:c==s.length-1||o.top0;)if(a.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==a.children.length){if(!e&&!l.length)break;r&&r.leave(a),o=!!a.breakAfter,{tile:a,index:s}=l.pop(),s++}else{let c=a.children[s],u=c.breakAfter;(n>0?c.length<=e:c.length=0;l--){let c=n.marks[l],u=a.lastChild;if(u instanceof Ms&&u.mark.eq(c.mark))u.dom!=c.dom&&u.setDOM(i_(c.dom)),a=u;else{if(this.cache.reused.get(c)){let f=kr.get(c.dom);f&&f.setDOM(i_(c.dom))}let d=Ms.of(c.mark,c.dom);a.append(d),a=d}this.cache.reused.set(c,2)}let s=kr.get(e.text);s&&this.cache.reused.set(s,2);let o=new Nd(e.text,e.text.nodeValue);o.flags|=8,a.append(o)}addInlineWidget(e,n,r){let a=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);a||this.flushBuffer();let s=this.ensureMarks(n,r);!a&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,n,r){this.flushBuffer(),this.ensureMarks(n,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let n=this.afterWidget||this.lastBlock;n.length+=e,this.pos+=e}addLineStart(e,n){var r;e||(e=IG);let a=zp.start(e,n||((r=this.cache.find(zp))===null||r===void 0?void 0:r.dom),!!n);this.getBlockPos().append(this.lastBlock=this.curLine=a)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,n){var r;let a=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(n>0&&(l=a.lastChild)&&l instanceof Ms&&l.mark.eq(o))a=l,n--;else{let c=Ms.of(o,(r=this.cache.find(Ms,u=>u.mark.eq(o)))===null||r===void 0?void 0:r.dom);a.append(c),a=c,n=0}}return a}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!FL(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Ke.ios&&FL(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(o_,0,32)||new of(o_.toDOM(),0,o_,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let n=new n5e(e.from,e.to,e.value,e.rank),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let n=this.root;for(let r of this.wrappers){let a=n.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);n.append(s),n=s}}return n}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let n=2|(e<0?16:32),r=this.cache.find(Xw,void 0,1);return r&&(r.flags=n),r||new Xw(n)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class a5e{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:a,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=a;let l=this.textOff=Math.min(e,a.length);return s?null:a.slice(0,l)}let n=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,n);return this.textOff=n,r}}const Jw=[of,zp,Nd,Ms,Xw,nc,Kj];for(let t=0;t[]),this.index=Jw.map(()=>0),this.reused=new Map}add(e){let n=e.constructor.bucket,r=this.buckets[n];r.length<6?r.push(e):r[this.index[n]=(this.index[n]+1)%6]=e}find(e,n,r=2){let a=e.bucket,s=this.buckets[a],o=this.index[a];for(let l=s.length-1;l>=0;l--){let c=(l+o)%s.length,u=s[c];if((!n||n(u))&&!this.reused.has(u))return s.splice(c,1),c{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,n){let r=n&&this.getCompositionContext(n.text);for(let a=0,s=0,o=0;;){let l=oa){let u=c-a;this.preserve(u,!o,!l),a=c,s+=u}if(!l)break;n&&l.fromA<=n.range.fromA&&l.toA>=n.range.toA?(this.forward(l.fromA,n.range.fromA,n.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(c-l);else{let u=c>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Ms&&a.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?a.length&&(a.length=s=0):o instanceof Ms&&(a.shift(),s=Math.min(s,a.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,n){let r=null,a=this.builder,s=0,o=Lt.spans(this.decorations,e,n,{point:(l,c,u,d,f,h)=>{if(u instanceof af){if(this.disallowBlockEffectsFor[h]){if(u.block)throw new RangeError("Block decorations may not be specified via plugins");if(c>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,f>d.length)a.continueWidget(c-l);else{let p=u.widget||(u.block?Up.block:Up.inline),m=o5e(u),x=this.cache.findWidget(p,c-l,m)||of.of(p,this.view,c-l,m);u.block?(u.startSide>0&&a.addLineStartIfNotCovered(r),a.addBlockWidget(x)):(a.ensureLine(r),a.addInlineWidget(x,d,f))}r=null}else r=l5e(r,u);c>l&&this.text.skip(c-l)},span:(l,c,u,d)=>{for(let f=l;fs,this.openMarks=o}forward(e,n,r=1){n-e<=10?this.old.advance(n-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(n-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let n=[],r=null;for(let a=e.parentNode;;a=a.parentNode){let s=kr.get(a);if(a==this.view.contentDOM)break;s instanceof Ms?n.push(s):s!=null&&s.isLine()?r=s:s instanceof nc||(a.nodeName=="DIV"&&!r&&a!=this.view.contentDOM?r=new zp(a,IG):r||n.push(Ms.of(new Ay({tagName:a.nodeName.toLowerCase(),attributes:DOe(a)}),a)))}return{line:r,marks:n}}}function FL(t,e){let n=r=>{for(let a of r.children)if((e?a.isText():a.length)||n(a))return!0;return!1};return n(t)}function o5e(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const IG={class:"cm-line"};function l5e(t,e){let n=e.spec.attributes,r=e.spec.class;return!n&&!r||(t||(t={class:"cm-line"}),n&&NT(n,t),r&&(t.class+=" "+r)),t}function c5e(t){let e=[];for(let n=t.parents.length;n>1;n--){let r=n==t.parents.length?t.tile:t.parents[n].tile;r instanceof Ms&&e.push(r.mark)}return e}function i_(t){let e=kr.get(t);return e&&e.setDOM(t.cloneNode()),t}class Up extends Cl{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Up.inline=new Up("span");Up.block=new Up("div");const o_=new class extends Cl{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class BL{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Kj(e,e.contentDOM),this.updateInner([new Di(0,0,0,e.state.doc.length)],null)}update(e){var n;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let a=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?a=this.domChanged.newSel.head:!y5e(e.changes,this.hasComposition)&&!e.selectionSet&&(a=e.state.selection.main.head));let s=a>-1?d5e(this.view,e.changes,a):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:f}=this.hasComposition;r=new Di(d,f,e.changes.mapPos(d,-1),e.changes.mapPos(f,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Ke.ie||Ke.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let c=p5e(o,this.decorations,e.changes);c.length&&(r=Di.extendWithRanges(r,c));let u=g5e(l,this.blockWrappers,e.changes);return u.length&&(r=Di.extendWithRanges(r,u)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(n||e.length){let o=this.tile,l=new i5e(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);n&&kr.get(n.text)&&l.cache.reused.set(kr.get(n.text),2),this.tile=l.run(e,n),zA(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Ke.chrome||Ke.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let a=[];if(this.view.viewport.from||this.view.viewport.to-1)&&jx(r,this.view.observer.selectionRange)&&!(a&&r.contains(a));if(!(s||n||o))return;let l=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,u,d;if(c.empty?d=u=this.inlineDOMNearPos(c.anchor,c.assoc||1):(d=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),u=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),Ke.gecko&&c.empty&&!this.hasComposition&&u5e(u)){let h=document.createTextNode("");this.view.observer.ignore(()=>u.node.insertBefore(h,u.node.childNodes[u.offset]||null)),u=d=new xo(h,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!_x(u.node,u.offset,f.anchorNode,f.anchorOffset)||!_x(d.node,d.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,c))&&(this.view.observer.ignore(()=>{Ke.android&&Ke.chrome&&r.contains(f.focusNode)&&x5e(f.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let h=W0(this.view.root);if(h)if(c.empty){if(Ke.gecko){let p=f5e(u.node,u.offset);if(p&&p!=3){let m=(p==1?mG:gG)(u.node,u.offset);m&&(u=new xo(m.node,m.offset))}}h.collapse(u.node,u.offset),c.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=c.bidiLevel)}else if(h.extend){h.collapse(u.node,u.offset);try{h.extend(d.node,d.offset)}catch{}}else{let p=document.createRange();c.anchor>c.head&&([u,d]=[d,u]),p.setEnd(d.node,d.offset),p.setStart(u.node,u.offset),h.removeAllRanges(),h.addRange(p)}o&&this.view.root.activeElement==r&&(r.blur(),a&&a.focus())}),this.view.observer.setSelectionRange(u,d)),this.impreciseAnchor=u.precise?null:new xo(f.anchorNode,f.anchorOffset),this.impreciseHead=d.precise?null:new xo(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&_x(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,r=W0(e.root),{anchorNode:a,anchorOffset:s}=e.observer.selectionRange;if(!r||!n.empty||!n.assoc||!r.modify)return;let o=this.lineAt(n.head,n.assoc);if(!o)return;let l=o.posAtStart;if(n.head==l||n.head==l+o.length)return;let c=this.coordsAt(n.head,-1),u=this.coordsAt(n.head,1);if(!c||!u||c.bottom>u.top)return;let d=this.domAtPos(n.head+n.assoc,n.assoc);r.collapse(d.node,d.offset),r.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=n.from&&r.collapse(a,s)}posFromDOM(e,n){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let a=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[n];else{let o=pc(e)==0?0:n==0?-1:1;for(;;){let l=e.parentNode;if(l==r.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return a;for(;s&&!kr.get(s);)s=s.nextSibling;if(!s)return a+r.length;for(let o=0,l=a;;o++){let c=r.children[o];if(c.dom==s)return l;l+=c.length+c.breakAfter}}else return r.isText()?e==r.dom?a+n:a+(n?r.length:0):a}domAtPos(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.domPosFor(e,n):r.domIn(a,n)}inlineDOMNearPos(e,n){let r,a=-1,s=!1,o,l=-1,c=!1;return this.tile.blockTiles((u,d)=>{if(u.isWidget()){if(u.flags&32&&d>=e)return!0;u.flags&16&&(s=!0)}else{let f=d+u.length;if(d<=e&&(r=u,a=e-d,s=f=e&&!o&&(o=u,l=e-d,c=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,n):(s&&o?r=null:c&&r&&(o=null),r&&n<0||!o?r.domIn(a,n):o.domIn(l,n))}coordsAt(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.widget instanceof l_?null:r.coordsInWidget(a,n,!0):r.coordsIn(a,n)}lineAt(e,n){let{tile:r}=this.tile.resolveBlock(e,n);return r.isLine()?r:null}coordsForChar(e){let{tile:n,offset:r}=this.tile.resolveBlock(e,1);if(!n.isLine())return null;function a(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let c=a(l,o);if(c)return c}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,c=this.view.textDirection==Pn.LTR,u=0,d=(f,h,p)=>{for(let m=0;ma);m++){let x=f.children[m],v=h+x.length,b=x.dom.getBoundingClientRect(),{height:y}=b;if(p&&!m&&(u+=b.top-p.top),x instanceof nc)v>r&&d(x,h,b);else if(h>=r&&(u>0&&n.push(-u),n.push(y+u),u=0,o)){let w=x.dom.lastChild,j=w?Sx(w):[];if(j.length){let k=j[j.length-1],S=c?k.right-b.left:b.right-k.left;S>l&&(l=S,this.minWidth=s,this.minWidthFrom=h,this.minWidthTo=v)}}p&&m==f.children.length-1&&(u+=p.bottom-b.bottom),h=v+x.breakAfter}};return d(this.tile,0,null),n}textDirectionAt(e){let{tile:n}=this.tile.resolveBlock(e,1);return getComputedStyle(n.dom).direction=="rtl"?Pn.RTL:Pn.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,c;for(let u of o.children){if(!u.isText()||/[^ -~]/.test(u.text))return;let d=Sx(u.dom);if(d.length!=1)return;l+=d[0].width,c=d[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:c}}});if(e)return e;let n=document.createElement("div"),r,a,s;return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(n);let o=Sx(n.firstChild)[0];r=n.getBoundingClientRect().height,a=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,n.remove()}),{lineHeight:r,charWidth:a,textHeight:s}}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let r=0,a=0;;a++){let s=a==n.viewports.length?null:n.viewports[a],o=s?s.from-1:this.view.state.doc.length;if(o>r){let l=(n.lineBlockAt(o).bottom-n.lineBlockAt(r).top)/this.view.scaleY;e.push(ht.replace({widget:new l_(l),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return ht.set(e)}updateDeco(){let e=1,n=this.view.state.facet(Gj).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,a=this.view.state.facet(PT).map((s,o)=>{let l=typeof s=="function";return l&&(r=!0),l?s(this.view):s});for(a.length&&(this.dynamicDecorationMap[e++]=r,n.push(Lt.join(a))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){var n;if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(OG))try{if(d(this.view,e.range,e))return!0}catch(f){vs(this.view.state,f,"scroll handler")}let{range:r}=e,a=this.coordsAt(r.head,(n=r.assoc)!==null&&n!==void 0?n:r.empty?0:r.head>r.anchor?-1:1),s;if(!a)return;!r.empty&&(s=this.coordsAt(r.anchor,r.anchor>r.head?-1:1))&&(a={left:Math.min(a.left,s.left),top:Math.min(a.top,s.top),right:Math.max(a.right,s.right),bottom:Math.max(a.bottom,s.bottom)});let o=RT(this.view),l={left:a.left-o.left,top:a.top-o.top,right:a.right+o.right,bottom:a.bottom+o.bottom},{offsetWidth:c,offsetHeight:u}=this.view.scrollDOM;if(LOe(this.view.scrollDOM,l,r.head1&&(a.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||a.bottomr.isWidget()||r.children.some(n);return n(this.tile.resolveBlock(e,1).tile)}destroy(){zA(this.tile)}}function zA(t,e){let n=e==null?void 0:e.get(t);if(n!=1){n==null&&t.destroy();for(let r of t.children)zA(r,e)}}function u5e(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function $G(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let r=mG(n.focusNode,n.focusOffset),a=gG(n.focusNode,n.focusOffset),s=r||a;if(a&&r&&a.node!=r.node){let l=kr.get(a.node);if(!l||l.isText()&&l.text!=a.node.nodeValue)s=a;else if(t.docView.lastCompositionAfterCursor){let c=kr.get(r.node);!c||c.isText()&&c.text!=r.node.nodeValue||(s=a)}}if(t.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function d5e(t,e,n){let r=$G(t,n);if(!r)return null;let{node:a,from:s,to:o}=r,l=a.nodeValue;if(/[\n\r]/.test(l)||t.state.doc.sliceString(r.from,r.to)!=l)return null;let c=e.invertedDesc;return{range:new Di(c.mapPos(s),c.mapPos(o),s,o),text:a}}function f5e(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(n=!0)}),n}class l_ extends Cl{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function v5e(t,e,n=1){let r=t.charCategorizer(e),a=t.doc.lineAt(e),s=e-a.from;if(a.length==0)return Ne.cursor(e);s==0?n=1:s==a.length&&(n=-1);let o=s,l=s;n<0?o=ba(a.text,s,!1):l=ba(a.text,s);let c=r(a.text.slice(o,l));for(;o>0;){let u=ba(a.text,o,!1);if(r(a.text.slice(u,o))!=c)break;o=u}for(;lt.defaultLineHeight*1.5){let l=t.viewState.heightOracle.textHeight,c=Math.floor((a-n.top-(t.defaultLineHeight-l)*.5)/l);s+=c*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(n.from,n.to);return n.from+AA(o,s,t.state.tabSize)}function UA(t,e,n){let r=t.lineBlockAt(e);if(Array.isArray(r.type)){let a;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!a||s.type==La.Text&&(a.type!=s.type||(n<0?s.frome)))&&(a=s)}}return a||r}return r}function w5e(t,e,n,r){let a=UA(t,e.head,e.assoc||-1),s=!r||a.type!=La.Text||!(t.lineWrapping||a.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>a.from?e.head-1:e.head);if(s){let o=t.dom.getBoundingClientRect(),l=t.textDirectionAt(a.from),c=t.posAtCoords({x:n==(l==Pn.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(c!=null)return Ne.cursor(c,n?-1:1)}return Ne.cursor(n?a.to:a.from,n?-1:1)}function zL(t,e,n,r){let a=t.state.doc.lineAt(e.head),s=t.bidiSpans(a),o=t.textDirectionAt(a.from);for(let l=e,c=null;;){let u=YOe(a,s,o,l,n),d=wG;if(!u){if(a.number==(n?t.state.doc.lines:1))return l;d=` -`,a=t.state.doc.line(a.number+(n?1:-1)),s=t.bidiSpans(a),u=t.visualLineSide(a,!n)}if(c){if(!c(d))return l}else{if(!r)return u;c=r(d)}l=u}}function k5e(t,e,n){let r=t.state.charCategorizer(e),a=r(n);return s=>{let o=r(s);return a==sr.Space&&(a=o),a==o}}function j5e(t,e,n,r){let a=e.head,s=n?1:-1;if(a==(n?t.state.doc.length:0))return Ne.cursor(a,e.assoc);let o=e.goalColumn,l,c=t.contentDOM.getBoundingClientRect(),u=t.coordsAtPos(a,e.assoc||((e.empty?n:e.head==e.from)?1:-1)),d=t.documentTop;if(u)o==null&&(o=u.left-c.left),l=s<0?u.top:u.bottom;else{let m=t.viewState.lineBlockAt(a);o==null&&(o=Math.min(c.right-c.left,t.defaultCharacterWidth*(a-m.from))),l=(s<0?m.top:m.bottom)+d}let f=c.left+o,h=t.viewState.heightOracle.textHeight>>1,p=r??h;for(let m=0;;m+=h){let x=l+(p+m)*s,v=VA(t,{x:f,y:x},!1,s);if(n?x>c.bottom:xl:y{if(e>s&&ea(t)),n.from,e.head>n.from?-1:1);return r==n.from?n:Ne.cursor(r,rt.viewState.docHeight)return new Qo(t.state.doc.length,-1);if(u=t.elementAtHeight(c),r==null)break;if(u.type==La.Text){if(r<0?u.tot.viewport.to)break;let h=t.docView.coordsAt(r<0?u.from:u.to,r>0?-1:1);if(h&&(r<0?h.top<=c+s:h.bottom>=c+s))break}let f=t.viewState.heightOracle.textHeight/2;c=r>0?u.bottom+f:u.top-f}if(t.viewport.from>=u.to||t.viewport.to<=u.from){if(n)return null;if(u.type==La.Text){let f=b5e(t,a,u,o,l);return new Qo(f,f==u.from?1:-1)}}if(u.type!=La.Text)return c<(u.top+u.bottom)/2?new Qo(u.from,1):new Qo(u.to,-1);let d=t.docView.lineAt(u.from,2);return(!d||d.length!=u.length)&&(d=t.docView.lineAt(u.from,-2)),new S5e(t,o,l,t.textDirectionAt(u.from)).scanTile(d,u.from)}class S5e{constructor(e,n,r,a){this.view=e,this.x=n,this.y=r,this.baseDir=a,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+a.from>1;t:if(s.has(m)){let v=r+Math.floor(Math.random()*p);for(let b=0;b1)){if(b.bottomthis.y)(!c||c.top>b.top)&&(c=b),y=-1;else{let w=b.left>this.x?this.x-b.left:b.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,n);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,n)}let h=(o?this.dirAt(e[u],1):this.baseDir)==Pn.LTR;return{i:u,after:this.x>(f.left+f.right)/2==h}}scanText(e,n){let r=[];for(let s=0;s{let o=r[s]-n,l=r[s+1]-n;return G0(e.dom,o,l).getClientRects()});return a.after?new Qo(r[a.i+1],-1):new Qo(r[a.i],1)}scanTile(e,n){if(!e.length)return new Qo(n,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,n);if(l.isComposite())return this.scanTile(l,n)}let r=[n];for(let l=0,c=n;l{let c=e.children[l];return c.flags&48?null:(c.dom.nodeType==1?c.dom:G0(c.dom,0,c.length)).getClientRects()}),s=e.children[a.i],o=r[a.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):a.after?new Qo(r[a.i+1],-1):new Qo(o,1)}}const eh="￿";class _5e{constructor(e,n){this.points=e,this.view=n,this.text="",this.lineSeparator=n.state.facet(Xt.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=eh}readRange(e,n){if(!e)return this;let r=e.parentNode;for(let a=e;;){this.findPointBefore(r,a);let s=this.text.length;this.readNode(a);let o=kr.get(a),l=a.nextSibling;if(l==n){o!=null&&o.breakAfter&&!l&&r!=this.view.contentDOM&&this.lineBreak();break}let c=kr.get(l);(o&&c?o.breakAfter:(o?o.breakAfter:Kw(a))||Kw(l)&&(a.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!C5e(l,n)&&this.lineBreak(),a=l}return this.findPointBefore(r,n),this}readTextNode(e){let n=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,n.length));for(let r=0,a=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=n.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(l=a.exec(n))&&(s=l.index,o=l[0].length),this.append(n.slice(r,s<0?n.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=o-1);r=s+o}}readNode(e){let n=kr.get(e),r=n&&n.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let a=r.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==n&&(r.pos=this.text.length)}findPointInside(e,n){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(N5e(e,r.node,r.offset)?n:0))}}function N5e(t,e,n){for(;;){if(!e||n-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=FG(e.docView.tile,n,r,0))){let c=s||o?[]:O5e(e),u=new _5e(c,e);u.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=u.text,this.newSel=T5e(c,this.bounds.from)}else{let c=e.observer.selectionRange,u=s&&s.node==c.focusNode&&s.offset==c.focusOffset||!IA(e.contentDOM,c.focusNode)?l.main.head:e.docView.posFromDOM(c.focusNode,c.focusOffset),d=o&&o.node==c.anchorNode&&o.offset==c.anchorOffset||!IA(e.contentDOM,c.anchorNode)?l.main.anchor:e.docView.posFromDOM(c.anchorNode,c.anchorOffset),f=e.viewport;if((Ke.ios||Ke.chrome)&&l.main.empty&&u!=d&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange(Ne.range(d,u));else if(e.lineWrapping&&d==u&&!(l.main.empty&&l.main.head==u)&&e.inputState.lastTouchTime>Date.now()-100){let h=e.coordsAtPos(u,-1),p=0;h&&(p=e.inputState.lastTouchY<=h.bottom?-1:1),this.newSel=Ne.create([Ne.cursor(u,p)])}else this.newSel=Ne.single(d,u)}}}function FG(t,e,n,r){if(t.isComposite()){let a=-1,s=-1,o=-1,l=-1;for(let c=0,u=r,d=r;cn)return FG(f,e,n,u);if(h>=e&&a==-1&&(a=c,s=u),u>n&&f.dom.parentNode==t.dom){o=c,l=d;break}d=h,u=h+f.breakAfter}return{from:s,to:l<0?r+t.length:l,startDOM:(a?t.children[a-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:r,to:r+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function BG(t,e){let n,{newSel:r}=e,{state:a}=t,s=a.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:c}=e.bounds,u=s.from,d=null;(o===8||Ke.android&&e.text.length=l&&s.to<=c&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(h=e.text.length-(f.length-(s.to-l)))?n={from:s.from,to:s.to,insert:en.of(e.text.slice(s.from-l,h).split(eh))}:(p=zG(f,e.text,u-l,d))&&(Ke.chrome&&o==13&&p.toB==p.from+2&&e.text.slice(p.from,p.toB)==eh+eh&&p.toB--,n={from:l+p.from,to:l+p.toA,insert:en.of(e.text.slice(p.from,p.toB).split(eh))})}else r&&(!t.hasFocus&&a.facet(zl)||Zw(r,s))&&(r=null);if(!n&&!r)return!1;if((Ke.mac||Ke.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(r&&n.insert.length==2&&(r=Ne.single(r.main.anchor-1,r.main.head-1)),n={from:n.from,to:n.to,insert:en.of([n.insert.toString().replace("."," ")])}):a.doc.lineAt(s.from).toDate.now()-50?n={from:s.from,to:s.to,insert:a.toText(t.inputState.insertingText)}:Ke.chrome&&n&&n.from==n.to&&n.from==s.head&&n.insert.toString()==` - `&&t.lineWrapping&&(r&&(r=Ne.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:en.of([" "])}),n)return MT(t,n,r,o);if(r&&!Zw(r,s)){let l=!1,c="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(l=!0),c=t.inputState.lastSelectionOrigin,c=="select.pointer"&&(r=LG(a.facet(Ty).map(u=>u(t)),r))),t.dispatch({selection:r,scrollIntoView:l,userEvent:c}),!0}else return!1}function MT(t,e,n,r=-1){if(Ke.ios&&t.inputState.flushIOSKey(e))return!0;let a=t.state.selection.main;if(Ke.android&&(e.to==a.to&&(e.from==a.from||e.from==a.from-1&&t.state.sliceDoc(e.from,a.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Hh(t.contentDOM,"Enter",13)||(e.from==a.from-1&&e.to==a.to&&e.insert.length==0||r==8&&e.insert.lengtha.head)&&Hh(t.contentDOM,"Backspace",8)||e.from==a.from&&e.to==a.to+1&&e.insert.length==0&&Hh(t.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,l=()=>o||(o=A5e(t,e,n));return t.state.facet(NG).some(c=>c(t,e.from,e.to,s,l))||t.dispatch(l()),!0}function A5e(t,e,n){let r,a=t.state,s=a.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let c=e.fromf(t)),u,c);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:Ne.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=s.frome.to?a.sliceDoc(e.to,s.to):"";r=a.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+u))}else{let c=a.changes(e),u=n&&n.main.to<=c.newLength?n.main:void 0;if(a.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=t.state.sliceDoc(e.from,e.to),f,h=n&&$G(t,n.main.head);if(h){let m=e.insert.length-(e.to-e.from);f={from:h.from,to:h.to-m}}else f=t.state.doc.lineAt(s.head);let p=s.to-e.to;r=a.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:c,range:u||m.map(c)};let x=m.to-p,v=x-d.length;if(t.state.sliceDoc(v,x)!=d||x>=f.from&&v<=f.to)return{range:m};let b=a.changes({from:v,to:x,insert:e.insert}),y=m.to-s.to;return{changes:b,range:u?Ne.range(Math.max(0,u.anchor+y),Math.max(0,u.head+y)):m.map(b)}})}else r={changes:c,selection:u&&a.selection.replaceRange(u)}}let l="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,l+=".compose",t.inputState.compositionFirstChange&&(l+=".start",t.inputState.compositionFirstChange=!1)),a.update(r,{userEvent:l,scrollIntoView:!0})}function zG(t,e,n,r){let a=Math.min(t.length,e.length),s=0;for(;s0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(r=="end"){let c=Math.max(0,s-Math.min(o,l));n-=o+c-s}if(o=o?s-n:0;s-=c,l=s+(l-o),o=s}else if(l=l?s-n:0;s-=c,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function O5e(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}=t.observer.selectionRange;return n&&(e.push(new UL(n,r)),(a!=n||s!=r)&&e.push(new UL(a,s))),e}function T5e(t,e){if(t.length==0)return null;let n=t[0].pos,r=t.length==2?t[1].pos:n;return n>-1&&r>-1?Ne.single(n+e,r+e):null}function Zw(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class P5e{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ke.safari&&e.contentDOM.addEventListener("input",()=>null),Ke.gecko&&q5e(e.contentDOM.ownerDocument)}handleEvent(e){!B5e(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let r=this.handlers[e];if(r){for(let a of r.observers)a(this.view,n);for(let a of r.handlers){if(n.defaultPrevented)break;if(a(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=R5e(e),r=this.handlers,a=this.view.contentDOM;for(let s in n)if(s!="scroll"){let o=!n[s].handlers.length,l=r[s];l&&o!=!l.handlers.length&&(a.removeEventListener(s,this.handleEvent),l=null),l||a.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!n[s]&&a.removeEventListener(s,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&VG.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ke.android&&Ke.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return Ke.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&!e.shiftKey&&((n=UG.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||M5e.indexOf(e.key)>-1&&e.ctrlKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from0?!0:Ke.safari&&!Ke.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function VL(t,e){return(n,r)=>{try{return e.call(t,r,n)}catch(a){vs(n.state,a)}}}function R5e(t){let e=Object.create(null);function n(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of t){let a=r.spec,s=a&&a.plugin.domEventHandlers,o=a&&a.plugin.domEventObservers;if(s)for(let l in s){let c=s[l];c&&n(l).handlers.push(VL(r.value,c))}if(o)for(let l in o){let c=o[l];c&&n(l).observers.push(VL(r.value,c))}}for(let r in No)n(r).handlers.push(No[r]);for(let r in Gs)n(r).observers.push(Gs[r]);return e}const UG=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],M5e="dthko",VG=[16,17,18,20,91,92,224,225],sb=6;function ib(t){return Math.max(0,t)*.7+8}function D5e(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class I5e{constructor(e,n,r,a){this.view=e,this.startEvent=n,this.style=r,this.mustSelect=a,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=fG(e.contentDOM),this.atoms=e.state.facet(Ty).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(Xt.allowMultipleSelections)&&$5e(e,n),this.dragging=F5e(e,n)&&GG(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&D5e(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,r=0,a=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:a,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=RT(this.view);e.clientX-c.left<=a+sb?n=-ib(a-e.clientX):e.clientX+c.right>=o-sb&&(n=ib(e.clientX-o)),e.clientY-c.top<=s+sb?r=-ib(s-e.clientY):e.clientY+c.bottom>=l-sb&&(r=ib(e.clientY-l)),this.setScrollSpeed(n,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,r=LG(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function $5e(t,e){let n=t.state.facet(kG);return n.length?n[0](e):Ke.mac?e.metaKey:e.ctrlKey}function L5e(t,e){let n=t.state.facet(jG);return n.length?n[0](e):Ke.mac?!e.altKey:!e.ctrlKey}function F5e(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let r=W0(t.root);if(!r||r.rangeCount==0)return!0;let a=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function B5e(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,r;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(r=kr.get(n))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}const No=Object.create(null),Gs=Object.create(null),WG=Ke.ie&&Ke.ie_version<15||Ke.ios&&Ke.webkit_version<604;function z5e(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),HG(t,n.value)},50)}function Yj(t,e,n){for(let r of t.facet(e))n=r(n,t);return n}function HG(t,e){e=Yj(t.state,AT,e);let{state:n}=t,r,a=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(WA!=null&&n.selection.ranges.every(c=>c.empty)&&WA==s.toString()){let c=-1;r=n.changeByRange(u=>{let d=n.doc.lineAt(u.from);if(d.from==c)return{range:u};c=d.from;let f=n.toText((o?s.line(a++).text:e)+n.lineBreak);return{changes:{from:d.from,insert:f},range:Ne.cursor(u.from+f.length)}})}else o?r=n.changeByRange(c=>{let u=s.line(a++);return{changes:{from:c.from,to:c.to,insert:u.text},range:Ne.cursor(c.from+u.length)}}):r=n.replaceSelection(s);t.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Gs.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Gs.wheel=Gs.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};No.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Gs.touchstart=(t,e)=>{let n=t.inputState,r=e.targetTouches[0];n.lastTouchTime=Date.now(),r&&(n.lastTouchX=r.clientX,n.lastTouchY=r.clientY),n.setSelectionOrigin("select.pointer")};Gs.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};No.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of t.state.facet(SG))if(n=r(t,e),n)break;if(!n&&e.button==0&&(n=V5e(t,e)),n){let r=!t.hasFocus;t.inputState.startMouseSelection(new I5e(t,e,n,r)),r&&t.observer.ignore(()=>{hG(t.contentDOM);let s=t.root.activeElement;s&&!s.contains(t.contentDOM)&&s.blur()});let a=t.inputState.mouseSelection;if(a)return a.start(e),a.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function WL(t,e,n,r){if(r==1)return Ne.cursor(e,n);if(r==2)return v5e(t.state,e,n);{let a=t.docView.lineAt(e,n),s=t.state.doc.lineAt(a?a.posAtEnd:e),o=a?a.posAtStart:s.from,l=a?a.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(GL+1)%3:1}function V5e(t,e){let n=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=GG(e),a=t.state.selection;return{update(s){s.docChanged&&(n.pos=s.changes.mapPos(n.pos),a=a.map(s.changes))},get(s,o,l){let c=t.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),u,d=WL(t,c.pos,c.assoc,r);if(n.pos!=c.pos&&!o){let f=WL(t,n.pos,n.assoc,r),h=Math.min(f.from,d.from),p=Math.max(f.to,d.to);d=h1&&(u=W5e(a,c.pos))?u:l?a.addRange(d):Ne.create([d])}}}function W5e(t,e){for(let n=0;n=e)return Ne.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}No.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let a=t.docView.tile.nearest(e.target);if(a&&a.isWidget()){let s=a.posAtStart,o=s+a.length;(s>=n.to||o<=n.from)&&(n=Ne.range(s,o))}}let{inputState:r}=t;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",Yj(t.state,OT,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};No.dragend=t=>(t.inputState.draggedContent=null,!1);function KL(t,e,n,r){if(n=Yj(t.state,AT,n),!n)return;let a=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=t.inputState,o=r&&s&&L5e(t,e)?{from:s.from,to:s.to}:null,l={from:a,insert:n},c=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(a,-1),head:c.mapPos(a,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}No.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let r=Array(n.length),a=0,s=()=>{++a==n.length&&KL(t,e,r.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(r[o]=l.result),s()},l.readAsText(n[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return KL(t,e,r,!0),!0}return!1};No.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=WG?null:e.clipboardData;return n?(HG(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(z5e(t),!1)};function H5e(t,e){let n=t.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),t.focus()},50)}function G5e(t){let e=[],n=[],r=!1;for(let a of t.selection.ranges)a.empty||(e.push(t.sliceDoc(a.from,a.to)),n.push(a));if(!e.length){let a=-1;for(let{from:s}of t.selection.ranges){let o=t.doc.lineAt(s);o.number>a&&(e.push(o.text),n.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),a=o.number}r=!0}return{text:Yj(t,OT,e.join(t.lineBreak)),ranges:n,linewise:r}}let WA=null;No.copy=No.cut=(t,e)=>{if(!jx(t.contentDOM,t.observer.selectionRange))return!1;let{text:n,ranges:r,linewise:a}=G5e(t.state);if(!n&&!a)return!1;WA=a?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=WG?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",n),!0):(H5e(t,n),!1)};const qG=_l.define();function KG(t,e){let n=[];for(let r of t.facet(CG)){let a=r(t,e);a&&n.push(a)}return n.length?t.update({effects:n,annotations:qG.of(!0)}):null}function YG(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=KG(t.state,e);n?t.dispatch(n):t.update([])}},10)}Gs.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),YG(t)};Gs.blur=t=>{t.observer.clearSelectionRange(),YG(t)};Gs.compositionstart=Gs.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Gs.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ke.chrome&&Ke.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Gs.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};No.beforeinput=(t,e)=>{var n,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let s=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],c=t.posAtDOM(l.startContainer,l.startOffset),u=t.posAtDOM(l.endContainer,l.endOffset);return MT(t,{from:c,to:u,insert:t.state.toText(s)},null),!0}}let a;if(Ke.chrome&&Ke.android&&(a=UG.find(s=>s.inputType==e.inputType))&&(t.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return Ke.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),Ke.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Gs.compositionend(t,e),20),!1};const YL=new Set;function q5e(t){YL.has(t)||(YL.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const XL=["pre-wrap","normal","pre-line","break-spaces"];let Vp=!1;function JL(){Vp=!1}class K5e{constructor(e){this.lineWrapping=e,this.doc=en.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let r=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((n-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return XL.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let r=0;r-1,c=Math.abs(n-this.lineHeight)>.3||this.lineWrapping!=l||Math.abs(r-this.charWidth)>.1;if(this.lineWrapping=l,this.lineHeight=n,this.charWidth=r,this.textHeight=a,this.lineLength=s,c){this.heightSamples={};for(let u=0;u0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>n1&&(Vp=!0),this.height=e)}replace(e,n,r){return js.of(r)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,r,a){let s=this,o=r.doc;for(let l=a.length-1;l>=0;l--){let{fromA:c,toA:u,fromB:d,toB:f}=a[l],h=s.lineAt(c,Fn.ByPosNoHeight,r.setDoc(n),0,0),p=h.to>=u?h:s.lineAt(u,Fn.ByPosNoHeight,r,0,0);for(f+=p.to-u,u=p.to;l>0&&h.from<=a[l-1].toA;)c=a[l-1].fromA,d=a[l-1].fromB,l--,cs*2){let l=e[n-1];l.break?e.splice(--n,1,l.left,null,l.right):e.splice(--n,1,l.left,l.right),r+=1+l.break,a-=l.size}else if(s>a*2){let l=e[r];l.break?e.splice(r,1,l.left,null,l.right):e.splice(r,1,l.left,l.right),r+=2+l.break,s-=l.size}else break;else if(a=s&&o(this.lineAt(0,Fn.ByPos,r,a,s))}setMeasuredHeight(e){let n=e.heights[e.index++];n<0?(this.spaceAbove=-n,n=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(n)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more&&this.setMeasuredHeight(a),this.outdated=!1,this}toString(){return`block(${this.length})`}}class li extends XG{constructor(e,n,r){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,n){return new po(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,n,r){let a=r[0];return r.length==1&&(a instanceof li||a instanceof Ra&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof Ra?a=new li(a.length,this.height,this.spaceAbove):a.height=this.height,this.outdated||(a.outdated=!1),a):js.of(r)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more?this.setMeasuredHeight(a):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ra extends js{constructor(e){super(e,0)}heightMetrics(e,n){let r=e.doc.lineAt(n).number,a=e.doc.lineAt(n+this.length).number,s=a-r+1,o,l=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*s);o=c/s,this.length>s+1&&(l=(this.height-c)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:a,perLine:o,perChar:l}}blockAt(e,n,r,a){let{firstLine:s,lastLine:o,perLine:l,perChar:c}=this.heightMetrics(n,a);if(n.lineWrapping){let u=a+(e0){let s=r[r.length-1];s instanceof Ra?r[r.length-1]=new Ra(s.length+a):r.push(null,new Ra(a-1))}if(e>0){let s=r[0];s instanceof Ra?r[0]=new Ra(e+s.length):r.unshift(new Ra(e-1),null)}return js.of(r)}decomposeLeft(e,n){n.push(new Ra(e-1),null)}decomposeRight(e,n){n.push(null,new Ra(this.length-e-1))}updateHeight(e,n=0,r=!1,a){let s=n+this.length;if(a&&a.from<=n+this.length&&a.more){let o=[],l=Math.max(n,a.from),c=-1;for(a.from>n&&o.push(new Ra(a.from-n-1).updateHeight(e,n));l<=s&&a.more;){let d=e.doc.lineAt(l).length;o.length&&o.push(null);let f=a.heights[a.index++],h=0;f<0&&(h=-f,f=a.heights[a.index++]),c==-1?c=f:Math.abs(f-c)>=n1&&(c=-2);let p=new li(d,f,h);p.outdated=!1,o.push(p),l+=d+1}l<=s&&o.push(null,new Ra(s-l).updateHeight(e,l));let u=js.of(o);return(c<0||Math.abs(u.height-this.height)>=n1||Math.abs(c-this.heightMetrics(e,n).perLine)>=n1)&&(Vp=!0),Qw(this,u)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class J5e extends js{constructor(e,n,r){super(e.length+n+r.length,e.height+r.height,n|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,n,r,a){let s=r+this.left.height;return el))return u;let d=n==Fn.ByPosNoHeight?Fn.ByPosNoHeight:Fn.ByPos;return c?u.join(this.right.lineAt(l,d,r,o,l)):this.left.lineAt(l,d,r,a,s).join(u)}forEachLine(e,n,r,a,s,o){let l=a+this.left.height,c=s+this.left.length+this.break;if(this.break)e=c&&this.right.forEachLine(e,n,r,l,c,o);else{let u=this.lineAt(c,Fn.ByPos,r,a,s);e=e&&u.from<=n&&o(u),n>u.to&&this.right.forEachLine(u.to+1,n,r,l,c,o)}}replace(e,n,r){let a=this.left.length+this.break;if(nthis.left.length)return this.balanced(this.left,this.right.replace(e-a,n-a,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of r)s.push(l);if(e>0&&ZL(s,o-1),n=r&&n.push(null)),e>r&&this.right.decomposeLeft(e-r,n)}decomposeRight(e,n){let r=this.left.length,a=r+this.break;if(e>=a)return this.right.decomposeRight(e-a,n);e2*n.size||n.size>2*e.size?js.of(this.break?[e,null,n]:[e,n]):(this.left=Qw(this.left,e),this.right=Qw(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,r=!1,a){let{left:s,right:o}=this,l=n+s.length+this.break,c=null;return a&&a.from<=n+s.length&&a.more?c=s=s.updateHeight(e,n,r,a):s.updateHeight(e,n,r),a&&a.from<=l+o.length&&a.more?c=o=o.updateHeight(e,l,r,a):o.updateHeight(e,l,r),c?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function ZL(t,e){let n,r;t[e]==null&&(n=t[e-1])instanceof Ra&&(r=t[e+1])instanceof Ra&&t.splice(e-1,3,new Ra(n.length+1+r.length))}const Z5e=5;class DT{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let r=Math.min(n,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof li?a.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new li(r-this.pos,-1,0)),this.writtenTo=r,n>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,r){if(e=Z5e)&&this.addLineDeco(a,s,o)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenToe&&this.nodes.push(new li(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,n){let r=new Ra(n-e);return this.oracle.doc.lineAt(e).to==n&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof li)return e;let n=new li(0,-1,0);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,r){let a=this.ensureLine();a.length+=r,a.collapsed+=r,a.widgetHeight=Math.max(a.widgetHeight,e),a.breaks+=n,this.writtenTo=this.pos=this.pos+r}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof li)&&!this.isCovered?this.nodes.push(new li(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&f.overflow!="visible"){let h=d.getBoundingClientRect();s=Math.max(s,h.left),o=Math.min(o,h.right),l=Math.max(l,h.top),c=Math.min(u==t.parentNode?a.innerHeight:c,h.bottom)}u=f.position=="absolute"||f.position=="fixed"?d.offsetParent:d.parentNode}else if(u.nodeType==11)u=u.host;else break;return{left:s-n.left,right:Math.max(s,o)-n.left,top:l-(n.top+e),bottom:Math.max(l,c)-(n.top+e)}}function n3e(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function r3e(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class u_{constructor(e,n,r,a){this.from=e,this.to=n,this.size=r,this.displaySize=a}static same(e,n){if(e.length!=n.length)return!1;for(let r=0;rtypeof a!="function"&&a.class=="cm-lineWrapping");this.heightOracle=new K5e(r),this.stateDeco=t8(n),this.heightMap=js.empty().applyChanges(this.stateDeco,en.empty,this.heightOracle.setDoc(n.doc),[new Di(0,0,0,n.doc.length)]);for(let a=0;a<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());a++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(a=>a.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let r=0;r<=1;r++){let a=r?n.head:n.anchor;if(!e.some(({from:s,to:o})=>a>=s&&a<=o)){let{from:s,to:o}=this.lineBlockAt(a);e.push(new ob(s,o))}}return this.viewports=e.sort((r,a)=>r.from-a.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?e8:new IT(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Jg(e,this.scaler))})}update(e,n=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=t8(this.state);let a=e.changedRanges,s=Di.extendWithRanges(a,Q5e(r,this.stateDeco,e?e.changes:Jr.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);JL(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Vp)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let c=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.headc.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let u=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(u||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(AG)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,n=e.contentDOM,r=window.getComputedStyle(n),a=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?Pn.RTL:Pn.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=n.getBoundingClientRect(),c=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let u=0,d=0;if(l.width&&l.height){let{scaleX:k,scaleY:S}=dG(n,l);(k>.005&&Math.abs(this.scaleX-k)>.005||S>.005&&Math.abs(this.scaleY-S)>.005)&&(this.scaleX=k,this.scaleY=S,u|=16,o=c=!0)}let f=(parseInt(r.paddingTop)||0)*this.scaleY,h=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=h)&&(this.paddingTop=f,this.paddingBottom=h,u|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(a.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,u|=16);let p=fG(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=pG(this.scrollParent||e.win);let x=(this.printing?r3e:t3e)(n,this.paddingTop),v=x.top-this.pixelViewport.top,b=x.bottom-this.pixelViewport.bottom;this.pixelViewport=x;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(c=!0)),!this.inView&&!this.scrollTarget&&!n3e(e.dom))return 0;let w=l.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,u|=16),c){let k=e.docView.measureVisibleLineHeights(this.viewport);if(a.mustRefreshForHeights(k)&&(o=!0),o||a.lineWrapping&&Math.abs(w-this.contentDOMWidth)>a.charWidth){let{lineHeight:S,charWidth:_,textHeight:C}=e.docView.measureTextSize();o=S>0&&a.refresh(s,S,_,C,Math.max(5,w/_),k),o&&(e.docView.minWidth=0,u|=16)}v>0&&b>0?d=Math.max(v,b):v<0&&b<0&&(d=Math.min(v,b)),JL();for(let S of this.viewports){let _=S.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(S);this.heightMap=(o?js.empty().applyChanges(this.stateDeco,en.empty,this.heightOracle,[new Di(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(a,0,o,new Y5e(S.from,_))}Vp&&(u|=2)}let j=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return j&&(u&2&&(u|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),u|=this.updateForViewport()),(u&2||j)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),a=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,c=new ob(a.lineAt(o-r*1e3,Fn.ByHeight,s,0,0).from,a.lineAt(l+(1-r)*1e3,Fn.ByHeight,s,0,0).to);if(n){let{head:u}=n.range;if(uc.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=a.lineAt(u,Fn.ByPos,s,0,0),h;n.y=="center"?h=(f.top+f.bottom)/2-d/2:n.y=="start"||n.y=="nearest"&&u=l+Math.max(10,Math.min(r,250)))&&a>o-2*1e3&&s>1,o=a<<1;if(this.defaultTextDirection!=Pn.LTR&&!r)return[];let l=[],c=(d,f,h,p)=>{if(f-dd&&bb.from>=h.from&&b.to<=h.to&&Math.abs(b.from-d)b.fromy));if(!v){if(fw.from<=f&&w.to>=f)){let w=n.moveToLineBoundary(Ne.cursor(f),!1,!0).head;w>d&&(f=w)}let b=this.gapSize(h,d,f,p),y=r||b<2e6?b:2e6;v=new u_(d,f,b,y)}l.push(v)},u=d=>{if(d.length2e6)for(let S of e)S.from>=d.from&&S.fromd.from&&c(d.from,p,d,f),mn.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let r=[];Lt.spans(n,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let a=0;if(r.length!=this.visibleRanges.length)a=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||Jg(this.heightMap.lineAt(e,Fn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||Jg(this.heightMap.lineAt(this.scaler.fromDOM(e),Fn.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return Jg(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class ob{constructor(e,n){this.from=e,this.to=n}}function s3e(t,e,n){let r=[],a=t,s=0;return Lt.spans(n,t,e,{span(){},point(o,l){o>a&&(r.push({from:a,to:o}),s+=o-a),a=l}},20),a=1)return e[e.length-1].to;let r=Math.floor(t*n);for(let a=0;;a++){let{from:s,to:o}=e[a],l=o-s;if(r<=l)return s+r;r-=l}}function cb(t,e){let n=0;for(let{from:r,to:a}of t.ranges){if(e<=a){n+=e-r;break}n+=a-r}return n/t.total}function i3e(t,e){for(let n of t)if(e(n))return n}const e8={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function t8(t){let e=t.facet(Gj).filter(r=>typeof r!="function"),n=t.facet(PT).filter(r=>typeof r!="function");return n.length&&e.push(Lt.join(n)),e}class IT{constructor(e,n,r){let a=0,s=0,o=0;this.viewports=r.map(({from:l,to:c})=>{let u=n.lineAt(l,Fn.ByPos,e,0,0).top,d=n.lineAt(c,Fn.ByPos,e,0,0).bottom;return a+=d-u,{from:l,to:c,top:u,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(n.height-a);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let n=0,r=0,a=0;;n++){let s=nn.from==e.viewports[r].from&&n.to==e.viewports[r].to):!1}}function Jg(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),r=e.toDOM(t.bottom);return new po(t.from,t.length,n,r-n,Array.isArray(t._content)?t._content.map(a=>Jg(a,e)):t._content)}const ub=Ye.define({combine:t=>t.join(" ")}),HA=Ye.define({combine:t=>t.indexOf(!0)>-1}),GA=Cu.newName(),JG=Cu.newName(),ZG=Cu.newName(),QG={"&light":"."+JG,"&dark":"."+ZG};function qA(t,e,n){return new Cu(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,a=>{if(a=="&")return t;if(!n||!n[a])throw new RangeError(`Unsupported selector: ${a}`);return n[a]}):t+" "+r}})}const o3e=qA("."+GA,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},QG),l3e={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},d_=Ke.ie&&Ke.ie_version<=11;class c3e{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new FOe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let r of n)this.queue.push(r);(Ke.ie&&Ke.ie_version<=11||Ke.ios&&e.composing)&&n.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ke.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ke.chrome&&Ke.chrome_version<126)&&(this.editContext=new d3e(e),e.state.facet(zl)&&(e.contentDOM.editContext=this.editContext.editContext)),d_&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,r)=>n!=e[r]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,a=this.selectionRange;if(r.state.facet(zl)?r.root.activeElement!=this.dom:!jx(this.dom,a))return;let s=a.anchorNode&&r.docView.tile.nearest(a.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(Ke.ie&&Ke.ie_version<=11||Ke.android&&Ke.chrome)&&!r.state.selection.main.empty&&a.focusNode&&_x(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=W0(e.root);if(!n)return!1;let r=Ke.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&u3e(this.view,n)||n;if(!r||this.selectionRange.eq(r))return!1;let a=jx(this.dom,r);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Hh(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,r=-1,a=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(a=!0),n==-1?{from:n,to:r}=o:(n=Math.min(o.from,n),r=Math.max(o.to,r)))}return{from:n,to:r,typeOver:a}}readChange(){let{from:e,to:n,typeOver:r}=this.processRecords(),a=this.selectionChanged&&jx(this.dom,this.selectionRange);if(e<0&&!a)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new E5e(this.view,e,n,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let r=this.view.state,a=BG(this.view,n);return this.view.state==r&&(n.domChanged||n.newSel&&!Zw(this.view.state.selection,n.newSel.main))&&this.view.update([]),a}readMutation(e){let n=this.view.docView.tile.nearest(e.target);if(!n||n.isWidget())return null;if(n.markDirty(e.type=="attributes"),e.type=="childList"){let r=n8(n,e.previousSibling||e.target.previousSibling,-1),a=n8(n,e.nextSibling||e.target.nextSibling,1);return{from:r?n.posAfter(r):n.posAtStart,to:a?n.posBefore(a):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(zl)!=e.state.facet(zl)&&(e.view.contentDOM.editContext=e.state.facet(zl)?this.editContext.editContext:null))}destroy(){var e,n,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function n8(t,e,n){for(;e;){let r=kr.get(e);if(r&&r.parent==t)return r;let a=e.parentNode;e=a!=t.dom?a:n>0?e.nextSibling:e.previousSibling}return null}function r8(t,e){let n=e.startContainer,r=e.startOffset,a=e.endContainer,s=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return _x(o.node,o.offset,a,s)&&([n,r,a,s]=[a,s,n,r]),{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}}function u3e(t,e){if(e.getComposedRanges){let a=e.getComposedRanges(t.root)[0];if(a)return r8(t,a)}let n=null;function r(a){a.preventDefault(),a.stopImmediatePropagation(),n=a.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",r,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",r,!0),n?r8(t,n):null}class d3e{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let a=e.state.selection.main,{anchor:s,head:o}=a,l=this.toEditorPos(r.updateRangeStart),c=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:l,drifted:!1});let u=c-l>r.text.length;l==this.from&&sthis.to&&(c=s);let d=zG(e.state.sliceDoc(l,c),r.text,(u?a.from:a.to)-l,u?"end":null);if(!d){let h=Ne.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));Zw(h,a)||e.dispatch({selection:h,userEvent:"select"});return}let f={from:d.from+l,to:d.toA+l,insert:en.of(r.text.slice(d.from,d.toB).split(` -`))};if((Ke.mac||Ke.android)&&f.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:c,insert:en.of([r.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let h=this.to-this.from+(f.to-f.from+f.insert.length);MT(e,f,Ne.single(this.toEditorPos(r.selectionStart,h),this.toEditorPos(r.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(n.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let a=[],s=null;for(let o=this.toEditorPos(r.rangeStart),l=this.toEditorPos(r.rangeEnd);o{let a=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let c=this.toEditorPos(s.rangeStart),u=this.toEditorPos(s.rangeEnd);if(c{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)n.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let a=W0(r.root);a&&a.rangeCount&&this.editContext.updateSelectionBounds(a.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,r=!1,a=this.pendingContextChange;return e.changes.iterChanges((s,o,l,c,u)=>{if(r)return;let d=u.length-(o-s);if(a&&o>=a.to)if(a.from==s&&a.to==o&&a.insert.eq(u)){a=this.pendingContextChange=null,n+=d,this.to+=d;return}else a=null,this.revertPending(e.state);if(s+=n,o+=n,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+u.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),u.toString()),this.to+=d}n+=d}),a&&!r&&this.revertPending(e.state),!r}update(e){let n=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(a=>!a.isUserEvent("input.type")&&a.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),a=this.toContextPos(n.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=a)&&this.editContext.updateSelection(r,a)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class Ue{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(a=>a.forEach(s=>r(s,this)))||(a=>this.update(a)),this.dispatch=this.dispatch.bind(this),this._root=e.root||BOe(e.parent)||document,this.viewState=new QL(this,e.state||Xt.create(e)),e.scrollTo&&e.scrollTo.is(ab)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ch).map(a=>new s_(a));for(let a of this.plugins)a.update(this);this.observer=new c3e(this),this.inputState=new P5e(this),this.inputState.ensureHandlers(this.plugins),this.docView=new BL(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let n=e.length==1&&e[0]instanceof ta?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,r=!1,a,s=this.state;for(let h of e){if(h.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=h.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,c=null;e.some(h=>h.annotation(qG))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,c=KG(s,o),c||(l=1));let u=this.observer.delayedAndroidKey,d=null;if(u?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(Xt.phrases)!=this.state.facet(Xt.phrases))return this.setState(s);a=Yw.create(this,s,e),a.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(f&&(f=f.map(h.changes)),h.scrollIntoView){let{main:p}=h.state.selection,{x:m,y:x}=this.state.facet(Ue.cursorScrollMargin);f=new Gh(p.empty?p:Ne.cursor(p.head,p.head>p.anchor?-1:1),"nearest","nearest",x,m)}for(let p of h.effects)p.is(ab)&&(f=p.value.clip(this.state))}this.viewState.update(a,f),this.bidiCache=ek.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),n=this.docView.update(a),this.state.facet(Xg)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(ub)!=a.state.facet(ub)&&(this.viewState.mustMeasureContent=!0),(n||r||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!a.empty)for(let h of this.state.facet(BA))try{h(a)}catch(p){vs(this.state,p,"update listener")}(c||d)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),d&&!BG(this,d)&&u.force&&Hh(this.contentDOM,u.key,u.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new QL(this,e),this.plugins=e.facet(Ch).map(r=>new s_(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new BL(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(Ch),r=e.state.facet(Ch);if(n!=r){let a=[];for(let s of r){let o=n.indexOf(s);if(o<0)a.push(new s_(s));else{let l=this.plugins[o];l.mustUpdate=e,a.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=a,this.pluginMap.clear()}else for(let a of this.plugins)a.mustUpdate=e;for(let a=0;a-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,r=this.viewState.scrollParent,a=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(a-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(pG(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(a);s=p.from,o=p.top}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];c&4||([this.measureRequests,u]=[u,this.measureRequests]);let d=u.map(p=>{try{return p.read(this)}catch(m){return vs(this.state,m),a8}}),f=Yw.create(this,this.state,[]),h=!1;f.flags|=c,n?n.flags|=c:n=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),h=this.docView.update(f),h&&this.docViewUpdate());for(let p=0;p1||m<-1)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){a=a+m,r?r.scrollTop+=m:this.win.scrollBy(0,m),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(BA))l(n)}get themeClasses(){return GA+" "+(this.state.facet(HA)?ZG:JG)+" "+this.state.facet(ub)}updateAttrs(){let e=s8(this,PG,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(zl)?"true":"false",class:"cm-content",style:`${Ke.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),s8(this,TT,n);let r=this.observer.ignore(()=>{let a=ML(this.contentDOM,this.contentAttrs,n),s=ML(this.dom,this.editorAttrs,e);return a||s});return this.editorAttrs=e,this.contentAttrs=n,r}showAnnouncements(e){let n=!0;for(let r of e)for(let a of r.effects)if(a.is(Ue.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(Xg);let e=this.state.facet(Ue.cspNonce);Cu.mount(this.root,this.styleModules.concat(o3e).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;nr.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,r){return c_(this,e,zL(this,e,n,r))}moveByGroup(e,n){return c_(this,e,zL(this,e,n,r=>k5e(this,e.head,r)))}visualLineSide(e,n){let r=this.bidiSpans(e),a=this.textDirectionAt(e.from),s=r[n?r.length-1:0];return Ne.cursor(s.side(n,a)+e.from,s.forward(!n,a)?1:-1)}moveToLineBoundary(e,n,r=!0){return w5e(this,e,n,r)}moveVertically(e,n,r){return c_(this,e,j5e(this,e,n,r))}domAtPos(e,n=1){return this.docView.domAtPos(e,n)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){this.readMeasured();let r=VA(this,e,n);return r&&r.pos}posAndSideAtCoords(e,n=!0){return this.readMeasured(),VA(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let r=this.docView.coordsAt(e,n);if(!r||r.left==r.right)return r;let a=this.state.doc.lineAt(e),s=this.bidiSpans(a),o=s[al.find(s,e-a.from,-1,n)];return H0(r,o.dir==Pn.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(EG)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>f3e)return bG(e.length);let n=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||vG(s.isolates,r=$L(this,e))))return s.order;r||(r=$L(this,e));let a=KOe(e.text,n,r);return this.bidiCache.push(new ek(e.from,e.to,n,r,!0,a)),a}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ke.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{hG(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){var r,a,s,o;return ab.of(new Gh(typeof e=="number"?Ne.cursor(e):e,(r=n.y)!==null&&r!==void 0?r:"nearest",(a=n.x)!==null&&a!==void 0?a:"nearest",(s=n.yMargin)!==null&&s!==void 0?s:5,(o=n.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return ab.of(new Gh(Ne.cursor(r.from),"start","start",r.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return gr.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return gr.define(()=>({}),{eventObservers:e})}static theme(e,n){let r=Cu.newName(),a=[ub.of(r),Xg.of(qA(`.${r}`,e))];return n&&n.dark&&a.push(HA.of(!0)),a}static baseTheme(e){return _f.lowest(Xg.of(qA("."+GA,e,QG)))}static findFromDOM(e){var n;let r=e.querySelector(".cm-content"),a=r&&kr.get(r)||kr.get(e);return((n=a==null?void 0:a.root)===null||n===void 0?void 0:n.view)||null}}Ue.styleModule=Xg;Ue.inputHandler=NG;Ue.clipboardInputFilter=AT;Ue.clipboardOutputFilter=OT;Ue.scrollHandler=OG;Ue.focusChangeEffect=CG;Ue.perLineTextDirection=EG;Ue.exceptionSink=_G;Ue.updateListener=BA;Ue.editable=zl;Ue.mouseSelectionStyle=SG;Ue.dragMovesSelection=jG;Ue.clickAddsSelectionRange=kG;Ue.decorations=Gj;Ue.blockWrappers=RG;Ue.outerDecorations=PT;Ue.atomicRanges=Ty;Ue.bidiIsolatedRanges=MG;Ue.cursorScrollMargin=Ye.define({combine:t=>{let e=5,n=5;for(let r of t)typeof r=="number"?e=n=r:{x:e,y:n}=r;return{x:e,y:n}}});Ue.scrollMargins=DG;Ue.darkTheme=HA;Ue.cspNonce=Ye.define({combine:t=>t.length?t[0]:""});Ue.contentAttributes=TT;Ue.editorAttributes=PG;Ue.lineWrapping=Ue.contentAttributes.of({class:"cm-lineWrapping"});Ue.announce=Ot.define();const f3e=4096,a8={};class ek{constructor(e,n,r,a,s,o){this.from=e,this.to=n,this.dir=r,this.isolates=a,this.fresh=s,this.order=o}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let r=[],a=e.length?e[e.length-1].dir:Pn.LTR;for(let s=Math.max(0,e.length-10);s=0;a--){let s=r[a],o=typeof s=="function"?s(t):s;o&&NT(o,n)}return n}const h3e=Ke.mac?"mac":Ke.windows?"win":Ke.linux?"linux":"key";function p3e(t,e){const n=t.split(/-(?!$)/);let r=n[n.length-1];r=="Space"&&(r=" ");let a,s,o,l;for(let c=0;cr.concat(a),[]))),n}function g3e(t,e,n){return tq(eq(t.state),e,t,n)}let Wc=null;const x3e=4e3;function y3e(t,e=h3e){let n=Object.create(null),r=Object.create(null),a=(o,l)=>{let c=r[o];if(c==null)r[o]=l;else if(c!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,c,u,d)=>{var f,h;let p=n[o]||(n[o]=Object.create(null)),m=l.split(/ (?!$)/).map(b=>p3e(b,e));for(let b=1;b{let j=Wc={view:w,prefix:y,scope:o};return setTimeout(()=>{Wc==j&&(Wc=null)},x3e),!0}]})}let x=m.join(" ");a(x,!1);let v=p[x]||(p[x]={preventDefault:!1,stopPropagation:!1,run:((h=(f=p._any)===null||f===void 0?void 0:f.run)===null||h===void 0?void 0:h.slice())||[]});c&&v.run.push(c),u&&(v.preventDefault=!0),d&&(v.stopPropagation=!0)};for(let o of t){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let u of l){let d=n[u]||(n[u]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let h in d)d[h].run.push(p=>f(p,KA))}let c=o[e]||o.key;if(c)for(let u of l)s(u,c,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(u,"Shift-"+c,o.shift,o.preventDefault,o.stopPropagation)}return n}let KA=null;function tq(t,e,n,r){KA=e;let a=ROe(e),s=Ps(a,0),o=Zo(s)==a.length&&a!=" ",l="",c=!1,u=!1,d=!1;Wc&&Wc.view==n&&Wc.scope==r&&(l=Wc.prefix+" ",VG.indexOf(e.keyCode)<0&&(u=!0,Wc=null));let f=new Set,h=v=>{if(v){for(let b of v.run)if(!f.has(b)&&(f.add(b),b(n)))return v.stopPropagation&&(d=!0),!0;v.preventDefault&&(v.stopPropagation&&(d=!0),u=!0)}return!1},p=t[r],m,x;return p&&(h(p[l+db(a,e,!o)])?c=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ke.windows&&e.ctrlKey&&e.altKey)&&!(Ke.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=Eu[e.keyCode])&&m!=a?(h(p[l+db(m,e,!0)])||e.shiftKey&&(x=U0[e.keyCode])!=a&&x!=m&&h(p[l+db(x,e,!1)]))&&(c=!0):o&&e.shiftKey&&h(p[l+db(a,e,!0)])&&(c=!0),!c&&h(p._any)&&(c=!0)),u&&(c=!0),c&&d&&e.stopPropagation(),KA=null,c}class Fd{constructor(e,n,r,a,s){this.className=e,this.left=n,this.top=r,this.width=a,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,r){if(r.empty){let a=e.coordsAtPos(r.head,r.assoc||1);if(!a)return[];let s=nq(e);return[new Fd(n,a.left-s.left,a.top-s.top,null,a.bottom-a.top)]}else return v3e(e,n,r)}}function nq(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Pn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function o8(t,e,n,r){let a=t.coordsAtPos(e,n*2);if(!a)return r;let s=t.dom.getBoundingClientRect(),o=(a.top+a.bottom)/2,l=t.posAtCoords({x:s.left+1,y:o}),c=t.posAtCoords({x:s.right-1,y:o});return l==null||c==null?r:{from:Math.max(r.from,Math.min(l,c)),to:Math.min(r.to,Math.max(l,c))}}function v3e(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let r=Math.max(n.from,t.viewport.from),a=Math.min(n.to,t.viewport.to),s=t.textDirection==Pn.LTR,o=t.contentDOM,l=o.getBoundingClientRect(),c=nq(t),u=o.querySelector(".cm-line"),d=u&&window.getComputedStyle(u),f=l.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),h=l.right-(d?parseInt(d.paddingRight):0),p=UA(t,r,1),m=UA(t,a,-1),x=p.type==La.Text?p:null,v=m.type==La.Text?m:null;if(x&&(t.lineWrapping||p.widgetLineBreaks)&&(x=o8(t,r,1,x)),v&&(t.lineWrapping||m.widgetLineBreaks)&&(v=o8(t,a,-1,v)),x&&v&&x.from==v.from&&x.to==v.to)return y(w(n.from,n.to,x));{let k=x?w(n.from,null,x):j(p,!1),S=v?w(null,n.to,v):j(m,!0),_=[];return(x||p).to<(v||m).from-(x&&v?1:0)||p.widgetLineBreaks>1&&k.bottom+t.defaultLineHeight/2A&&D.from=X)break;W>L&&R(Math.max(Y,L),k==null&&Y<=A,Math.min(W,X),S==null&&W>=T,U.dir)}if(L=J.to+1,L>=X)break}return P.length==0&&R(A,k==null,T,S==null,t.textDirection),{top:C,bottom:E,horizontal:P}}function j(k,S){let _=l.top+(S?k.top:k.bottom);return{top:_,bottom:_,horizontal:[]}}}function b3e(t,e){return t.constructor==e.constructor&&t.eq(e)}class w3e{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(r1)!=e.state.facet(r1)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,r=e.facet(r1);for(;n!b3e(n,this.drawn[r]))){let n=this.dom.firstChild,r=0;for(let a of e)a.update&&n&&a.constructor&&this.drawn[r].constructor&&a.update(n,this.drawn[r])?(n=n.nextSibling,r++):this.dom.insertBefore(a.draw(),n);for(;n;){let a=n.nextSibling;n.remove(),n=a}this.drawn=e,Ke.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const r1=Ye.define();function rq(t){return[gr.define(e=>new w3e(e,t)),r1.of(t)]}const Wp=Ye.define({combine(t){return Nl(t,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function k3e(t={}){return[Wp.of(t),j3e,S3e,_3e,AG.of(!0)]}function aq(t){return t.startState.facet(Wp)!=t.state.facet(Wp)}const j3e=rq({above:!0,markers(t){let{state:e}=t,n=e.facet(Wp),r=[];for(let a of e.selection.ranges){let s=a==e.selection.main;if(a.empty||n.drawRangeCursor&&!(s&&Ke.ios&&n.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=a.empty?a:Ne.cursor(a.head,a.assoc);for(let c of Fd.forRange(t,o,l))r.push(c)}}return r},update(t,e){t.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=aq(t);return n&&l8(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){l8(e.state,t)},class:"cm-cursorLayer"});function l8(t,e){e.style.animationDuration=t.facet(Wp).cursorBlinkRate+"ms"}const S3e=rq({above:!1,markers(t){let e=[],{main:n,ranges:r}=t.state.selection;for(let a of r)if(!a.empty)for(let s of Fd.forRange(t,"cm-selectionBackground",a))e.push(s);if(Ke.ios&&!n.empty&&t.state.facet(Wp).iosSelectionHandles){for(let a of Fd.forRange(t,"cm-selectionHandle cm-selectionHandle-start",Ne.cursor(n.from,1)))e.push(a);for(let a of Fd.forRange(t,"cm-selectionHandle cm-selectionHandle-end",Ne.cursor(n.to,1)))e.push(a)}return e},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||aq(t)},class:"cm-selectionLayer"}),_3e=_f.highest(Ue.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),sq=Ot.define({map(t,e){return t==null?null:e.mapPos(t)}}),Zg=ns.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,r)=>r.is(sq)?r.value:n,t)}}),N3e=gr.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(Zg);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(Zg)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(Zg),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let r=t.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-r.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(Zg)!=t&&this.view.dispatch({effects:sq.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function C3e(){return[Zg,N3e]}function c8(t,e,n,r,a){e.lastIndex=0;for(let s=t.iterRange(n,r),o=n,l;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)a(o+l.index,l)}function E3e(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let r=[];for(let{from:a,to:s}of n)a=Math.max(t.state.doc.lineAt(a).from,a-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=a?r[r.length-1].to=s:r.push({from:a,to:s});return r}class A3e{constructor(e){const{regexp:n,decoration:r,decorate:a,boundary:s,maxLength:o=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,a)this.addMatch=(l,c,u,d)=>a(d,u,u+l[0].length,l,c);else if(typeof r=="function")this.addMatch=(l,c,u,d)=>{let f=r(l,c,u);f&&d(u,u+l[0].length,f)};else if(r)this.addMatch=(l,c,u,d)=>d(u,u+l[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let n=new hc,r=n.add.bind(n);for(let{from:a,to:s}of E3e(e,this.maxLength))c8(e.state.doc,this.regexp,a,s,(o,l)=>this.addMatch(l,e,o,r));return n.finish()}updateDeco(e,n){let r=1e9,a=-1;return e.docChanged&&e.changes.iterChanges((s,o,l,c)=>{c>=e.view.viewport.from&&l<=e.view.viewport.to&&(r=Math.min(l,r),a=Math.max(c,a))}),e.viewportMoved||a-r>1e3?this.createDeco(e.view):a>-1?this.updateRange(e.view,n.map(e.changes),r,a):n}updateRange(e,n,r,a){for(let s of e.visibleRanges){let o=Math.max(s.from,r),l=Math.min(s.to,a);if(l>=o){let c=e.state.doc.lineAt(o),u=c.toc.from;o--)if(this.boundary.test(c.text[o-1-c.from])){d=o;break}for(;lh.push(b.range(x,v));if(c==u)for(this.regexp.lastIndex=d-c.from;(p=this.regexp.exec(c.text))&&p.indexthis.addMatch(v,e,x,m));n=n.update({filterFrom:d,filterTo:f,filter:(x,v)=>xf,add:h})}}return n}}const YA=/x/.unicode!=null?"gu":"g",O3e=new RegExp(`[\0-\b ---Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,YA),T3e={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let f_=null;function P3e(){var t;if(f_==null&&typeof document<"u"&&document.body){let e=document.body.style;f_=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return f_||!1}const a1=Ye.define({combine(t){let e=Nl(t,{render:null,specialChars:O3e,addSpecialChars:null});return(e.replaceTabs=!P3e())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,YA)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,YA)),e}});function R3e(t={}){return[a1.of(t),M3e()]}let u8=null;function M3e(){return u8||(u8=gr.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(a1)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new A3e({regexp:t.specialChars,decoration:(e,n,r)=>{let{doc:a}=n.state,s=Ps(e[0],0);if(s==9){let o=a.lineAt(r),l=n.state.tabSize,c=jm(o.text,l,r-o.from);return ht.replace({widget:new L3e((l-c%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ht.replace({widget:new $3e(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(a1);t.startState.facet(a1)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const D3e="•";function I3e(t){return t>=32?D3e:t==10?"␤":String.fromCharCode(9216+t)}class $3e extends Cl{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=I3e(this.code),r=e.state.phrase("Control character")+" "+(T3e[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,r,n);if(a)return a;let s=document.createElement("span");return s.textContent=n,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class L3e extends Cl{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function F3e(){return z3e}const B3e=ht.line({class:"cm-activeLine"}),z3e=gr.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let r of t.state.selection.ranges){let a=t.lineBlockAt(r.head);a.from>e&&(n.push(B3e.range(a.from)),e=a.from)}return ht.set(n)}},{decorations:t=>t.decorations});class U3e extends Cl{constructor(e){super(),this.content=e}toDOM(e){let n=document.createElement("span");return n.className="cm-placeholder",n.style.pointerEvents="none",n.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),n.setAttribute("aria-hidden","true"),n}coordsAt(e){let n=e.firstChild?Sx(e.firstChild):[];if(!n.length)return null;let r=window.getComputedStyle(e.parentNode),a=H0(n[0],r.direction!="rtl"),s=parseInt(r.lineHeight);return a.bottom-a.top>s*1.5?{left:a.left,right:a.right,top:a.top,bottom:a.top+s}:a}ignoreEvent(){return!1}}function iq(t){let e=gr.fromClass(class{constructor(n){this.view=n,this.placeholder=t?ht.set([ht.widget({widget:new U3e(t),side:1}).range(0)]):ht.none}get decorations(){return this.view.state.doc.length?ht.none:this.placeholder}},{decorations:n=>n.decorations});return typeof t=="string"?[e,Ue.contentAttributes.of({"aria-placeholder":t})]:e}const XA=2e3;function V3e(t,e,n){let r=Math.min(e.line,n.line),a=Math.max(e.line,n.line),s=[];if(e.off>XA||n.off>XA||e.col<0||n.col<0){let o=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=r;c<=a;c++){let u=t.doc.line(c);u.length<=l&&s.push(Ne.range(u.from+o,u.to+l))}}else{let o=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=r;c<=a;c++){let u=t.doc.line(c),d=AA(u.text,o,t.tabSize,!0);if(d<0)s.push(Ne.cursor(u.to));else{let f=AA(u.text,l,t.tabSize);s.push(Ne.range(u.from+d,u.from+f))}}}return s}function W3e(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function d8(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),r=t.state.doc.lineAt(n),a=n-r.from,s=a>XA?-1:a==r.length?W3e(t,e.clientX):jm(r.text,t.state.tabSize,n-r.from);return{line:r.number,col:s,off:a}}function H3e(t,e){let n=d8(t,e),r=t.state.selection;return n?{update(a){if(a.docChanged){let s=a.changes.mapPos(a.startState.doc.line(n.line).from),o=a.state.doc.lineAt(s);n={line:o.number,col:n.col,off:Math.min(n.off,o.length)},r=r.map(a.changes)}},get(a,s,o){let l=d8(t,a);if(!l)return r;let c=V3e(t.state,n,l);return c.length?o?Ne.create(c.concat(r.ranges)):Ne.create(c):r}}:null}function G3e(t){let e=n=>n.altKey&&n.button==0;return Ue.mouseSelectionStyle.of((n,r)=>e(r)?H3e(n,r):null)}const q3e={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},K3e={style:"cursor: crosshair"};function Y3e(t={}){let[e,n]=q3e[t.key||"Alt"],r=gr.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventObservers:{keydown(a){this.set(a.keyCode==e||n(a))},keyup(a){(a.keyCode==e||!n(a))&&this.set(!1)},mousemove(a){this.set(n(a))}}});return[r,Ue.contentAttributes.of(a=>{var s;return!((s=a.plugin(r))===null||s===void 0)&&s.isDown?K3e:null})]}const fb="-10000px";class oq{constructor(e,n,r,a){this.facet=n,this.createTooltipView=r,this.removeTooltipView=a,this.input=e.state.facet(n),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,n){var r;let a=e.state.facet(this.facet),s=a.filter(c=>c);if(a===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let o=[],l=n?[]:null;for(let c=0;cn[u]=c),n.length=l.length),this.input=a,this.tooltips=s,this.tooltipViews=o,!0}}function X3e(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const h_=Ye.define({combine:t=>{var e,n,r;return{position:Ke.ios?"absolute":((e=t.find(a=>a.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(a=>a.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((r=t.find(a=>a.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||X3e}}}),f8=new WeakMap,$T=gr.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(h_);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new oq(t,LT,(n,r)=>this.createTooltip(n,r),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,r=t.state.facet(h_);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let a of this.manager.tooltipViews)a.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let a of this.manager.tooltipViews)this.container.appendChild(a.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),r=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let a=document.createElement("div");a.className="cm-tooltip-arrow",n.dom.appendChild(a)}return n.dom.style.position=this.position,n.dom.style.top=fb,n.dom.style.left="0px",this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(t=r.destroy)===null||t===void 0||t.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(Ke.safari){let o=s.getBoundingClientRect();n=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else n=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(t=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),a=RT(this.view);return{visible:{left:r.left+a.left,top:r.top+a.top,right:r.right-a.right,bottom:r.bottom-a.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(h_).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:r,scaleX:a,scaleY:s}=t,o=[];for(let l=0;l=Math.min(n.bottom,r.bottom)||f.rightMath.min(n.right,r.right)+.1)){d.style.top=fb;continue}let p=c.arrow?u.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,x=h.right-h.left,v=(e=f8.get(u))!==null&&e!==void 0?e:h.bottom-h.top,b=u.offset||Z3e,y=this.view.textDirection==Pn.LTR,w=h.width>r.right-r.left?y?r.left:r.right-h.width:y?Math.max(r.left,Math.min(f.left-(p?14:0)+b.x,r.right-x)):Math.min(Math.max(r.left,f.left-x+(p?14:0)-b.x),r.right-x),j=this.above[l];!c.strictSide&&(j?f.top-v-m-b.yr.bottom)&&j==r.bottom-f.bottom>f.top-r.top&&(j=this.above[l]=!j);let k=(j?f.top-r.top:r.bottom-f.bottom)-m;if(kw&&C.topS&&(S=j?C.top-v-2-m:C.bottom+m+2);if(this.position=="absolute"?(d.style.top=(S-t.parent.top)/s+"px",h8(d,(w-t.parent.left)/a)):(d.style.top=S/s+"px",h8(d,w/a)),p){let C=f.left+(y?b.x:-b.x)-(w+14-7);p.style.left=C/a+"px"}u.overlap!==!0&&o.push({left:w,top:S,right:_,bottom:S+v}),d.classList.toggle("cm-tooltip-above",j),d.classList.toggle("cm-tooltip-below",!j),u.positioned&&u.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=fb}},{eventObservers:{scroll(){this.maybeMeasure()}}});function h8(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const J3e=Ue.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Z3e={x:0,y:0},LT=Ye.define({enables:[$T,J3e]}),tk=Ye.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class Jj{static create(e){return new Jj(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new oq(e,tk,(n,r)=>this.createHostedView(n,r),n=>n.dom.remove())}createHostedView(e,n){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let r of this.manager.tooltipViews){let a=r[e];if(a!==void 0){if(n===void 0)n=a;else if(n!==a)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Q3e=LT.compute([tk],t=>{let e=t.facet(tk);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var r;return(r=n.end)!==null&&r!==void 0?r:n.pos})),create:Jj.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class eTe{constructor(e,n,r,a,s){this.view=e,this.source=n,this.field=r,this.setHover=a,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;el.bottom||n.xl.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(a)).find(d=>d.from<=a&&d.to>=a),u=c&&c.dir==Pn.RTL?-1:1;s=n.x{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>vs(e.state,c,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin($T),n=e?e.manager.tooltips.findIndex(r=>r.create==Jj.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:a,tooltip:s}=this;if(a.length&&s&&!tTe(s.dom,e)||this.pending){let{pos:o}=a[0]||this.pending,l=(r=(n=a[0])===null||n===void 0?void 0:n.end)!==null&&r!==void 0?r:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!nTe(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=r=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const hb=4;function tTe(t,e){let{left:n,right:r,top:a,bottom:s}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();a=Math.min(l.top,a),s=Math.max(l.bottom,s)}return e.clientX>=n-hb&&e.clientX<=r+hb&&e.clientY>=a-hb&&e.clientY<=s+hb}function nTe(t,e,n,r,a,s){let o=t.scrollDOM.getBoundingClientRect(),l=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>r||o.righta||Math.min(o.bottom,l)=e&&c<=n}function rTe(t,e={}){let n=Ot.define(),r=ns.define({create(){return[]},update(a,s){if(a.length&&(e.hideOnChange&&(s.docChanged||s.selection)?a=[]:e.hideOn&&(a=a.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let l of a){let c=s.changes.mapPos(l.pos,-1,ps.TrackDel);if(c!=null){let u=Object.assign(Object.create(null),l);u.pos=c,u.end!=null&&(u.end=s.changes.mapPos(u.end)),o.push(u)}}a=o}for(let o of s.effects)o.is(n)&&(a=o.value),o.is(aTe)&&(a=[]);return a},provide:a=>tk.from(a)});return{active:r,extension:[r,gr.define(a=>new eTe(a,t,r,n,e.hoverTime||300)),Q3e]}}function lq(t,e){let n=t.plugin($T);if(!n)return null;let r=n.manager.tooltips.indexOf(e);return r<0?null:n.manager.tooltipViews[r]}const aTe=Ot.define(),p8=Ye.define({combine(t){let e,n;for(let r of t)e=e||r.topContainer,n=n||r.bottomContainer;return{topContainer:e,bottomContainer:n}}});function FT(t,e){let n=t.plugin(cq),r=n?n.specs.indexOf(e):-1;return r>-1?n.panels[r]:null}const cq=gr.fromClass(class{constructor(t){this.input=t.state.facet(q0),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(p8);this.top=new pb(t,!0,e.topContainer),this.bottom=new pb(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(p8);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new pb(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new pb(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(q0);if(n!=this.input){let r=n.filter(c=>c),a=[],s=[],o=[],l=[];for(let c of r){let u=this.specs.indexOf(c),d;u<0?(d=c(t.view),l.push(d)):(d=this.panels[u],d.update&&d.update(t)),a.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=a,this.top.sync(s),this.bottom.sync(o);for(let c of l)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let r of this.panels)r.update&&r.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Ue.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class pb{constructor(e,n,r){this.view=e,this.top=n,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=m8(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=m8(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function m8(t){let e=t.nextSibling;return t.remove(),e}const q0=Ye.define({enables:cq});function sTe(t,e){let n,r=new Promise(o=>n=o),a=o=>iTe(o,e,n);t.state.field(p_,!1)?t.dispatch({effects:uq.of(a)}):t.dispatch({effects:Ot.appendConfig.of(p_.init(()=>[a]))});let s=dq.of(a);return{close:s,result:r.then(o=>((t.win.queueMicrotask||(c=>t.win.setTimeout(c,10)))(()=>{t.state.field(p_).indexOf(a)>-1&&t.dispatch({effects:s})}),o))}}const p_=ns.define({create(){return[]},update(t,e){for(let n of e.effects)n.is(uq)?t=[n.value].concat(t):n.is(dq)&&(t=t.filter(r=>r!=n.value));return t},provide:t=>q0.computeN([t],e=>e.field(t))}),uq=Ot.define(),dq=Ot.define();function iTe(t,e,n){let r=e.content?e.content(t,()=>o(null)):null;if(!r){if(r=Sn("form"),e.input){let l=Sn("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),r.appendChild(Sn("label",(e.label||"")+": ",l))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(Sn("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let a=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let l=0;l{u.keyCode==27?(u.preventDefault(),o(null)):u.keyCode==13&&(u.preventDefault(),o(c))}),c.addEventListener("submit",u=>{u.preventDefault(),o(c)})}let s=Sn("div",r,Sn("button",{onclick:()=>o(null),"aria-label":t.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(l){s.contains(s.ownerDocument.activeElement)&&t.focus(),n(l)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let l;typeof e.focus=="string"?l=r.querySelector(e.focus):l=r.querySelector("input")||r.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}class mc extends Nu{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}mc.prototype.elementClass="";mc.prototype.toDOM=void 0;mc.prototype.mapMode=ps.TrackBefore;mc.prototype.startSide=mc.prototype.endSide=-1;mc.prototype.point=!0;const s1=Ye.define(),oTe=Ye.define(),lTe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Lt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Cx=Ye.define();function cTe(t){return[fq(),Cx.of({...lTe,...t})]}const g8=Ye.define({combine:t=>t.some(e=>e)});function fq(t){return[uTe]}const uTe=gr.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Cx).map(e=>new y8(t,e)),this.fixed=!t.state.facet(g8);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,r=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(r<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(g8)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=Lt.iter(this.view.state.facet(s1),this.view.viewport.from),r=[],a=this.gutters.map(s=>new dTe(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let l of s.type)if(l.type==La.Text&&o){JA(n,r,l.from);for(let c of a)c.line(this.view,l,r);o=!1}else if(l.widget)for(let c of a)c.widget(this.view,l)}else if(s.type==La.Text){JA(n,r,s.from);for(let o of a)o.line(this.view,s,r)}else if(s.widget)for(let o of a)o.widget(this.view,s);for(let s of a)s.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(Cx),n=t.state.facet(Cx),r=t.docChanged||t.heightChanged||t.viewportChanged||!Lt.eq(t.startState.facet(s1),t.state.facet(s1),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let a of this.gutters)a.update(t)&&(r=!0);else{r=!0;let a=[];for(let s of n){let o=e.indexOf(s);o<0?a.push(new y8(this.view,s)):(this.gutters[o].update(t),a.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),a.indexOf(s)<0&&s.destroy();for(let s of a)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=a}return r}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Ue.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let r=n.dom.offsetWidth*e.scaleX,a=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Pn.LTR?{left:r,right:a}:{right:r,left:a}})});function x8(t){return Array.isArray(t)?t:[t]}function JA(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class dTe{constructor(e,n,r){this.gutter=e,this.height=r,this.i=0,this.cursor=Lt.iter(e.markers,n.from)}addElement(e,n,r){let{gutter:a}=this,s=(n.top-this.height)/e.scaleY,o=n.height/e.scaleY;if(this.i==a.elements.length){let l=new hq(e,o,s,r);a.elements.push(l),a.dom.appendChild(l.dom)}else a.elements[this.i].update(e,o,s,r);this.height=n.bottom,this.i++}line(e,n,r){let a=[];JA(this.cursor,a,n.from),r.length&&(a=a.concat(r));let s=this.gutter.config.lineMarker(e,n,a);s&&a.unshift(s);let o=this.gutter;a.length==0&&!o.config.renderEmptyElements||this.addElement(e,n,a)}widget(e,n){let r=this.gutter.config.widgetMarker(e,n.widget,n),a=r?[r]:null;for(let s of e.state.facet(oTe)){let o=s(e,n.widget,n);o&&(a||(a=[])).push(o)}a&&this.addElement(e,n,a)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class y8{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in n.domEventHandlers)this.dom.addEventListener(r,a=>{let s=a.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();o=(c.top+c.bottom)/2}else o=a.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);n.domEventHandlers[r](e,l,a)&&a.preventDefault()});this.markers=x8(n.markers(e)),n.initialSpacer&&(this.spacer=new hq(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=x8(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let a=this.config.updateSpacer(this.spacer.markers[0],e);a!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[a])}let r=e.view.viewport;return!Lt.eq(this.markers,n,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class hq{constructor(e,n,r,a){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,r,a)}update(e,n,r,a){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),fTe(this.markers,a)||this.setMarkers(e,a)}setMarkers(e,n){let r="cm-gutterElement",a=this.dom.firstChild;for(let s=0,o=0;;){let l=o,c=ss(l,c,u)||o(l,c,u):o}return r}})}});class m_ extends mc{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function g_(t,e){return t.state.facet(Eh).formatNumber(e,t.state)}const mTe=Cx.compute([Eh],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(hTe)},lineMarker(e,n,r){return r.some(a=>a.toDOM)?null:new m_(g_(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,r)=>{for(let a of e.state.facet(pTe)){let s=a(e,n,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Eh)!=e.state.facet(Eh),initialSpacer(e){return new m_(g_(e,v8(e.state.doc.lines)))},updateSpacer(e,n){let r=g_(n.view,v8(n.view.state.doc.lines));return r==e.number?e:new m_(r)},domEventHandlers:t.facet(Eh).domEventHandlers,side:"before"}));function gTe(t={}){return[Eh.of(t),fq(),mTe]}function v8(t){let e=9;for(;e{let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.head).from;a>n&&(n=a,e.push(xTe.range(a)))}return Lt.of(e)});function vTe(){return yTe}const bTe=1024;let wTe=0;class x_{constructor(e,n){this.from=e,this.to=n}}class qt{constructor(e={}){this.id=wTe++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=qs.match(e)),n=>{let r=e(n);return r===void 0?null:[this,r]}}}qt.closedBy=new qt({deserialize:t=>t.split(" ")});qt.openedBy=new qt({deserialize:t=>t.split(" ")});qt.group=new qt({deserialize:t=>t.split(" ")});qt.isolate=new qt({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});qt.contextHash=new qt({perNode:!0});qt.lookAhead=new qt({perNode:!0});qt.mounted=new qt({perNode:!0});class Ex{constructor(e,n,r,a=!1){this.tree=e,this.overlay=n,this.parser=r,this.bracketed=a}static get(e){return e&&e.props&&e.props[qt.mounted.id]}}const kTe=Object.create(null);class qs{constructor(e,n,r,a=0){this.name=e,this.props=n,this.id=r,this.flags=a}static define(e){let n=e.props&&e.props.length?Object.create(null):kTe,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),a=new qs(e.name||"",n,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(a)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return a}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(qt.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let r in e)for(let a of r.split(" "))n[a]=e[r];return r=>{for(let a=r.prop(qt.group),s=-1;s<(a?a.length:0);s++){let o=n[s<0?r.name:a[s]];if(o)return o}}}}qs.none=new qs("",Object.create(null),0,8);class BT{constructor(e){this.types=e;for(let n=0;n0;for(let c=this.cursor(o|Pr.IncludeAnonymous);;){let u=!1;if(c.from<=s&&c.to>=a&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;u=!0}for(;u&&r&&(l||!c.type.isAnonymous)&&r(c),!c.nextSibling();){if(!c.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:VT(qs.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,a)=>new ir(this.type,n,r,a,this.propValues),e.makeTree||((n,r,a)=>new ir(qs.none,n,r,a)))}static build(e){return NTe(e)}}ir.empty=new ir(qs.none,[],[],0);class zT{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new zT(this.buffer,this.index)}}class Ou{constructor(e,n,r){this.buffer=e,this.length=n,this.set=r}get type(){return qs.none}toString(){let e=[];for(let n=0;n0));c=o[c+3]);return l}slice(e,n,r){let a=this.buffer,s=new Uint16Array(n-e),o=0;for(let l=e,c=0;l=e&&ne;case 1:return n<=e&&r>e;case 2:return r>e;case 4:return!0}}function K0(t,e,n,r){for(var a;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to0?l.length:-1;e!=u;e+=n){let d=l[e],f=c[e]+o.from,h;if(!(!(s&Pr.EnterBracketed&&d instanceof ir&&(h=Ex.get(d))&&!h.overlay&&h.bracketed&&r>=f&&r<=f+d.length)&&!pq(a,r,f,f+d.length))){if(d instanceof Ou){if(s&Pr.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,n,r-f,a);if(p>-1)return new au(new jTe(o,d,e,f),null,p)}else if(s&Pr.IncludeAnonymous||!d.type.isAnonymous||UT(d)){let p;if(!(s&Pr.IgnoreMounts)&&(p=Ex.get(d))&&!p.overlay)return new Bi(p.tree,f,e,o);let m=new Bi(d,f,e,o);return s&Pr.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?d.children.length-1:0,n,r,a,s)}}}if(s&Pr.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+n:e=n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,r=0){let a;if(!(r&Pr.IgnoreOverlays)&&(a=Ex.get(this._tree))&&a.overlay){let s=e-this.from,o=r&Pr.EnterBracketed&&a.bracketed;for(let{from:l,to:c}of a.overlay)if((n>0||o?l<=s:l=s:c>s))return new Bi(a.tree,a.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function w8(t,e,n,r){let a=t.cursor(),s=[];if(!a.firstChild())return s;if(n!=null){for(let o=!1;!o;)if(o=a.type.is(n),!a.nextSibling())return s}for(;;){if(r!=null&&a.type.is(r))return s;if(a.type.is(e)&&s.push(a.node),!a.nextSibling())return r==null?s:[]}}function ZA(t,e,n=e.length-1){for(let r=t;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}class jTe{constructor(e,n,r,a){this.parent=e,this.buffer=n,this.index=r,this.start=a}}class au extends mq{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,r){super(),this.context=e,this._parent=n,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,n,r){let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.context.start,r);return s<0?null:new au(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,r=0){if(r&Pr.ExcludeBuffers)return null;let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new au(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new au(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new au(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:r}=this.context,a=this.index+4,s=r.buffer[this.index+3];if(s>a){let o=r.buffer[this.index+1];e.push(r.slice(a,s,o)),n.push(0)}return new ir(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function gq(t){if(!t.length)return null;let e=0,n=t[0];for(let s=1;sn.from||o.to=e){let l=new Bi(o.tree,o.overlay[0].from+s.from,-1,s);(a||(a=[r])).push(K0(l,e,n,!1))}}return a?gq(a):r}class QA{get name(){return this.type.name}constructor(e,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~Pr.EnterBracketed,e instanceof Bi)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:r,buffer:a}=this.buffer;return this.type=n||a.set.types[a.buffer[e]],this.from=r+a.buffer[e+1],this.to=r+a.buffer[e+2],!0}yield(e){return e?e instanceof Bi?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,r,this.mode));let{buffer:a}=this.buffer,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,r=this.mode){return this.buffer?r&Pr.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(e<0){let a=r<0?0:this.stack[r]+4;if(this.index!=a)return this.yieldBuf(n.findChild(a,this.index,-1,0,4))}else{let a=n.buffer[this.index+3];if(a<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(a)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,r,{buffer:a}=this;if(a){if(e>0){if(this.index-1)for(let s=n+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let l=r._tree.children[s];if(this.mode&Pr.IncludeAnonymous||l instanceof Ou||!l.type.isAnonymous||UT(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==a){if(a==this.index)return o;n=o,r=s+1;break e}a=this.stack[--s]}for(let a=r;a=0;s--){if(s<0)return ZA(this._tree,e,a);let o=r[n.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[a]&&e[a]!=o.name)return!1;a--}}return!0}}function UT(t){return t.children.some(e=>e instanceof Ou||!e.type.isAnonymous||UT(e))}function NTe(t){var e;let{buffer:n,nodeSet:r,maxBufferLength:a=bTe,reused:s=[],minRepeatType:o=r.types.length}=t,l=Array.isArray(n)?new zT(n,n.length):n,c=r.types,u=0,d=0;function f(k,S,_,C,E,P){let{id:R,start:A,end:T,size:D}=l,L=d,X=u;if(D<0)if(l.next(),D==-1){let G=s[R];_.push(G),C.push(A-k);return}else if(D==-3){u=R;return}else if(D==-4){d=R;return}else throw new RangeError(`Unrecognized record size: ${D}`);let J=c[R],U,Y,W=A-k;if(T-A<=a&&(Y=v(l.pos-S,E))){let G=new Uint16Array(Y.size-Y.skip),I=l.pos-Y.size,q=G.length;for(;l.pos>I;)q=b(Y.start,G,q);U=new Ou(G,T-Y.start,r),W=Y.start-k}else{let G=l.pos-D;l.next();let I=[],q=[],M=R>=o?R:-1,B=0,z=T;for(;l.pos>G;)M>=0&&l.id==M&&l.size>=0?(l.end<=z-a&&(m(I,q,A,B,l.end,z,M,L,X),B=I.length,z=l.end),l.next()):P>2500?h(A,G,I,q):f(A,G,I,q,M,P+1);if(M>=0&&B>0&&B-1&&B>0){let Z=p(J,X);U=VT(J,I,q,0,I.length,0,T-A,Z,Z)}else U=x(J,I,q,T-A,L-T,X)}_.push(U),C.push(W)}function h(k,S,_,C){let E=[],P=0,R=-1;for(;l.pos>S;){let{id:A,start:T,end:D,size:L}=l;if(L>4)l.next();else{if(R>-1&&T=0;D-=3)A[L++]=E[D],A[L++]=E[D+1]-T,A[L++]=E[D+2]-T,A[L++]=L;_.push(new Ou(A,E[2]-T,r)),C.push(T-k)}}function p(k,S){return(_,C,E)=>{let P=0,R=_.length-1,A,T;if(R>=0&&(A=_[R])instanceof ir){if(!R&&A.type==k&&A.length==E)return A;(T=A.prop(qt.lookAhead))&&(P=C[R]+A.length+T)}return x(k,_,C,E,P,S)}}function m(k,S,_,C,E,P,R,A,T){let D=[],L=[];for(;k.length>C;)D.push(k.pop()),L.push(S.pop()+_-E);k.push(x(r.types[R],D,L,P-E,A-P,T)),S.push(E-_)}function x(k,S,_,C,E,P,R){if(P){let A=[qt.contextHash,P];R=R?[A].concat(R):[A]}if(E>25){let A=[qt.lookAhead,E];R=R?[A].concat(R):[A]}return new ir(k,S,_,C,R)}function v(k,S){let _=l.fork(),C=0,E=0,P=0,R=_.end-a,A={size:0,start:0,skip:0};e:for(let T=_.pos-k;_.pos>T;){let D=_.size;if(_.id==S&&D>=0){A.size=C,A.start=E,A.skip=P,P+=4,C+=4,_.next();continue}let L=_.pos-D;if(D<0||L=o?4:0,J=_.start;for(_.next();_.pos>L;){if(_.size<0)if(_.size==-3||_.size==-4)X+=4;else break e;else _.id>=o&&(X+=4);_.next()}E=J,C+=D,P+=X}return(S<0||C==k)&&(A.size=C,A.start=E,A.skip=P),A.size>4?A:void 0}function b(k,S,_){let{id:C,start:E,end:P,size:R}=l;if(l.next(),R>=0&&C4){let T=l.pos-(R-4);for(;l.pos>T;)_=b(k,S,_)}S[--_]=A,S[--_]=P-k,S[--_]=E-k,S[--_]=C}else R==-3?u=C:R==-4&&(d=C);return _}let y=[],w=[];for(;l.pos>0;)f(t.start||0,t.bufferStart||0,y,w,-1,0);let j=(e=t.length)!==null&&e!==void 0?e:y.length?w[0]+y[0].length:0;return new ir(c[t.topID],y.reverse(),w.reverse(),j)}const k8=new WeakMap;function i1(t,e){if(!t.isAnonymous||e instanceof Ou||e.type!=t)return 1;let n=k8.get(e);if(n==null){n=1;for(let r of e.children){if(r.type!=t||!(r instanceof ir)){n=1;break}n+=i1(t,r)}k8.set(e,n)}return n}function VT(t,e,n,r,a,s,o,l,c){let u=0;for(let m=r;m=d)break;S+=_}if(w==j+1){if(S>d){let _=m[j];p(_.children,_.positions,0,_.children.length,x[j]+y);continue}f.push(m[j])}else{let _=x[w-1]+m[w-1].length-k;f.push(VT(t,m,x,j,w,k,_,null,c))}h.push(k+y-s)}}return p(e,n,r,a,0),(l||c)(f,h,o)}class Bd{constructor(e,n,r,a,s=!1,o=!1){this.from=e,this.to=n,this.tree=r,this.offset=a,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],r=!1){let a=[new Bd(0,e.length,e,0,!1,r)];for(let s of n)s.to>e.length&&a.push(s);return a}static applyChanges(e,n,r=128){if(!n.length)return e;let a=[],s=1,o=e.length?e[0]:null;for(let l=0,c=0,u=0;;l++){let d=l=r)for(;o&&o.from=h.from||f<=h.to||u){let p=Math.max(h.from,c)-u,m=Math.min(h.to,f)-u;h=p>=m?null:new Bd(p,m,h.tree,h.offset+u,l>0,!!d)}if(h&&a.push(h),o.to>f)break;o=snew x_(a.from,a.to)):[new x_(0,0)]:[new x_(0,e.length)],this.createParse(e,n||[],r)}parse(e,n,r){let a=this.startParse(e,n,r);for(;;){let s=a.advance();if(s)return s}}}class CTe{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}new qt({perNode:!0});let ETe=0;class Ti{constructor(e,n,r,a){this.name=e,this.set=n,this.base=r,this.modified=a,this.id=ETe++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let r=typeof e=="string"?e:"?";if(e instanceof Ti&&(n=e),n!=null&&n.base)throw new Error("Can not derive from a modified tag");let a=new Ti(r,[],null,[]);if(a.set.push(a),n)for(let s of n.set)a.set.push(s);return a}static defineModifier(e){let n=new nk(e);return r=>r.modified.indexOf(n)>-1?r:nk.get(r.base||r,r.modified.concat(n).sort((a,s)=>a.id-s.id))}}let ATe=0;class nk{constructor(e){this.name=e,this.instances=[],this.id=ATe++}static get(e,n){if(!n.length)return e;let r=n[0].instances.find(l=>l.base==e&&OTe(n,l.modified));if(r)return r;let a=[],s=new Ti(e.name,a,e,n);for(let l of n)l.instances.push(s);let o=TTe(n);for(let l of e.set)if(!l.modified.length)for(let c of o)a.push(nk.get(l,c));return s}}function OTe(t,e){return t.length==e.length&&t.every((n,r)=>n==e[r])}function TTe(t){let e=[[]];for(let n=0;nr.length-n.length)}function PTe(t){let e=Object.create(null);for(let n in t){let r=t[n];Array.isArray(r)||(r=[r]);for(let a of n.split(" "))if(a){let s=[],o=2,l=a;for(let f=0;;){if(l=="..."&&f>0&&f+3==a.length){o=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!h)throw new RangeError("Invalid path: "+a);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),f+=h[0].length,f==a.length)break;let p=a[f++];if(f==a.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+a);l=a.slice(f)}let c=s.length-1,u=s[c];if(!u)throw new RangeError("Invalid path: "+a);let d=new Y0(r,o,c>0?s.slice(0,c):null);e[u]=d.sort(e[u])}}return yq.add(e)}const yq=new qt({combine(t,e){let n,r,a;for(;t||e;){if(!t||e&&t.depth>=e.depth?(a=e,e=e.next):(a=t,t=t.next),n&&n.mode==a.mode&&!a.context&&!n.context)continue;let s=new Y0(a.tags,a.mode,a.context);n?n.next=s:r=s,n=s}return r}});class Y0{constructor(e,n,r,a){this.tags=e,this.mode=n,this.context=r,this.next=a}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=a;for(let l of s)for(let c of l.set){let u=n[c.id];if(u){o=o?o+" "+u:u;break}}return o},scope:r}}function RTe(t,e){let n=null;for(let r of t){let a=r.style(e);a&&(n=n?n+" "+a:a)}return n}function MTe(t,e,n,r=0,a=t.length){let s=new DTe(r,Array.isArray(e)?e:[e],n);s.highlightRange(t.cursor(),r,a,"",s.highlighters),s.flush(a)}class DTe{constructor(e,n,r){this.at=e,this.highlighters=n,this.span=r,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,r,a,s){let{type:o,from:l,to:c}=e;if(l>=r||c<=n)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let u=a,d=ITe(e)||Y0.empty,f=RTe(s,d.tags);if(f&&(u&&(u+=" "),u+=f,d.mode==1&&(a+=(a?" ":"")+f)),this.startSpan(Math.max(n,l),u),d.opaque)return;let h=e.tree&&e.tree.prop(qt.mounted);if(h&&h.overlay){let p=e.node.enter(h.overlay[0].from+l,1),m=this.highlighters.filter(v=>!v.scope||v.scope(h.tree.type)),x=e.firstChild();for(let v=0,b=l;;v++){let y=v=w||!e.nextSibling())););if(!y||w>r)break;b=y.to+l,b>n&&(this.highlightRange(p.cursor(),Math.max(n,y.from+l),Math.min(r,b),"",m),this.startSpan(Math.min(r,b),u))}x&&e.parent()}else if(e.firstChild()){h&&(a="");do if(!(e.to<=n)){if(e.from>=r)break;this.highlightRange(e,n,r,a,s),this.startSpan(Math.min(r,e.to),u)}while(e.nextSibling());e.parent()}}}function ITe(t){let e=t.type.prop(yq);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const We=Ti.define,gb=We(),Ic=We(),j8=We(Ic),S8=We(Ic),$c=We(),xb=We($c),y_=We($c),Wo=We(),ad=We(Wo),zo=We(),Uo=We(),eO=We(),kg=We(eO),yb=We(),oe={comment:gb,lineComment:We(gb),blockComment:We(gb),docComment:We(gb),name:Ic,variableName:We(Ic),typeName:j8,tagName:We(j8),propertyName:S8,attributeName:We(S8),className:We(Ic),labelName:We(Ic),namespace:We(Ic),macroName:We(Ic),literal:$c,string:xb,docString:We(xb),character:We(xb),attributeValue:We(xb),number:y_,integer:We(y_),float:We(y_),bool:We($c),regexp:We($c),escape:We($c),color:We($c),url:We($c),keyword:zo,self:We(zo),null:We(zo),atom:We(zo),unit:We(zo),modifier:We(zo),operatorKeyword:We(zo),controlKeyword:We(zo),definitionKeyword:We(zo),moduleKeyword:We(zo),operator:Uo,derefOperator:We(Uo),arithmeticOperator:We(Uo),logicOperator:We(Uo),bitwiseOperator:We(Uo),compareOperator:We(Uo),updateOperator:We(Uo),definitionOperator:We(Uo),typeOperator:We(Uo),controlOperator:We(Uo),punctuation:eO,separator:We(eO),bracket:kg,angleBracket:We(kg),squareBracket:We(kg),paren:We(kg),brace:We(kg),content:Wo,heading:ad,heading1:We(ad),heading2:We(ad),heading3:We(ad),heading4:We(ad),heading5:We(ad),heading6:We(ad),contentSeparator:We(Wo),list:We(Wo),quote:We(Wo),emphasis:We(Wo),strong:We(Wo),link:We(Wo),monospace:We(Wo),strikethrough:We(Wo),inserted:We(),deleted:We(),changed:We(),invalid:We(),meta:yb,documentMeta:We(yb),annotation:We(yb),processingInstruction:We(yb),definition:Ti.defineModifier("definition"),constant:Ti.defineModifier("constant"),function:Ti.defineModifier("function"),standard:Ti.defineModifier("standard"),local:Ti.defineModifier("local"),special:Ti.defineModifier("special")};for(let t in oe){let e=oe[t];e instanceof Ti&&(e.name=t)}vq([{tag:oe.link,class:"tok-link"},{tag:oe.heading,class:"tok-heading"},{tag:oe.emphasis,class:"tok-emphasis"},{tag:oe.strong,class:"tok-strong"},{tag:oe.keyword,class:"tok-keyword"},{tag:oe.atom,class:"tok-atom"},{tag:oe.bool,class:"tok-bool"},{tag:oe.url,class:"tok-url"},{tag:oe.labelName,class:"tok-labelName"},{tag:oe.inserted,class:"tok-inserted"},{tag:oe.deleted,class:"tok-deleted"},{tag:oe.literal,class:"tok-literal"},{tag:oe.string,class:"tok-string"},{tag:oe.number,class:"tok-number"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],class:"tok-string2"},{tag:oe.variableName,class:"tok-variableName"},{tag:oe.local(oe.variableName),class:"tok-variableName tok-local"},{tag:oe.definition(oe.variableName),class:"tok-variableName tok-definition"},{tag:oe.special(oe.variableName),class:"tok-variableName2"},{tag:oe.definition(oe.propertyName),class:"tok-propertyName tok-definition"},{tag:oe.typeName,class:"tok-typeName"},{tag:oe.namespace,class:"tok-namespace"},{tag:oe.className,class:"tok-className"},{tag:oe.macroName,class:"tok-macroName"},{tag:oe.propertyName,class:"tok-propertyName"},{tag:oe.operator,class:"tok-operator"},{tag:oe.comment,class:"tok-comment"},{tag:oe.meta,class:"tok-meta"},{tag:oe.invalid,class:"tok-invalid"},{tag:oe.punctuation,class:"tok-punctuation"}]);var v_;const Ah=new qt;function $Te(t){return Ye.define({combine:t?e=>e.concat(t):void 0})}const LTe=new qt;class yo{constructor(e,n,r=[],a=""){this.data=e,this.name=a,Xt.prototype.hasOwnProperty("tree")||Object.defineProperty(Xt.prototype,"tree",{get(){return ts(this)}}),this.parser=n,this.extension=[Tu.of(this),Xt.languageData.of((s,o,l)=>{let c=_8(s,o,l),u=c.type.prop(Ah);if(!u)return[];let d=s.facet(u),f=c.type.prop(LTe);if(f){let h=c.resolve(o-c.from,l);for(let p of f)if(p.test(h,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,n,r=-1){return _8(e,n,r).type.prop(Ah)==this.data}findRegions(e){let n=e.facet(Tu);if((n==null?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let r=[],a=(s,o)=>{if(s.prop(Ah)==this.data){r.push({from:o,to:o+s.length});return}let l=s.prop(qt.mounted);if(l){if(l.tree.prop(Ah)==this.data){if(l.overlay)for(let c of l.overlay)r.push({from:c.from+o,to:c.to+o});else r.push({from:o,to:o+s.length});return}else if(l.overlay){let c=r.length;if(a(l.tree,l.overlay[0].from+o),r.length>c)return}}for(let c=0;c=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-r,n-r)}}let jg=null;class Hp{constructor(e,n,r=[],a,s,o,l,c){this.parser=e,this.state=n,this.fragments=r,this.tree=a,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,r){return new Hp(e,n,[],ir.empty,0,r,[],null)}startParse(){return this.parser.startParse(new FTe(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=ir.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let a=Date.now()+e;e=()=>Date.now()>a}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Bd.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=jg;jg=this;try{return e()}finally{jg=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=N8(e,n.from,n.to);return e}changes(e,n){let{fragments:r,tree:a,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((u,d,f,h)=>c.push({fromA:u,toA:d,fromB:f,toB:h})),r=Bd.applyChanges(r,c),a=ir.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let u of this.skipped){let d=e.mapPos(u.from,1),f=e.mapPos(u.to,-1);de.from&&(this.fragments=N8(this.fragments,a,s),this.skipped.splice(r--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends xq{createParse(n,r,a){let s=a[0].from,o=a[a.length-1].to;return{parsedPos:s,advance(){let c=jg;if(c){for(let u of a)c.tempSkipped.push(u);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=o,new ir(qs.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return jg}}function N8(t,e,n){return Bd.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class Gp{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new Gp(n)}static init(e){let n=Math.min(3e3,e.doc.length),r=Hp.create(e.facet(Tu).parser,e,{from:0,to:n});return r.work(20,n)||r.takeTree(),new Gp(r)}}yo.state=ns.define({create:Gp.init,update(t,e){for(let n of e.effects)if(n.is(yo.setState))return n.value;return e.startState.facet(Tu)!=e.state.facet(Tu)?Gp.init(e.state):t.apply(e)}});let bq=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(bq=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const b_=typeof navigator<"u"&&(!((v_=navigator.scheduling)===null||v_===void 0)&&v_.isInputPending)?()=>navigator.scheduling.isInputPending():null,BTe=gr.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(yo.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(yo.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=bq(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnda+1e3,c=s.context.work(()=>b_&&b_()||Date.now()>o,a+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:yo.setState.of(new Gp(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>vs(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Tu=Ye.define({combine(t){return t.length?t[0]:null},enables:t=>[yo.state,BTe,Ue.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]}),zTe=Ye.define(),Zj=Ye.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function lf(t){let e=t.facet(Zj);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function X0(t,e){let n="",r=t.tabSize,a=t.facet(Zj)[0];if(a==" "){for(;e>=r;)n+=" ",e-=r;a=" "}for(let s=0;s=e?UTe(t,n,e):null}class Qj{constructor(e,n={}){this.state=e,this.options=n,this.unit=lf(e)}lineAt(e,n=1){let r=this.state.doc.lineAt(e),{simulateBreak:a,simulateDoubleBreak:s}=this.options;return a!=null&&a>=r.from&&a<=r.to?s&&a==e?{text:"",from:e}:(n<0?a-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,n=e.length){return jm(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:r,from:a}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let o=s(a);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const wq=new qt;function UTe(t,e,n){let r=e.resolveStack(n),a=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(a!=r.node){let s=[];for(let o=a;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return kq(r,t,n)}function kq(t,e,n){for(let r=t;r;r=r.next){let a=WTe(r.node);if(a)return a(HT.create(e,n,r))}return 0}function VTe(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function WTe(t){let e=t.type.prop(wq);if(e)return e;let n=t.firstChild,r;if(n&&(r=n.type.prop(qt.closedBy))){let a=t.lastChild,s=a&&r.indexOf(a.name)>-1;return o=>KTe(o,!0,1,void 0,s&&!VTe(o)?a.from:void 0)}return t.parent==null?HTe:null}function HTe(){return 0}class HT extends Qj{constructor(e,n,r){super(e.state,e.options),this.base=e,this.pos=n,this.context=r}get node(){return this.context.node}static create(e,n,r){return new HT(e,n,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(n.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(GTe(r,e))break;n=this.state.doc.lineAt(r.from)}return this.lineIndent(n.from)}continue(){return kq(this.context.next,this.base,this.pos)}}function GTe(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function qTe(t){let e=t.node,n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let a=t.options.simulateBreak,s=t.state.doc.lineAt(n.from),o=a==null||a<=s.from?s.to:Math.min(s.to,a);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==r)return null;if(!c.type.isSkipped){if(c.from>=o)return null;let u=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+u}}l=c.to}}function KTe(t,e,n,r,a){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=r&&s.slice(o,o+r.length)==r||a==t.pos+o,c=qTe(t);return c?l?t.column(c.from):t.column(c.to):t.baseIndent+(l?0:t.unit*n)}const YTe=200;function XTe(){return Xt.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,a=n.lineAt(r);if(r>a.from+YTe)return t;let s=n.sliceString(a.from,r);if(!e.some(u=>u.test(s)))return t;let{state:o}=t,l=-1,c=[];for(let{head:u}of o.selection.ranges){let d=o.doc.lineAt(u);if(d.from==l)continue;l=d.from;let f=WT(o,d.from);if(f==null)continue;let h=/^\s*/.exec(d.text)[0],p=X0(o,f);h!=p&&c.push({from:d.from,to:d.from+h.length,insert:p})}return c.length?[t,{changes:c,sequential:!0}]:t})}const JTe=Ye.define(),ZTe=new qt;function QTe(t,e,n){let r=ts(t);if(r.lengthn)continue;if(s&&l.from=e&&u.to>n&&(s=u)}}return s}function ePe(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function rk(t,e,n){for(let r of t.facet(JTe)){let a=r(t,e,n);if(a)return a}return QTe(t,e,n)}function jq(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?void 0:{from:n,to:r}}const e2=Ot.define({map:jq}),Py=Ot.define({map:jq});function Sq(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(r=>r.from<=n&&r.to>=n)||e.push(t.lineBlockAt(n));return e}const cf=ns.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,r)=>t=C8(t,n,r)),t=t.map(e.changes);for(let n of e.effects)if(n.is(e2)&&!tPe(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(Cq),a=r?ht.replace({widget:new lPe(r(e.state,n.value))}):E8;t=t.update({add:[a.range(n.value.from,n.value.to)]})}else n.is(Py)&&(t=t.update({filter:(r,a)=>n.value.from!=r||n.value.to!=a,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=C8(t,e.selection.main.head)),t},provide:t=>Ue.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(r,a)=>{n.push(r,a)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n{ae&&(r=!0)}),r?t.update({filterFrom:e,filterTo:n,filter:(a,s)=>a>=n||s<=e}):t}function ak(t,e,n){var r;let a=null;return(r=t.field(cf,!1))===null||r===void 0||r.between(e,n,(s,o)=>{(!a||a.from>s)&&(a={from:s,to:o})}),a}function tPe(t,e,n){let r=!1;return t.between(e,e,(a,s)=>{a==e&&s==n&&(r=!0)}),r}function _q(t,e){return t.field(cf,!1)?e:e.concat(Ot.appendConfig.of(Eq()))}const nPe=t=>{for(let e of Sq(t)){let n=rk(t.state,e.from,e.to);if(n)return t.dispatch({effects:_q(t.state,[e2.of(n),Nq(t,n)])}),!0}return!1},rPe=t=>{if(!t.state.field(cf,!1))return!1;let e=[];for(let n of Sq(t)){let r=ak(t.state,n.from,n.to);r&&e.push(Py.of(r),Nq(t,r,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function Nq(t,e,n=!0){let r=t.state.doc.lineAt(e.from).number,a=t.state.doc.lineAt(e.to).number;return Ue.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${a}.`)}const aPe=t=>{let{state:e}=t,n=[];for(let r=0;r{let e=t.state.field(cf,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(r,a)=>{n.push(Py.of({from:r,to:a}))}),t.dispatch({effects:n}),!0},iPe=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:nPe},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:rPe},{key:"Ctrl-Alt-[",run:aPe},{key:"Ctrl-Alt-]",run:sPe}],oPe={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Cq=Ye.define({combine(t){return Nl(t,oPe)}});function Eq(t){return[cf,dPe]}function Aq(t,e){let{state:n}=t,r=n.facet(Cq),a=o=>{let l=t.lineBlockAt(t.posAtDOM(o.target)),c=ak(t.state,l.from,l.to);c&&t.dispatch({effects:Py.of(c)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,a,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=a,s}const E8=ht.replace({widget:new class extends Cl{toDOM(t){return Aq(t,null)}}});class lPe extends Cl{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Aq(e,this.value)}}const cPe={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class w_ extends mc{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function uPe(t={}){let e={...cPe,...t},n=new w_(e,!0),r=new w_(e,!1),a=gr.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Tu)!=o.state.facet(Tu)||o.startState.field(cf,!1)!=o.state.field(cf,!1)||ts(o.startState)!=ts(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new hc;for(let c of o.viewportLineBlocks){let u=ak(o.state,c.from,c.to)?r:rk(o.state,c.from,c.to)?n:null;u&&l.add(c.from,c.from,u)}return l.finish()}}),{domEventHandlers:s}=e;return[a,cTe({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(a))===null||l===void 0?void 0:l.markers)||Lt.empty},initialSpacer(){return new w_(e,!1)},domEventHandlers:{...s,click:(o,l,c)=>{if(s.click&&s.click(o,l,c))return!0;let u=ak(o.state,l.from,l.to);if(u)return o.dispatch({effects:Py.of(u)}),!0;let d=rk(o.state,l.from,l.to);return d?(o.dispatch({effects:e2.of(d)}),!0):!1}}}),Eq()]}const dPe=Ue.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Sm{constructor(e,n){this.specs=e;let r;function a(l){let c=Cu.newName();return(r||(r=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?a(n.all):void 0,o=n.scope;this.scope=o instanceof yo?l=>l.prop(Ah)==o.data:o?l=>l==o:void 0,this.style=vq(e.map(l=>({tag:l.tag,class:l.class||a(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=r?new Cu(r):null,this.themeType=n.themeType}static define(e,n){return new Sm(e,n||{})}}const tO=Ye.define(),Oq=Ye.define({combine(t){return t.length?[t[0]]:null}});function k_(t){let e=t.facet(tO);return e.length?e:t.facet(Oq)}function GT(t,e){let n=[hPe],r;return t instanceof Sm&&(t.module&&n.push(Ue.styleModule.of(t.module)),r=t.themeType),e!=null&&e.fallback?n.push(Oq.of(t)):r?n.push(tO.computeN([Ue.darkTheme],a=>a.facet(Ue.darkTheme)==(r=="dark")?[t]:[])):n.push(tO.of(t)),n}class fPe{constructor(e){this.markCache=Object.create(null),this.tree=ts(e.state),this.decorations=this.buildDeco(e,k_(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=ts(e.state),r=k_(e.state),a=r!=k_(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);n.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(n!=this.tree||e.viewportChanged||a)&&(this.tree=n,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return ht.none;let r=new hc;for(let{from:a,to:s}of e.visibleRanges)MTe(this.tree,n,(o,l,c)=>{r.add(o,l,this.markCache[c]||(this.markCache[c]=ht.mark({class:c})))},a,s);return r.finish()}}const hPe=_f.high(gr.fromClass(fPe,{decorations:t=>t.decorations})),pPe=Sm.define([{tag:oe.meta,color:"#404740"},{tag:oe.link,textDecoration:"underline"},{tag:oe.heading,textDecoration:"underline",fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strong,fontWeight:"bold"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.keyword,color:"#708"},{tag:[oe.atom,oe.bool,oe.url,oe.contentSeparator,oe.labelName],color:"#219"},{tag:[oe.literal,oe.inserted],color:"#164"},{tag:[oe.string,oe.deleted],color:"#a11"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],color:"#e40"},{tag:oe.definition(oe.variableName),color:"#00f"},{tag:oe.local(oe.variableName),color:"#30a"},{tag:[oe.typeName,oe.namespace],color:"#085"},{tag:oe.className,color:"#167"},{tag:[oe.special(oe.variableName),oe.macroName],color:"#256"},{tag:oe.definition(oe.propertyName),color:"#00c"},{tag:oe.comment,color:"#940"},{tag:oe.invalid,color:"#f00"}]),mPe=Ue.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Tq=1e4,Pq="()[]{}",Rq=Ye.define({combine(t){return Nl(t,{afterCursor:!0,brackets:Pq,maxScanDistance:Tq,renderMatch:yPe})}}),gPe=ht.mark({class:"cm-matchingBracket"}),xPe=ht.mark({class:"cm-nonmatchingBracket"});function yPe(t){let e=[],n=t.matched?gPe:xPe;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}function A8(t){let e=[],n=t.facet(Rq);for(let r of t.selection.ranges){if(!r.empty)continue;let a=sl(t,r.head,-1,n)||r.head>0&&sl(t,r.head-1,1,n)||n.afterCursor&&(sl(t,r.head,1,n)||r.headt.decorations}),bPe=[vPe,mPe];function wPe(t={}){return[Rq.of(t),bPe]}const kPe=new qt;function nO(t,e,n){let r=t.prop(e<0?qt.openedBy:qt.closedBy);if(r)return r;if(t.name.length==1){let a=n.indexOf(t.name);if(a>-1&&a%2==(e<0?1:0))return[n[a+e]]}return null}function rO(t){let e=t.type.prop(kPe);return e?e(t.node):t}function sl(t,e,n,r={}){let a=r.maxScanDistance||Tq,s=r.brackets||Pq,o=ts(t),l=o.resolveInner(e,n);for(let c=l;c;c=c.parent){let u=nO(c.type,n,s);if(u&&c.from0?e>=d.from&&ed.from&&e<=d.to))return jPe(t,e,n,c,d,u,s)}}return SPe(t,e,n,o,l.type,a,s)}function jPe(t,e,n,r,a,s,o){let l=r.parent,c={from:a.from,to:a.to},u=0,d=l==null?void 0:l.cursor();if(d&&(n<0?d.childBefore(r.from):d.childAfter(r.to)))do if(n<0?d.to<=r.from:d.from>=r.to){if(u==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let u={from:n<0?e-1:e,to:n>0?e+1:e},d=t.doc.iterRange(e,n>0?t.doc.length:0),f=0;for(let h=0;!d.next().done&&h<=s;){let p=d.value;n<0&&(h+=p.length);let m=e+h*n;for(let x=n>0?0:p.length-1,v=n>0?p.length:-1;x!=v;x+=n){let b=o.indexOf(p[x]);if(!(b<0||r.resolveInner(m+x,1).type!=a))if(b%2==0==n>0)f++;else{if(f==1)return{start:u,end:{from:m+x,to:m+x+1},matched:b>>1==c>>1};f--}}n>0&&(h+=p.length)}return d.done?{start:u,matched:!1}:null}function O8(t,e,n,r=0,a=0){e==null&&(e=t.search(/[^\s\u00a0]/),e==-1&&(e=t.length));let s=a;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.posn}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return a(s)==a(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let a=this.string.slice(this.pos).match(e);return a&&a.index>0?null:(a&&n!==!1&&(this.pos+=a[0].length),a)}}current(){return this.string.slice(this.start,this.pos)}}function _Pe(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>!0),copyState:t.copyState||NPe,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||YT,mergeTokens:t.mergeTokens!==!1}}function NPe(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const T8=new WeakMap;class qT extends yo{constructor(e){let n=$Te(e.languageData),r=_Pe(e),a,s=new class extends xq{createParse(o,l,c){return new EPe(a,o,l,c)}};super(n,s,[],e.name),this.topNode=TPe(n,this),a=this,this.streamParser=r,this.stateAfter=new qt({perNode:!0}),this.tokenTable=e.tokenTable?new Lq(r.tokenTable):OPe}static define(e){return new qT(e)}getIndent(e){let n,{overrideIndentation:r}=e.options;r&&(n=T8.get(e.state),n!=null&&n1e4)return null;for(;s=r&&n+e.length<=a&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:n+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],c=n+e.positions[o],u=l instanceof ir&&c=e.length)return e;!a&&n==0&&e.type==t.topNode&&(a=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],c;if(on&&KT(t,s.tree,0-s.offset,n,l),u;if(c&&c.pos<=r&&(u=Dq(t,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:u}}return{state:t.streamParser.startState(a?lf(a):4),tree:ir.empty}}class EPe{constructor(e,n,r,a){this.lang=e,this.input=n,this.fragments=r,this.ranges=a,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=a[a.length-1].to;let s=Hp.get(),o=a[0].from,{state:l,tree:c}=CPe(e,r,o,this.to,s==null?void 0:s.state);this.state=l,this.parsedPos=this.chunkStart=o+c.length;for(let u=0;uu.from<=s.viewport.from&&u.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(lf(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Hp.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(n,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==` -`&&(n="");else{let r=n.indexOf(` -`);r>-1&&(n=n.slice(0,r))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),r=e+n.length;for(let a=this.rangeIndex;;){let s=this.ranges[a].to;if(s>=r||(n=n.slice(0,s-(r-n.length)),a++,a==this.ranges.length))break;let o=this.ranges[a].from,l=this.lineAfter(o);n+=l,r=o+l.length}return{line:n,end:r}}skipGapsTo(e,n,r){for(;;){let a=this.ranges[this.rangeIndex].to,s=e+n;if(r>0?a>s:a>=s)break;let o=this.ranges[++this.rangeIndex].from;n+=o-a}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){a=this.skipGapsTo(n,a,1),n+=a;let l=this.chunk.length;a=this.skipGapsTo(r,a,-1),r+=a,s+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==n?this.chunk[o+2]=r:this.chunk.push(e,n,r,s),a}parseLine(e){let{line:n,end:r}=this.nextLine(),a=0,{streamParser:s}=this.lang,o=new Mq(n,e?e.state.tabSize:4,e?lf(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=Iq(s.token,o,this.state);if(l&&(a=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,a)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return a}throw new Error("Stream parser failed to advance stream.")}const YT=Object.create(null),J0=[qs.none],APe=new BT(J0),P8=[],R8=Object.create(null),$q=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])$q[t]=Fq(YT,e);class Lq{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),$q)}resolve(e){return e?this.table[e]||(this.table[e]=Fq(this.extra,e)):0}}const OPe=new Lq(YT);function j_(t,e){P8.indexOf(t)>-1||(P8.push(t),console.warn(e))}function Fq(t,e){let n=[];for(let l of e.split(" ")){let c=[];for(let u of l.split(".")){let d=t[u]||oe[u];d?typeof d=="function"?c.length?c=c.map(d):j_(u,`Modifier ${u} used at start of tag`):c.length?j_(u,`Tag ${u} used as modifier`):c=Array.isArray(d)?d:[d]:j_(u,`Unknown highlighting tag ${u}`)}for(let u of c)n.push(u)}if(!n.length)return 0;let r=e.replace(/ /g,"_"),a=r+" "+n.map(l=>l.id),s=R8[a];if(s)return s.id;let o=R8[a]=qs.define({id:J0.length,name:r,props:[PTe({[r]:n})]});return J0.push(o),o.id}function TPe(t,e){let n=qs.define({id:J0.length,name:"Document",props:[Ah.add(()=>t),wq.add(()=>r=>e.getIndent(r))],top:!0});return J0.push(n),n}Pn.RTL,Pn.LTR;const PPe=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),r=JT(t.state,n.from);return r.line?RPe(t):r.block?DPe(t):!1};function XT(t,e){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let a=t(e,n);return a?(r(n.update(a)),!0):!1}}const RPe=XT(LPe,0),MPe=XT(Bq,0),DPe=XT((t,e)=>Bq(t,e,$Pe(e)),0);function JT(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const Sg=50;function IPe(t,{open:e,close:n},r,a){let s=t.sliceDoc(r-Sg,r),o=t.sliceDoc(a,a+Sg),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(o)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&o.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:a+c,margin:c&&1}};let d,f;a-r<=2*Sg?d=f=t.sliceDoc(r,a):(d=t.sliceDoc(r,r+Sg),f=t.sliceDoc(a-Sg,a));let h=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(f)[0].length,m=f.length-p-n.length;return d.slice(h,h+e.length)==e&&f.slice(m,m+n.length)==n?{open:{pos:r+h+e.length,margin:/\s/.test(d.charAt(h+e.length))?1:0},close:{pos:a-p-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function $Pe(t){let e=[];for(let n of t.selection.ranges){let r=t.doc.lineAt(n.from),a=n.to<=r.to?r:t.doc.lineAt(n.to);a.from>r.from&&a.from==n.to&&(a=n.to==r.to+1?r:t.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=a.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:a.to})}return e}function Bq(t,e,n=e.selection.ranges){let r=n.map(s=>JT(e,s.from).block);if(!r.every(s=>s))return null;let a=n.map((s,o)=>IPe(e,r[o],s.from,s.to));if(t!=2&&!a.every(s=>s))return{changes:e.changes(n.map((s,o)=>a[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(t!=1&&a.some(s=>s)){let s=[];for(let o=0,l;oa&&(s==o||o>f.from)){a=f.from;let h=/^\s*/.exec(f.text)[0].length,p=h==f.length,m=f.text.slice(h,h+u.length)==u?h:-1;hs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&s.push({from:l.from+u,insert:c+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:c}of r)if(l>=0){let u=o.from+l,d=u+c.length;o.text[d-o.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const aO=_l.define(),FPe=_l.define(),BPe=Ye.define(),zq=Ye.define({combine(t){return Nl(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(r,a)=>e(r,a)||n(r,a)})}}),Uq=ns.define({create(){return il.empty},update(t,e){let n=e.state.facet(zq),r=e.annotation(aO);if(r){let c=Ls.fromTransaction(e,r.selection),u=r.side,d=u==0?t.undone:t.done;return c?d=sk(d,d.length,n.minDepth,c):d=Hq(d,e.startState.selection),new il(u==0?r.rest:d,u==0?d:r.rest)}let a=e.annotation(FPe);if((a=="full"||a=="before")&&(t=t.isolate()),e.annotation(ta.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=Ls.fromTransaction(e),o=e.annotation(ta.time),l=e.annotation(ta.userEvent);return s?t=t.addChanges(s,o,l,n,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,n.newGroupDelay)),(a=="full"||a=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new il(t.done.map(Ls.fromJSON),t.undone.map(Ls.fromJSON))}});function zPe(t={}){return[Uq,zq.of(t),Ue.domEventHandlers({beforeinput(e,n){let r=e.inputType=="historyUndo"?Vq:e.inputType=="historyRedo"?sO:null;return r?(e.preventDefault(),r(n)):!1}})]}function t2(t,e){return function({state:n,dispatch:r}){if(!e&&n.readOnly)return!1;let a=n.field(Uq,!1);if(!a)return!1;let s=a.pop(t,n,e);return s?(r(s),!0):!1}}const Vq=t2(0,!1),sO=t2(1,!1),UPe=t2(0,!0),VPe=t2(1,!0);class Ls{constructor(e,n,r,a,s){this.changes=e,this.effects=n,this.mapped=r,this.startSelection=a,this.selectionsAfter=s}setSelAfter(e){return new Ls(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(e){return new Ls(e.changes&&Jr.fromJSON(e.changes),[],e.mapped&&ml.fromJSON(e.mapped),e.startSelection&&Ne.fromJSON(e.startSelection),e.selectionsAfter.map(Ne.fromJSON))}static fromTransaction(e,n){let r=Ii;for(let a of e.startState.facet(BPe)){let s=a(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new Ls(e.changes.invert(e.startState.doc),r,void 0,n||e.startState.selection,Ii)}static selection(e){return new Ls(void 0,Ii,void 0,void 0,e)}}function sk(t,e,n,r){let a=e+1>n+20?e-n-1:0,s=t.slice(a,e);return s.push(r),s}function WPe(t,e){let n=[],r=!1;return t.iterChangedRanges((a,s)=>n.push(a,s)),e.iterChangedRanges((a,s,o,l)=>{for(let c=0;c=u&&o<=d&&(r=!0)}}),r}function HPe(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,r)=>n.empty!=e.ranges[r].empty).length===0}function Wq(t,e){return t.length?e.length?t.concat(e):t:e}const Ii=[],GPe=200;function Hq(t,e){if(t.length){let n=t[t.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-GPe));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),sk(t,t.length-1,1e9,n.setSelAfter(r)))}else return[Ls.selection([e])]}function qPe(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function S_(t,e){if(!t.length)return t;let n=t.length,r=Ii;for(;n;){let a=KPe(t[n-1],e,r);if(a.changes&&!a.changes.empty||a.effects.length){let s=t.slice(0,n);return s[n-1]=a,s}else e=a.mapped,n--,r=a.selectionsAfter}return r.length?[Ls.selection(r)]:Ii}function KPe(t,e,n){let r=Wq(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):Ii,n);if(!t.changes)return Ls.selection(r);let a=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new Ls(a,Ot.mapEffects(t.effects,e),o,t.startSelection.map(s),r)}const YPe=/^(input\.type|delete)($|\.)/;class il{constructor(e,n,r=0,a=void 0){this.done=e,this.undone=n,this.prevTime=r,this.prevUserEvent=a}isolate(){return this.prevTime?new il(this.done,this.undone):this}addChanges(e,n,r,a,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!r||YPe.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime0&&n-this.prevTimen.empty?t.moveByChar(n,e):n2(n,e))}function rs(t){return t.textDirectionAt(t.state.selection.main.head)==Pn.LTR}const qq=t=>Gq(t,!rs(t)),Kq=t=>Gq(t,rs(t));function Yq(t,e){return To(t,n=>n.empty?t.moveByGroup(n,e):n2(n,e))}const JPe=t=>Yq(t,!rs(t)),ZPe=t=>Yq(t,rs(t));function QPe(t,e,n){if(e.type.prop(n))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function r2(t,e,n){let r=ts(t).resolveInner(e.head),a=n?qt.closedBy:qt.openedBy;for(let c=e.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;QPe(t,u,a)?r=u:c=n?u.to:u.from}let s=r.type.prop(a),o,l;return s&&(o=n?sl(t,r.from,1):sl(t,r.to,-1))&&o.matched?l=n?o.end.to:o.end.from:l=n?r.to:r.from,Ne.cursor(l,n?-1:1)}const eRe=t=>To(t,e=>r2(t.state,e,!rs(t))),tRe=t=>To(t,e=>r2(t.state,e,rs(t)));function Xq(t,e){return To(t,n=>{if(!n.empty)return n2(n,e);let r=t.moveVertically(n,e);return r.head!=n.head?r:t.moveToLineBoundary(n,e)})}const Jq=t=>Xq(t,!1),Zq=t=>Xq(t,!0);function Qq(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,n.height):n2(o,e));if(a.eq(r.selection))return!1;let s;if(n.selfScroll){let o=t.coordsAtPos(r.selection.main.head),l=t.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;o&&o.top>c&&o.bottomeK(t,!1),iO=t=>eK(t,!0);function Ku(t,e,n){let r=t.lineBlockAt(e.head),a=t.moveToLineBoundary(e,n);if(a.head==e.head&&a.head!=(n?r.to:r.from)&&(a=t.moveToLineBoundary(e,n,!1)),!n&&a.head==r.from&&r.length){let s=/^\s*/.exec(t.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(a=Ne.cursor(r.from+s))}return a}const nRe=t=>To(t,e=>Ku(t,e,!0)),rRe=t=>To(t,e=>Ku(t,e,!1)),aRe=t=>To(t,e=>Ku(t,e,!rs(t))),sRe=t=>To(t,e=>Ku(t,e,rs(t))),iRe=t=>To(t,e=>Ne.cursor(t.lineBlockAt(e.head).from,1)),oRe=t=>To(t,e=>Ne.cursor(t.lineBlockAt(e.head).to,-1));function lRe(t,e,n){let r=!1,a=_m(t.selection,s=>{let o=sl(t,s.head,-1)||sl(t,s.head,1)||s.head>0&&sl(t,s.head-1,1)||s.headlRe(t,e);function Gi(t,e){let n=_m(t.state.selection,r=>{let a=e(r);return Ne.range(r.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch(Oo(t.state,n)),!0)}function tK(t,e){return Gi(t,n=>t.moveByChar(n,e))}const nK=t=>tK(t,!rs(t)),rK=t=>tK(t,rs(t));function aK(t,e){return Gi(t,n=>t.moveByGroup(n,e))}const uRe=t=>aK(t,!rs(t)),dRe=t=>aK(t,rs(t)),fRe=t=>Gi(t,e=>r2(t.state,e,!rs(t))),hRe=t=>Gi(t,e=>r2(t.state,e,rs(t)));function sK(t,e){return Gi(t,n=>t.moveVertically(n,e))}const iK=t=>sK(t,!1),oK=t=>sK(t,!0);function lK(t,e){return Gi(t,n=>t.moveVertically(n,e,Qq(t).height))}const D8=t=>lK(t,!1),I8=t=>lK(t,!0),pRe=t=>Gi(t,e=>Ku(t,e,!0)),mRe=t=>Gi(t,e=>Ku(t,e,!1)),gRe=t=>Gi(t,e=>Ku(t,e,!rs(t))),xRe=t=>Gi(t,e=>Ku(t,e,rs(t))),yRe=t=>Gi(t,e=>Ne.cursor(t.lineBlockAt(e.head).from)),vRe=t=>Gi(t,e=>Ne.cursor(t.lineBlockAt(e.head).to)),$8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:0})),!0),L8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.doc.length})),!0),F8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.selection.main.anchor,head:0})),!0),B8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),bRe=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),wRe=({state:t,dispatch:e})=>{let n=a2(t).map(({from:r,to:a})=>Ne.range(r,Math.min(a+1,t.doc.length)));return e(t.update({selection:Ne.create(n),userEvent:"select"})),!0},kRe=({state:t,dispatch:e})=>{let n=_m(t.selection,r=>{let a=ts(t),s=a.resolveStack(r.from,1);if(r.empty){let o=a.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=r.to||l.to>r.to&&l.from<=r.from)&&o.next)return Ne.range(l.to,l.from)}return r});return n.eq(t.selection)?!1:(e(Oo(t,n)),!0)};function cK(t,e){let{state:n}=t,r=n.selection,a=n.selection.ranges.slice();for(let s of n.selection.ranges){let o=n.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let c=t.moveVertically(l,e);if(c.heado.to){a.some(u=>u.head==c.head)||a.push(c);break}else{if(c.head==l.head)break;l=c}}}return a.length==r.ranges.length?!1:(t.dispatch(Oo(n,Ne.create(a,a.length-1))),!0)}const jRe=t=>cK(t,!1),SRe=t=>cK(t,!0),_Re=({state:t,dispatch:e})=>{let n=t.selection,r=null;return n.ranges.length>1?r=Ne.create([n.main]):n.main.empty||(r=Ne.create([Ne.cursor(n.main.head)])),r?(e(Oo(t,r)),!0):!1};function Ry(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:r}=t,a=r.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let c=e(s);co&&(n="delete.forward",c=vb(t,c,!0)),o=Math.min(o,c),l=Math.max(l,c)}else o=vb(t,o,!1),l=vb(t,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:Ne.cursor(o,oa(t)))r.between(e,e,(a,s)=>{ae&&(e=n?s:a)});return e}const uK=(t,e,n)=>Ry(t,r=>{let a=r.from,{state:s}=t,o=s.doc.lineAt(a),l,c;if(n&&!e&&a>o.from&&auK(t,!1,!0),dK=t=>uK(t,!0,!1),fK=(t,e)=>Ry(t,n=>{let r=n.head,{state:a}=t,s=a.doc.lineAt(r),o=a.charCategorizer(r);for(let l=null;;){if(r==(e?s.to:s.from)){r==n.head&&s.number!=(e?a.doc.lines:1)&&(r+=e?1:-1);break}let c=ba(s.text,r-s.from,e)+s.from,u=s.text.slice(Math.min(r,c)-s.from,Math.max(r,c)-s.from),d=o(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),hK=t=>fK(t,!1),NRe=t=>fK(t,!0),CRe=t=>Ry(t,e=>{let n=t.lineBlockAt(e.head).to;return e.headRy(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),ARe=t=>Ry(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let n=t.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:en.of(["",""])},range:Ne.cursor(r.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},TRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(r=>{if(!r.empty||r.from==0||r.from==t.doc.length)return{range:r};let a=r.from,s=t.doc.lineAt(a),o=a==s.from?a-1:ba(s.text,a-s.from,!1)+s.from,l=a==s.to?a+1:ba(s.text,a-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:t.doc.slice(a,l).append(t.doc.slice(o,a))},range:Ne.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function a2(t){let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.from),s=t.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=t.doc.lineAt(r.to-1)),n>=a.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:a.from,to:s.to,ranges:[r]});n=s.number+1}return e}function pK(t,e,n){if(t.readOnly)return!1;let r=[],a=[];for(let s of a2(t)){if(n?s.to==t.doc.length:s.from==0)continue;let o=t.doc.lineAt(n?s.to+1:s.from-1),l=o.length+1;if(n){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+t.lineBreak});for(let c of s.ranges)a.push(Ne.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:t.lineBreak+o.text});for(let c of s.ranges)a.push(Ne.range(c.anchor-l,c.head-l))}}return r.length?(e(t.update({changes:r,scrollIntoView:!0,selection:Ne.create(a,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const PRe=({state:t,dispatch:e})=>pK(t,e,!1),RRe=({state:t,dispatch:e})=>pK(t,e,!0);function mK(t,e,n){if(t.readOnly)return!1;let r=[];for(let s of a2(t))n?r.push({from:s.from,insert:t.doc.slice(s.from,s.to)+t.lineBreak}):r.push({from:s.to,insert:t.lineBreak+t.doc.slice(s.from,s.to)});let a=t.changes(r);return e(t.update({changes:a,selection:t.selection.map(a,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const MRe=({state:t,dispatch:e})=>mK(t,e,!1),DRe=({state:t,dispatch:e})=>mK(t,e,!0),IRe=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(a2(e).map(({from:a,to:s})=>(a>0?a--:s{let s;if(t.lineWrapping){let o=t.lineBlockAt(a.head),l=t.coordsAtPos(a.head,a.assoc||1);l&&(s=o.bottom+t.documentTop-l.bottom+t.defaultLineHeight/2)}return t.moveVertically(a,!0,s)}).map(n);return t.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function $Re(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=ts(t).resolveInner(e),r=n.childBefore(e),a=n.childAfter(e),s;return r&&a&&r.to<=e&&a.from>=e&&(s=r.type.prop(qt.closedBy))&&s.indexOf(a.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(a.from).from&&!/\S/.test(t.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}const z8=gK(!1),LRe=gK(!0);function gK(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(a=>{let{from:s,to:o}=a,l=e.doc.lineAt(s),c=!t&&s==o&&$Re(e,s);t&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let u=new Qj(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=WT(u,s);for(d==null&&(d=jm(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let a=[];for(let o=r.from;o<=r.to;){let l=t.doc.lineAt(o);l.number>n&&(r.empty||r.to>l.from)&&(e(l,a,r),n=l.number),o=l.to+1}let s=t.changes(a);return{changes:a,range:Ne.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const FRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),r=new Qj(t,{overrideIndentation:s=>{let o=n[s];return o??-1}}),a=ZT(t,(s,o,l)=>{let c=WT(r,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=X0(t,c);(u!=d||l.fromt.readOnly?!1:(e(t.update(ZT(t,(n,r)=>{r.push({from:n.from,insert:t.facet(Zj)})}),{userEvent:"input.indent"})),!0),yK=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(ZT(t,(n,r)=>{let a=/^\s*/.exec(n.text)[0];if(!a)return;let s=jm(a,t.tabSize),o=0,l=X0(t,Math.max(0,s-lf(t)));for(;o(t.setTabFocusMode(),!0),zRe=[{key:"Ctrl-b",run:qq,shift:nK,preventDefault:!0},{key:"Ctrl-f",run:Kq,shift:rK},{key:"Ctrl-p",run:Jq,shift:iK},{key:"Ctrl-n",run:Zq,shift:oK},{key:"Ctrl-a",run:iRe,shift:yRe},{key:"Ctrl-e",run:oRe,shift:vRe},{key:"Ctrl-d",run:dK},{key:"Ctrl-h",run:oO},{key:"Ctrl-k",run:CRe},{key:"Ctrl-Alt-h",run:hK},{key:"Ctrl-o",run:ORe},{key:"Ctrl-t",run:TRe},{key:"Ctrl-v",run:iO}],URe=[{key:"ArrowLeft",run:qq,shift:nK,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:JPe,shift:uRe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:aRe,shift:gRe,preventDefault:!0},{key:"ArrowRight",run:Kq,shift:rK,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ZPe,shift:dRe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:sRe,shift:xRe,preventDefault:!0},{key:"ArrowUp",run:Jq,shift:iK,preventDefault:!0},{mac:"Cmd-ArrowUp",run:$8,shift:F8},{mac:"Ctrl-ArrowUp",run:M8,shift:D8},{key:"ArrowDown",run:Zq,shift:oK,preventDefault:!0},{mac:"Cmd-ArrowDown",run:L8,shift:B8},{mac:"Ctrl-ArrowDown",run:iO,shift:I8},{key:"PageUp",run:M8,shift:D8},{key:"PageDown",run:iO,shift:I8},{key:"Home",run:rRe,shift:mRe,preventDefault:!0},{key:"Mod-Home",run:$8,shift:F8},{key:"End",run:nRe,shift:pRe,preventDefault:!0},{key:"Mod-End",run:L8,shift:B8},{key:"Enter",run:z8,shift:z8},{key:"Mod-a",run:bRe},{key:"Backspace",run:oO,shift:oO,preventDefault:!0},{key:"Delete",run:dK,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:hK,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:NRe,preventDefault:!0},{mac:"Mod-Backspace",run:ERe,preventDefault:!0},{mac:"Mod-Delete",run:ARe,preventDefault:!0}].concat(zRe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),VRe=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:eRe,shift:fRe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:tRe,shift:hRe},{key:"Alt-ArrowUp",run:PRe},{key:"Shift-Alt-ArrowUp",run:MRe},{key:"Alt-ArrowDown",run:RRe},{key:"Shift-Alt-ArrowDown",run:DRe},{key:"Mod-Alt-ArrowUp",run:jRe},{key:"Mod-Alt-ArrowDown",run:SRe},{key:"Escape",run:_Re},{key:"Mod-Enter",run:LRe},{key:"Alt-l",mac:"Ctrl-l",run:wRe},{key:"Mod-i",run:kRe,preventDefault:!0},{key:"Mod-[",run:yK},{key:"Mod-]",run:xK},{key:"Mod-Alt-\\",run:FRe},{key:"Shift-Mod-k",run:IRe},{key:"Shift-Mod-\\",run:cRe},{key:"Mod-/",run:PPe},{key:"Alt-A",run:MPe},{key:"Ctrl-m",mac:"Shift-Alt-m",run:BRe}].concat(URe),WRe={key:"Tab",run:xK,shift:yK},U8=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class qp{constructor(e,n,r=0,a=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,a),this.bufferStart=r,this.normalize=s?l=>s(U8(l)):U8,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ps(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=wT(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=Zo(e);let a=this.normalize(n);if(a.length)for(let s=0,o=r,l=!0;;s++){let c=a.charCodeAt(s),u=this.match(c,o,l,this.bufferPos+this.bufferStart,s==a.length-1);if(u)return this.value=u,this;if(s==a.length-1)break;l&&sthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,a=r+n[0].length;if(this.matchPos=ik(this.text,a+(r==a?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(rthis.value.to)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=r||a.to<=n){let l=new qh(n,e.sliceString(n,r));return __.set(e,l),l}if(a.from==n&&a.to==r)return a;let{text:s,from:o}=a;return o>n&&(s=e.sliceString(n,o)+s,o=n),a.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,a=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this.matchPos=ik(this.text,a+(r==a?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=qh.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(bK.prototype[Symbol.iterator]=wK.prototype[Symbol.iterator]=function(){return this});function HRe(t){try{return new RegExp(t,QT),!0}catch{return!1}}function ik(t,e){if(e>=t.length)return e;let n=t.lineAt(e),r;for(;e=56320&&r<57344;)e++;return e}const GRe=t=>{let{state:e}=t,n=String(e.doc.lineAt(t.state.selection.main.head).number),{close:r,result:a}=sTe(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:e.phrase("go")});return a.then(s=>{let o=s&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(s.elements.line.value);if(!o){t.dispatch({effects:r});return}let l=e.doc.lineAt(e.selection.main.head),[,c,u,d,f]=o,h=d?+d.slice(1):0,p=u?+u:l.number;if(u&&f){let v=p/100;c&&(v=v*(c=="-"?-1:1)+l.number/e.doc.lines),p=Math.round(e.doc.lines*v)}else u&&c&&(p=p*(c=="-"?-1:1)+l.number);let m=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),x=Ne.cursor(m.from+Math.max(0,Math.min(h,m.length)));t.dispatch({effects:[r,Ue.scrollIntoView(x.from,{y:"center"})],selection:x})}),!0},qRe={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},KRe=Ye.define({combine(t){return Nl(t,qRe,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function YRe(t){return[eMe,QRe]}const XRe=ht.mark({class:"cm-selectionMatch"}),JRe=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function V8(t,e,n,r){return(n==0||t(e.sliceDoc(n-1,n))!=sr.Word)&&(r==e.doc.length||t(e.sliceDoc(r,r+1))!=sr.Word)}function ZRe(t,e,n,r){return t(e.sliceDoc(n,n+1))==sr.Word&&t(e.sliceDoc(r-1,r))==sr.Word}const QRe=gr.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(KRe),{state:n}=t,r=n.selection;if(r.ranges.length>1)return ht.none;let a=r.main,s,o=null;if(a.empty){if(!e.highlightWordAroundCursor)return ht.none;let c=n.wordAt(a.head);if(!c)return ht.none;o=n.charCategorizer(a.head),s=n.sliceDoc(c.from,c.to)}else{let c=a.to-a.from;if(c200)return ht.none;if(e.wholeWords){if(s=n.sliceDoc(a.from,a.to),o=n.charCategorizer(a.head),!(V8(o,n,a.from,a.to)&&ZRe(o,n,a.from,a.to)))return ht.none}else if(s=n.sliceDoc(a.from,a.to),!s)return ht.none}let l=[];for(let c of t.visibleRanges){let u=new qp(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!o||V8(o,n,d,f))&&(a.empty&&d<=a.from&&f>=a.to?l.push(JRe.range(d,f)):(d>=a.to||f<=a.from)&&l.push(XRe.range(d,f)),l.length>e.maxMatches))return ht.none}}return ht.set(l)}},{decorations:t=>t.decorations}),eMe=Ue.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),tMe=({state:t,dispatch:e})=>{let{selection:n}=t,r=Ne.create(n.ranges.map(a=>t.wordAt(a.head)||Ne.cursor(a.head)),n.mainIndex);return r.eq(n)?!1:(e(t.update({selection:r})),!0)};function nMe(t,e){let{main:n,ranges:r}=t.selection,a=t.wordAt(n.head),s=a&&a.from==n.from&&a.to==n.to;for(let o=!1,l=new qp(t.doc,e,r[r.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new qp(t.doc,e,0,Math.max(0,r[r.length-1].from-1)),o=!0}else{if(o&&r.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const rMe=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return tMe({state:t,dispatch:e});let r=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=r))return!1;let a=nMe(t,r);return a?(e(t.update({selection:t.selection.addRange(Ne.range(a.from,a.to),!1),effects:Ue.scrollIntoView(a.to)})),!0):!1},Nm=Ye.define({combine(t){return Nl(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new xMe(e),scrollToMatch:e=>Ue.scrollIntoView(e)})}});class kK{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||HRe(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?` -`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new cMe(this):new iMe(this)}getCursor(e,n=0,r){let a=e.doc?e:Xt.create({doc:e});return r==null&&(r=a.doc.length),this.regexp?nh(this,a,n,r):th(this,a,n,r)}}class jK{constructor(e){this.spec=e}}function aMe(t,e,n){return(r,a,s,o)=>{if(n&&!n(r,a,s,o))return!1;let l=r>=o&&a<=o+s.length?s.slice(r-o,a-o):e.doc.sliceString(r,a);return t(l,e,r,a)}}function th(t,e,n,r){let a;return t.wholeWord&&(a=sMe(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(a=aMe(t.test,e,a)),new qp(e.doc,t.unquoted,n,r,t.caseSensitive?void 0:s=>s.toLowerCase(),a)}function sMe(t,e){return(n,r,a,s)=>((s>n||s+a.length=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=th(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}function oMe(t,e,n){return(r,a,s)=>(!n||n(r,a,s))&&t(s[0],e,r,a)}function nh(t,e,n,r){let a;return t.wholeWord&&(a=lMe(e.charCategorizer(e.selection.main.head))),t.test&&(a=oMe(t.test,e,a)),new bK(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:a},n,r)}function ok(t,e){return t.slice(ba(t,e,!1),e)}function lk(t,e){return t.slice(e,ba(t,e))}function lMe(t){return(e,n,r)=>!r[0].length||(t(ok(r.input,r.index))!=sr.Word||t(lk(r.input,r.index))!=sr.Word)&&(t(lk(r.input,r.index+r[0].length))!=sr.Word||t(ok(r.input,r.index+r[0].length))!=sr.Word)}class cMe extends jK{nextMatch(e,n,r){let a=nh(this.spec,e,r,e.doc.length).next();return a.done&&(a=nh(this.spec,e,0,n).next()),a.done?null:a.value}prevMatchInRange(e,n,r){for(let a=1;;a++){let s=Math.max(n,r-a*1e4),o=nh(this.spec,e,s,r),l=null;for(;!o.next().done;)l=o.value;if(l&&(s==n||l.from>s+10))return l;if(s==n)return null}}prevMatch(e,n,r){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let a=r.length;a>0;a--){let s=+r.slice(0,a);if(s>0&&s=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=nh(this.spec,e,Math.max(0,n-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}const Z0=Ot.define(),eP=Ot.define(),xu=ns.define({create(t){return new N_(lO(t).create(),null)},update(t,e){for(let n of e.effects)n.is(Z0)?t=new N_(n.value.create(),t.panel):n.is(eP)&&(t=new N_(t.query,n.value?tP:null));return t},provide:t=>q0.from(t,e=>e.panel)});class N_{constructor(e,n){this.query=e,this.panel=n}}const uMe=ht.mark({class:"cm-searchMatch"}),dMe=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),fMe=gr.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(xu))}update(t){let e=t.state.field(xu);(e!=t.startState.field(xu)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:n}=this,r=new hc;for(let a=0,s=n.visibleRanges,o=s.length;as[a+1].from-2*250;)c=s[++a].to;t.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?dMe:uMe)})}return r.finish()}},{decorations:t=>t.decorations});function My(t){return e=>{let n=e.state.field(xu,!1);return n&&n.query.spec.valid?t(e,n):NK(e)}}const ck=My((t,{query:e})=>{let{to:n}=t.state.selection.main,r=e.nextMatch(t.state,n,n);if(!r)return!1;let a=Ne.single(r.from,r.to),s=t.state.facet(Nm);return t.dispatch({selection:a,effects:[nP(t,r),s.scrollToMatch(a.main,t)],userEvent:"select.search"}),_K(t),!0}),uk=My((t,{query:e})=>{let{state:n}=t,{from:r}=n.selection.main,a=e.prevMatch(n,r,r);if(!a)return!1;let s=Ne.single(a.from,a.to),o=t.state.facet(Nm);return t.dispatch({selection:s,effects:[nP(t,a),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),_K(t),!0}),hMe=My((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:Ne.create(n.map(r=>Ne.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),pMe=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:a}=n.main,s=[],o=0;for(let l=new qp(t.doc,t.sliceDoc(r,a));!l.next().done;){if(s.length>1e3)return!1;l.value.from==r&&(o=s.length),s.push(Ne.range(l.value.from,l.value.to))}return e(t.update({selection:Ne.create(s,o),userEvent:"select.search.matches"})),!0},W8=My((t,{query:e})=>{let{state:n}=t,{from:r,to:a}=n.selection.main;if(n.readOnly)return!1;let s=e.nextMatch(n,r,r);if(!s)return!1;let o=s,l=[],c,u,d=[];o.precise?o.from==r&&o.to==a&&(u=n.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:u}),d.push(Ue.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):o=e.nextMatch(n,o.from,o.to);let f=t.state.changes(l);return o&&(c=Ne.single(o.from,o.to).map(f),d.push(nP(t,o)),d.push(n.facet(Nm).scrollToMatch(c.main,t))),t.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),mMe=My((t,{query:e})=>{if(t.state.readOnly)return!1;let n=[];for(let a of e.matchAll(t.state,1e9)){let{from:s,to:o,precise:l}=a;l&&n.push({from:s,to:o,insert:e.getReplacement(a)})}if(!n.length)return!1;let r=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:Ue.announce.of(r),userEvent:"input.replace.all"}),!0});function tP(t){return t.state.facet(Nm).createPanel(t)}function lO(t,e){var n,r,a,s,o;let l=t.selection.main,c=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!c)return e;let u=t.facet(Nm);return new kK({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=e==null?void 0:e.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(a=e==null?void 0:e.literal)!==null&&a!==void 0?a:u.literal,regexp:(s=e==null?void 0:e.regexp)!==null&&s!==void 0?s:u.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:u.wholeWord})}function SK(t){let e=FT(t,tP);return e&&e.dom.querySelector("[main-field]")}function _K(t){let e=SK(t);e&&e==t.root.activeElement&&e.select()}const NK=t=>{let e=t.state.field(xu,!1);if(e&&e.panel){let n=SK(t);if(n&&n!=t.root.activeElement){let r=lO(t.state,e.query.spec);r.valid&&t.dispatch({effects:Z0.of(r)}),n.focus(),n.select()}}else t.dispatch({effects:[eP.of(!0),e?Z0.of(lO(t.state,e.query.spec)):Ot.appendConfig.of(vMe)]});return!0},CK=t=>{let e=t.state.field(xu,!1);if(!e||!e.panel)return!1;let n=FT(t,tP);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:eP.of(!1)}),!0},gMe=[{key:"Mod-f",run:NK,scope:"editor search-panel"},{key:"F3",run:ck,shift:uk,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ck,shift:uk,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:CK,scope:"editor search-panel"},{key:"Mod-Shift-l",run:pMe},{key:"Mod-Alt-g",run:GRe},{key:"Mod-d",run:rMe,preventDefault:!0}];class xMe{constructor(e){this.view=e;let n=this.query=e.state.field(xu).query.spec;this.commit=this.commit.bind(this),this.searchField=Sn("input",{value:n.search,placeholder:ri(e,"Find"),"aria-label":ri(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Sn("input",{value:n.replace,placeholder:ri(e,"Replace"),"aria-label":ri(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Sn("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=Sn("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=Sn("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(a,s,o){return Sn("button",{class:"cm-button",name:a,onclick:s,type:"button"},o)}this.dom=Sn("div",{onkeydown:a=>this.keydown(a),class:"cm-search"},[this.searchField,r("next",()=>ck(e),[ri(e,"next")]),r("prev",()=>uk(e),[ri(e,"previous")]),r("select",()=>hMe(e),[ri(e,"all")]),Sn("label",null,[this.caseField,ri(e,"match case")]),Sn("label",null,[this.reField,ri(e,"regexp")]),Sn("label",null,[this.wordField,ri(e,"by word")]),...e.state.readOnly?[]:[Sn("br"),this.replaceField,r("replace",()=>W8(e),[ri(e,"replace")]),r("replaceAll",()=>mMe(e),[ri(e,"replace all")])],Sn("button",{name:"close",onclick:()=>CK(e),"aria-label":ri(e,"close"),type:"button"},["×"])])}commit(){let e=new kK({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Z0.of(e)}))}keydown(e){g3e(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?uk:ck)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),W8(this.view))}update(e){for(let n of e.transactions)for(let r of n.effects)r.is(Z0)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Nm).top}}function ri(t,e){return t.state.phrase(e)}const bb=30,wb=/[\s\.,:;?!]/;function nP(t,{from:e,to:n}){let r=t.state.doc.lineAt(e),a=t.state.doc.lineAt(n).to,s=Math.max(r.from,e-bb),o=Math.min(a,n+bb),l=t.state.sliceDoc(s,o);if(s!=r.from){for(let c=0;cl.length-bb;c--)if(!wb.test(l[c-1])&&wb.test(l[c])){l=l.slice(0,c);break}}return Ue.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${r.number}.`)}const yMe=Ue.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),vMe=[xu,_f.low(fMe),yMe];class EK{constructor(e,n,r,a){this.state=e,this.pos=n,this.explicit=r,this.view=a,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=ts(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),r=Math.max(n.from,this.pos-250),a=n.text.slice(r-n.from,this.pos-n.from),s=a.search(AK(e,!1));return s<0?null:{from:r+s,to:this.pos,text:a.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),r&&r.onDocChange&&(this.abortOnDocChange=!0))}}function H8(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function bMe(t){let e=Object.create(null),n=Object.create(null);for(let{label:a}of t){e[a[0]]=!0;for(let s=1;stypeof a=="string"?{label:a}:a),[n,r]=e.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:bMe(e);return a=>{let s=a.matchBefore(r);return s||a.explicit?{from:s?s.from:a.pos,options:e,validFor:n}:null}}class G8{constructor(e,n,r,a){this.completion=e,this.source=n,this.match=r,this.score=a}}function zd(t){return t.selection.main.from}function AK(t,e){var n;let{source:r}=t,a=e&&r[0]!="^",s=r[r.length-1]!="$";return!a&&!s?t:new RegExp(`${a?"^":""}(?:${r})${s?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const OK=_l.define();function kMe(t,e,n,r){let{main:a}=t.selection,s=n-a.from,o=r-a.from;return{...t.changeByRange(l=>{if(l!=a&&n!=r&&t.sliceDoc(l.from+s,l.from+o)!=t.sliceDoc(n,r))return{range:l};let c=t.toText(e);return{changes:{from:l.from+s,to:r==a.from?l.to:l.from+o,insert:c},range:Ne.cursor(l.from+s+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const q8=new WeakMap;function jMe(t){if(!Array.isArray(t))return t;let e=q8.get(t);return e||q8.set(t,e=wMe(t)),e}const dk=Ot.define(),Q0=Ot.define();class SMe{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(S=wT(k))!=S.toLowerCase()?1:S!=S.toUpperCase()?2:0;(!y||_==1&&v||j==0&&_!=0)&&(n[f]==k||r[f]==k&&(h=!0)?o[f++]=y:o.length&&(b=!1)),j=_,y+=Zo(k)}return f==c&&o[0]==0&&b?this.result(-100+(h?-200:0),o,e):p==c&&m==0?this.ret(-200-e.length+(x==e.length?0:-100),[0,x]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):p==c?this.ret(-900-e.length,[m,x]):f==c?this.result(-100+(h?-200:0)+-700+(b?0:-1100),o,e):n.length==2?null:this.result((a[0]?-700:0)+-200+-1100,a,e)}result(e,n,r){let a=[],s=0;for(let o of n){let l=o+(this.astral?Zo(Ps(r,o)):1);s&&a[s-1]==o?a[s-1]=l:(a[s++]=o,a[s++]=l)}return this.ret(e-r.length,a)}}class _Me{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:NMe,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>r=>K8(e(r),n(r)),optionClass:(e,n)=>r=>K8(e(r),n(r)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function K8(t,e){return t?e?t+" "+e:t:e}function NMe(t,e,n,r,a,s){let o=t.textDirection==Pn.RTL,l=o,c=!1,u="top",d,f,h=e.left-a.left,p=a.right-e.right,m=r.right-r.left,x=r.bottom-r.top;if(l&&h=x||y>e.top?d=n.bottom-e.top:(u="bottom",d=e.bottom-n.top)}let v=(e.bottom-e.top)/s.offsetHeight,b=(e.right-e.left)/s.offsetWidth;return{style:`${u}: ${d/v}px; max-width: ${f/b}px`,class:"cm-completionInfo-"+(c?o?"left-narrow":"right-narrow":l?"left":"right")}}const rP=Ot.define();function CMe(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let r=document.createElement("div");return r.classList.add("cm-completionIcon"),n.type&&r.classList.add(...n.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),r.setAttribute("aria-hidden","true"),r},position:20}),e.push({render(n,r,a,s){let o=document.createElement("span");o.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let u=0;uc&&o.appendChild(document.createTextNode(l.slice(c,d)));let h=o.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(l.slice(d,f))),h.className="cm-completionMatchedText",c=f}return cn.position-r.position).map(n=>n.render)}function C_(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let a=Math.floor(e/n);return{from:a*n,to:(a+1)*n}}let r=Math.floor((t-e)/n);return{from:t-(r+1)*n,to:t-r*n}}class EMe{constructor(e,n,r){this.view=e,this.stateField=n,this.applyCompletion=r,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let a=e.state.field(n),{options:s,selected:o}=a.open,l=e.state.facet(va);this.optionContent=CMe(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=C_(s.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:u}=e.state.field(n).open;for(let d=c.target,f;d&&d!=this.dom;d=d.parentNode)if(d.nodeName=="LI"&&(f=/-(\d+)$/.exec(d.id))&&+f[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;d!=null&&(e.dispatch({effects:rP.of(d)}),c.preventDefault())}}),this.dom.addEventListener("focusout",c=>{let u=e.state.field(this.stateField,!1);u&&u.tooltip&&e.state.facet(va).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:Q0.of(null)})}),this.showOptions(s,a.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let r=e.state.field(this.stateField),a=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),r!=a){let{options:s,selected:o,disabled:l}=r.open;(!a.open||a.open.options!=s)&&(this.range=C_(s.length,o,e.state.facet(va).maxRenderedOptions),this.showOptions(s,r.id)),this.updateSel(),l!=((n=a.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let r of this.currentClass.split(" "))r&&this.dom.classList.remove(r);for(let r of n.split(" "))r&&this.dom.classList.add(r);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected=this.range.to)&&(this.range=C_(n.options.length,n.selected,this.view.state.facet(va).maxRenderedOptions),this.showOptions(n.options,e.id));let r=this.updateSelectedOption(n.selected);if(r){this.destroyInfo();let{completion:a}=n.options[n.selected],{info:s}=a;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(a);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,a)}).catch(l=>vs(this.view.state,l,"completion info")):(this.addInfoPane(o,a),r.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let r=this.info=document.createElement("div");if(r.className="cm-tooltip cm-completionInfo",r.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)r.appendChild(e),this.infoDestroy=null;else{let{dom:a,destroy:s}=e;r.appendChild(a),this.infoDestroy=s||null}this.dom.appendChild(r),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let r=this.list.firstChild,a=this.range.from;r;r=r.nextSibling,a++)r.nodeName!="LI"||!r.id?a--:a==e?r.hasAttribute("aria-selected")||(r.setAttribute("aria-selected","true"),n=r):r.hasAttribute("aria-selected")&&(r.removeAttribute("aria-selected"),r.removeAttribute("aria-describedby"));return n&&OMe(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),r=this.info.getBoundingClientRect(),a=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return a.top>Math.min(s.bottom,n.bottom)-10||a.bottom{o.target==a&&o.preventDefault()});let s=null;for(let o=r.from;or.from||r.from==0))if(s=h,typeof u!="string"&&u.header)a.appendChild(u.header(u));else{let p=a.appendChild(document.createElement("completion-section"));p.textContent=h}}const d=a.appendChild(document.createElement("li"));d.id=n+"-"+o,d.setAttribute("role","option");let f=this.optionClass(l);f&&(d.className=f);for(let h of this.optionContent){let p=h(l,this.view.state,this.view,c);p&&d.appendChild(p)}}return r.from&&a.classList.add("cm-completionListIncompleteTop"),r.tonew EMe(n,t,e)}function OMe(t,e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=n.height/t.offsetHeight;r.topn.bottom&&(t.scrollTop+=(r.bottom-n.bottom)/a)}function Y8(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function TMe(t,e){let n=[],r=null,a=null,s=d=>{n.push(d);let{section:f}=d.completion;if(f){r||(r=[]);let h=typeof f=="string"?f:f.name;r.some(p=>p.name==h)||r.push(typeof f=="string"?{name:h}:f)}},o=e.facet(va);for(let d of t)if(d.hasResult()){let f=d.result.getMatch;if(d.result.filter===!1)for(let h of d.result.options)s(new G8(h,d.source,f?f(h):[],1e9-n.length));else{let h=e.sliceDoc(d.from,d.to),p,m=o.filterStrict?new _Me(h):new SMe(h);for(let x of d.result.options)if(p=m.match(x.label)){let v=x.displayLabel?f?f(x,p.matched):[]:p.matched,b=p.score+(x.boost||0);if(s(new G8(x,d.source,v,b)),typeof x.section=="object"&&x.section.rank==="dynamic"){let{name:y}=x.section;a||(a=Object.create(null)),a[y]=Math.max(b,a[y]||-1e9)}}}}if(r){let d=Object.create(null),f=0,h=(p,m)=>(p.rank==="dynamic"&&m.rank==="dynamic"?a[m.name]-a[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof m.rank=="number"?m.rank:1e9)||(p.nameh.score-f.score||u(f.completion,h.completion))){let f=d.completion;!c||c.label!=f.label||c.detail!=f.detail||c.type!=null&&f.type!=null&&c.type!=f.type||c.apply!=f.apply||c.boost!=f.boost?l.push(d):Y8(d.completion)>Y8(c)&&(l[l.length-1]=d),c=d.completion}return l}class Oh{constructor(e,n,r,a,s,o){this.options=e,this.attrs=n,this.tooltip=r,this.timestamp=a,this.selected=s,this.disabled=o}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new Oh(this.options,X8(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,r,a,s,o){if(a&&!o&&e.some(u=>u.isPending))return a.setDisabled();let l=TMe(e,n);if(!l.length)return a&&e.some(u=>u.isPending)?a.setDisabled():null;let c=n.facet(va).selectOnOpen?0:-1;if(a&&a.selected!=c&&a.selected!=-1){let u=a.options[a.selected].completion;for(let d=0;dd.hasResult()?Math.min(u,d.from):u,1e8),create:$Me,above:s.aboveCursor},a?a.timestamp:Date.now(),c,!1)}map(e){return new Oh(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Oh(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class fk{constructor(e,n,r){this.active=e,this.id=n,this.open=r}static start(){return new fk(DMe,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,r=n.facet(va),s=(r.override||n.languageDataAt("autocomplete",zd(n)).map(jMe)).map(c=>(this.active.find(d=>d.source==c)||new $i(c,this.active.some(d=>d.state!=0)?1:0)).update(e,r));s.length==this.active.length&&s.every((c,u)=>c==this.active[u])&&(s=this.active);let o=this.open,l=e.effects.some(c=>c.is(aP));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!PMe(s,this.active)||l?o=Oh.build(s,n,this.id,o,r,l):o&&o.disabled&&!s.some(c=>c.isPending)&&(o=null),!o&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new $i(c.source,0):c));for(let c of e.effects)c.is(rP)&&(o=o&&o.setSelected(c.value,this.id));return s==this.active&&o==this.open?this:new fk(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?RMe:MMe}}function PMe(t,e){if(t==e)return!0;for(let n=0,r=0;;){for(;n-1&&(n["aria-activedescendant"]=t+"-"+e),n}const DMe=[];function TK(t,e){if(t.isUserEvent("input.complete")){let r=t.annotation(OK);if(r&&e.activateOnCompletion(r))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class $i{constructor(e,n,r=!1){this.source=e,this.state=n,this.explicit=r}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let r=TK(e,n),a=this;(r&8||r&16&&this.touches(e))&&(a=new $i(a.source,0)),r&4&&a.state==0&&(a=new $i(this.source,1)),a=a.updateFor(e,r);for(let s of e.effects)if(s.is(dk))a=new $i(a.source,1,s.value);else if(s.is(Q0))a=new $i(a.source,0);else if(s.is(aP))for(let o of s.value)o.source==a.source&&(a=o);return a}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(zd(e.state))}}class Kh extends $i{constructor(e,n,r,a,s,o){super(e,3,n),this.limit=r,this.result=a,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,n){var r;if(!(n&3))return this.map(e.changes);let a=this.result;a.map&&!e.changes.empty&&(a=a.map(a,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=zd(e.state);if(l>o||!a||n&2&&(zd(e.startState)==this.from||ln.map(e))}}),Rs=ns.define({create(){return fk.start()},update(t,e){return t.update(e)},provide:t=>[LT.from(t,e=>e.tooltip),Ue.contentAttributes.from(t,e=>e.attrs)]});function sP(t,e){const n=e.completion.apply||e.completion.label;let r=t.state.field(Rs).active.find(a=>a.source==e.source);return r instanceof Kh?(typeof n=="string"?t.dispatch({...kMe(t.state,n,r.from,r.to),annotations:OK.of(e.completion)}):n(t,e.completion,r.from,r.to),!0):!1}const $Me=AMe(Rs,sP);function kb(t,e="option"){return n=>{let r=n.state.field(Rs,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+a*(t?1:-1):t?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),n.dispatch({effects:rP.of(l)}),!0}}const LMe=t=>{let e=t.state.field(Rs,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Rs,!1)?(t.dispatch({effects:dk.of(!0)}),!0):!1,FMe=t=>{let e=t.state.field(Rs,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:Q0.of(null)}),!0)};class BMe{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const zMe=50,UMe=1e3,VMe=gr.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Rs).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Rs),n=t.state.facet(va);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Rs)==e)return;let r=t.transactions.some(s=>{let o=TK(s,n);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;szMe&&Date.now()-o.time>UMe){for(let l of o.context.abortListeners)try{l()}catch(c){vs(this.view.state,c)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(s=>s.effects.some(o=>o.is(dk)))&&(this.pendingStart=!0);let a=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),a):-1,this.composing!=0)for(let s of t.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Rs);for(let n of e.active)n.isPending&&!this.running.some(r=>r.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(va).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=zd(e),r=new EK(e,n,t.explicit,this.view),a=new BMe(t,r);this.running.push(a),Promise.resolve(t.source(r)).then(s=>{a.context.aborted||(a.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:Q0.of(null)}),vs(this.view.state,s)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(va).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(va),r=this.view.state.field(Rs);for(let a=0;al.source==s.active.source);if(o&&o.isPending)if(s.done==null){let l=new $i(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||r.open&&r.open.disabled)&&this.view.dispatch({effects:aP.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Rs,!1);if(e&&e.tooltip&&this.view.state.facet(va).closeOnBlur){let n=e.open&&lq(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Q0.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:dk.of(!1)}),20),this.composing=0}}}),WMe=typeof navigator=="object"&&/Win/.test(navigator.platform),HMe=_f.highest(Ue.domEventHandlers({keydown(t,e){let n=e.state.field(Rs,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(WMe&&t.altKey)||t.metaKey)return!1;let r=n.open.options[n.open.selected],a=n.active.find(o=>o.source==r.source),s=r.completion.commitCharacters||a.result.commitCharacters;return s&&s.indexOf(t.key)>-1&&sP(e,r),!1}})),GMe=Ue.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),ey={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Cd=Ot.define({map(t,e){let n=e.mapPos(t,-1,ps.TrackAfter);return n??void 0}}),iP=new class extends Nu{};iP.startSide=1;iP.endSide=-1;const PK=ns.define({create(){return Lt.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:r=>r>=n.from&&r<=n.to})}for(let n of e.effects)n.is(Cd)&&(t=t.update({add:[iP.range(n.value,n.value+1)]}));return t}});function qMe(){return[YMe,PK]}const E_="()[]{}<>«»»«[]{}";function RK(t){for(let e=0;e{if((KMe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let a=t.state.selection.main;if(r.length>2||r.length==2&&Zo(Ps(r,0))==1||e!=a.from||n!=a.to)return!1;let s=ZMe(t.state,r);return s?(t.dispatch(s),!0):!1}),XMe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let r=MK(t,t.selection.main.head).brackets||ey.brackets,a=null,s=t.changeByRange(o=>{if(o.empty){let l=QMe(t.doc,o.head);for(let c of r)if(c==l&&s2(t.doc,o.head)==RK(Ps(c,0)))return{changes:{from:o.head-c.length,to:o.head+c.length},range:Ne.cursor(o.head-c.length)}}return{range:a=o}});return a||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!a},JMe=[{key:"Backspace",run:XMe}];function ZMe(t,e){let n=MK(t,t.selection.main.head),r=n.brackets||ey.brackets;for(let a of r){let s=RK(Ps(a,0));if(e==a)return s==a?n4e(t,a,r.indexOf(a+a+a)>-1,n):e4e(t,a,s,n.before||ey.before);if(e==s&&DK(t,t.selection.main.from))return t4e(t,a,s)}return null}function DK(t,e){let n=!1;return t.field(PK).between(0,t.doc.length,r=>{r==e&&(n=!0)}),n}function s2(t,e){let n=t.sliceString(e,e+2);return n.slice(0,Zo(Ps(n,0)))}function QMe(t,e){let n=t.sliceString(e-2,e);return Zo(Ps(n,0))==n.length?n:n.slice(1)}function e4e(t,e,n,r){let a=null,s=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:n,from:o.to}],effects:Cd.of(o.to+e.length),range:Ne.range(o.anchor+e.length,o.head+e.length)};let l=s2(t.doc,o.head);return!l||/\s/.test(l)||r.indexOf(l)>-1?{changes:{insert:e+n,from:o.head},effects:Cd.of(o.head+e.length),range:Ne.cursor(o.head+e.length)}:{range:a=o}});return a?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function t4e(t,e,n){let r=null,a=t.changeByRange(s=>s.empty&&s2(t.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:Ne.cursor(s.head+n.length)}:r={range:s});return r?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function n4e(t,e,n,r){let a=r.stringPrefixes||ey.stringPrefixes,s=null,o=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Cd.of(l.to+e.length),range:Ne.range(l.anchor+e.length,l.head+e.length)};let c=l.head,u=s2(t.doc,c),d;if(u==e){if(J8(t,c))return{changes:{insert:e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)};if(DK(t,c)){let h=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+h.length,insert:h},range:Ne.cursor(c+h.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(d=Z8(t,c-2*e.length,a))>-1&&J8(t,d))return{changes:{insert:e+e+e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)};if(t.charCategorizer(c)(u)!=sr.Word&&Z8(t,c,a)>-1&&!r4e(t,c,e,a))return{changes:{insert:e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)}}return{range:s=l}});return s?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function J8(t,e){let n=ts(t).resolveInner(e+1);return n.parent&&n.from==e}function r4e(t,e,n,r){let a=ts(t).resolveInner(e,-1),s=r.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=t.sliceDoc(a.from,Math.min(a.to,a.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&r.indexOf(l.slice(0,c))>-1){let d=a.firstChild;for(;d&&d.from==a.from&&d.to-d.from>n.length+c;){if(t.sliceDoc(d.to-n.length,d.to)==n)return!1;d=d.firstChild}return!0}let u=a.to==e&&a.parent;if(!u)break;a=u}return!1}function Z8(t,e,n){let r=t.charCategorizer(e);if(r(t.sliceDoc(e-1,e))!=sr.Word)return e;for(let a of n){let s=e-a.length;if(t.sliceDoc(s,e)==a&&r(t.sliceDoc(s-1,s))!=sr.Word)return s}return-1}function IK(t={}){return[HMe,Rs,va.of(t),VMe,a4e,GMe]}const $K=[{key:"Ctrl-Space",run:Yh},{mac:"Alt-`",run:Yh},{mac:"Alt-i",run:Yh},{key:"Escape",run:FMe},{key:"ArrowDown",run:kb(!0)},{key:"ArrowUp",run:kb(!1)},{key:"PageDown",run:kb(!0,"page")},{key:"PageUp",run:kb(!1,"page")},{key:"Enter",run:LMe}],a4e=_f.highest(Xj.computeN([va],t=>t.facet(va).defaultKeymap?[$K]:[]));class Q8{constructor(e,n,r){this.from=e,this.to=n,this.diagnostic=r}}class hd{constructor(e,n,r){this.diagnostics=e,this.panel=n,this.selected=r}static init(e,n,r){let a=r.facet(ol).markerFilter;a&&(e=a(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new hc,l=[],c=0,u=r.doc.iter(),d=0,f=r.doc.length;for(let p=0;;){let m=p==s.length?null:s[p];if(!m&&!l.length)break;let x,v;if(l.length)x=c,v=l.reduce((w,j)=>Math.min(w,j.to),m&&m.from>x?m.from:1e8);else{if(x=m.from,x>f)break;v=m.to,l.push(m),p++}for(;pw.from||w.to==x))l.push(w),p++,v=Math.min(w.to,v);else{v=Math.min(w.from,v);break}}v=Math.min(v,f);let b=!1;if(l.some(w=>w.from==x&&(w.to==v||v==f))&&(b=x==v,!b&&v-x<10)){let w=x-(d+u.value.length);w>0&&(u.next(w),d=x);for(let j=x;;){if(j>=v){b=!0;break}if(!u.lineBreak&&d+u.value.length>j)break;j=d+u.value.length,d+=u.value.length,u.next()}}let y=b4e(l);if(b)o.add(x,x,ht.widget({widget:new g4e(y),diagnostics:l.slice()}));else{let w=l.reduce((j,k)=>k.markClass?j+" "+k.markClass:j,"");o.add(x,v,ht.mark({class:"cm-lintRange cm-lintRange-"+y+w,diagnostics:l.slice(),inclusiveEnd:l.some(j=>j.to>v)}))}if(c=v,c==f)break;for(let w=0;w{if(!(e&&o.diagnostics.indexOf(e)<0))if(!r)r=new Q8(a,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new Q8(r.from,s,r.diagnostic)}}),r}function s4e(t,e){let n=e.pos,r=e.end||n,a=t.state.facet(ol).hideOn(t,n,r);if(a!=null)return a;let s=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(oP))||t.changes.touchesRange(s.from,Math.max(s.to,r)))}function LK(t,e){return t.field(fi,!1)?e:e.concat(Ot.appendConfig.of(VK))}function i4e(t,e){return{effects:LK(t,[oP.of(e)])}}const oP=Ot.define(),lP=Ot.define(),FK=Ot.define(),fi=ns.define({create(){return new hd(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),r=null,a=t.panel;if(t.selected){let s=e.changes.mapPos(t.selected.from,1);r=Pu(n,t.selected.diagnostic,s)||Pu(n,null,s)}!n.size&&a&&e.state.facet(ol).autoPanel&&(a=null),t=new hd(n,a,r)}for(let n of e.effects)if(n.is(oP)){let r=e.state.facet(ol).autoPanel?n.value.length?ty.open:null:t.panel;t=hd.init(n.value,r,e.state)}else n.is(lP)?t=new hd(t.diagnostics,n.value?ty.open:null,t.selected):n.is(FK)&&(t=new hd(t.diagnostics,t.panel,n.value));return t},provide:t=>[q0.from(t,e=>e.panel),Ue.decorations.from(t,e=>e.diagnostics)]}),o4e=ht.mark({class:"cm-lintRange cm-lintRange-active"});function l4e(t,e,n){let{diagnostics:r}=t.state.field(fi),a,s=-1,o=-1;r.between(e-(n<0?1:0),e+(n>0?1:0),(c,u,{spec:d})=>{if(e>=c&&e<=u&&(c==u||(e>c||n>0)&&(eUK(t,n,!1)))}const u4e=t=>{let e=t.state.field(fi,!1);(!e||!e.panel)&&t.dispatch({effects:LK(t.state,[lP.of(!0)])});let n=FT(t,ty.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},e6=t=>{let e=t.state.field(fi,!1);return!e||!e.panel?!1:(t.dispatch({effects:lP.of(!1)}),!0)},d4e=t=>{let e=t.state.field(fi,!1);if(!e)return!1;let n=t.state.selection.main,r=Pu(e.diagnostics,null,n.to+1);return!r&&(r=Pu(e.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(t.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},f4e=[{key:"Mod-Shift-m",run:u4e,preventDefault:!0},{key:"F8",run:d4e}],BK=gr.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(ol);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(r(this.view))),r=>{this.view.state.doc==e.doc&&this.view.dispatch(i4e(this.view.state,r.reduce((a,s)=>a.concat(s))))},r=>{vs(this.view.state,r)})}}update(t){let e=t.state.facet(ol);(t.docChanged||e!=t.startState.facet(ol)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function h4e(t,e,n){let r=[],a=-1;for(let s of t)s.then(o=>{r.push(o),clearTimeout(a),r.length==t.length?e(r):a=setTimeout(()=>e(r),200)},n)}const ol=Ye.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...Nl(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:t6,tooltipFilter:t6,needsRefresh:(e,n)=>e?n?r=>e(r)||n(r):e:n,hideOn:(e,n)=>e?n?(r,a,s)=>e(r,a,s)||n(r,a,s):e:n,autoPanel:(e,n)=>e||n})}}});function t6(t,e){return t?e?(n,r)=>e(t(n,r),r):t:e}function p4e(t,e={}){return[ol.of({source:t,config:e}),BK,VK]}function m4e(t){let e=t.plugin(BK);e&&e.force()}function zK(t){let e=[];if(t)e:for(let{name:n}of t){for(let r=0;rs.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function UK(t,e,n){var r;let a=n?zK(e.actions):[];return Sn("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Sn("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(r=e.actions)===null||r===void 0?void 0:r.map((s,o)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=Pu(t.state.field(fi).diagnostics,e);m&&s.apply(t,m.from,m.to)},{name:u}=s,d=a[o]?u.indexOf(a[o]):-1,f=d<0?u:[u.slice(0,d),Sn("u",u.slice(d,d+1)),u.slice(d+1)],h=s.markClass?" "+s.markClass:"";return Sn("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${a[o]})"`}.`},f)}),e.source&&Sn("div",{class:"cm-diagnosticSource"},e.source))}class g4e extends Cl{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Sn("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class n6{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=UK(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ty{constructor(e){this.view=e,this.items=[];let n=a=>{if(!(a.ctrlKey||a.altKey||a.metaKey)){if(a.keyCode==27)e6(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=zK(s.actions);for(let l=0;l{for(let s=0;se6(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(fi).selected;if(!e)return-1;for(let n=0;n{for(let d of u.diagnostics){if(o.has(d))continue;o.add(d);let f=-1,h;for(let p=r;pr&&(this.items.splice(r,f-r),a=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),s=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.topc.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function n(){let r=e;e=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;e!=r.dom;)n();e=r.dom.nextSibling}else this.list.insertBefore(r.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(fi),r=Pu(n.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:FK.of(r)})}static open(e){return new ty(e)}}function x4e(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function jb(t){return x4e(``,'width="6" height="3"')}const y4e=Ue.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:jb("#d11")},".cm-lintRange-warning":{backgroundImage:jb("orange")},".cm-lintRange-info":{backgroundImage:jb("#999")},".cm-lintRange-hint":{backgroundImage:jb("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function v4e(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function b4e(t){let e="hint",n=1;for(let r of t){let a=v4e(r.severity);a>n&&(n=a,e=r.severity)}return e}const VK=[fi,Ue.decorations.compute([fi],t=>{let{selected:e,panel:n}=t.field(fi);return!e||!n||e.from==e.to?ht.none:ht.set([o4e.range(e.from,e.to)])}),rTe(l4e,{hideOn:s4e}),y4e];var r6=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(JMe)),e.defaultKeymap!==!1&&(r=r.concat(VRe)),e.searchKeymap!==!1&&(r=r.concat(gMe)),e.historyKeymap!==!1&&(r=r.concat(XPe)),e.foldKeymap!==!1&&(r=r.concat(iPe)),e.completionKeymap!==!1&&(r=r.concat($K)),e.lintKeymap!==!1&&(r=r.concat(f4e));var a=[];return e.lineNumbers!==!1&&a.push(gTe()),e.highlightActiveLineGutter!==!1&&a.push(vTe()),e.highlightSpecialChars!==!1&&a.push(R3e()),e.history!==!1&&a.push(zPe()),e.foldGutter!==!1&&a.push(uPe()),e.drawSelection!==!1&&a.push(k3e()),e.dropCursor!==!1&&a.push(C3e()),e.allowMultipleSelections!==!1&&a.push(Xt.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(XTe()),e.syntaxHighlighting!==!1&&a.push(GT(pPe,{fallback:!0})),e.bracketMatching!==!1&&a.push(wPe()),e.closeBrackets!==!1&&a.push(qMe()),e.autocompletion!==!1&&a.push(IK()),e.rectangularSelection!==!1&&a.push(G3e()),n!==!1&&a.push(Y3e()),e.highlightActiveLine!==!1&&a.push(F3e()),e.highlightSelectionMatches!==!1&&a.push(YRe()),e.tabSize&&typeof e.tabSize=="number"&&a.push(Zj.of(" ".repeat(e.tabSize))),a.concat([Xj.of(r.flat())]).filter(Boolean)};const w4e="#e5c07b",a6="#e06c75",k4e="#56b6c2",j4e="#ffffff",o1="#abb2bf",cO="#7d8799",S4e="#61afef",_4e="#98c379",s6="#d19a66",N4e="#c678dd",C4e="#21252b",i6="#2c313a",o6="#282c34",A_="#353a42",E4e="#3E4451",l6="#528bff",A4e=Ue.theme({"&":{color:o1,backgroundColor:o6},".cm-content":{caretColor:l6},".cm-cursor, .cm-dropCursor":{borderLeftColor:l6},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:E4e},".cm-panels":{backgroundColor:C4e,color:o1},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:o6,color:cO,border:"none"},".cm-activeLineGutter":{backgroundColor:i6},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:A_},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:A_,borderBottomColor:A_},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:i6,color:o1}}},{dark:!0}),O4e=Sm.define([{tag:oe.keyword,color:N4e},{tag:[oe.name,oe.deleted,oe.character,oe.propertyName,oe.macroName],color:a6},{tag:[oe.function(oe.variableName),oe.labelName],color:S4e},{tag:[oe.color,oe.constant(oe.name),oe.standard(oe.name)],color:s6},{tag:[oe.definition(oe.name),oe.separator],color:o1},{tag:[oe.typeName,oe.className,oe.number,oe.changed,oe.annotation,oe.modifier,oe.self,oe.namespace],color:w4e},{tag:[oe.operator,oe.operatorKeyword,oe.url,oe.escape,oe.regexp,oe.link,oe.special(oe.string)],color:k4e},{tag:[oe.meta,oe.comment],color:cO},{tag:oe.strong,fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.link,color:cO,textDecoration:"underline"},{tag:oe.heading,fontWeight:"bold",color:a6},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:s6},{tag:[oe.processingInstruction,oe.string,oe.inserted],color:_4e},{tag:oe.invalid,color:j4e}]),T4e=[A4e,GT(O4e)];var P4e=Ue.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),R4e=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:r=!0,readOnly:a=!1,theme:s="light",placeholder:o="",basicSetup:l=!0}=e,c=[];switch(n&&c.unshift(Xj.of([WRe])),l&&(typeof l=="boolean"?c.unshift(r6()):c.unshift(r6(l))),o&&c.unshift(iq(o)),s){case"light":c.push(P4e);break;case"dark":c.push(T4e);break;case"none":break;default:c.push(s);break}return r===!1&&c.push(Ue.editable.of(!1)),a&&c.push(Xt.readOnly.of(!0)),[...c]},M4e=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)});class D4e{constructor(e,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class c6{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var O_=null,I4e=()=>typeof window>"u"?new c6:(O_||(O_=new c6),O_),u6=_l.define(),$4e=200,L4e=[];function F4e(t){var{value:e,selection:n,onChange:r,onStatistics:a,onCreateEditor:s,onUpdate:o,extensions:l=L4e,autoFocus:c,theme:u="light",height:d=null,minHeight:f=null,maxHeight:h=null,width:p=null,minWidth:m=null,maxWidth:x=null,placeholder:v="",editable:b=!0,readOnly:y=!1,indentWithTab:w=!0,basicSetup:j=!0,root:k,initialState:S}=t,[_,C]=g.useState(),[E,P]=g.useState(),[R,A]=g.useState(),T=g.useState(()=>({current:null}))[0],D=g.useState(()=>({current:null}))[0],L=Ue.theme({"&":{height:d,minHeight:f,maxHeight:h,width:p,minWidth:m,maxWidth:x},"& .cm-scroller":{height:"100% !important"}}),X=Ue.updateListener.of(Y=>{if(Y.docChanged&&typeof r=="function"&&!Y.transactions.some(I=>I.annotation(u6))){T.current?T.current.reset():(T.current=new D4e(()=>{if(D.current){var I=D.current;D.current=null,I()}T.current=null},$4e),I4e().add(T.current));var W=Y.state.doc,G=W.toString();r(G,Y)}a&&a(M4e(Y))}),J=R4e({theme:u,editable:b,readOnly:y,placeholder:v,indentWithTab:w,basicSetup:j}),U=[X,L,...J];return o&&typeof o=="function"&&U.push(Ue.updateListener.of(o)),U=U.concat(l),g.useLayoutEffect(()=>{if(_&&!R){var Y={doc:e,selection:n,extensions:U},W=S?Xt.fromJSON(S.json,Y,S.fields):Xt.create(Y);if(A(W),!E){var G=new Ue({state:W,parent:_,root:k});P(G),s&&s(G,W)}}return()=>{E&&(A(void 0),P(void 0))}},[_,R]),g.useEffect(()=>{t.container&&C(t.container)},[t.container]),g.useEffect(()=>()=>{E&&(E.destroy(),P(void 0)),T.current&&(T.current.cancel(),T.current=null)},[E]),g.useEffect(()=>{c&&E&&E.focus()},[c,E]),g.useEffect(()=>{E&&E.dispatch({effects:Ot.reconfigure.of(U)})},[u,l,d,f,h,p,m,x,v,b,y,w,j,r,o]),g.useEffect(()=>{if(e!==void 0){var Y=E?E.state.doc.toString():"";if(E&&e!==Y){var W=T.current&&!T.current.isDone,G=()=>{E&&e!==E.state.doc.toString()&&E.dispatch({changes:{from:0,to:E.state.doc.toString().length,insert:e||""},annotations:[u6.of(!0)]})};W?D.current=G:G()}}},[e,E]),{state:R,setState:A,view:E,setView:P,container:_,setContainer:C}}var B4e=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],WK=g.forwardRef((t,e)=>{var{className:n,value:r="",selection:a,extensions:s=[],onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,autoFocus:d,theme:f="light",height:h,minHeight:p,maxHeight:m,width:x,minWidth:v,maxWidth:b,basicSetup:y,placeholder:w,indentWithTab:j,editable:k,readOnly:S,root:_,initialState:C}=t,E=dwe(t,B4e),P=g.useRef(null),{state:R,view:A,container:T,setContainer:D}=F4e({root:_,value:r,autoFocus:d,theme:f,height:h,minHeight:p,maxHeight:m,width:x,minWidth:v,maxWidth:b,basicSetup:y,placeholder:w,indentWithTab:j,editable:k,readOnly:S,selection:a,onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,extensions:s,initialState:C});g.useImperativeHandle(e,()=>({editor:P.current,state:R,view:A}),[P,T,R,A]);var L=g.useCallback(J=>{P.current=J,D(J)},[D]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var X=typeof f=="string"?"cm-theme-"+f:"cm-theme";return i.jsx("div",S0({ref:L,className:""+X+(n?" "+n:"")},E))});WK.displayName="CodeMirror";var HK=t=>{var{theme:e,settings:n={},styles:r=[]}=t,a={".cm-gutters":{}},s={};n.background&&(s.backgroundColor=n.background),n.backgroundImage&&(s.backgroundImage=n.backgroundImage),n.foreground&&(s.color=n.foreground),n.fontSize&&(s.fontSize=n.fontSize),(n.background||n.foreground)&&(a["&"]=s),n.fontFamily&&(a["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(a[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(a[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(a[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(a[".cm-content"]={caretColor:n.caret},a[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var o={};n.gutterActiveForeground&&(o.color=n.gutterActiveForeground),n.lineHighlight&&(a[".cm-activeLine"]={backgroundColor:n.lineHighlight},o.backgroundColor=n.lineHighlight),a[".cm-activeLineGutter"]=o,n.selection&&(a["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:n.selection+" !important"}),n.selectionMatch&&(a["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var l=Ue.theme(a,{dark:e==="dark"}),c=Sm.define(r),u=[l,GT(c)];return u},z4e={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},U4e=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#116329"},{tag:[oe.comment,oe.bracket],color:"#6a737d"},{tag:[oe.className,oe.propertyName],color:"#6f42c1"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#005cc5"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#d73a49"},{tag:[oe.string,oe.meta,oe.regexp],color:"#032f62"},{tag:[oe.name,oe.quote],color:"#22863a"},{tag:[oe.heading,oe.strong],color:"#24292e",fontWeight:"bold"},{tag:[oe.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[oe.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#e36209"},{tag:[oe.url,oe.escape,oe.regexp,oe.link],color:"#032f62"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#cb2431"}],GK=t=>{var{theme:e="light",settings:n={},styles:r=[]}=t||{};return HK({theme:e,settings:S0({},z4e,n),styles:[...U4e,...r]})};GK();var V4e={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},W4e=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#7ee787"},{tag:[oe.comment,oe.bracket],color:"#8b949e"},{tag:[oe.className,oe.propertyName],color:"#d2a8ff"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#79c0ff"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#ff7b72"},{tag:[oe.string,oe.meta,oe.regexp],color:"#a5d6ff"},{tag:[oe.name,oe.quote],color:"#7ee787"},{tag:[oe.heading,oe.strong],color:"#d2a8ff",fontWeight:"bold"},{tag:[oe.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[oe.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#ffab70"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#f97583"}],qK=t=>{var{theme:e="dark",settings:n={},styles:r=[]}=t||{};return HK({theme:e,settings:S0({},V4e,n),styles:[...W4e,...r]})};qK();const H4e=["absa_sanlam","aci","adyen","adyenplatform","affirm","airwallex","amazonpay","archipel","authipay","authorizedotnet","bambora","bamboraapac","bankofamerica","barclaycard","billwerk","bitpay","blackhawknetwork","bluesnap","boku","braintree","breadpay","calida","cardinal","cashtocode","celero","chargebee","checkbook","checkout","coinbase","coingate","cryptopay","ctp_mastercard","ctp_visa","custombilling","cybersource","cybersourcedecisionmanager","datatrans","deutschebank","digitalvirgo","dlocal","dwolla","ebanx","elavon","envoy","facilitapay","finix","fiserv","fiservcommercehub","fiservemea","fiuu","flexiti","forte","getnet","gigadat","givepayments","globalpay","globepay","gocardless","helcim","hipay","hyperpg","iatapay","imerchantsolutions","inespay","interpayments","itaubank","jpmorgan","juspaythreedsserver","klarna","loonio","mifinity","mollie","moneris","multisafepay","netcetera","nexinets","nexixpay","nmi","nomupay","noon","nordea","novalnet","nuvei","opennode","paybox","payconex","payjustnow","payjustnowinstore","payload","payme","payone","paypal","paysafe","paystack","paytm","payu","peachpayments","phonepe","placetopay","plaid","powertranz","prophetpay","rapyd","razorpay","recurly","redsys","revolv3","riskified","santander","shift4","signifyd","silverflow","square","stax","stripe","stripebilling","tesouro","threedsecureio","tokenio","truelayer","trustly","trustpay","trustpayments","tsys","tsys_transit","vgs","volt","wellsfargo","wise","worldline","worldpay","worldpaymodular","worldpayvantiv","worldpayxml","xendit","zen","zift","zsl"];function Kp(t,e=[],n=[]){const r=new Set(e.filter(Boolean)),a=cEe();if(a){const o=new Set(n.filter(Boolean));return a.filter(l=>!o.has(l.merchant_connector_id)).map(l=>({name:l.connector_name,gatewayId:l.merchant_connector_id}))}const s=new Set;return[...t,...H4e].filter(o=>!o||r.has(o)||s.has(o)?!1:(s.add(o),!0)).map(o=>({name:o}))}function uO(t,e){const n=t.toLowerCase(),r=e.toLowerCase();if(!n)return 0;if(r.startsWith(n))return 1e3-r.length;let a=0,s=0,o=-1,l=0;for(let c=0;c({item:n,score:uO(t,n)})).filter(n=>n.score!==null).sort((n,r)=>r.score-n.score).map(n=>n.item):e}const G4e={"==":"=","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in",not_in:"not in"},q4e={"=":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in","not in":"not_in"};function Qg(t){return Array.isArray(t.value)?`${t.lhs} in [${t.value.join(", ")}]`:`${t.metadataKey?`${t.lhs}.${t.metadataKey}`:t.lhs} ${G4e[t.operator]??t.operator} ${t.value}`}function d6(t){const e=t.conditions.map(Qg).join(" and ");return t.conditions.length>1?`(${e})`:e}function K4e(t){const e=[];if(t.conditions.length===0&&t.nested.length>0){const n=t.nested[0].conditions;e.push(n.length>1?`(${n.map(Qg).join(" and ")})`:n.length===1?Qg(n[0]):"");const r=t.nested.slice(1);return r.length>0&&e.push(`and (${r.map(d6).join(" or ")})`),e.filter(Boolean)}return t.conditions.forEach((n,r)=>e.push(r===0?Qg(n):`and ${Qg(n)}`)),t.nested.length>0&&e.push(`and (${t.nested.map(d6).join(" or ")})`),e}function Y4e(t){return t.map(e=>{const n=[];if(e.statements.forEach((r,a)=>{a>0&&n.push("or"),K4e(r).forEach(s=>n.push(s))}),e.outputType==="priority"){const r=e.priorityGateways.map(a=>a.gatewayId?`${a.gatewayName}(${a.gatewayId})`:a.gatewayName).join(", ");n.push(`=> priority: ${r}`)}else if(e.outputType==="volume_split"){const r=e.volumeSplitEntries.map(a=>`${a.split}% ${a.gatewayName}${a.gatewayId?`(${a.gatewayId})`:""}`).join(", ");n.push(`=> volume_split: ${r}`)}else{const r=e.volumeSplitPriorityEntries.map(a=>`${a.split}% [${a.gateways.map(s=>s.gatewayId?`${s.gatewayName}(${s.gatewayId})`:s.gatewayName).join(", ")}]`).join(", ");n.push(`=> volume_split_priority: ${r}`)}return n.join(` -`)}).join(` - -`)}class Ed extends Error{}function T_(t){if(t=t.trim(),!t)return null;const e=/^(\w+)\s+in\s+\[([^\]]*)\]$/.exec(t);if(e){const a=e[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Ed(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:e[1],operator:"in",value:a}}const n=/^(\w+)\s+not\s+in\s+\[([^\]]*)\]$/.exec(t);if(n){const a=n[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Ed(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:n[1],operator:"not_in",value:a}}const r=/^([\w.]+)\s*(>=|<=|!=|>|<|=)\s*(.+)$/.exec(t);if(r){const a=r[3].trim();if(!a)throw new Ed(`Empty value in condition: "${t}"`);const s=r[1],o=s.indexOf("."),l=o>=0?s.slice(0,o):s,c=o>=0?s.slice(o+1):void 0;return{id:crypto.randomUUID(),lhs:l,operator:q4e[r[2]]??r[2],value:a,metadataKey:c}}throw new Ed(`Invalid condition syntax: "${t}"`)}function P_(t,e){const n=[];let r=0,a=0;for(let s=0;s0)continue;const o=e.exec(t.slice(s));o&&o.index===0&&(n.push(t.slice(a,s).trim()),s+=o[0].length-1,a=s+1)}return n.push(t.slice(a).trim()),n.filter(Boolean)}function R_(t){return t=t.trim(),t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1).trim():t}function X4e(t){const e=[],n=[];for(const r of t.split(` -`)){const a=r.trim();if(!a||a.startsWith("#"))continue;const s=a.replace(/^(?:and|or)\s+/i,"").trim();if(s.startsWith("(")&&s.endsWith(")"))if(e.length===0&&n.length===0)for(const o of P_(s.slice(1,-1),/^\s+and\s+/i))try{const l=T_(R_(o));l&&e.push(l)}catch(l){if(l instanceof Ed)return{group:null,error:l.message};throw l}else for(const o of P_(s.slice(1,-1),/^\s+or\s+/i)){const l=[];for(const c of P_(R_(o),/^\s+and\s+/i))try{const u=T_(R_(c));u&&l.push(u)}catch(u){if(u instanceof Ed)return{group:null,error:u.message};throw u}l.length&&n.push({id:crypto.randomUUID(),conditions:l,nested:[]})}else try{const o=T_(s);o&&e.push(o)}catch(o){if(o instanceof Ed)return{group:null,error:o.message};throw o}}return{group:{id:crypto.randomUUID(),conditions:e,nested:n},error:null}}function J4e(t){let e=!0;for(const n of t.split(` -`)){const r=n.trim();if(!(!r||r.startsWith("#"))){if(/^or$/i.test(r)){e=!0;continue}if(!/^and$/i.test(r)){if(e){e=!1;continue}if(!/^(?:and|or)\s+/i.test(r))return`Missing 'and' or 'or' before: "${r.length>40?r.slice(0,40)+"…":r}"`}}}return null}function Z4e(t){const e=[];let n=0,r=0,a="";for(let s=0;s0)continue;const o=/^(\s+)(and|or)(\s+)/i.exec(t.slice(s));o&&(e.push({sep:a,text:t.slice(r,s).trim()}),a=o[2].toLowerCase(),s+=o[0].length-1,r=s+1)}return e.push({sep:a,text:t.slice(r).trim()}),e.filter(s=>s.text)}function Q4e(t){return t.split(` -`).flatMap(e=>{const n=e.trim();if(!n||n.startsWith("#")||/^=>/.test(n)||/^(?:and|or)(?:\s|$)/i.test(n))return[e];const r=Z4e(n);return r.length<=1?[e]:r.map((a,s)=>s===0?a.text:`${a.sep} ${a.text}`)}).join(` -`)}function eDe(t){const e=[],n=t.split(/\n\s*\n/).map(r=>r.trim()).filter(Boolean);for(let r=0;r");if(s===-1)continue;const o=Q4e(a.slice(0,s).trim()),l=J4e(o);if(l)return{rules:null,error:`Rule ${r+1}: ${l}`};const c=a.slice(s+2).trim();let u="priority",d=[],f=[];const h=[];if(c.startsWith("priority:")){u="priority";const x=c.slice(9).trim();d=x?x.split(",").flatMap(v=>{const b=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(v.trim());return b&&b[1]?[{id:crypto.randomUUID(),gatewayName:b[1],gatewayId:b[2]??""}]:[]}):[]}else if(c.startsWith("volume_split:")){u="volume_split";const x=c.slice(13).trim();f=x?x.split(",").flatMap(v=>{const b=/^(\d+)%\s+([^\s(]+)(?:\(([^)]*)\))?$/.exec(v.trim());return b?[{id:crypto.randomUUID(),split:Number(b[1]),gatewayName:b[2],gatewayId:b[3]??""}]:[]}):[]}else if(c.startsWith("volume_split_priority:")){u="volume_split_priority";const x=c.slice(22).trim(),v=/(\d+)%\s*\[([^\]]*)\]/g;let b;for(;(b=v.exec(x))!==null;){const y=b[2].split(",").map(w=>w.trim()).filter(Boolean).map(w=>{const j=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(w);return{id:crypto.randomUUID(),gatewayName:(j==null?void 0:j[1])??w,gatewayId:(j==null?void 0:j[2])??""}});h.push({id:crypto.randomUUID(),split:Number(b[1]),gateways:y})}}else return{rules:null,error:`Rule ${r+1}: output must start with priority:, volume_split:, or volume_split_priority:`};if(u==="priority"&&d.length===0)return{rules:null,error:`Rule ${r+1}: priority output must have at least one gateway`};if(u==="volume_split"&&f.length===0)return{rules:null,error:`Rule ${r+1}: volume_split output must have at least one gateway`};if(u==="volume_split_priority"&&h.length===0)return{rules:null,error:`Rule ${r+1}: volume_split_priority output must have at least one gateway`};const p=o.replace(/^([ \t]*)or\s+(?=\S)/gim,`$1or -$1`),m=[];for(const x of p.split(/^[ \t]*or[ \t]*$/im)){const{group:v,error:b}=X4e(x.trim());if(b)return{rules:null,error:`Rule ${r+1}: ${b}`};v&&(v.conditions.length>0||v.nested.length>0)&&m.push(v)}m.length||m.push({id:crypto.randomUUID(),conditions:[],nested:[]}),e.push({id:crypto.randomUUID(),name:`Rule ${e.length+1}`,statements:m,outputType:u,priorityGateways:d,volumeSplitEntries:f,volumeSplitPriorityEntries:h})}return{rules:e,error:null}}const KK=`currency in [EUR, GBP] -and amount > 100 -and (payment_method = card or card_type = credit) -=> priority: adyen - -currency = USD -=> volume_split: 70% stripe, 30% adyen`,tDe=qT.define({startState:()=>({}),token(t){return t.eatSpace()?null:t.match(/^#.*/)?"comment":t.match("=>")?"meta":t.match(/^(?:and|or|not)\b/i)||t.match(/^in\b/i)?"keyword":t.match(/^(?:volume_split_priority|volume_split|priority)(?=\s*:)/)?"typeName":t.match(/^(?:!=|>=|<=|>|<|=)/)?"operator":t.match(/^\d+/)?"number":t.match(/^[[\]%,:]/)?"punctuation":t.match(/^\w+/)?"variableName":(t.next(),null)}}),YK=t=>[{tag:oe.keyword,color:t?"#a78bfa":"#7c3aed",fontWeight:"600"},{tag:oe.meta,color:t?"#fbbf24":"#d97706",fontWeight:"700"},{tag:oe.typeName,color:t?"#34d399":"#059669",fontWeight:"600"},{tag:oe.operator,color:t?"#60a5fa":"#2563eb"},{tag:oe.number,color:t?"#fbbf24":"#b45309"},{tag:oe.punctuation,color:"#64748b"},{tag:oe.comment,color:t?"#4e5870":"#94a3b8",fontStyle:"italic"},{tag:oe.variableName,color:t?"#cbd5e1":"#1e293b"}],nDe=GK({styles:YK(!1)}),rDe=qK({styles:YK(!0)}),aDe=/\w+\s+(?:(?:in|not\s+in)\s*\[[^\]]+\]|(?:=|!=|>=|<=|>|<)\s+\S+)\s*$/;function sDe(t,e,n,r){var m,x,v;const a=t.slice(0,e).split(` -`),s=a[a.length-1],o=a.length>=2?a[a.length-2].trim():"";if(!s.trim())return aDe.test(o)||/^or$/i.test(o)?["and","and (","or","or (","=>"]:[];const l=s.includes("]")?s.slice(s.lastIndexOf("]")+1):s;if(s.includes("]")&&!l.trim())return["and","and (","or","or (","=>"];const c=l.trimStart().replace(/^(?:and|or)\s+/i,"").replace(/^\(/,"");if(!c)return Object.keys(n).slice(0,12);if(/\)\s*$/.test(c))return["and","or","or (","=>"];const u=/=>\s*(\w*)$/.exec(s);if(u){const b=r[0]??"gateway_name",y=r[1]??"gateway_name",w=[`priority: ${b}`,`volume_split: 70% ${b}, 30% ${y}`];return u[1]?w.sort((j,k)=>(uO(u[1],k)??-1/0)-(uO(u[1],j)??-1/0)):w}if(/=>\s*(?:priority|volume_split(?:_priority)?):/.test(s)){const b=/(\w*)$/.exec(s);return _g((b==null?void 0:b[1])??"",Kp(r).map(y=>y.name)).slice(0,10)}const d=/(\w+)\s+(?:in|not\s+in)\s*\[(?:[^\]]*,\s*)?(\w*)$/.exec(c);if(d){const b=((m=n[d[1]])==null?void 0:m.values)??[],y=/\[([^\]]*)$/.exec(c),w=y?y[1].split(",").map(j=>j.trim()).filter(Boolean):[];return _g(d[2],b.filter(j=>!w.includes(j))).slice(0,12)}const f=/(\w+)\s+(?:>=|<=|!=|>|<|=)\s*(\w*)$/.exec(c);if(f)return _g(f[2],((x=n[f[1]])==null?void 0:x.values)??[]).slice(0,12);const h=/^(\w+)\s+(\w*)$/.exec(c);if(h&&n[h[1]]){const y=((v=n[h[1]])==null?void 0:v.type)==="integer"?["=","!=",">","<",">=","<="]:["=","!=","in [","not in ["];return _g(h[2],y)}if(/\)\s*$/.test(c))return["and","or","or (","=>"];const p=/(\w+)$/.exec(c);return p&&p[1].length>=1?_g(p[1],["and","and (","or","or (","=>",...Object.keys(n)]).slice(0,12):[]}function iDe(t,e){return n=>{const r=n.state.doc.toString(),a=n.pos,s=sDe(r,a,t.current??{},e.current??[]);if(!s.length)return null;const o=r.slice(0,a),l=/(\w+)$/.exec(o);return{from:l?a-l[0].length:a,options:s.map(u=>({label:u,apply(d,f,h,p){const m=d.state.doc.toString(),x=m.slice(p),v=/^\w+/.exec(x);let b=v?p+v[0].length:p;u.includes(":")&&(b=d.state.doc.lineAt(p).to);const y=m.slice(b);let w,j;if(u.endsWith("["))w=u+"]",j=h+u.length;else if(u.endsWith("("))w=u+")",j=h+u.length;else{const k=!u.endsWith(":")&&!/^\s/.test(y);w=u+(k?" ":""),j=h+w.length}d.dispatch({changes:{from:h,to:b,insert:w},selection:{anchor:j}}),setTimeout(()=>Yh(d),0)}})),validFor:/^\w*$/}}}function oDe(t){return p4e(e=>{var u;const n=t.current;if(!n)return[];const r=e.state.doc.toString(),a=/Rule (\d+)/.exec(n),s=a?parseInt(a[1],10)-1:0,o=r.split(/\n\s*\n/);let l=0;for(let d=0;d ul":{maxHeight:"220px",borderRadius:"8px",overflowY:"auto"},".cm-tooltip.cm-tooltip-autocomplete > ul > li":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",padding:"4px 12px"},".cm-diagnostic":{padding:"2px 4px",borderRadius:"3px"}});function cDe({value:t,onChange:e,parseError:n,routingKeys:r,gatewaySuggestions:a}){const[s,o]=g.useState(()=>document.documentElement.classList.contains("dark")),l=g.useRef(r),c=g.useRef(a),u=g.useRef(n),d=g.useRef(null);g.useEffect(()=>{l.current=r},[r]),g.useEffect(()=>{c.current=a},[a]),g.useEffect(()=>{u.current=n,d.current&&m4e(d.current)},[n]),g.useEffect(()=>{const p=new MutationObserver(()=>o(document.documentElement.classList.contains("dark")));return p.observe(document.documentElement,{attributeFilter:["class"]}),()=>p.disconnect()},[]);const h=g.useMemo(()=>[tDe,iq(KK),IK({override:[iDe(l,c)],activateOnTyping:!0,closeOnBlur:!0}),oDe(u),Ue.lineWrapping,lDe,Ue.domEventHandlers({click:(p,m)=>(Yh(m),!1)}),Ue.updateListener.of(p=>{if(p.docChanged)for(const m of p.transactions)m.changes.iterChanges((x,v,b,y,w)=>{const j=w.toString();(j===" "||j===` -`)&&Yh(p.view)})})],[]);return i.jsxs("div",{children:[i.jsx(WK,{value:t,onChange:p=>e(p),onCreateEditor:p=>{d.current=p},theme:s?rDe:nDe,extensions:h,basicSetup:{lineNumbers:!1,foldGutter:!1,autocompletion:!1,highlightActiveLine:!1,highlightSelectionMatches:!1,closeBrackets:!0,bracketMatching:!0,indentOnInput:!1,searchKeymap:!1},className:`rounded-xl border overflow-hidden ${n?"border-red-400 dark:border-red-500":"border-slate-200 dark:border-[#222226]"}`}),n?i.jsx("p",{className:"mt-1.5 text-xs text-red-600 font-medium",children:n}):i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:["Tab / Enter to complete · ↑↓ navigate · ",i.jsx("code",{className:"font-mono",children:"or"})," on its own line starts an OR group"]})]})}function uDe(){for(var t=arguments.length,e=new Array(t),n=0;nr=>{e.forEach(a=>a(r))},e)}const i2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Cm(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function cP(t){return"nodeType"in t}function Ys(t){var e,n;return t?Cm(t)?t:cP(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function uP(t){const{Document:e}=Ys(t);return t instanceof e}function Dy(t){return Cm(t)?!1:t instanceof Ys(t).HTMLElement}function XK(t){return t instanceof Ys(t).SVGElement}function Em(t){return t?Cm(t)?t.document:cP(t)?uP(t)?t:Dy(t)||XK(t)?t.ownerDocument:document:document:document}const vl=i2?g.useLayoutEffect:g.useEffect;function dP(t){const e=g.useRef(t);return vl(()=>{e.current=t}),g.useCallback(function(){for(var n=arguments.length,r=new Array(n),a=0;a{t.current=setInterval(r,a)},[]),n=g.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function ny(t,e){e===void 0&&(e=[t]);const n=g.useRef(t);return vl(()=>{n.current!==t&&(n.current=t)},e),n}function Iy(t,e){const n=g.useRef();return g.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function hk(t){const e=dP(t),n=g.useRef(null),r=g.useCallback(a=>{a!==n.current&&(e==null||e(a,n.current)),n.current=a},[]);return[n,r]}function dO(t){const e=g.useRef();return g.useEffect(()=>{e.current=t},[t]),e.current}let M_={};function $y(t,e){return g.useMemo(()=>{if(e)return e;const n=M_[t]==null?0:M_[t]+1;return M_[t]=n,t+"-"+n},[t,e])}function JK(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a{const l=Object.entries(o);for(const[c,u]of l){const d=s[c];d!=null&&(s[c]=d+t*u)}return s},{...e})}}const Xh=JK(1),ry=JK(-1);function fDe(t){return"clientX"in t&&"clientY"in t}function fP(t){if(!t)return!1;const{KeyboardEvent:e}=Ys(t.target);return e&&t instanceof e}function hDe(t){if(!t)return!1;const{TouchEvent:e}=Ys(t.target);return e&&t instanceof e}function fO(t){if(hDe(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return fDe(t)?{x:t.clientX,y:t.clientY}:null}const ay=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[ay.Translate.toString(t),ay.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),f6="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function pDe(t){return t.matches(f6)?t:t.querySelector(f6)}const mDe={display:"none"};function gDe(t){let{id:e,value:n}=t;return H.createElement("div",{id:e,style:mDe},n)}function xDe(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const a={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return H.createElement("div",{id:e,style:a,role:"status","aria-live":r,"aria-atomic":!0},n)}function yDe(){const[t,e]=g.useState("");return{announce:g.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const ZK=g.createContext(null);function vDe(t){const e=g.useContext(ZK);g.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function bDe(){const[t]=g.useState(()=>new Set),e=g.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[g.useCallback(r=>{let{type:a,event:s}=r;t.forEach(o=>{var l;return(l=o[a])==null?void 0:l.call(o,s)})},[t]),e]}const wDe={draggable:` - To pick up a draggable item, press the space bar. - While dragging, use the arrow keys to move the item. - Press space again to drop the item in its new position, or press escape to cancel. - `},kDe={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function jDe(t){let{announcements:e=kDe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:a=wDe}=t;const{announce:s,announcement:o}=yDe(),l=$y("DndLiveRegion"),[c,u]=g.useState(!1);if(g.useEffect(()=>{u(!0)},[]),vDe(g.useMemo(()=>({onDragStart(f){let{active:h}=f;s(e.onDragStart({active:h}))},onDragMove(f){let{active:h,over:p}=f;e.onDragMove&&s(e.onDragMove({active:h,over:p}))},onDragOver(f){let{active:h,over:p}=f;s(e.onDragOver({active:h,over:p}))},onDragEnd(f){let{active:h,over:p}=f;s(e.onDragEnd({active:h,over:p}))},onDragCancel(f){let{active:h,over:p}=f;s(e.onDragCancel({active:h,over:p}))}}),[s,e])),!c)return null;const d=H.createElement(H.Fragment,null,H.createElement(gDe,{id:r,value:a.draggable}),H.createElement(xDe,{id:l,announcement:o}));return n?gs.createPortal(d,n):d}var Zr;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(Zr||(Zr={}));function pk(){}function h6(t,e){return g.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function SDe(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const Co=Object.freeze({x:0,y:0});function QK(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function eY(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function _De(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function p6(t){let{left:e,top:n,height:r,width:a}=t;return[{x:e,y:n},{x:e+a,y:n},{x:e,y:n+r},{x:e+a,y:n+r}]}function tY(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function m6(t,e,n){return e===void 0&&(e=t.left),n===void 0&&(n=t.top),{x:e+t.width*.5,y:n+t.height*.5}}const NDe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=m6(e,e.left,e.top),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=QK(m6(c),a);s.push({id:l,data:{droppableContainer:o,value:u}})}}return s.sort(eY)},CDe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=p6(e),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=p6(c),d=a.reduce((h,p,m)=>h+QK(u[m],p),0),f=Number((d/4).toFixed(4));s.push({id:l,data:{droppableContainer:o,value:f}})}}return s.sort(eY)};function EDe(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),a=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=a-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const c=EDe(l,e);c>0&&a.push({id:o,data:{droppableContainer:s,value:c}})}}return a.sort(_De)};function ODe(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function nY(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:Co}function TDe(t){return function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const PDe=TDe(1);function RDe(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function MDe(t,e,n){const r=RDe(e);if(!r)return t;const{scaleX:a,scaleY:s,x:o,y:l}=r,c=t.left-o-(1-a)*parseFloat(n),u=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),d=a?t.width/a:t.width,f=s?t.height/s:t.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const DDe={ignoreTransform:!1};function Am(t,e){e===void 0&&(e=DDe);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:u,transformOrigin:d}=Ys(t).getComputedStyle(t);u&&(n=MDe(n,u,d))}const{top:r,left:a,width:s,height:o,bottom:l,right:c}=n;return{top:r,left:a,width:s,height:o,bottom:l,right:c}}function g6(t){return Am(t,{ignoreTransform:!0})}function IDe(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function $De(t,e){return e===void 0&&(e=Ys(t).getComputedStyle(t)),e.position==="fixed"}function LDe(t,e){e===void 0&&(e=Ys(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(a=>{const s=e[a];return typeof s=="string"?n.test(s):!1})}function o2(t,e){const n=[];function r(a){if(e!=null&&n.length>=e||!a)return n;if(uP(a)&&a.scrollingElement!=null&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!Dy(a)||XK(a)||n.includes(a))return n;const s=Ys(t).getComputedStyle(a);return a!==t&&LDe(a,s)&&n.push(a),$De(a,s)?n:r(a.parentNode)}return t?r(t):n}function rY(t){const[e]=o2(t,1);return e??null}function D_(t){return!i2||!t?null:Cm(t)?t:cP(t)?uP(t)||t===Em(t).scrollingElement?window:Dy(t)?t:null:null}function aY(t){return Cm(t)?t.scrollX:t.scrollLeft}function sY(t){return Cm(t)?t.scrollY:t.scrollTop}function hO(t){return{x:aY(t),y:sY(t)}}var ga;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(ga||(ga={}));function iY(t){return!i2||!t?!1:t===document.scrollingElement}function oY(t){const e={x:0,y:0},n=iY(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},a=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:a,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const FDe={x:.2,y:.2};function BDe(t,e,n,r,a){let{top:s,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),a===void 0&&(a=FDe);const{isTop:u,isBottom:d,isLeft:f,isRight:h}=oY(t),p={x:0,y:0},m={x:0,y:0},x={height:e.height*a.y,width:e.width*a.x};return!u&&s<=e.top+x.height?(p.y=ga.Backward,m.y=r*Math.abs((e.top+x.height-s)/x.height)):!d&&c>=e.bottom-x.height&&(p.y=ga.Forward,m.y=r*Math.abs((e.bottom-x.height-c)/x.height)),!h&&l>=e.right-x.width?(p.x=ga.Forward,m.x=r*Math.abs((e.right-x.width-l)/x.width)):!f&&o<=e.left+x.width&&(p.x=ga.Backward,m.x=r*Math.abs((e.left+x.width-o)/x.width)),{direction:p,speed:m}}function zDe(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:a}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:a,width:t.clientWidth,height:t.clientHeight}}function lY(t){return t.reduce((e,n)=>Xh(e,hO(n)),Co)}function UDe(t){return t.reduce((e,n)=>e+aY(n),0)}function VDe(t){return t.reduce((e,n)=>e+sY(n),0)}function WDe(t,e){if(e===void 0&&(e=Am),!t)return;const{top:n,left:r,bottom:a,right:s}=e(t);rY(t)&&(a<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const HDe=[["x",["left","right"],UDe],["y",["top","bottom"],VDe]];class hP{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=o2(n),a=lY(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of HDe)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=a[s]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Ax{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var a;(a=this.target)==null||a.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function GDe(t){const{EventTarget:e}=Ys(t);return t instanceof e?t:Em(t)}function I_(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var Ei;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(Ei||(Ei={}));function x6(t){t.preventDefault()}function qDe(t){t.stopPropagation()}var Yt;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(Yt||(Yt={}));const cY={start:[Yt.Space,Yt.Enter],cancel:[Yt.Esc],end:[Yt.Space,Yt.Enter,Yt.Tab]},KDe=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case Yt.Right:return{...n,x:n.x+25};case Yt.Left:return{...n,x:n.x-25};case Yt.Down:return{...n,y:n.y+25};case Yt.Up:return{...n,y:n.y-25}}};class pP{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Ax(Em(n)),this.windowListeners=new Ax(Ys(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Ei.Resize,this.handleCancel),this.windowListeners.add(Ei.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Ei.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&WDe(r),n(Co)}handleKeyDown(e){if(fP(e)){const{active:n,context:r,options:a}=this.props,{keyboardCodes:s=cY,coordinateGetter:o=KDe,scrollBehavior:l="smooth"}=a,{code:c}=e;if(s.end.includes(c)){this.handleEnd(e);return}if(s.cancel.includes(c)){this.handleCancel(e);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Co;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(e,{active:n,context:r.current,currentCoordinates:d});if(f){const h=ry(f,d),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const x of m){const v=e.code,{isTop:b,isRight:y,isLeft:w,isBottom:j,maxScroll:k,minScroll:S}=oY(x),_=zDe(x),C={x:Math.min(v===Yt.Right?_.right-_.width/2:_.right,Math.max(v===Yt.Right?_.left:_.left+_.width/2,f.x)),y:Math.min(v===Yt.Down?_.bottom-_.height/2:_.bottom,Math.max(v===Yt.Down?_.top:_.top+_.height/2,f.y))},E=v===Yt.Right&&!y||v===Yt.Left&&!w,P=v===Yt.Down&&!j||v===Yt.Up&&!b;if(E&&C.x!==f.x){const R=x.scrollLeft+h.x,A=v===Yt.Right&&R<=k.x||v===Yt.Left&&R>=S.x;if(A&&!h.y){x.scrollTo({left:R,behavior:l});return}A?p.x=x.scrollLeft-R:p.x=v===Yt.Right?x.scrollLeft-k.x:x.scrollLeft-S.x,p.x&&x.scrollBy({left:-p.x,behavior:l});break}else if(P&&C.y!==f.y){const R=x.scrollTop+h.y,A=v===Yt.Down&&R<=k.y||v===Yt.Up&&R>=S.y;if(A&&!h.x){x.scrollTo({top:R,behavior:l});return}A?p.y=x.scrollTop-R:p.y=v===Yt.Down?x.scrollTop-k.y:x.scrollTop-S.y,p.y&&x.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,Xh(ry(f,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}pP.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=cY,onActivation:a}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),a==null||a({event:t.nativeEvent}),!0)}return!1}}];function y6(t){return!!(t&&"distance"in t)}function v6(t){return!!(t&&"delay"in t)}class mP{constructor(e,n,r){var a;r===void 0&&(r=GDe(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=Em(o),this.documentListeners=new Ax(this.document),this.listeners=new Ax(r),this.windowListeners=new Ax(Ys(o)),this.initialCoordinates=(a=fO(s))!=null?a:Co,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Ei.Resize,this.handleCancel),this.windowListeners.add(Ei.DragStart,x6),this.windowListeners.add(Ei.VisibilityChange,this.handleCancel),this.windowListeners.add(Ei.ContextMenu,x6),this.documentListeners.add(Ei.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(v6(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(y6(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:a}=this.props;a(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(Ei.Click,qDe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Ei.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:a,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!a)return;const c=(n=fO(e))!=null?n:Co,u=ry(a,c);if(!r&&l){if(y6(l)){if(l.tolerance!=null&&I_(u,l.tolerance))return this.handleCancel();if(I_(u,l.distance))return this.handleStart()}if(v6(l)&&I_(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}e.cancelable&&e.preventDefault(),o(c)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===Yt.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const YDe={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class gP extends mP{constructor(e){const{event:n}=e,r=Em(n.target);super(e,YDe,r)}}gP.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const XDe={move:{name:"mousemove"},end:{name:"mouseup"}};var pO;(function(t){t[t.RightClick=2]="RightClick"})(pO||(pO={}));class JDe extends mP{constructor(e){super(e,XDe,Em(e.event.target))}}JDe.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===pO.RightClick?!1:(r==null||r({event:n}),!0)}}];const $_={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class ZDe extends mP{constructor(e){super(e,$_)}static setup(){return window.addEventListener($_.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener($_.move.name,e)};function e(){}}}ZDe.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:a}=n;return a.length>1?!1:(r==null||r({event:n}),!0)}}];var Ox;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})(Ox||(Ox={}));var mk;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(mk||(mk={}));function QDe(t){let{acceleration:e,activator:n=Ox.Pointer,canScroll:r,draggingRect:a,enabled:s,interval:o=5,order:l=mk.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:h}=t;const p=tIe({delta:f,disabled:!s}),[m,x]=dDe(),v=g.useRef({x:0,y:0}),b=g.useRef({x:0,y:0}),y=g.useMemo(()=>{switch(n){case Ox.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ox.DraggableRect:return a}},[n,a,c]),w=g.useRef(null),j=g.useCallback(()=>{const S=w.current;if(!S)return;const _=v.current.x*b.current.x,C=v.current.y*b.current.y;S.scrollBy(_,C)},[]),k=g.useMemo(()=>l===mk.TreeOrder?[...u].reverse():u,[l,u]);g.useEffect(()=>{if(!s||!u.length||!y){x();return}for(const S of k){if((r==null?void 0:r(S))===!1)continue;const _=u.indexOf(S),C=d[_];if(!C)continue;const{direction:E,speed:P}=BDe(S,C,y,e,h);for(const R of["x","y"])p[R][E[R]]||(P[R]=0,E[R]=0);if(P.x>0||P.y>0){x(),w.current=S,m(j,o),v.current=P,b.current=E;return}}v.current={x:0,y:0},b.current={x:0,y:0},x()},[e,j,r,x,s,o,JSON.stringify(y),JSON.stringify(p),m,u,k,d,JSON.stringify(h)])}const eIe={x:{[ga.Backward]:!1,[ga.Forward]:!1},y:{[ga.Backward]:!1,[ga.Forward]:!1}};function tIe(t){let{delta:e,disabled:n}=t;const r=dO(e);return Iy(a=>{if(n||!r||!a)return eIe;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[ga.Backward]:a.x[ga.Backward]||s.x===-1,[ga.Forward]:a.x[ga.Forward]||s.x===1},y:{[ga.Backward]:a.y[ga.Backward]||s.y===-1,[ga.Forward]:a.y[ga.Forward]||s.y===1}}},[n,e,r])}function nIe(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Iy(a=>{var s;return e==null?null:(s=r??a)!=null?s:null},[r,e])}function rIe(t,e){return g.useMemo(()=>t.reduce((n,r)=>{const{sensor:a}=r,s=a.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var sy;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(sy||(sy={}));var mO;(function(t){t.Optimized="optimized"})(mO||(mO={}));const b6=new Map;function aIe(t,e){let{dragging:n,dependencies:r,config:a}=e;const[s,o]=g.useState(null),{frequency:l,measure:c,strategy:u}=a,d=g.useRef(t),f=v(),h=ny(f),p=g.useCallback(function(b){b===void 0&&(b=[]),!h.current&&o(y=>y===null?b:y.concat(b.filter(w=>!y.includes(w))))},[h]),m=g.useRef(null),x=Iy(b=>{if(f&&!n)return b6;if(!b||b===b6||d.current!==t||s!=null){const y=new Map;for(let w of t){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){y.set(w.id,w.rect.current);continue}const j=w.node.current,k=j?new hP(c(j),j):null;w.rect.current=k,k&&y.set(w.id,k)}return y}return b},[t,s,n,f,c]);return g.useEffect(()=>{d.current=t},[t]),g.useEffect(()=>{f||p()},[n,f]),g.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),g.useEffect(()=>{f||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,f,p,...r]),{droppableRects:x,measureDroppableContainers:p,measuringScheduled:s!=null};function v(){switch(u){case sy.Always:return!1;case sy.BeforeDragging:return n;default:return!n}}}function uY(t,e){return Iy(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function sIe(t,e){return uY(t,e)}function iIe(t){let{callback:e,disabled:n}=t;const r=dP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function l2(t){let{callback:e,disabled:n}=t;const r=dP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function oIe(t){return new hP(Am(t),t)}function w6(t,e,n){e===void 0&&(e=oIe);const[r,a]=g.useState(null);function s(){a(c=>{if(!t)return null;if(t.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=e(t);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=iIe({callback(c){if(t)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(t)){s();break}}}}),l=l2({callback:s});return vl(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function lIe(t){const e=uY(t);return nY(t,e)}const k6=[];function cIe(t){const e=g.useRef(t),n=Iy(r=>t?r&&r!==k6&&t&&e.current&&t.parentNode===e.current.parentNode?r:o2(t):k6,[t]);return g.useEffect(()=>{e.current=t},[t]),n}function uIe(t){const[e,n]=g.useState(null),r=g.useRef(t),a=g.useCallback(s=>{const o=D_(s.target);o&&n(l=>l?(l.set(o,hO(o)),new Map(l)):null)},[]);return g.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(c=>{const u=D_(c);return u?(u.addEventListener("scroll",a,{passive:!0}),[u,hO(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(c=>{const u=D_(c);u==null||u.removeEventListener("scroll",a)})}},[a,t]),g.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>Xh(s,o),Co):lY(t):Co,[t,e])}function j6(t,e){e===void 0&&(e=[]);const n=g.useRef(null);return g.useEffect(()=>{n.current=null},e),g.useEffect(()=>{const r=t!==Co;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?ry(t,n.current):Co}function dIe(t){g.useEffect(()=>{if(!i2)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function fIe(t,e){return g.useMemo(()=>t.reduce((n,r)=>{let{eventName:a,handler:s}=r;return n[a]=o=>{s(o,e)},n},{}),[t,e])}function dY(t){return g.useMemo(()=>t?IDe(t):null,[t])}const S6=[];function hIe(t,e){e===void 0&&(e=Am);const[n]=t,r=dY(n?Ys(n):null),[a,s]=g.useState(S6);function o(){s(()=>t.length?t.map(c=>iY(c)?r:new hP(e(c),c)):S6)}const l=l2({callback:o});return vl(()=>{l==null||l.disconnect(),o(),t.forEach(c=>l==null?void 0:l.observe(c))},[t]),a}function pIe(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Dy(e)?e:t}function mIe(t){let{measure:e}=t;const[n,r]=g.useState(null),a=g.useCallback(u=>{for(const{target:d}of u)if(Dy(d)){r(f=>{const h=e(d);return f?{...f,width:h.width,height:h.height}:h});break}},[e]),s=l2({callback:a}),o=g.useCallback(u=>{const d=pIe(u);s==null||s.disconnect(),d&&(s==null||s.observe(d)),r(d?e(d):null)},[e,s]),[l,c]=hk(o);return g.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const gIe=[{sensor:gP,options:{}},{sensor:pP,options:{}}],xIe={current:{}},l1={draggable:{measure:g6},droppable:{measure:g6,strategy:sy.WhileDragging,frequency:mO.Optimized},dragOverlay:{measure:Am}};class Tx extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const yIe={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Tx,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:pk},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:l1,measureDroppableContainers:pk,windowRect:null,measuringScheduled:!1},vIe={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:pk,draggableNodes:new Map,over:null,measureDroppableContainers:pk},c2=g.createContext(vIe),fY=g.createContext(yIe);function bIe(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Tx}}}function wIe(t,e){switch(e.type){case Zr.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case Zr.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case Zr.DragEnd:case Zr.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Zr.RegisterDroppable:{const{element:n}=e,{id:r}=n,a=new Tx(t.droppable.containers);return a.set(r,n),{...t,droppable:{...t.droppable,containers:a}}}case Zr.SetDroppableDisabled:{const{id:n,key:r,disabled:a}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Tx(t.droppable.containers);return o.set(n,{...s,disabled:a}),{...t,droppable:{...t.droppable,containers:o}}}case Zr.UnregisterDroppable:{const{id:n,key:r}=e,a=t.droppable.containers.get(n);if(!a||r!==a.key)return t;const s=new Tx(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function kIe(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:a}=g.useContext(c2),s=dO(r),o=dO(n==null?void 0:n.id);return g.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!fP(s)||document.activeElement===s.target)return;const l=a.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=pDe(d);if(f){f.focus();break}}})}},[r,e,a,o,s]),null}function jIe(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((a,s)=>s({transform:a,...r}),n):n}function SIe(t){return g.useMemo(()=>({draggable:{...l1.draggable,...t==null?void 0:t.draggable},droppable:{...l1.droppable,...t==null?void 0:t.droppable},dragOverlay:{...l1.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function _Ie(t){let{activeNode:e,measure:n,initialRect:r,config:a=!0}=t;const s=g.useRef(!1),{x:o,y:l}=typeof a=="boolean"?{x:a,y:a}:a;vl(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const u=e==null?void 0:e.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=nY(d,r);if(o||(f.x=0),l||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const h=rY(u);h&&h.scrollBy({top:f.y,left:f.x})}},[e,o,l,r,n])}const hY=g.createContext({...Co,scaleX:1,scaleY:1});var Lc;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Lc||(Lc={}));const NIe=g.memo(function(e){var n,r,a,s;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=gIe,collisionDetection:f=ADe,measuring:h,modifiers:p,...m}=e;const x=g.useReducer(wIe,void 0,bIe),[v,b]=x,[y,w]=bDe(),[j,k]=g.useState(Lc.Uninitialized),S=j===Lc.Initialized,{draggable:{active:_,nodes:C,translate:E},droppable:{containers:P}}=v,R=_!=null?C.get(_):null,A=g.useRef({initial:null,translated:null}),T=g.useMemo(()=>{var mt;return _!=null?{id:_,data:(mt=R==null?void 0:R.data)!=null?mt:xIe,rect:A}:null},[_,R]),D=g.useRef(null),[L,X]=g.useState(null),[J,U]=g.useState(null),Y=ny(m,Object.values(m)),W=$y("DndDescribedBy",o),G=g.useMemo(()=>P.getEnabled(),[P]),I=SIe(h),{droppableRects:q,measureDroppableContainers:M,measuringScheduled:B}=aIe(G,{dragging:S,dependencies:[E.x,E.y],config:I.droppable}),z=nIe(C,_),Z=g.useMemo(()=>J?fO(J):null,[J]),pe=pn(),ae=sIe(z,I.draggable.measure);_Ie({activeNode:_!=null?C.get(_):null,config:pe.layoutShiftCompensation,initialRect:ae,measure:I.draggable.measure});const ue=w6(z,I.draggable.measure,ae),de=w6(z?z.parentElement:null),Q=g.useRef({activatorEvent:null,active:null,activeNode:z,collisionRect:null,collisions:null,droppableRects:q,draggableNodes:C,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),fe=P.getNodeFor((n=Q.current.over)==null?void 0:n.id),ne=mIe({measure:I.dragOverlay.measure}),ce=(r=ne.nodeRef.current)!=null?r:z,he=S?(a=ne.rect)!=null?a:ue:null,be=!!(ne.nodeRef.current&&ne.rect),Pe=lIe(be?null:ue),Ce=dY(ce?Ys(ce):null),Re=cIe(S?fe??z:null),Be=hIe(Re),st=jIe(p,{transform:{x:E.x-Pe.x,y:E.y-Pe.y,scaleX:1,scaleY:1},activatorEvent:J,active:T,activeNodeRect:ue,containerNodeRect:de,draggingNodeRect:he,over:Q.current.over,overlayNodeRect:ne.rect,scrollableAncestors:Re,scrollableAncestorRects:Be,windowRect:Ce}),F=Z?Xh(Z,E):null,se=uIe(Re),ie=j6(se),Se=j6(se,[ue]),te=Xh(st,ie),me=he?PDe(he,st):null,ve=T&&me?f({active:T,collisionRect:me,droppableRects:q,droppableContainers:G,pointerCoordinates:F}):null,Ee=tY(ve,"id"),[Oe,Tt]=g.useState(null),Bt=be?st:Xh(st,Se),Pt=ODe(Bt,(s=Oe==null?void 0:Oe.rect)!=null?s:null,ue),sn=g.useRef(null),It=g.useCallback((mt,Mt)=>{let{sensor:gt,options:Lr}=Mt;if(D.current==null)return;const zn=C.get(D.current);if(!zn)return;const mn=mt.nativeEvent,ge=new gt({active:D.current,activeNode:zn,event:mn,options:Lr,context:Q,onAbort(ft){if(!C.get(ft))return;const{onDragAbort:gn}=Y.current,zt={id:ft};gn==null||gn(zt),y({type:"onDragAbort",event:zt})},onPending(ft,Kt,gn,zt){if(!C.get(ft))return;const{onDragPending:as}=Y.current,xn={id:ft,constraint:Kt,initialCoordinates:gn,offset:zt};as==null||as(xn),y({type:"onDragPending",event:xn})},onStart(ft){const Kt=D.current;if(Kt==null)return;const gn=C.get(Kt);if(!gn)return;const{onDragStart:zt}=Y.current,un={activatorEvent:mn,active:{id:Kt,data:gn.data,rect:A}};gs.unstable_batchedUpdates(()=>{zt==null||zt(un),k(Lc.Initializing),b({type:Zr.DragStart,initialCoordinates:ft,active:Kt}),y({type:"onDragStart",event:un}),X(sn.current),U(mn)})},onMove(ft){b({type:Zr.DragMove,coordinates:ft})},onEnd:ut(Zr.DragEnd),onCancel:ut(Zr.DragCancel)});sn.current=ge;function ut(ft){return async function(){const{active:gn,collisions:zt,over:un,scrollAdjustedTranslate:as}=Q.current;let xn=null;if(gn&&as){const{cancelDrop:ia}=Y.current;xn={activatorEvent:mn,active:gn,collisions:zt,delta:as,over:un},ft===Zr.DragEnd&&typeof ia=="function"&&await Promise.resolve(ia(xn))&&(ft=Zr.DragCancel)}D.current=null,gs.unstable_batchedUpdates(()=>{b({type:ft}),k(Lc.Uninitialized),Tt(null),X(null),U(null),sn.current=null;const ia=ft===Zr.DragEnd?"onDragEnd":"onDragCancel";if(xn){const jr=Y.current[ia];jr==null||jr(xn),y({type:ia,event:xn})}})}}},[C]),xr=g.useCallback((mt,Mt)=>(gt,Lr)=>{const zn=gt.nativeEvent,mn=C.get(Lr);if(D.current!==null||!mn||zn.dndKit||zn.defaultPrevented)return;const ge={active:mn};mt(gt,Mt.options,ge)===!0&&(zn.dndKit={capturedBy:Mt.sensor},D.current=Lr,It(gt,Mt))},[C,It]),er=rIe(d,xr);dIe(d),vl(()=>{ue&&j===Lc.Initializing&&k(Lc.Initialized)},[ue,j]),g.useEffect(()=>{const{onDragMove:mt}=Y.current,{active:Mt,activatorEvent:gt,collisions:Lr,over:zn}=Q.current;if(!Mt||!gt)return;const mn={active:Mt,activatorEvent:gt,collisions:Lr,delta:{x:te.x,y:te.y},over:zn};gs.unstable_batchedUpdates(()=>{mt==null||mt(mn),y({type:"onDragMove",event:mn})})},[te.x,te.y]),g.useEffect(()=>{const{active:mt,activatorEvent:Mt,collisions:gt,droppableContainers:Lr,scrollAdjustedTranslate:zn}=Q.current;if(!mt||D.current==null||!Mt||!zn)return;const{onDragOver:mn}=Y.current,ge=Lr.get(Ee),ut=ge&&ge.rect.current?{id:ge.id,rect:ge.rect.current,data:ge.data,disabled:ge.disabled}:null,ft={active:mt,activatorEvent:Mt,collisions:gt,delta:{x:zn.x,y:zn.y},over:ut};gs.unstable_batchedUpdates(()=>{Tt(ut),mn==null||mn(ft),y({type:"onDragOver",event:ft})})},[Ee]),vl(()=>{Q.current={activatorEvent:J,active:T,activeNode:z,collisionRect:me,collisions:ve,droppableRects:q,draggableNodes:C,draggingNode:ce,draggingNodeRect:he,droppableContainers:P,over:Oe,scrollableAncestors:Re,scrollAdjustedTranslate:te},A.current={initial:he,translated:me}},[T,z,ve,me,C,ce,he,q,P,Oe,Re,te]),QDe({...pe,delta:E,draggingRect:me,pointerCoordinates:F,scrollableAncestors:Re,scrollableAncestorRects:Be});const za=g.useMemo(()=>({active:T,activeNode:z,activeNodeRect:ue,activatorEvent:J,collisions:ve,containerNodeRect:de,dragOverlay:ne,draggableNodes:C,droppableContainers:P,droppableRects:q,over:Oe,measureDroppableContainers:M,scrollableAncestors:Re,scrollableAncestorRects:Be,measuringConfiguration:I,measuringScheduled:B,windowRect:Ce}),[T,z,ue,J,ve,de,ne,C,P,q,Oe,M,Re,Be,I,B,Ce]),Gr=g.useMemo(()=>({activatorEvent:J,activators:er,active:T,activeNodeRect:ue,ariaDescribedById:{draggable:W},dispatch:b,draggableNodes:C,over:Oe,measureDroppableContainers:M}),[J,er,T,ue,b,W,C,Oe,M]);return H.createElement(ZK.Provider,{value:w},H.createElement(c2.Provider,{value:Gr},H.createElement(fY.Provider,{value:za},H.createElement(hY.Provider,{value:Pt},u)),H.createElement(kIe,{disabled:(l==null?void 0:l.restoreFocus)===!1})),H.createElement(jDe,{...l,hiddenTextDescribedById:W}));function pn(){const mt=(L==null?void 0:L.autoScrollEnabled)===!1,Mt=typeof c=="object"?c.enabled===!1:c===!1,gt=S&&!mt&&!Mt;return typeof c=="object"?{...c,enabled:gt}:{enabled:gt}}}),CIe=g.createContext(null),_6="button",EIe="Draggable";function AIe(t){let{id:e,data:n,disabled:r=!1,attributes:a}=t;const s=$y(EIe),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:h}=g.useContext(c2),{role:p=_6,roleDescription:m="draggable",tabIndex:x=0}=a??{},v=(c==null?void 0:c.id)===e,b=g.useContext(v?hY:CIe),[y,w]=hk(),[j,k]=hk(),S=fIe(o,e),_=ny(n);vl(()=>(f.set(e,{id:e,key:s,node:y,activatorNode:j,data:_}),()=>{const E=f.get(e);E&&E.key===s&&f.delete(e)}),[f,e]);const C=g.useMemo(()=>({role:p,tabIndex:x,"aria-disabled":r,"aria-pressed":v&&p===_6?!0:void 0,"aria-roledescription":m,"aria-describedby":d.draggable}),[r,p,x,v,m,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:C,isDragging:v,listeners:r?void 0:S,node:y,over:h,setNodeRef:w,setActivatorNodeRef:k,transform:b}}function OIe(){return g.useContext(fY)}const TIe="Droppable",PIe={timeout:25};function RIe(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:a}=t;const s=$y(TIe),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=g.useContext(c2),d=g.useRef({disabled:n}),f=g.useRef(!1),h=g.useRef(null),p=g.useRef(null),{disabled:m,updateMeasurementsFor:x,timeout:v}={...PIe,...a},b=ny(x??r),y=g.useCallback(()=>{if(!f.current){f.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{u(Array.isArray(b.current)?b.current:[b.current]),p.current=null},v)},[v]),w=l2({callback:y,disabled:m||!o}),j=g.useCallback((C,E)=>{w&&(E&&(w.unobserve(E),f.current=!1),C&&w.observe(C))},[w]),[k,S]=hk(j),_=ny(e);return g.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),g.useEffect(()=>(l({type:Zr.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:h,data:_}}),()=>l({type:Zr.UnregisterDroppable,key:s,id:r})),[r]),g.useEffect(()=>{n!==d.current.disabled&&(l({type:Zr.SetDroppableDisabled,id:r,key:s,disabled:n}),d.current.disabled=n)},[r,s,n,l]),{active:o,rect:h,isOver:(c==null?void 0:c.id)===r,node:k,over:c,setNodeRef:S}}function xP(t,e,n){const r=t.slice();return r.splice(n<0?r.length+n:n,0,r.splice(e,1)[0]),r}function MIe(t,e){return t.reduce((n,r,a)=>{const s=e.get(r);return s&&(n[a]=s),n},Array(t.length))}function Sb(t){return t!==null&&t>=0}function DIe(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n{let{rects:e,activeIndex:n,overIndex:r,index:a}=t;const s=xP(e,r,n),o=e[a],l=s[a];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},_b={scaleX:1,scaleY:1},$Ie=t=>{var e;let{activeIndex:n,activeNodeRect:r,index:a,rects:s,overIndex:o}=t;const l=(e=s[n])!=null?e:r;if(!l)return null;if(a===n){const u=s[o];return u?{x:0,y:nn&&a<=o?{x:0,y:-l.height-c,..._b}:a=o?{x:0,y:l.height+c,..._b}:{x:0,y:0,..._b}};function LIe(t,e,n){const r=t[e],a=t[e-1],s=t[e+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),m=o!=null,x=o?p.indexOf(o.id):-1,v=u?p.indexOf(u.id):-1,b=g.useRef(p),y=!DIe(p,b.current),w=v!==-1&&x===-1||y,j=IIe(s);vl(()=>{y&&m&&d(p)},[y,p,m,d]),g.useEffect(()=>{b.current=p},[p]);const k=g.useMemo(()=>({activeIndex:x,containerId:f,disabled:j,disableTransforms:w,items:p,overIndex:v,useDragOverlay:h,sortedRects:MIe(p,c),strategy:a}),[x,f,j.draggable,j.droppable,w,p,v,c,h,a]);return H.createElement(gY.Provider,{value:k},e)}const BIe=t=>{let{id:e,items:n,activeIndex:r,overIndex:a}=t;return xP(n,r,a).indexOf(e)},zIe=t=>{let{containerId:e,isSorting:n,wasDragging:r,index:a,items:s,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=t;return!u||!r||l!==s&&a===o?!1:n?!0:o!==a&&e===c},UIe={duration:200,easing:"ease"},xY="transform",VIe=ay.Transition.toString({property:xY,duration:0,easing:"linear"}),WIe={roleDescription:"sortable"};function HIe(t){let{disabled:e,index:n,node:r,rect:a}=t;const[s,o]=g.useState(null),l=g.useRef(n);return vl(()=>{if(!e&&n!==l.current&&r.current){const c=a.current;if(c){const u=Am(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[e,n,r,a]),g.useEffect(()=>{s&&o(null)},[s]),s}function GIe(t){let{animateLayoutChanges:e=zIe,attributes:n,disabled:r,data:a,getNewIndex:s=BIe,id:o,strategy:l,resizeObserverConfig:c,transition:u=UIe}=t;const{items:d,containerId:f,activeIndex:h,disabled:p,disableTransforms:m,sortedRects:x,overIndex:v,useDragOverlay:b,strategy:y}=g.useContext(gY),w=qIe(r,p),j=d.indexOf(o),k=g.useMemo(()=>({sortable:{containerId:f,index:j,items:d},...a}),[f,a,j,d]),S=g.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:_,node:C,isOver:E,setNodeRef:P}=RIe({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:R,activatorEvent:A,activeNodeRect:T,attributes:D,setNodeRef:L,listeners:X,isDragging:J,over:U,setActivatorNodeRef:Y,transform:W}=AIe({id:o,data:k,attributes:{...WIe,...n},disabled:w.draggable}),G=uDe(P,L),I=!!R,q=I&&!m&&Sb(h)&&Sb(v),M=!b&&J,B=M&&q?W:null,Z=q?B??(l??y)({rects:x,activeNodeRect:T,activeIndex:h,overIndex:v,index:j}):null,pe=Sb(h)&&Sb(v)?s({id:o,items:d,activeIndex:h,overIndex:v}):j,ae=R==null?void 0:R.id,ue=g.useRef({activeId:ae,items:d,newIndex:pe,containerId:f}),de=d!==ue.current.items,Q=e({active:R,containerId:f,isDragging:J,isSorting:I,id:o,index:j,items:d,newIndex:ue.current.newIndex,previousItems:ue.current.items,previousContainerId:ue.current.containerId,transition:u,wasDragging:ue.current.activeId!=null}),fe=HIe({disabled:!Q,index:j,node:C,rect:_});return g.useEffect(()=>{I&&ue.current.newIndex!==pe&&(ue.current.newIndex=pe),f!==ue.current.containerId&&(ue.current.containerId=f),d!==ue.current.items&&(ue.current.items=d)},[I,pe,f,d]),g.useEffect(()=>{if(ae===ue.current.activeId)return;if(ae&&!ue.current.activeId){ue.current.activeId=ae;return}const ce=setTimeout(()=>{ue.current.activeId=ae},50);return()=>clearTimeout(ce)},[ae]),{active:R,activeIndex:h,attributes:D,data:k,rect:_,index:j,newIndex:pe,items:d,isOver:E,isSorting:I,isDragging:J,listeners:X,node:C,overIndex:v,over:U,setNodeRef:G,setActivatorNodeRef:Y,setDroppableNodeRef:P,setDraggableNodeRef:L,transform:fe??Z,transition:ne()};function ne(){if(fe||de&&ue.current.newIndex===j)return VIe;if(!(M&&!fP(A)||!u)&&(I||Q))return ay.Transition.toString({...u,property:xY})}}function qIe(t,e){var n,r;return typeof t=="boolean"?{draggable:t,droppable:!1}:{draggable:(n=t==null?void 0:t.draggable)!=null?n:e.draggable,droppable:(r=t==null?void 0:t.droppable)!=null?r:e.droppable}}function gk(t){if(!t)return!1;const e=t.data.current;return!!(e&&"sortable"in e&&typeof e.sortable=="object"&&"containerId"in e.sortable&&"items"in e.sortable&&"index"in e.sortable)}const KIe=[Yt.Down,Yt.Right,Yt.Up,Yt.Left],YIe=(t,e)=>{let{context:{active:n,collisionRect:r,droppableRects:a,droppableContainers:s,over:o,scrollableAncestors:l}}=e;if(KIe.includes(t.code)){if(t.preventDefault(),!n||!r)return;const c=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const h=a.get(f.id);if(h)switch(t.code){case Yt.Down:r.toph.top&&c.push(f);break;case Yt.Left:r.left>h.left&&c.push(f);break;case Yt.Right:r.left1&&(d=u[1].id),d!=null){const f=s.get(n.id),h=s.get(d),p=h?a.get(h.id):null,m=h==null?void 0:h.node.current;if(m&&p&&f&&h){const v=o2(m).some((S,_)=>l[_]!==S),b=yY(f,h),y=XIe(f,h),w=v||!b?{x:0,y:0}:{x:y?r.width-p.width:0,y:y?r.height-p.height:0},j={x:p.left,y:p.top};return w.x&&w.y?j:ry(j,w)}}}};function yY(t,e){return!gk(t)||!gk(e)?!1:t.data.current.sortable.containerId===e.data.current.sortable.containerId}function XIe(t,e){return!gk(t)||!gk(e)||!yY(t,e)?!1:t.data.current.sortable.indexw.label.toLowerCase().includes(l.toLowerCase())||w.value.toLowerCase().includes(l.toLowerCase())):n;function x(){var j;const w=(j=f.current)==null?void 0:j.getBoundingClientRect();w&&(d({position:"fixed",top:w.bottom+4,left:w.left,minWidth:w.width,zIndex:9999}),o(!0))}g.useEffect(()=>{var w;s&&((w=p.current)==null||w.focus())},[s]),g.useEffect(()=>{if(!s)return;function w(k){var _,C;const S=k.target;!((_=f.current)!=null&&_.contains(S))&&!((C=h.current)!=null&&C.contains(S))&&v()}function j(k){k.key==="Escape"&&v()}return document.addEventListener("mousedown",w),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",w),document.removeEventListener("keydown",j)}},[s]);function v(){o(!1),c("")}function b(w){e(t.includes(w)?t.filter(j=>j!==w):[...t,w])}function y(w,j){j.stopPropagation(),e(t.filter(k=>k!==w))}return i.jsxs("div",{className:`relative ${a}`,children:[i.jsxs("div",{ref:f,onClick:()=>s?v():x(),className:"flex w-full min-w-0 cursor-pointer flex-wrap items-center gap-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm dark:border-[#222226]",children:[t.length===0&&i.jsx("span",{className:"text-slate-500",children:r}),t.map(w=>{var k;const j=((k=n.find(S=>S.value===w))==null?void 0:k.label)??w;return i.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-brand-100 dark:bg-brand-500/20 border border-brand-200 dark:border-brand-500/40 px-1.5 py-0.5 font-medium text-brand-700 dark:text-brand-300",children:[j,i.jsx("button",{type:"button",onClick:S=>y(w,S),className:"text-brand-600 hover:text-brand-600 dark:hover:text-brand-200",children:i.jsx(Vr,{size:10})})]},w)}),i.jsx(ln,{size:11,className:`ml-auto shrink-0 text-slate-500 transition-transform duration-150 ${s?"rotate-180":""}`})]}),s&&gs.createPortal(i.jsxs("div",{ref:h,style:u,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"border-b border-slate-100 dark:border-[#1c1c24] p-1.5",children:i.jsx("input",{ref:p,type:"text",value:l,onChange:w=>c(w.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"max-h-52 overflow-y-auto py-0.5",children:m.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):m.map(w=>{const j=t.includes(w.value);return i.jsxs("button",{type:"button","data-value":w.value,onClick:()=>b(w.value),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${j?"text-brand-600 dark:text-brand-400":"text-slate-700 dark:text-[#c8d0de]"}`,children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${j?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#3a4258]"}`,children:j&&i.jsx("svg",{viewBox:"0 0 8 8",className:"h-2 w-2 fill-current",children:i.jsx("path",{d:"M1 4l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})})}),w.label]},w.value)})})]}),document.body)]})}const N6=272,C6=160,E6=12;function Ly({value:t,onChange:e,options:n,placeholder:r="Gateway name",className:a="",dataCy:s,onEnter:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(-1),[f,h]=g.useState({}),[p,m]=g.useState(N6),x=g.useRef(null),v=g.useRef(null),b=g.useRef(null),y=t.trim().toLowerCase(),w=y?n.filter(_=>_.name.toLowerCase().includes(y)):n;function j(){var R;const _=(R=v.current)==null?void 0:R.getBoundingClientRect();if(!_)return;const C=window.innerHeight-_.bottom-E6,E=_.top-E6,P=CC;m(Math.min(N6,Math.max(C6,P?E:C))),h({position:"fixed",left:_.left,minWidth:_.width,zIndex:9999,...P?{bottom:window.innerHeight-_.top+4}:{top:_.bottom+4}}),c(!0)}function k(){c(!1),d(-1)}g.useEffect(()=>{if(!l)return;function _(C){var P,R;const E=C.target;!((P=x.current)!=null&&P.contains(E))&&!((R=b.current)!=null&&R.contains(E))&&k()}return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[l]);function S(_){if(_.key==="ArrowDown"){if(_.preventDefault(),!l)return j();d(C=>w.length?(C+1)%w.length:-1)}else if(_.key==="ArrowUp"){if(_.preventDefault(),!l)return j();d(C=>w.length?C<=0?w.length-1:C-1:-1)}else _.key==="Enter"?(_.preventDefault(),l&&u>=0&&w[u]?(e(w[u].name,w[u]),k()):(k(),o==null||o())):_.key==="Escape"&&l&&(_.stopPropagation(),k())}return i.jsxs("div",{ref:x,className:`relative ${a}`,"data-cy":s,children:[i.jsx("input",{ref:v,value:t,onChange:_=>{e(_.target.value),d(-1),l||j()},onFocus:j,onBlur:k,onKeyDown:S,placeholder:r,role:"combobox","aria-expanded":l,"aria-autocomplete":"list",autoComplete:"off",className:"w-full rounded-lg border border-slate-200 bg-transparent py-2 pl-3 pr-8 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",tabIndex:-1,"aria-label":l?"Hide gateway list":"Show gateway list",onMouseDown:_=>{var C;_.preventDefault(),(C=v.current)==null||C.focus(),l?k():j()},className:"absolute inset-y-0 right-0 flex items-center px-2 text-slate-500 hover:text-slate-600 dark:hover:text-slate-200",children:i.jsx(ln,{size:13,className:`transition-transform duration-150 ${l?"rotate-180":""}`})}),l&&gs.createPortal(i.jsx("div",{ref:b,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#222226] dark:bg-[#111118]",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(Math.max(w.length,1)*(w.some(_=>_.gatewayId)?52:32)+8,p)}px`},children:w.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:t.trim()?i.jsxs(i.Fragment,{children:["No connector matches — ",i.jsx("span",{className:"font-mono",children:t.trim()})," is used as typed"]}):"No gateways"}):w.map((_,C)=>i.jsxs("button",{type:"button","data-value":_.name,onMouseDown:E=>E.preventDefault(),onMouseEnter:()=>d(C),onClick:()=>{var E;e(_.name,_),k(),(E=v.current)==null||E.focus()},className:`w-full px-3 py-2.5 text-left font-mono text-sm transition-colors ${C===u?"bg-slate-50 dark:bg-[#1c1c24]":""} ${_.name===t?"bg-brand-50/50 font-medium text-brand-600 dark:bg-brand-900/10 dark:text-brand-400":""}`,children:[_.name,_.gatewayId&&i.jsx("span",{"data-gateway-id":_.gatewayId,className:"mt-0.5 block truncate text-xs font-normal text-slate-500",children:_.gatewayId})]},_.gatewayId||_.name))})}),document.body)]})}function ZIe({id:t,position:e,gatewayName:n,gatewayId:r,options:a,onEdit:s,onRemove:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(n),[f,h]=g.useState(r),{attributes:p,listeners:m,setNodeRef:x,transform:v,transition:b}=GIe({id:t,disabled:l}),y={transform:ay.Transform.toString(v),transition:b};function w(){d(n),h(r),c(!0)}function j(){const S=u.trim();S&&(s({gatewayName:S,gatewayId:f.trim()}),c(!1))}function k(){c(!1)}return l?i.jsxs("div",{ref:x,style:y,className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:S=>{S.key==="Escape"&&(S.preventDefault(),k()),S.key==="Enter"&&(S.preventDefault(),j())},children:[i.jsxs("span",{className:"w-5 shrink-0 text-center text-sm tabular-nums text-slate-500",children:[e,"."]}),i.jsx(Ly,{value:u,onChange:(S,_)=>{d(S),h((_==null?void 0:_.gatewayId)??"")},onEnter:j,options:a,className:"flex-1"}),i.jsx("input",{value:f,onChange:S=>h(S.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:j,disabled:!u.trim(),"aria-label":"Save gateway",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:k,"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{ref:x,style:y,className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsx("span",{...p,...m,className:"cursor-grab text-slate-500",children:i.jsx(WNe,{size:14})}),i.jsxs("button",{type:"button",onClick:w,"aria-label":`Edit ${n}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[e,". ",n,r?` (${r})`:""]}),i.jsx(jl,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:o,"aria-label":`Remove ${n}`,className:"text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]})}function yP({gateways:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),l=SDe(h6(gP),h6(pP,{coordinateGetter:YIe}));function c(f){const{active:h,over:p}=f;if(p&&h.id!==p.id){const m=t.findIndex(v=>v.id===h.id),x=t.findIndex(v=>v.id===p.id);e(xP(t,m,x))}}function u(){r.trim()&&(e([...t,{id:crypto.randomUUID(),gatewayName:r.trim(),gatewayId:s.trim()}]),a(""),o(""))}const d=Kp(n,t.map(f=>f.gatewayName),t.map(f=>f.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[i.jsx(NIe,{sensors:l,collisionDetection:NDe,onDragEnd:c,children:i.jsx(FIe,{items:t.map(f=>f.id),strategy:$Ie,children:t.map((f,h)=>i.jsx(ZIe,{id:f.id,position:h+1,gatewayName:f.gatewayName,gatewayId:f.gatewayId,options:Kp(n,t.filter(p=>p.id!==f.id).map(p=>p.gatewayName),t.filter(p=>p.id!==f.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===f.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==f.id))},f.id))})}),i.jsxs("div",{className:"flex gap-2",onBlur:f=>{f.currentTarget.contains(f.relatedTarget)||u()},children:[i.jsx(Ly,{value:r,onChange:(f,h)=>{a(f),o((h==null?void 0:h.gatewayId)??"")},onEnter:u,options:d,className:"flex-1"}),i.jsx("input",{value:s,onChange:f=>o(f.target.value),onKeyDown:f=>f.key==="Enter"&&(f.preventDefault(),u()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:u,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function QIe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),[l,c]=g.useState(""),u=t.reduce((h,p)=>h+p.split,0);function d(){!s.trim()||!r||(e([...t,{id:crypto.randomUUID(),split:Number(r),gatewayName:s.trim(),gatewayId:l.trim()}]),a(""),o(""),c(""))}const f=Kp(n,t.map(h=>h.gatewayName),t.map(h=>h.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[t.map(h=>i.jsx(e$e,{entry:h,options:Kp(n,t.filter(p=>p.id!==h.id).map(p=>p.gatewayName),t.filter(p=>p.id!==h.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===h.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==h.id))},h.id)),t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${u===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",u,"%",u!==100?" (must equal 100%)":" ✓"]}),i.jsxs("div",{className:"flex gap-2",onBlur:h=>{h.currentTarget.contains(h.relatedTarget)||d()},children:[i.jsx("input",{type:"number",value:r,onChange:h=>a(h.target.value),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-20 focus:outline-none focus:border-brand-500"}),i.jsx(Ly,{value:s,onChange:(h,p)=>{o(h),c((p==null?void 0:p.gatewayId)??"")},onEnter:d,options:f,className:"flex-1"}),i.jsx("input",{value:l,onChange:h=>c(h.target.value),onKeyDown:h=>h.key==="Enter"&&(h.preventDefault(),d()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:d,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function e$e({entry:t,options:e,onEdit:n,onRemove:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(String(t.split)),[c,u]=g.useState(t.gatewayName),[d,f]=g.useState(t.gatewayId);function h(){l(String(t.split)),u(t.gatewayName),f(t.gatewayId),s(!0)}function p(){const m=c.trim();m&&(n({split:Number(o)||0,gatewayName:m,gatewayId:d.trim()}),s(!1))}return a?i.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:m=>{m.key==="Escape"&&(m.preventDefault(),s(!1)),m.key==="Enter"&&(m.preventDefault(),p())},children:[i.jsx("input",{type:"number",value:o,onChange:m=>l(m.target.value),"aria-label":"Split percentage",className:"w-20 rounded-lg border border-slate-200 bg-transparent px-2 py-1 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(Ly,{value:c,onChange:(m,x)=>{u(m),f((x==null?void 0:x.gatewayId)??"")},onEnter:p,options:e,className:"flex-1"}),i.jsx("input",{value:d,onChange:m=>f(m.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:p,disabled:!c.trim(),"aria-label":"Save split",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:()=>s(!1),"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsxs("span",{className:"text-xs font-bold text-brand-600 w-10 shrink-0 tabular-nums",children:[t.split,"%"]}),i.jsxs("button",{type:"button",onClick:h,"aria-label":`Edit ${t.gatewayName}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[t.gatewayName,t.gatewayId?` (${t.gatewayId})`:""]}),i.jsx(jl,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:r,"aria-label":`Remove ${t.gatewayName}`,className:"text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]})}function t$e({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),s=t.reduce((c,u)=>c+u.split,0);function o(){r&&(e([...t,{id:crypto.randomUUID(),split:Number(r),gateways:[]}]),a(""))}function l(c,u){e(t.map(d=>d.id===c?{...d,...u}:d))}return i.jsxs("div",{className:"space-y-3",children:[t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${s===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",s,"%",s!==100?" (must equal 100%)":" ✓"]}),t.map((c,u)=>i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-slate-50 dark:bg-[#111118] border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsxs("span",{className:"text-xs text-slate-500 font-medium shrink-0",children:["Split ",u+1,":"]}),i.jsx("input",{type:"number",value:c.split,onChange:d=>l(c.id,{split:Number(d.target.value)}),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded px-2 py-0.5 text-xs w-16 focus:outline-none"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),i.jsx("button",{type:"button",onClick:()=>e(t.filter(d=>d.id!==c.id)),className:"ml-auto text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]}),i.jsxs("div",{className:"p-3",children:[i.jsx("p",{className:"mb-2 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:"Priority list for this split"}),i.jsx(yP,{gateways:c.gateways,suggestions:n,onChange:d=>l(c.id,{gateways:d})})]})]},c.id)),i.jsxs("div",{className:"flex gap-2 items-center",onBlur:c=>{c.currentTarget.contains(c.relatedTarget)||o()},children:[i.jsx("input",{type:"number",value:r,onChange:c=>a(c.target.value),onKeyDown:c=>c.key==="Enter"&&(c.preventDefault(),o()),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-24 focus:outline-none focus:border-brand-500"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:o,children:[i.jsx(Qn,{size:13})," Add split"]})]})]})}function n$e({row:t,onChange:e,onRemove:n,routingKeys:r}){const a=r[t.lhs],s=(a==null?void 0:a.type)==="enum",o=(a==null?void 0:a.type)==="integer",l=(a==null?void 0:a.type)==="udf"||(a==null?void 0:a.type)==="global_ref",c=t.operator==="in"||t.operator==="not_in",u=o?[">","<",">=","<=","==","!="]:s?["==","!=","in","not_in"]:["==","!="],d=Array.isArray(t.value)?t.value:[];function f(h){const p=h==="in"||h==="not_in",m=t.operator==="in"||t.operator==="not_in";let x=t.value;p&&!Array.isArray(t.value)?x=t.value?[t.value]:[]:!p&&m&&(x=Array.isArray(t.value)?t.value[0]??"":""),e({...t,operator:h,value:x})}return i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Go,{className:"w-[13.5rem] shrink-0",dataCy:"cond-lhs",value:t.lhs,onChange:h=>{var x;const p=r[h],m=(p==null?void 0:p.type)==="enum"?((x=p.values)==null?void 0:x[0])??"":"";e({...t,lhs:h,value:m,operator:"=="})},options:Object.keys(r).map(h=>({value:h,label:tc(h)}))}),i.jsx("select",{value:t.operator,onChange:h=>f(h.target.value),"aria-label":"Condition operator",className:"cond-select w-[10.5rem] shrink-0",children:u.map(h=>i.jsx("option",{value:h,children:LH[h]||h},h))}),i.jsx("div",{className:"flex items-center gap-2",children:s&&c?i.jsx("div",{"data-cy":"cond-val",className:"w-[14rem]",children:i.jsx(JIe,{values:d,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:tc(h)})),placeholder:"Select values…"})}):s?i.jsx(Go,{className:"w-[12rem]",dataCy:"cond-val",value:t.value,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:tc(h)}))}):o?i.jsx("input",{type:"number",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-32"}):l?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"text",value:t.metadataKey||"",onChange:h=>e({...t,metadataKey:h.target.value}),placeholder:"key",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-40"}),i.jsx("span",{className:"shrink-0 text-sm text-slate-500 dark:text-slate-400 select-none",children:"="}),i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-44"})]}):i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-52"})}),i.jsx("button",{type:"button",onClick:n,"aria-label":"Remove condition",className:"shrink-0 text-red-600 transition-colors hover:text-red-600",children:i.jsx(wn,{size:15})})]})}function vY({group:t,onChange:e,onRemove:n,canRemove:r,routingKeys:a,depth:s=0}){function o(){e({...t,conditions:[...t.conditions,FH(a)]})}function l(){e({...t,nested:[...t.nested,xT(a)]})}return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222733] bg-white dark:bg-[#0f141d]",children:[i.jsxs("div",{className:"space-y-0 divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[t.conditions.map((c,u)=>i.jsxs("div",{"data-testid":"condition-row",className:"flex items-center gap-3 px-4 py-3",children:[t.conditions.length>1&&i.jsx("span",{className:"w-10 shrink-0 text-[11px] font-bold uppercase tracking-widest text-sky-700 select-none leading-4",children:u===0?"IF":"AND"}),i.jsx(n$e,{row:c,routingKeys:a,onChange:d=>e({...t,conditions:t.conditions.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,conditions:t.conditions.length>1?t.conditions.filter(d=>d.id!==c.id):t.conditions})})]},c.id)),i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add condition"]}),s>0&&r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(wn,{size:13})," Remove group"]})]})]}),s===0&&t.nested.length>0&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] px-3 pt-3 pb-2 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:[i.jsx(C$,{size:11}),"Then match any of (nested OR)"]}),t.nested.map((c,u)=>i.jsxs("div",{className:"pl-3 border-l-2 border-sky-200 dark:border-sky-800",children:[u>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx(vY,{group:c,routingKeys:a,canRemove:!0,depth:1,onChange:d=>e({...t,nested:t.nested.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,nested:t.nested.filter(d=>d.id!==c.id)})})]},c.id))]}),s===0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-4 border-t border-slate-100 px-4 py-2.5 dark:border-[#1c1c24]",children:[s===0&&i.jsxs("button",{type:"button",onClick:l,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(C$,{size:13})," Add nested branch"]}),r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(wn,{size:13})," Remove group"]})]})]})}const A6={priority:"Priority",volume_split:"Volume Split"};function r$e({block:t,index:e,onChange:n,onRemove:r,routingKeys:a,gatewaySuggestions:s=[],error:o}){const[l,c]=g.useState(!1);g.useEffect(()=>{o&&c(!1)},[o]);function u(){n({...t,statements:[...t.statements,xT(a)]})}return i.jsxs("div",{className:`overflow-hidden rounded-xl border ${o?"border-red-300 dark:border-red-500/50":"border-slate-200 dark:border-[#1c1c24]"}`,children:[i.jsxs("div",{onClick:()=>c(!l),className:"flex cursor-pointer items-center justify-between gap-3 border-b border-slate-200 bg-slate-50 px-5 py-3 dark:border-[#1c1c24] dark:bg-[#111118]",children:[i.jsxs("div",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[i.jsx("input",{value:t.name,onChange:d=>n({...t,name:d.target.value}),onClick:d=>d.stopPropagation(),placeholder:"Rule name",className:"input-bare min-w-0 max-w-[16rem] flex-1 cursor-text text-[15px] font-semibold text-slate-800 focus:outline-none dark:text-slate-100 leading-[22px]"}),i.jsx("span",{className:"shrink-0 truncate text-xs text-slate-500 dark:text-[#78849a]",children:e===0?"(Highest priority matching check)":e!==void 0?`(Checked if rule ${e} does not match)`:""})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),r()},"aria-label":"Delete rule",className:"text-red-600 transition-colors hover:text-red-600",children:i.jsx(wn,{size:15})}),i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),c(!l)},"aria-label":l?"Expand rule":"Collapse rule",className:"text-slate-500 transition-colors hover:text-slate-600",children:l?i.jsx(ln,{size:15}):i.jsx(hs,{size:15})})]})]}),!l&&i.jsxs("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[i.jsxs("div",{className:"space-y-2.5 px-5 py-5",children:[i.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"If"}),t.statements.map((d,f)=>i.jsxs("div",{className:"space-y-2",children:[f>0&&i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"}),i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-sky-700 px-1 leading-4",children:"or"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"})]}),i.jsx(vY,{group:d,routingKeys:a,canRemove:t.statements.length>1,onChange:h=>n({...t,statements:t.statements.map(p=>p.id===d.id?h:p)}),onRemove:()=>n({...t,statements:t.statements.filter(h=>h.id!==d.id)})})]},d.id)),i.jsxs("button",{type:"button",onClick:u,className:"mt-1 flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add OR group"]})]}),i.jsxs("div",{"data-cy":"then-section",className:"px-5 py-5",children:[i.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[i.jsx("p",{className:"shrink-0 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Then route"}),i.jsx("div",{className:"flex overflow-hidden rounded-lg border border-slate-200 text-xs dark:border-[#222226]",children:Object.keys(A6).map(d=>i.jsx("button",{type:"button",onClick:()=>n({...t,outputType:d}),className:`px-2.5 py-1 transition-colors ${t.outputType===d?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:A6[d]},d))})]}),t.outputType==="priority"&&i.jsx(yP,{gateways:t.priorityGateways,suggestions:s,onChange:d=>n({...t,priorityGateways:d})}),t.outputType==="volume_split"&&i.jsx(QIe,{entries:t.volumeSplitEntries,suggestions:s,onChange:d=>n({...t,volumeSplitEntries:d})}),t.outputType==="volume_split_priority"&&i.jsx(t$e,{entries:t.volumeSplitPriorityEntries,suggestions:s,onChange:d=>n({...t,volumeSplitPriorityEntries:d})}),i.jsx(Ww,{message:o})]})]})]})}function O6(t,e,n,r){return JSON.stringify([t.trim(),e,n,r])}function T6(){const t=Ao(),e=Hr(),{id:n}=Tz(),[r]=vc(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=$r(),{routingKeysConfig:l,isLoading:c,error:u}=iT(),d=l,f=Object.keys(d).length>0,h=!c&&(!f||!!u),[p,m]=g.useState(""),[x,v]=g.useState(""),[b,y]=g.useState([]),[w,j]=g.useState({priorityGateways:[]}),[k,S]=g.useState("visual"),[_,C]=g.useState(""),[E,P]=g.useState(null),[R,A]=g.useState(!1),[T,D]=g.useState(null),[L,X]=g.useState(null),[J,U]=g.useState({}),Y=g.useRef(null),{data:W,mutate:G}=ct(o?`/routing/list/${o}`:null,()=>Fe(`/routing/list/${o}`)),{data:I}=ct(o?`/routing/list/active/${o}`:null,()=>Fe(`/routing/list/active/${o}`)),q=n||a,M=q?(W||[]).find(Ce=>Ce.id===q):void 0,B=s&&(I||[]).some(Ce=>Ce.id===n),z=s&&!I,Z=g.useRef(null),pe=g.useRef(null);g.useEffect(()=>{if(!M||Z.current===M.id)return;Z.current=M.id;const{ruleBlocks:Ce,defaultOutput:Re}=qAe(M);m(s?M.name:`copy-of-${M.name}`),v(M.description&&M.description!=="N/A"?M.description:""),y(Ce),j(Re),S("visual"),pe.current=O6(s?M.name:`copy-of-${M.name}`,M.description&&M.description!=="N/A"?M.description:"",Ce,Re)},[M,s]);const ae=pe.current!==null&&pe.current!==O6(p,x,b,w),ue=M&&p.trim()===M.name?`copy-of-${M.name}`:p.trim(),de=Array.from(new Set([...b.flatMap(Ce=>[...Ce.priorityGateways.map(Re=>Re.gatewayName),...Ce.volumeSplitEntries.map(Re=>Re.gatewayName),...Ce.volumeSplitPriorityEntries.flatMap(Re=>Re.gateways.map(Be=>Be.gatewayName))]),...w.priorityGateways.map(Ce=>Ce.gatewayName)].filter(Boolean))),Q=HAe(b,w,d);function fe(){m(""),v(""),y([]),j({priorityGateways:[]}),S("visual"),C(""),P(null),D(null),X(null),U({})}async function ne(Ce){var st;if(Ce.preventDefault(),!o){D("Set a Merchant ID first.");return}if(h){D("Routing key config is unavailable. Ensure backend /config/routing-keys is reachable and valid.");return}const Re=p.trim()?null:"Rule name is required.",Be={};if(b.forEach(F=>{(F.outputType==="priority"&&F.priorityGateways.length===0||F.outputType==="volume_split"&&F.volumeSplitEntries.length===0||F.outputType==="volume_split_priority"&&F.volumeSplitPriorityEntries.length===0)&&(Be[F.id]="Add at least one destination gateway to route to.")}),X(Re),U(Be),Re||Object.keys(Be).length||E){D(E&&!Re&&!Object.keys(Be).length?"Fix the syntax error in the code editor before saving.":"Fix the highlighted fields before saving."),Re&&((st=Y.current)==null||st.focus());return}A(!0),D(null);try{const F={type:"advanced",data:Q};s&&!B?await Fe("/routing/update",{created_by:o,routing_algorithm_id:n,name:p.trim(),description:x,algorithm:F}):await Fe("/routing/create",{name:B?ue:p.trim(),description:x,created_by:o,algorithm_for:(M==null?void 0:M.algorithm_for)??"payment",algorithm:F}),await G(),e("/routing/rules")}catch(F){D(String(F))}finally{A(!1)}}function ce(){y(Ce=>[...Ce,{id:crypto.randomUUID(),name:`Rule ${Ce.length+1}`,statements:[xT(d)],outputType:"priority",priorityGateways:[],volumeSplitEntries:[],volumeSplitPriorityEntries:[]}])}function he(){b.length>0?C(Y4e(b)):_.trim()||C(KK),P(null),S("code")}function be(){S("visual")}function Pe(Ce){if(C(Ce),!Ce.trim()){P(null),y([]);return}const Re=eDe(Ce);Re.error?(P(Re.error),y([])):Re.rules!==null&&(P(null),y(Re.rules))}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/rules"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Mj,{size:16})," Rule-Based Routing"]}),i.jsx(Ba,{title:s?"Edit Payment Rule":"Create Payment Rule",description:"Create precise cascading routing paths for card transactions using conditional flags.",className:"truncate"})]}),i.jsxs("div",{className:"flex shrink-0 rounded-lg border border-slate-200 text-xs dark:border-[#222226] overflow-hidden",children:[i.jsx("button",{type:"button",onClick:be,className:`px-3 py-1.5 transition-colors ${k==="visual"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Visual Builder"}),i.jsx("button",{type:"button",onClick:he,className:`px-3 py-1.5 transition-colors ${k==="code"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Code"})]})]}),s&&!M&&W&&i.jsx(vt,{error:"That rule no longer exists for this merchant."}),B&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:ue||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:ne,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"rule-name",ref:Y,value:p,onChange:Ce=>{m(Ce.target.value),L&&X(null)},placeholder:"my-rule","aria-invalid":!!L,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${UH(!!L)}`}),i.jsx(Ww,{message:L})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"rule-description",value:x,onChange:Ce=>v(Ce.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Configured Rules"}),c&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),h&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Builder is disabled until this is fixed."}),k==="visual"?i.jsxs(i.Fragment,{children:[b.map((Ce,Re)=>i.jsx(r$e,{block:Ce,index:Re,routingKeys:d,gatewaySuggestions:de,error:J[Ce.id],onChange:Be=>{y(st=>st.map(F=>F.id===Ce.id?Be:F)),J[Ce.id]&&U(({[Ce.id]:st,...F})=>F)},onRemove:()=>{y(Be=>Be.filter(st=>st.id!==Ce.id)),U(({[Ce.id]:Be,...st})=>st)}},Ce.id)),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",onClick:ce,disabled:h,children:[i.jsx(Qn,{size:14})," Add Rule"]})]}):i.jsx(cDe,{value:_,onChange:Pe,parseError:E,routingKeys:d,gatewaySuggestions:de})]}),i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-300 px-4 py-4 dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-200 leading-[22px]",children:"Default Fallback Gateway"}),i.jsxs("p",{className:"mb-4 mt-1 text-[13px] text-slate-500 dark:text-[#8d96a8] leading-[18px]",children:["This gateway handles any transactions that do not match the custom rules configured above. Per-request overrides are possible via ",i.jsx("code",{className:"font-mono",children:"fallback_output"}),"."]}),i.jsx(yP,{gateways:w.priorityGateways,suggestions:de,onChange:Ce=>j({...w,priorityGateways:Ce})})]})]})}),i.jsx(vt,{error:T}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(we,{type:"submit",disabled:R||h||!t||z||B&&!ae,title:B&&!ae?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:R?"Saving...":B?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(we,{type:"button",variant:"secondary",size:"sm",onClick:fe,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/rules"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx(a$e,{ruleName:p,ruleBlocks:b,algorithmData:Q})]})]})}function a$e({ruleName:t,ruleBlocks:e,algorithmData:n}){const r={id:"preview",name:t,description:"",created_by:"",algorithm:{type:"advanced",data:n}};return i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(He,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:t.trim()||"Untitled rule"})]}),e.length===0?i.jsx("p",{className:"text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96a8]",children:"No conditions yet — every payment will take the default fallback."}):i.jsx(bT,{algo:r})]})})})})}function bY(t){return{type:"volume_split",data:t.map(e=>({split:e.split,output:{gateway_name:e.gatewayName.trim(),gateway_id:e.gatewayId.trim()||null}}))}}function s$e(t,e){var n;return{name:t.ruleName.trim(),description:((n=t.description)==null?void 0:n.trim())??"",created_by:e,algorithm_for:"payment",metadata:{},algorithm:bY(t.gateways)}}function i$e(t){return t.map((e,n)=>{var r,a,s;return{id:`${((r=e.output)==null?void 0:r.gateway_name)||"gateway"}-${n}`,gatewayName:((a=e.output)==null?void 0:a.gateway_name)||"",gatewayId:((s=e.output)==null?void 0:s.gateway_id)||"",split:e.split}})}function u2(t){const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="volume_split")return null;const n=e.data||[];return{id:t.id,name:t.name,description:t.description,createdAt:t.created_at,gateways:i$e(n)}}var rn;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function n(a){throw new Error}t.assertNever=n,t.arrayToEnum=a=>{const s={};for(const o of a)s[o]=o;return s},t.getValidEnumValues=a=>{const s=t.objectKeys(a).filter(l=>typeof a[a[l]]!="number"),o={};for(const l of s)o[l]=a[l];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(s){return a[s]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&s.push(o);return s},t.find=(a,s)=>{for(const o of a)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function r(a,s=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(rn||(rn={}));var P6;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(P6||(P6={}));const it=rn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Fc=t=>{switch(typeof t){case"undefined":return it.undefined;case"string":return it.string;case"number":return Number.isNaN(t)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(t)?it.array:t===null?it.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?it.promise:typeof Map<"u"&&t instanceof Map?it.map:typeof Set<"u"&&t instanceof Set?it.set:typeof Date<"u"&&t instanceof Date?it.date:it.object;default:return it.unknown}},Ie=rn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class gc extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},a=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;cn.message){const n={},r=[];for(const a of this.issues)if(a.path.length>0){const s=a.path[0];n[s]=n[s]||[],n[s].push(e(a))}else r.push(e(a));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}gc.create=t=>new gc(t);const gO=(t,e)=>{let n;switch(t.code){case Ie.invalid_type:t.received===it.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,rn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${rn.joinValues(t.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${rn.joinValues(t.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${rn.joinValues(t.options)}, received '${t.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:rn.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Ie.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Ie.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=e.defaultError,rn.assertNever(t)}return{message:n}};let o$e=gO;function l$e(){return o$e}const c$e=t=>{const{data:e,path:n,errorMaps:r,issueData:a}=t,s=[...n,...a.path||[]],o={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:e,defaultError:l}).message;return{...a,path:s,message:l}};function Xe(t,e){const n=l$e(),r=c$e({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===gO?void 0:gO].filter(a=>!!a)});t.common.issues.push(r)}class xi{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const a of n){if(a.status==="aborted")return Nt;a.status==="dirty"&&e.dirty(),r.push(a.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const a of n){const s=await a.key,o=await a.value;r.push({key:s,value:o})}return xi.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const a of n){const{key:s,value:o}=a;if(s.status==="aborted"||o.status==="aborted")return Nt;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(r[s.value]=o.value)}return{status:e.value,value:r}}}const Nt=Object.freeze({status:"aborted"}),ex=t=>({status:"dirty",value:t}),qi=t=>({status:"valid",value:t}),R6=t=>t.status==="aborted",M6=t=>t.status==="dirty",Yp=t=>t.status==="valid",xk=t=>typeof Promise<"u"&&t instanceof Promise;var lt;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(lt||(lt={}));class Ru{constructor(e,n,r,a){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const D6=(t,e)=>{if(Yp(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new gc(t.common.issues);return this._error=n,this._error}}};function $t(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:a}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,l)=>{const{message:c}=t;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:a}}class nn{get description(){return this._def.description}_getType(e){return Fc(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:Fc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new xi,ctx:{common:e.parent.common,data:e.data,parsedType:Fc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(xk(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)},a=this._parseSync({data:e,path:r.path,parent:r});return D6(r,a)}"~validate"(e){var r,a;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return Yp(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(a=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>Yp(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)},a=this._parse({data:e,path:r.path,parent:r}),s=await(xk(a)?a:Promise.resolve(a));return D6(r,s)}refine(e,n){const r=a=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(a):n;return this._refinement((a,s)=>{const o=e(a),l=()=>s.addIssue({code:Ie.custom,...r(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(e,n){return this._refinement((r,a)=>e(r)?!0:(a.addIssue(typeof n=="function"?n(r,a):n),!1))}_refinement(e){return new hf({schema:this,typeName:Et.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return yu.create(this,this._def)}nullable(){return Zp.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gl.create(this)}promise(){return wk.create(this,this._def)}or(e){return vk.create([this,e],this._def)}and(e){return bk.create(this,e,this._def)}transform(e){return new hf({...$t(this._def),schema:this,typeName:Et.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new yO({...$t(this._def),innerType:this,defaultValue:n,typeName:Et.ZodDefault})}brand(){return new P$e({typeName:Et.ZodBranded,type:this,...$t(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new vO({...$t(this._def),innerType:this,catchValue:n,typeName:Et.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return vP.create(this,e)}readonly(){return bO.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const u$e=/^c[^\s-]{8,}$/i,d$e=/^[0-9a-z]+$/,f$e=/^[0-9A-HJKMNP-TV-Z]{26}$/i,h$e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,p$e=/^[a-z0-9_-]{21}$/i,m$e=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,g$e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,x$e=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,y$e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let L_;const v$e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,b$e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,w$e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,k$e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j$e=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,S$e=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wY="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",_$e=new RegExp(`^${wY}$`);function kY(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function N$e(t){return new RegExp(`^${kY(t)}$`)}function C$e(t){let e=`${wY}T${kY(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function E$e(t,e){return!!((e==="v4"||!e)&&v$e.test(t)||(e==="v6"||!e)&&w$e.test(t))}function A$e(t,e){if(!m$e.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(r));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function O$e(t,e){return!!((e==="v4"||!e)&&b$e.test(t)||(e==="v6"||!e)&&k$e.test(t))}class Yl extends nn{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==it.string){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.string,received:s.parsedType}),Nt}const r=new xi;let a;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(a=this._getOrReturnCtx(e,a),Xe(a,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const o=e.data.length>s.value,l=e.data.lengthe.test(a),{validation:n,code:Ie.invalid_string,...lt.errToObj(r)})}_addCheck(e){return new Yl({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...lt.errToObj(e)})}url(e){return this._addCheck({kind:"url",...lt.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...lt.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...lt.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...lt.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...lt.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...lt.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...lt.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...lt.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...lt.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...lt.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...lt.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...lt.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...lt.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...lt.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...lt.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...lt.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...lt.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...lt.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...lt.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...lt.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...lt.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...lt.errToObj(n)})}nonempty(e){return this.min(1,lt.errToObj(e))}trim(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Yl({checks:[],typeName:Et.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...$t(t)});function T$e(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,a=n>r?n:r,s=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return s%o/10**a}class uf extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==it.number){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.number,received:s.parsedType}),Nt}let r;const a=new xi;for(const s of this._def.checks)s.kind==="int"?rn.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?T$e(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_finite,message:s.message}),a.dirty()):rn.assertNever(s);return{status:a.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,lt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,lt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,lt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,lt.toString(n))}setLimit(e,n,r,a){return new uf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:lt.toString(a)}]})}_addCheck(e){return new uf({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:lt.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:lt.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:lt.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&rn.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew uf({checks:[],typeName:Et.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...$t(t)});class df extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==it.bigint)return this._getInvalidInput(e);let r;const a=new xi;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):rn.assertNever(s);return{status:a.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return Xe(n,{code:Ie.invalid_type,expected:it.bigint,received:n.parsedType}),Nt}gte(e,n){return this.setLimit("min",e,!0,lt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,lt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,lt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,lt.toString(n))}setLimit(e,n,r,a){return new df({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:lt.toString(a)}]})}_addCheck(e){return new df({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:lt.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew df({checks:[],typeName:Et.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...$t(t)});class yk extends nn{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==it.boolean){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.boolean,received:r.parsedType}),Nt}return qi(e.data)}}yk.create=t=>new yk({typeName:Et.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...$t(t)});class Xp extends nn{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==it.date){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.date,received:s.parsedType}),Nt}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_date}),Nt}const r=new xi;let a;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(a=this._getOrReturnCtx(e,a),Xe(a,{code:Ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):rn.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Xp({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:lt.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:lt.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Xp({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:Et.ZodDate,...$t(t)});class I6 extends nn{_parse(e){if(this._getType(e)!==it.symbol){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.symbol,received:r.parsedType}),Nt}return qi(e.data)}}I6.create=t=>new I6({typeName:Et.ZodSymbol,...$t(t)});class $6 extends nn{_parse(e){if(this._getType(e)!==it.undefined){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.undefined,received:r.parsedType}),Nt}return qi(e.data)}}$6.create=t=>new $6({typeName:Et.ZodUndefined,...$t(t)});class L6 extends nn{_parse(e){if(this._getType(e)!==it.null){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.null,received:r.parsedType}),Nt}return qi(e.data)}}L6.create=t=>new L6({typeName:Et.ZodNull,...$t(t)});class F6 extends nn{constructor(){super(...arguments),this._any=!0}_parse(e){return qi(e.data)}}F6.create=t=>new F6({typeName:Et.ZodAny,...$t(t)});class B6 extends nn{constructor(){super(...arguments),this._unknown=!0}_parse(e){return qi(e.data)}}B6.create=t=>new B6({typeName:Et.ZodUnknown,...$t(t)});class Mu extends nn{_parse(e){const n=this._getOrReturnCtx(e);return Xe(n,{code:Ie.invalid_type,expected:it.never,received:n.parsedType}),Nt}}Mu.create=t=>new Mu({typeName:Et.ZodNever,...$t(t)});class z6 extends nn{_parse(e){if(this._getType(e)!==it.undefined){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.void,received:r.parsedType}),Nt}return qi(e.data)}}z6.create=t=>new z6({typeName:Et.ZodVoid,...$t(t)});class gl extends nn{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),a=this._def;if(n.parsedType!==it.array)return Xe(n,{code:Ie.invalid_type,expected:it.array,received:n.parsedType}),Nt;if(a.exactLength!==null){const o=n.data.length>a.exactLength.value,l=n.data.lengtha.maxLength.value&&(Xe(n,{code:Ie.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>a.type._parseAsync(new Ru(n,o,n.path,l)))).then(o=>xi.mergeArray(r,o));const s=[...n.data].map((o,l)=>a.type._parseSync(new Ru(n,o,n.path,l)));return xi.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new gl({...this._def,minLength:{value:e,message:lt.toString(n)}})}max(e,n){return new gl({...this._def,maxLength:{value:e,message:lt.toString(n)}})}length(e,n){return new gl({...this._def,exactLength:{value:e,message:lt.toString(n)}})}nonempty(e){return this.min(1,e)}}gl.create=(t,e)=>new gl({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Et.ZodArray,...$t(e)});function rh(t){if(t instanceof zr){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=yu.create(rh(r))}return new zr({...t._def,shape:()=>e})}else return t instanceof gl?new gl({...t._def,type:rh(t.element)}):t instanceof yu?yu.create(rh(t.unwrap())):t instanceof Zp?Zp.create(rh(t.unwrap())):t instanceof ff?ff.create(t.items.map(e=>rh(e))):t}class zr extends nn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=rn.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==it.object){const u=this._getOrReturnCtx(e);return Xe(u,{code:Ie.invalid_type,expected:it.object,received:u.parsedType}),Nt}const{status:r,ctx:a}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof Mu&&this._def.unknownKeys==="strip"))for(const u in a.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=s[u],f=a.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Ru(a,f,a.path,u)),alwaysSet:u in a.data})}if(this._def.catchall instanceof Mu){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:a.data[d]}});else if(u==="strict")l.length>0&&(Xe(a,{code:Ie.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const f=a.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Ru(a,f,a.path,d)),alwaysSet:d in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const f=await d.key,h=await d.value;u.push({key:f,value:h,alwaysSet:d.alwaysSet})}return u}).then(u=>xi.mergeObjectSync(r,u)):xi.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return lt.errToObj,new zr({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,o;const a=((o=(s=this._def).errorMap)==null?void 0:o.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new zr({...this._def,unknownKeys:"strip"})}passthrough(){return new zr({...this._def,unknownKeys:"passthrough"})}extend(e){return new zr({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new zr({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Et.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new zr({...this._def,catchall:e})}pick(e){const n={};for(const r of rn.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new zr({...this._def,shape:()=>n})}omit(e){const n={};for(const r of rn.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new zr({...this._def,shape:()=>n})}deepPartial(){return rh(this)}partial(e){const n={};for(const r of rn.objectKeys(this.shape)){const a=this.shape[r];e&&!e[r]?n[r]=a:n[r]=a.optional()}return new zr({...this._def,shape:()=>n})}required(e){const n={};for(const r of rn.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof yu;)s=s._def.innerType;n[r]=s}return new zr({...this._def,shape:()=>n})}keyof(){return jY(rn.objectKeys(this.shape))}}zr.create=(t,e)=>new zr({shape:()=>t,unknownKeys:"strip",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});zr.strictCreate=(t,e)=>new zr({shape:()=>t,unknownKeys:"strict",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});zr.lazycreate=(t,e)=>new zr({shape:t,unknownKeys:"strip",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});class vk extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function a(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=s.map(l=>new gc(l.ctx.common.issues));return Xe(n,{code:Ie.invalid_union,unionErrors:o}),Nt}if(n.common.async)return Promise.all(r.map(async s=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(a);{let s;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!s&&(s={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const l=o.map(c=>new gc(c));return Xe(n,{code:Ie.invalid_union,unionErrors:l}),Nt}}get options(){return this._def.options}}vk.create=(t,e)=>new vk({options:t,typeName:Et.ZodUnion,...$t(e)});function xO(t,e){const n=Fc(t),r=Fc(e);if(t===e)return{valid:!0,data:t};if(n===it.object&&r===it.object){const a=rn.objectKeys(e),s=rn.objectKeys(t).filter(l=>a.indexOf(l)!==-1),o={...t,...e};for(const l of s){const c=xO(t[l],e[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===it.array&&r===it.array){if(t.length!==e.length)return{valid:!1};const a=[];for(let s=0;s{if(R6(s)||R6(o))return Nt;const l=xO(s.value,o.value);return l.valid?((M6(s)||M6(o))&&n.dirty(),{status:n.value,value:l.data}):(Xe(r,{code:Ie.invalid_intersection_types}),Nt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>a(s,o)):a(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}bk.create=(t,e,n)=>new bk({left:t,right:e,typeName:Et.ZodIntersection,...$t(n)});class ff extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.array)return Xe(r,{code:Ie.invalid_type,expected:it.array,received:r.parsedType}),Nt;if(r.data.lengththis._def.items.length&&(Xe(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Ru(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>xi.mergeArray(n,o)):xi.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new ff({...this._def,rest:e})}}ff.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ff({items:t,typeName:Et.ZodTuple,rest:null,...$t(e)})};class U6 extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.map)return Xe(r,{code:Ie.invalid_type,expected:it.map,received:r.parsedType}),Nt;const a=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:a._parse(new Ru(r,l,r.path,[u,"key"])),value:s._parse(new Ru(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return Nt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return Nt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}U6.create=(t,e,n)=>new U6({valueType:e,keyType:t,typeName:Et.ZodMap,...$t(n)});class iy extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.set)return Xe(r,{code:Ie.invalid_type,expected:it.set,received:r.parsedType}),Nt;const a=this._def;a.minSize!==null&&r.data.sizea.maxSize.value&&(Xe(r,{code:Ie.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),n.dirty());const s=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return Nt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>s._parse(new Ru(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(e,n){return new iy({...this._def,minSize:{value:e,message:lt.toString(n)}})}max(e,n){return new iy({...this._def,maxSize:{value:e,message:lt.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}iy.create=(t,e)=>new iy({valueType:t,minSize:null,maxSize:null,typeName:Et.ZodSet,...$t(e)});class V6 extends nn{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}V6.create=(t,e)=>new V6({getter:t,typeName:Et.ZodLazy,...$t(e)});class W6 extends nn{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return Xe(n,{received:n.data,code:Ie.invalid_literal,expected:this._def.value}),Nt}return{status:"valid",value:e.data}}get value(){return this._def.value}}W6.create=(t,e)=>new W6({value:t,typeName:Et.ZodLiteral,...$t(e)});function jY(t,e){return new Jp({values:t,typeName:Et.ZodEnum,...$t(e)})}class Jp extends nn{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return Xe(n,{expected:rn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Nt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return Xe(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Nt}return qi(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return Jp.create(e,{...this._def,...n})}exclude(e,n=this._def){return Jp.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}}Jp.create=jY;class H6 extends nn{_parse(e){const n=rn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==it.string&&r.parsedType!==it.number){const a=rn.objectValues(n);return Xe(r,{expected:rn.joinValues(a),received:r.parsedType,code:Ie.invalid_type}),Nt}if(this._cache||(this._cache=new Set(rn.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const a=rn.objectValues(n);return Xe(r,{received:r.data,code:Ie.invalid_enum_value,options:a}),Nt}return qi(e.data)}get enum(){return this._def.values}}H6.create=(t,e)=>new H6({values:t,typeName:Et.ZodNativeEnum,...$t(e)});class wk extends nn{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==it.promise&&n.common.async===!1)return Xe(n,{code:Ie.invalid_type,expected:it.promise,received:n.parsedType}),Nt;const r=n.parsedType===it.promise?n.data:Promise.resolve(n.data);return qi(r.then(a=>this._def.type.parseAsync(a,{path:n.path,errorMap:n.common.contextualErrorMap})))}}wk.create=(t,e)=>new wk({type:t,typeName:Et.ZodPromise,...$t(e)});class hf extends nn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Et.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),a=this._def.effect||null,s={addIssue:o=>{Xe(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const o=a.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return Nt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?Nt:c.status==="dirty"||n.value==="dirty"?ex(c.value):c});{if(n.value==="aborted")return Nt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?Nt:l.status==="dirty"||n.value==="dirty"?ex(l.value):l}}if(a.type==="refinement"){const o=l=>{const c=a.refinement(l,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?Nt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?Nt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(a.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Yp(o))return Nt;const l=a.transform(o.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Yp(o)?Promise.resolve(a.transform(o.value,s)).then(l=>({status:n.value,value:l})):Nt);rn.assertNever(a)}}hf.create=(t,e,n)=>new hf({schema:t,typeName:Et.ZodEffects,effect:e,...$t(n)});hf.createWithPreprocess=(t,e,n)=>new hf({schema:e,effect:{type:"preprocess",transform:t},typeName:Et.ZodEffects,...$t(n)});class yu extends nn{_parse(e){return this._getType(e)===it.undefined?qi(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}yu.create=(t,e)=>new yu({innerType:t,typeName:Et.ZodOptional,...$t(e)});class Zp extends nn{_parse(e){return this._getType(e)===it.null?qi(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Zp.create=(t,e)=>new Zp({innerType:t,typeName:Et.ZodNullable,...$t(e)});class yO extends nn{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===it.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}yO.create=(t,e)=>new yO({innerType:t,typeName:Et.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...$t(e)});class vO extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},a=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return xk(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new gc(r.common.issues)},input:r.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new gc(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}vO.create=(t,e)=>new vO({innerType:t,typeName:Et.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...$t(e)});class G6 extends nn{_parse(e){if(this._getType(e)!==it.nan){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.nan,received:r.parsedType}),Nt}return{status:"valid",value:e.data}}}G6.create=t=>new G6({typeName:Et.ZodNaN,...$t(t)});class P$e extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class vP extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Nt:s.status==="dirty"?(n.dirty(),ex(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const a=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Nt:a.status==="dirty"?(n.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:r.path,parent:r})}}static create(e,n){return new vP({in:e,out:n,typeName:Et.ZodPipeline})}}class bO extends nn{_parse(e){const n=this._def.innerType._parse(e),r=a=>(Yp(a)&&(a.value=Object.freeze(a.value)),a);return xk(n)?n.then(a=>r(a)):r(n)}unwrap(){return this._def.innerType}}bO.create=(t,e)=>new bO({innerType:t,typeName:Et.ZodReadonly,...$t(e)});var Et;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Et||(Et={}));const Ud=Yl.create,Ad=uf.create;df.create;yk.create;Xp.create;Mu.create;const SY=gl.create,d2=zr.create;vk.create;bk.create;ff.create;Jp.create;wk.create;yu.create;Zp.create;const Od=hf.createWithPreprocess,_Y={string:t=>Yl.create({...t,coerce:!0}),number:t=>uf.create({...t,coerce:!0}),boolean:t=>yk.create({...t,coerce:!0}),bigint:t=>df.create({...t,coerce:!0}),date:t=>Xp.create({...t,coerce:!0})},R$e=d2({id:Ud().min(1),gatewayName:Ud().trim().min(1,"Gateway name is required"),gatewayId:Ud().trim(),split:Ad().min(0).max(100)});d2({ruleName:Ud().trim().min(1,"Enter a rule name"),gateways:SY(R$e).min(1,"Add at least one gateway")});function M$e(t){return!!(t.ruleName||t.total||Object.keys(t.gateways).length)}function D$e(t){const e={gateways:{}};if(t.ruleName.trim()||(e.ruleName="Enter a rule name"),!t.gateways.length)return e.total="Add at least one gateway.",e;t.gateways.forEach(r=>{r.gatewayName.trim()||(e.gateways[r.id]="Choose a gateway.")});const n=t.gateways.reduce((r,a)=>r+a.split,0);return n!==100&&(e.total=`Splits must sum to 100 (currently ${n}).`),e}const su=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function NY({gateways:t}){const e=t.filter(r=>r.gatewayName.trim());if(e.length===0)return i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No gateways yet — add at least one to split traffic across."});const n=e.reduce((r,a)=>r+a.split,0);return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex h-3 w-full gap-0.5 overflow-hidden rounded-full",children:e.map((r,a)=>i.jsx("div",{className:"h-full",style:{flex:`${n>0?r.split:1} 1 0`,backgroundColor:su[a%su.length]},title:`${r.gatewayName}: ${r.split}%`},r.id))}),i.jsx("div",{className:"space-y-1.5",children:e.map((r,a)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:su[a%su.length]}}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-700 dark:text-slate-200",title:r.gatewayName,children:r.gatewayName}),r.gatewayId&&i.jsx("span",{className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-[#78849a] leading-4",title:r.gatewayId,children:r.gatewayId}),i.jsxs("span",{className:"ml-auto shrink-0 pl-2 font-semibold tabular-nums text-slate-700 dark:text-slate-200",children:[r.split,"%"]})]},r.id))}),n!==100&&i.jsxs("p",{className:"text-[11px] font-medium text-amber-700 dark:text-amber-400 leading-4",children:["Splits total ",n,"% — must add up to 100%."]})]})}function kk(){return Math.random().toString(36).slice(2)}function q6(){return[{id:kk(),gatewayName:"",gatewayId:"",split:50},{id:kk(),gatewayName:"",gatewayId:"",split:50}]}function CY(t){return Number.isNaN(t)?0:Math.min(100,Math.max(0,Math.round(t)))}function F_(t){if(t.length===0)return t;const e=t.slice(0,-1),n=e.reduce((s,o)=>s+o.split,0),r=CY(100-n),a=t[t.length-1];return[...e,{...a,split:r}]}function K6(){var M;const t=Ao(),e=Hr(),{id:n}=Tz(),[r]=vc(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=$r(),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(()=>q6()),[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState({gateways:{}}),w=g.useRef(null),{data:j,mutate:k}=ct(o?`/routing/list/${o}`:null,()=>Fe(`/routing/list/${o}`)),{data:S}=ct(o?`/routing/list/active/${o}`:null,()=>Fe(`/routing/list/active/${o}`)),_=n||a,C=_?(j||[]).find(B=>B.id===_):void 0,E=s&&(S||[]).some(B=>B.id===n),P=s&&!S,R=g.useRef(null),A=g.useRef(null);g.useEffect(()=>{if(!C||R.current===C.id)return;const B=u2(C);B&&(R.current=C.id,c(s?B.name:`copy-of-${B.name}`),d(B.description&&B.description!=="N/A"?B.description:""),B.gateways.length>0&&h(B.gateways),A.current=JSON.stringify([(s?B.name:`copy-of-${B.name}`).trim(),B.description&&B.description!=="N/A"?B.description:"",B.gateways.length>0?B.gateways:f]))},[C,s]);const T=A.current!==null&&A.current!==JSON.stringify([l.trim(),u,f]),D=C&&l.trim()===C.name?`copy-of-${C.name}`:l.trim(),L=((M=f[f.length-1])==null?void 0:M.id)??null,X=L?f.filter(B=>B.id!==L).reduce((B,z)=>B+z.split,0):0,J=Math.max(0,X-100),U=f.reduce((B,z)=>B+z.split,0);function Y(B,z,Z){h(pe=>F_(pe.map(ae=>ae.id!==B?ae:z==="split"?{...ae,split:CY(Number(Z))}:{...ae,[z]:Z})))}function W(){h(B=>F_([...B,{id:kk(),gatewayName:"",gatewayId:"",split:0}]))}function G(B){h(z=>{const Z=z.filter(pe=>pe.id!==B);return F_(Z.length?Z:[{id:kk(),gatewayName:"",gatewayId:"",split:100}])})}function I(){c(""),d(""),h(q6()),v(null),y({gateways:{}})}async function q(B){var Z;if(B.preventDefault(),!o){v("Set a merchant ID first");return}const z=D$e({ruleName:l,gateways:f});if(y(z),M$e(z)){v("Fix the highlighted fields before saving."),z.ruleName&&((Z=w.current)==null||Z.focus());return}m(!0),v(null);try{s&&!E?await Fe("/routing/update",{created_by:o,routing_algorithm_id:n,name:l.trim(),description:u,algorithm:bY(f)}):await Fe("/routing/create",s$e({ruleName:E?D:l,description:u,gateways:f},o)),await k(),e("/routing/volume")}catch(pe){v(pe instanceof Error?pe.message:"Failed to save rule")}finally{m(!1)}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/volume"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Mj,{size:16})," Volume Split Routing"]}),i.jsx(Ba,{title:s?"Edit Volume Split Rule":"Create Volume Split Rule",description:"Divide traffic across gateways by percentage. The last row absorbs whatever the others leave.",className:"truncate"})]}),s&&!C&&j&&i.jsx(vt,{error:"That rule no longer exists for this merchant."}),E&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:D||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:q,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"volume-rule-name",ref:w,value:l,onChange:B=>{c(B.target.value),b.ruleName&&y(z=>({...z,ruleName:void 0}))},placeholder:"e.g. ab-test-split","aria-invalid":!!b.ruleName,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${UH(!!b.ruleName)}`}),i.jsx(Ww,{message:b.ruleName})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"volume-rule-description",value:u,onChange:B=>d(B.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Traffic Distribution"}),i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] gap-3 px-1 text-xs font-medium text-slate-500 md:grid",children:[i.jsx("span",{children:"Gateway Name"}),i.jsx("span",{children:"Gateway ID"}),i.jsx("span",{children:"Split %"}),i.jsx("span",{})]}),f.map((B,z)=>{const Z=B.id===L,pe=B.gatewayName.trim()||`Gateway ${z+1}`;return i.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] md:items-center",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx(Ly,{value:B.gatewayName,onChange:(ae,ue)=>{Y(B.id,"gatewayName",ae),Y(B.id,"gatewayId",(ue==null?void 0:ue.gatewayId)??""),b.gateways[B.id]&&y(de=>{const{[B.id]:Q,...fe}=de.gateways;return{...de,gateways:fe}})},placeholder:"e.g. stripe",options:Kp([],f.filter(ae=>ae.id!==B.id).map(ae=>ae.gatewayName),f.filter(ae=>ae.id!==B.id).map(ae=>ae.gatewayId)),className:"min-w-0"}),i.jsx(Ww,{message:b.gateways[B.id]})]}),i.jsx("input",{value:B.gatewayId,onChange:ae=>Y(B.id,"gatewayId",ae.target.value),placeholder:"optional gateway_id",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-lg border border-slate-200 bg-transparent px-2.5 py-2 focus-within:border-brand-500 dark:border-[#222226]",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:su[z%su.length]}}),i.jsx("input",{type:"range",min:0,max:100,value:B.split,disabled:Z,onChange:ae=>Y(B.id,"split",Number(ae.target.value)),"aria-label":`${pe} allocation slider`,className:"h-2 min-w-0 flex-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",style:{accentColor:su[z%su.length]}}),i.jsx("input",{type:"number",min:0,max:100,value:B.split,onChange:ae=>Y(B.id,"split",Number(ae.target.value)),disabled:Z,"aria-label":`${pe} split percentage`,className:"w-12 border-0 bg-transparent p-0 text-right text-sm tabular-nums focus:outline-none disabled:cursor-not-allowed disabled:opacity-70"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),Z&&f.length>1&&i.jsx("span",{className:"rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-600 dark:bg-[#1a1a22] dark:text-slate-300 leading-4",children:"Auto"})]}),i.jsx("button",{type:"button",onClick:()=>G(B.id),disabled:f.length===1,"aria-label":`Remove ${pe}`,className:"text-slate-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(wn,{size:15})})]},B.id)}),i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("button",{type:"button",onClick:W,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:14})," Add Gateway"]}),i.jsxs("span",{role:b.total?"alert":void 0,className:`text-xs font-medium ${U===100?"text-emerald-700":"text-red-600"}`,children:["Total: ",U,"%",J?` (reduce fixed splits by ${J}%)`:U!==100?" (must be 100)":""]})]})]})]})}),i.jsx(vt,{error:x}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(we,{type:"submit",disabled:p||!o||!t||P||E&&!T,title:E&&!T?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):E?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(we,{type:"button",variant:"secondary",size:"sm",onClick:I,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/volume"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(He,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:l.trim()||"Untitled rule"})]}),i.jsx(NY,{gateways:f})]})})})})]})]})}const I$e={"15m":{detail:"Last 15 mins",badge:"Live 15m"},"1h":{detail:"Last hour",badge:"Live 1h"},"12h":{detail:"Last 12 hours",badge:"Live 12h"},"1d":{detail:"Last 1 day",badge:"Live 1d"},"1w":{detail:"Last 1 week",badge:"Live 1w"}};function Ng(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:t&&t<100?1:0}).format(t||0)}function Y6(t){return t==null||Number.isNaN(t)?"0%":`${t.toFixed(t>=100?0:1)}%`}function $$e(t){const e=Date.now()-t;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}function L$e(t){return t>=.85?{dot:"bg-emerald-500",text:"text-emerald-700 dark:text-emerald-400"}:t>=.7?{dot:"bg-amber-500",text:"text-amber-700 dark:text-amber-400"}:{dot:"bg-red-500",text:"text-red-600 dark:text-red-400"}}function F$e(){return i.jsxs("div",{className:"grid gap-5 lg:grid-cols-[1.1fr_0.9fr]",children:[i.jsxs(Te,{className:"p-7",children:[i.jsx(vn,{children:"Merchant session required"}),i.jsx("h2",{className:"mt-4 max-w-xl text-3xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Sign in with a merchant account to turn this into a live overview."}),i.jsx("p",{className:"mt-4 max-w-xl text-sm leading-7 text-slate-600 dark:text-[#b2bdd1]",children:"Analytics use your signed-in merchant account. After sign-in, the overview shows service health, active routing, request count, and gateway activity."})]}),i.jsx(Te,{className:"p-7",children:i.jsx("div",{className:"space-y-5",children:[{icon:Ip,title:"System status",text:"Check whether the service is reachable."},{icon:Lj,title:"Routing setup",text:"See whether a strategy is configured."},{icon:_o,title:"Gateway activity",text:"View recent request distribution by gateway."}].map(t=>i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-3 dark:border-[#2a303a] dark:bg-[#161b24]",children:i.jsx(t.icon,{className:"h-5 w-5 text-brand-600 dark:text-sky-300"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:t.title}),i.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600 dark:text-[#b2bdd1]",children:t.text})]})]},t.title))})})]})}function B$e(){var I,q,M,B,z,Z,pe,ae,ue,de,Q,fe;const{merchantId:t}=$r(),e=hr(ne=>{var ce;return((ce=ne.user)==null?void 0:ce.merchantId)||""}),n=t||e,[r,a]=g.useState("1d"),[s,o]=g.useState(()=>$s(eu("1d").start_ms)),[l,c]=g.useState(()=>$s(Date.now())),u=g.useMemo(()=>r==="custom"?Fp(s,l):void 0,[l,s,r]),{data:d}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`),{shouldRetryOnError:!1}),{data:f}=ct(n?["/rule/get","successRate",n]:null,()=>Fe("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1}),h=Ey(n),p=Sl(n||void 0),m=r==="custom"?u?`range=1h&start_ms=${u.start_ms}&end_ms=${u.end_ms}`:null:`range=${r}`,x=m?`/analytics/overview?${m}`:null,v=m?`/analytics/routing-stats?${m}`:null,b=ct(x,Dt,{shouldRetryOnError:!1,keepPreviousData:!0}),y=ct(v,Dt,{shouldRetryOnError:!1,keepPreviousData:!0}),w=(d==null?void 0:d[0])||null,j=(d||[]).some(ne=>{var ce;return((ce=ne.algorithm_data||ne.algorithm)==null?void 0:ce.type)==="advanced"}),S=((q=(((I=b.data)==null?void 0:I.route_hits)||[]).find(ne=>ne.route==="/decide_gateway"))==null?void 0:q.count)||0,_=((B=(M=b.data)==null?void 0:M.top_errors)==null?void 0:B.reduce((ne,ce)=>ne+ce.count,0))||0,C=((z=b.data)==null?void 0:z.top_errors)||[],E=g.useMemo(()=>{var ce;const ne=new Map;for(const he of((ce=b.data)==null?void 0:ce.top_scores)||[]){const be=ne.get(he.gateway)??{scoreSum:0,txSum:0};be.scoreSum+=he.score_value*he.transaction_count,be.txSum+=he.transaction_count,ne.set(he.gateway,be)}return Array.from(ne.entries()).map(([he,be])=>({gateway:he,score:be.txSum>0?be.scoreSum/be.txSum:0,txCount:be.txSum})).sort((he,be)=>be.txCount-he.txCount)},[b.data]),P=g.useMemo(()=>{var he;const ne=new Map;for(const be of((he=y.data)==null?void 0:he.gateway_share)||[])ne.set(be.gateway,(ne.get(be.gateway)||0)+be.count);const ce=Array.from(ne.values()).reduce((be,Pe)=>be+Pe,0);return Array.from(ne.entries()).map(([be,Pe])=>({gateway:be,count:Pe,share:ce?Pe/ce*100:0})).sort((be,Pe)=>Pe.count-be.count)},[y.data]),R=((Z=P[0])==null?void 0:Z.gateway)||((ue=(ae=(pe=b.data)==null?void 0:pe.top_scores)==null?void 0:ae[0])==null?void 0:ue.gateway),A=r==="custom"?{detail:u?`${Uw(u.start_ms)} — ${Uw(u.end_ms)}`:"Custom window",badge:"Custom"}:I$e[r],T=!!(((de=f==null?void 0:f.config)==null?void 0:de.type)==="successRate"&&f.config.data&&f.merchant_id===n),D=p.isEnabled("autopilot"),L=T||D,X=h.isEnabled,J=[!!w,L,j,X].filter(Boolean).length,U=[{label:"Routing strategy",description:w?w.name:"None configured",state:w?"Configured":"Not set",icon:Lj,required:!0,href:"../routing"},{label:"Multi-objective config",description:D?"Autopilot mode enabled":T?"Configured":"Not configured",state:D?"Auto-pilot":T?"Configured":"Not set",icon:Bj,required:!0,href:"../routing/sr"},{label:"Rule-based routing",description:j?"Enabled":"Not enabled",state:j?"Enabled":"Optional",icon:Dj,required:!1,href:"../routing/rules"},{label:"Debit routing",description:h.isLoading?"Checking…":X?"Enabled":"Not enabled",state:h.isLoading?"Checking":X?"Enabled":"Optional",icon:_o,required:!1,href:"../routing/debit"}],Y=!b.data&&b.isLoading||!y.data&&y.isLoading,W=!Y&&(b.isValidating||y.isValidating),G=["#38bdf8","#60a5fa","#22c55e","#f59e0b"];return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsxs("header",{className:"relative flex flex-wrap items-start justify-between gap-4",children:[i.jsx(Ba,{title:"Overview",badge:(Q=b.data)!=null&&Q.merchant_id||n?i.jsx(Me,{variant:"blue",children:((fe=b.data)==null?void 0:fe.merchant_id)||n}):null}),i.jsx("div",{className:"flex flex-wrap items-center gap-2 md:justify-end",children:i.jsx(tT,{range:r,customStart:s,customEnd:l,onRangeChange:ne=>{if(a(ne),ne!=="custom"){const ce=eu(ne);o($s(ce.start_ms)),c($s(ce.end_ms))}},onCustomChange:(ne,ce)=>{o(ne),c(ce)}})}),i.jsx("div",{className:`absolute bottom-0 left-0 right-0 h-[2px] overflow-hidden transition-opacity duration-500 ${Y||W?"opacity-100":"opacity-0"}`,children:i.jsx("div",{className:"h-full origin-left animate-[analytics-progress_1.8s_ease-in-out_infinite] bg-brand-500"})})]}),n?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:`grid gap-4 sm:grid-cols-3 transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-5",children:[i.jsx(vn,{children:"Requests"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:Ng(S)}),i.jsxs("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:["/decide-gateway · ",A.detail.toLowerCase()]})]}),i.jsxs(Te,{className:`p-5 transition-colors ${_>0?"border-red-300/60 dark:border-red-500/30":""}`,children:[i.jsx(vn,{children:"Errors"}),i.jsx("p",{className:`mt-3 text-[2rem] font-semibold leading-none tracking-tight ${_>0?"text-red-600 dark:text-red-400":"text-slate-950 dark:text-white"}`,children:Ng(_)}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:_>0?"Issues detected in window":"No issues in window"})]}),i.jsxs(Te,{className:"p-5",children:[i.jsx(vn,{children:"Top gateway"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:(R==null?void 0:R.toUpperCase())||"—"}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa] max-w-[57ch]",children:P[0]?`${Y6(P[0].share)} of traffic`:"No activity yet"})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-[1.1fr_0.9fr] transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Gateway activity"}),i.jsx(Me,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-6 space-y-3",children:P.length?P.slice(0,4).map((ne,ce)=>i.jsxs("div",{className:"rounded-[20px] border border-slate-200 bg-slate-50/80 p-4 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-2.5 w-2.5 flex-shrink-0 rounded-full",style:{backgroundColor:G[ce]||G[0]}}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:ne.gateway.toUpperCase()}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#98a3b8]",children:[Ng(ne.count)," requests"]})]})]}),i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Y6(ne.share)})]}),i.jsx("div",{className:"mt-3 h-1.5 rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(4,ne.share)}%`,backgroundColor:G[ce]||G[0]}})})]},ne.gateway)):i.jsxs("div",{className:"rounded-[20px] border border-dashed border-slate-200 px-5 py-12 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No gateway activity yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#a6b0c3]",children:"Traffic by gateway will appear here once requests flow through."})]})})]}),i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Setup"}),i.jsxs(Me,{variant:J>=2?"green":"orange",children:[J,"/4 ready"]})]}),i.jsx("div",{className:"mt-4 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full bg-emerald-500 transition-all duration-500",style:{width:`${J/4*100}%`}})}),i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:U.map(ne=>{const ce=ne.state==="Live"||ne.state==="Configured"||ne.state==="Enabled"||ne.state==="Auto-pilot",he=ne.state==="Issue"?"text-red-600":ce?"text-emerald-700":"text-slate-500 dark:text-[#78849a]",be=ce?"green":ne.state==="Issue"?"red":ne.state==="Checking"?"gray":ne.required?"orange":"gray",Pe=i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[i.jsx(ne.icon,{className:`h-4 w-4 flex-shrink-0 ${he}`}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:ne.label}),i.jsx("p",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.description})]})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[i.jsx(Me,{variant:be,children:ne.state}),ne.href&&i.jsx(So,{className:"h-3.5 w-3.5 text-slate-500 dark:text-[#78849a]"})]})]}),Ce="flex items-center justify-between gap-3 py-3.5 rounded-lg -mx-2 px-2";return ne.href?i.jsx(Yd,{to:ne.href,relative:"path",className:`${Ce} transition-colors hover:bg-slate-50 dark:hover:bg-[#13192a]`,children:Pe},ne.label):i.jsx("div",{className:Ce,children:Pe},ne.label)})})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-2 transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Gateway health"}),i.jsx(Me,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-5 space-y-2",children:E.length?E.slice(0,5).map(ne=>{const ce=L$e(ne.score);return i.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsx("span",{className:`h-2 w-2 flex-shrink-0 rounded-full ${ce.dot}`}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-slate-950 dark:text-white",children:ne.gateway.toUpperCase()}),i.jsxs("span",{className:`text-sm font-semibold tabular-nums ${ce.text}`,children:[(ne.score*100).toFixed(1),"%"]})]},ne.gateway)}):i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No score data yet"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"SR scores appear once gateways handle traffic."})]})})]}),i.jsxs(Te,{className:`p-6 transition-colors ${_>0?"border-red-300/40 dark:border-red-500/20":""}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Recent errors"}),_>0?i.jsxs(Me,{variant:"red",children:[Ng(_)," total"]}):i.jsx(Me,{variant:"green",children:"Clean"})]}),C.length?i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:C.slice(0,5).map((ne,ce)=>i.jsxs("div",{className:"flex items-start justify-between gap-3 py-3",children:[i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"rounded bg-red-50 px-1.5 py-0.5 font-mono text-[11px] font-medium text-red-700 dark:bg-red-500/10 dark:text-red-400 leading-4",children:ne.error_code}),i.jsx("span",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.route})]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.error_message})]}),i.jsxs("div",{className:"flex-shrink-0 text-right",children:[i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Ng(ne.count)}),i.jsx("p",{className:"text-[11px] text-slate-500 dark:text-[#78849a] leading-4",children:$$e(ne.last_seen_ms)})]})]},ce))}):i.jsxs("div",{className:"mt-5 flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx(Ip,{className:"h-8 w-8 text-emerald-700"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:"No errors in window"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"All requests resolved without errors."})]})]})]})]}):i.jsx(F$e,{})]})}function Fy({text:t,label:e,size:n=10,className:r=""}){const[a,s]=g.useState(!1);function o(l){l.stopPropagation(),navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),2e3)}return i.jsx("button",{type:"button",onClick:o,title:a?"Copied!":e??"Copy to clipboard",className:`shrink-0 transition-colors text-slate-500 hover:text-slate-500 dark:text-[#78849a] dark:hover:text-[#8090a8] ${r}`,children:a?i.jsx(gi,{size:n,className:"text-emerald-700"}):i.jsx(nf,{size:n})})}const z$e=[{value:"",label:"Any status"},{value:"success",label:"Success"},{value:"failure",label:"Failure"}],U$e=[{value:"",label:"Any route"},{value:"decide_gateway",label:"Decide Gateway"},{value:"update_gateway_score",label:"Update Gateway"},{value:"routing_evaluate",label:"Rule Evaluate"}],V$e=["summary","input","response","raw"],W$e={summary:"Summary",input:"Request",response:"Response",raw:"Raw JSON"},bP="NTW_BASED_ROUTING",X6={transactions:"Multi-objective",rule_based:"Rule based / Volume based",debit_routing:"Debit routing"},J6={paymentId:"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""};function pd(t){const e=t.paymentId.trim()||t.requestId.trim(),n=H$e(e)?e:"";return{paymentId:n?"":e,requestId:n,gateway:t.gateway.trim(),route:t.route,status:t.status,flowType:t.flowType.trim(),errorCode:t.errorCode.trim()}}function H$e(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^req[_-]/i.test(t)}function wP(t){return t.flow_type||""}function G$e(t){return t.endsWith("_error")}function EY(t){return t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"}function AY(t){return t==="decide_gateway_rule_hit"}function q$e(t){return t.startsWith("update_gateway_score_")||t.startsWith("update_score_legacy_")}function OY(t){return t.startsWith("decide_gateway_")&&!AY(t)}function wO(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Z6(t,e,n,r,a,s,o,l){const c=pd(a),u={range:e==="custom"?"1h":e,page:n,page_size:r,start_ms:s==null?void 0:s.start_ms,end_ms:s==null?void 0:s.end_ms,payment_id:c.paymentId||void 0,request_id:c.requestId||void 0,gateway:c.gateway||void 0,route:c.route||void 0,status:c.status||void 0,flow_type:c.flowType||void 0,routing_approach:o,exclude_routing_approach:l,error_code:c.errorCode||void 0},d=wO(u);return d?`${t}?${d}`:t}function K$e(t){return t==="debit_routing"?"debit_routing":t==="rule_based"?"rule_based":"transactions"}function Q6(t){return t==="debit_routing"?bP:void 0}function eF(t){return t==="transactions"?bP:void 0}function Y$e(t){return pd({paymentId:t.get("payment_id")||t.get("request_id")||"",requestId:"",gateway:t.get("gateway")||"",route:t.get("route")||"",status:t.get("status")||"",flowType:t.get("flow_type")||t.get("event_type")||"",errorCode:t.get("error_code")||""})}function X$e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function tF(t){const e=Math.max(0,Math.round((Date.now()-t)/6e4));if(e<1)return"just now";if(e<60)return`${e}m ago`;const n=Math.round(e/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`}function Td(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function J$e(t){return t.filter(Boolean).join(" · ")}function Z$e(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Td(t):"Unknown route"}function B_(t){const e=wP(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||EY(e)?"Decision Result":G$e(e)?"Errors":Td(t.event_stage||e)}function Q$e(t){const e=wP(t);return OY(e)||t.event_stage==="gateway_decided"?"Decide Gateway":AY(e)||t.event_stage==="rule_applied"?"Rule Evaluate":EY(e)||t.event_stage==="preview_evaluated"?"Rule Decision":q$e(e)||t.event_stage==="score_updated"?"Update Gateway":"Errors"}function eLe(t){const e=wP(t);return OY(e)||t.event_stage==="gateway_decided"}function ah(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":e==="HIT"?"purple":"gray"}function tLe(t){const e=ah(t);return e==="green"?"bg-emerald-500":e==="red"?"bg-red-500":e==="purple"?"bg-purple-500":"bg-slate-300 dark:bg-[#3a4150]"}function nLe(t){const e=(t.gateways||[]).filter(Boolean);return e.length<2?null:(t.latest_gateway&&e.includes(t.latest_gateway)?[...e.filter(r=>r!==t.latest_gateway),t.latest_gateway]:e).join(" → ")}function z_({tone:t,label:e,detail:n}){return i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#a7b2c6]",title:n||void 0,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t}`}),e]})}function U_({label:t,value:e}){return i.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[t,":"]}),i.jsx("span",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:e})]})}function md(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function V_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function rLe(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function aLe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function kO(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7] dark:placeholder:text-[#555f6e]"}function W_(){return`${kO()} appearance-none pr-9 bg-[url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")] bg-no-repeat bg-[right_12px_center]`}function Jh({title:t,body:e}){return i.jsxs(aA,{className:"!rounded-2xl border-dashed border-slate-200 bg-slate-50/70 px-5 py-8 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#b2bdd1] leading-[18px]",children:e})]})}function TY({rows:t}){return t.length?i.jsx("div",{className:"grid gap-x-8 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0",children:t.map(e=>i.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-slate-100 py-3 dark:border-[#1b2029]",children:[i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e.label}),i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:e.value}),e.copyText&&i.jsx(Fy,{text:e.copyText,size:12})]})]},`${e.label}-${e.value}`))}):null}function kP({value:t}){return i.jsx("pre",{className:"overflow-x-auto rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 font-mono text-[13px] leading-[21px] text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:rLe(t)})}function oy({title:t,children:e}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),e]})}function Nb({title:t,value:e,emptyMessage:n}){return i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})})}function sLe(t){if(!md(t))return null;const e=Object.keys(t),n=Object.entries(t).filter(r=>typeof r[1]=="number"&&Number.isFinite(r[1]));return n.length&&n.length===e.length?n:null}function iLe(t){if(!md(t))return null;const e=Object.entries(t);return e.length&&e.every(([,r])=>r===null||["string","number","boolean"].includes(typeof r))?e:null}function oLe(t){return t===null?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?t.toLocaleString(void 0,{maximumFractionDigits:6}):t}function lLe({title:t,value:e,emptyMessage:n,selectedGateway:r}){const a=sLe(e);if(!a)return i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})});const s=[...a].sort((d,f)=>f[1]-d[1]),o=Math.max(...s.map(([,d])=>d)),l=o<=1,c=l?1:o||1,u=r&&s.some(([d])=>d===r)?r:s[0][0];return i.jsx(oy,{title:t,children:i.jsx("div",{className:"space-y-3 rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0b1017]",children:s.map(([d,f])=>{const h=d===u,p=Number((f/c*100).toFixed(1)),m=Math.max(3,Math.min(100,p));return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:d}),h?i.jsx("span",{className:"shrink-0 rounded-md bg-brand-500/10 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-brand-600 dark:text-brand-300 leading-4",children:"Selected"}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] font-semibold tabular-nums text-slate-700 dark:text-[#d8e1ef] leading-[18px]",children:l?`${(f*100).toFixed(1)}%`:f.toLocaleString(void 0,{maximumFractionDigits:4})})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-200/70 dark:bg-[#1e2330]",children:i.jsx("div",{className:"h-full rounded-full transition-all",style:{width:`${m}%`,backgroundColor:h?"#0069ED":"#94a3b8"}})})]},d)})})})}function cLe({title:t,value:e,emptyMessage:n}){const r=iLe(e);return r?i.jsx(oy,{title:t,children:i.jsx(TY,{rows:r.map(([a,s])=>({label:Td(a),value:oLe(s)}))})}):i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})})}function uLe(t){if(!t)return null;const e=md(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??V_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??V_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=md(n)?n:null,o=md(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:Q$e(t)},{label:"Route",value:Z$e(t.route)},...t.payment_id?[{label:"Payment ID",value:t.payment_id,copyText:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id,copyText:t.request_id}]:[]],d=V_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:md(r)&&!Object.keys(r).length?null:r,responsePayload:md(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function dLe(){var er,za,Gr,pn,mt,Mt,gt,Lr,zn,mn;const[t,e]=vc(),n=t.get("routing_approach")===bP?"debit_routing":K$e(t.get("mode")),r=t.get("start_ms")&&t.get("end_ms")?"custom":oCe(t.get("range")),a=Y$e(t),s=Math.max(1,Number(t.get("page")||"1")),o=t.get("selected")||"",l=Number(t.get("start_ms")||"0"),c=Number(t.get("end_ms")||"0"),u=l>0&&c>l?{start_ms:l,end_ms:c}:eu("1d"),[d,f]=g.useState(n),[h,p]=g.useState(r),[m,x]=g.useState(a),[v,b]=g.useState(a),[y,w]=g.useState(s),[j,k]=g.useState(o),[S,_]=g.useState(!!o),[C,E]=g.useState(null),[P,R]=g.useState("summary"),[A,T]=g.useState(!1),[D,L]=g.useState(()=>$s(u.start_ms)),[X,J]=g.useState(()=>$s(u.end_ms)),U=12,Y=g.useMemo(()=>h==="custom"?Fp(D,X):void 0,[X,D,h]),W=d==="rule_based"?"/analytics/preview-trace":"/analytics/payment-audit",G=Q6(d),I=eF(d),q=h!=="custom"||Y?Z6(W,h,y,U,v,Y,G,I):null,M=ct(q,Dt,{revalidateOnFocus:!1,dedupingInterval:5e3}),B=h!=="custom"||Y?`/analytics/gateway-scores?${wO({range:h==="custom"?"1h":h,start_ms:Y==null?void 0:Y.start_ms,end_ms:Y==null?void 0:Y.end_ms})}`:null,z=ct(B,Dt,{revalidateOnFocus:!1,dedupingInterval:6e4}),Z=g.useMemo(()=>{var ut;const ge=((ut=M.data)==null?void 0:ut.results)||[];return ge.find(ft=>ft.lookup_key===j)||ge[0]||null},[(er=M.data)==null?void 0:er.results,j]);g.useEffect(()=>{var ut,ft;if(Z!=null&&Z.lookup_key){k(Z.lookup_key);return}const ge=(ft=(ut=M.data)==null?void 0:ut.results)==null?void 0:ft[0];ge!=null&&ge.lookup_key&&k(ge.lookup_key)},[(za=M.data)==null?void 0:za.results,Z==null?void 0:Z.lookup_key]);const pe=g.useMemo(()=>Z?{paymentId:Z.payment_id||Z.request_id||"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""}:null,[Z]),ae=pe?Z6(W,h,1,50,pe,Y,G,I):null,ue=ct(ae,Dt,{revalidateOnFocus:!1,dedupingInterval:5e3}),de=((Gr=ue.data)==null?void 0:Gr.timeline)||[],Q=g.useMemo(()=>de.find(ge=>ge.id===C)||de[0]||null,[C,de]);g.useEffect(()=>{if(Q!=null&&Q.id){E(Q.id);return}const ge=de[0];ge!=null&&ge.id&&E(ge.id)},[Q==null?void 0:Q.id,de]);const fe=g.useMemo(()=>uLe(Q),[Q]),ne=Q?eLe(Q):!1,ce=((pn=M.error)==null?void 0:pn.message)||((mt=ue.error)==null?void 0:mt.message)||null,he=M.isLoading,be=((Mt=M.data)==null?void 0:Mt.results)||[],Pe=((gt=M.data)==null?void 0:gt.total_results)||0,Ce=de.length,Re=((Lr=M.data)==null?void 0:Lr.total_success)??be.filter(ge=>ah(ge.latest_status)==="green").length,Be=((zn=M.data)==null?void 0:zn.total_failure)??be.filter(ge=>ah(ge.latest_status)==="red").length,st=Array.from(new Set(be.flatMap(ge=>{var ut;return(ut=ge.gateways)!=null&&ut.length?ge.gateways.filter(Boolean):ge.latest_gateway?[ge.latest_gateway]:[]}))),F=st.length,se=Object.values(m).some(Boolean),ie=Array.from(new Set([...(((mn=z.data)==null?void 0:mn.snapshots)||[]).map(ge=>ge.gateway),...st,v.gateway].filter(Boolean))).sort((ge,ut)=>ge.localeCompare(ut)),Se=d==="rule_based"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a decision from the left column to see the full rule evaluation trace.",noMatchesTitle:"No matching decisions found",noMatchesBody:"Try widening the time range or searching by a decision payment ID, request ID, or gateway."}:d==="debit_routing"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a debit-routing payment from the left column to see the full decision trail.",noMatchesTitle:"No debit-routing decisions found",noMatchesBody:"Run the Debit Routing tab in Decision Explorer, or widen the time range."}:{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a payment from the left column to see the full transaction trail.",noMatchesTitle:"No matching payments found",noMatchesBody:"Try widening the time range or searching by a single payment ID, request ID, or error code."};function te(ge,ut,ft,Kt,gn,zt){const un=pd(Kt),as=wO({mode:ge==="transactions"?void 0:ge,range:ut,page:ft>1?ft:void 0,start_ms:ut==="custom"?zt==null?void 0:zt.start_ms:void 0,end_ms:ut==="custom"?zt==null?void 0:zt.end_ms:void 0,payment_id:un.paymentId||void 0,request_id:un.requestId||void 0,gateway:un.gateway||void 0,route:un.route||void 0,status:un.status||void 0,flow_type:un.flowType||void 0,routing_approach:Q6(ge),exclude_routing_approach:eF(ge),error_code:un.errorCode||void 0,selected:gn||void 0});e(as)}function me(ge,ut){x(ft=>pd({...ft,[ge]:ut}))}function ve(){const ut=pd({...m,route:d==="transactions"?m.route:""});w(1),_(!1),E(null),x(ut),b(ut),te(d,h,1,ut,void 0,Y)}function Ee(ge,ut){const Kt=pd({...m,[ge]:ut});w(1),_(!1),E(null),x(Kt),b(Kt),te(d,h,1,Kt,void 0,Y)}function Oe(){const ut={...J6,route:d==="transactions"?J6.route:""};w(1),_(!1),E(null),x(ut),b(ut),te(d,h,1,ut,void 0,Y)}function Tt(){M.mutate(),ue.mutate()}function Bt(ge){const ft=ge==="custom"?(()=>{const Kt=$0(D),gn=$0(X),zt=Date.now();return Kt!==null&&gn!==null&&gn>Kt&&Kt<=zt&&gn<=zt?{start_ms:Kt,end_ms:gn}:void 0})():void 0;if(p(ge),w(1),_(!1),E(null),ge!=="custom"){const Kt=eu(ge);L($s(Kt.start_ms)),J($s(Kt.end_ms))}te(d,ge,1,v,j,ft)}function Pt(ge,ut){L(ge),J(ut),w(1),_(!1),E(null),te(d,"custom",1,v,j,Fp(ge,ut))}function sn(ge,ut){k(ge),E(null),ut!==1&&_(!0),te(d,h,y,v,ge,Y)}function It(){_(!1),E(null),te(d,h,y,v,void 0,Y)}function xr(ge){const ft=pd({...m,route:ge==="transactions"?m.route:""});f(ge),w(1),k(""),E(null),_(!1),x(ft),b(ft),te(ge,h,1,ft,void 0,Y)}return i.jsxs("div",{className:"flex min-h-[620px] flex-col gap-5 xl:h-[calc(100vh-140px)]",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx(Ba,{title:Se.title}),i.jsx("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:Object.keys(X6).map(ge=>i.jsx(we,{size:"sm",variant:"secondary",className:aLe(d===ge),onClick:()=>xr(ge),children:X6[ge]},ge))}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(tT,{range:h,customStart:D,customEnd:X,onRangeChange:Bt,onCustomChange:Pt}),i.jsx(we,{size:"sm",variant:"secondary",onClick:Tt,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(Es,{className:"h-4 w-4"})})]})]}),i.jsxs("form",{className:"flex flex-wrap items-center gap-3",onSubmit:ge=>{ge.preventDefault(),ve()},children:[i.jsxs("div",{className:`relative ${A?"min-w-[240px] flex-1":"min-w-[300px] flex-[1.618]"}`,children:[i.jsx(Lp,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-[#78849a]"}),i.jsx("input",{className:`${kO()} pl-11 ${se?"pr-20":""}`,value:m.paymentId||m.requestId,onChange:ge=>me("paymentId",ge.target.value),placeholder:d==="rule_based"?"Search by decision payment ID or request ID…":"Search by payment ID or request ID…","aria-label":d==="rule_based"?"Decision payment ID":"Payment ID"}),se?i.jsx("button",{type:"button",onClick:Oe,className:"absolute right-4 top-1/2 -translate-y-1/2 text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:"Clear"}):null]}),i.jsxs("div",{className:"flex min-w-[300px] flex-1 items-center gap-3",children:[A&&d==="transactions"?i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:W_(),value:m.route,onChange:ge=>Ee("route",ge.target.value),"aria-label":"Route",children:U$e.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}):null,A?i.jsx("div",{className:"flex-1",children:i.jsx("input",{className:kO(),value:m.errorCode,onChange:ge=>me("errorCode",ge.target.value),placeholder:"Error code","aria-label":"Error code"})}):null,i.jsx("div",{className:"flex-1",children:i.jsxs("select",{className:W_(),value:m.gateway,onChange:ge=>Ee("gateway",ge.target.value),"aria-label":"Gateway",children:[i.jsx("option",{value:"",children:"Any gateway"}),ie.map(ge=>i.jsx("option",{value:ge,children:ge},ge))]})}),i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:W_(),value:m.status,onChange:ge=>Ee("status",ge.target.value),"aria-label":"Status",children:z$e.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}),i.jsx(we,{type:"button",variant:"secondary",onClick:()=>T(ge=>!ge),"aria-label":"More filters",title:"More filters",className:`h-11 !px-3 ${A?"!text-brand-600 dark:!text-brand-600":""}`,children:i.jsx(ec,{className:"h-4 w-4"})})]}),i.jsx("button",{type:"submit",className:"sr-only",children:"Search"})]}),i.jsx(vt,{error:ce}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-[13px] leading-[18px]",children:[he?i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:14}),"Loading decision audit data…"]}):i.jsxs("span",{className:"font-semibold text-slate-900 dark:text-white",children:[Pe.toLocaleString()," ",Pe===1?"match":"matches"," found"]}),M.data?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"h-4 w-px bg-slate-200 dark:bg-[#2a303a]"}),i.jsx(z_,{tone:"bg-emerald-500",label:`${Re.toLocaleString()} successful ${Re===1?"selection":"selections"}`}),i.jsx(z_,{tone:"bg-red-500",label:`${Be.toLocaleString()} ${Be===1?"failure":"failures"}`}),i.jsx(z_,{tone:"bg-brand-500",label:`${F} ${F===1?"connector":"connectors"}`,detail:st.slice(0,3).join(", ")})]}):null]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-5 xl:grid-cols-[minmax(360px,1fr)_minmax(0,1.618fr)]",children:[i.jsxs(Te,{className:"h-full overflow-hidden !rounded-2xl",children:[S?i.jsxs("div",{className:"shrink-0 border-b border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:It,className:"mb-3",children:[i.jsx(Mj,{className:"h-3.5 w-3.5"}),"Back to results"]}),i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:(Z==null?void 0:Z.payment_id)||(Z==null?void 0:Z.request_id)||(Z==null?void 0:Z.lookup_key)||"Selected payment"}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[Ce," event",Ce===1?"":"s"]}),Z!=null&&Z.latest_status?i.jsx(Me,{variant:ah(Z.latest_status),children:Td(Z.latest_status)}):null]})]})]}):null,S?i.jsx("div",{className:"min-h-0 flex-1 space-y-1.5 overflow-y-auto p-3",children:de.length?de.map((ge,ut)=>{const ft=(Q==null?void 0:Q.id)===ge.id;return i.jsxs("button",{type:"button",onClick:()=>{E(ge.id),R("summary")},className:`relative w-full overflow-hidden rounded-2xl px-4 py-3 text-left transition-all ${ft?"bg-brand-50 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[ft&&i.jsx("span",{className:"absolute inset-y-2.5 left-0 w-[3px] rounded-full bg-brand-500"}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[13px] font-bold ${ft?"bg-brand-500/15 text-brand-500 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1e2330] dark:text-[#8a8a93]"} leading-[18px]`,children:ut+1}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:B_(ge)}),i.jsx("p",{className:"mt-2 truncate text-[13px] text-slate-500 dark:text-[#78849a] max-w-[57ch] leading-[18px]",children:J$e([ge.gateway||null,ge.routing_approach||null,ge.payment_method_type||null])}),ge.error_message?i.jsx("p",{className:"mt-2 truncate text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:ge.error_message}):null]}),i.jsxs("div",{className:"shrink-0 space-y-1 text-right",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:tF(ge.created_at_ms)}),ge.status?i.jsx(Me,{variant:ah(ge.status),children:Td(ge.status)}):null]})]})]},ge.id)}):i.jsx(Jh,{title:"No timeline selected yet",body:Se.summaryEmpty})}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 flex items-center justify-between gap-3 px-5 pb-3 pt-5",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Se.matchingLabel}),i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[be.length," of ",Pe.toLocaleString()]})]}),i.jsx("div",{className:"min-h-0 flex-1 divide-y divide-slate-100 overflow-y-auto border-t border-slate-100 dark:divide-[#1b2029] dark:border-[#1b2029]",children:be.length>0?be.map(ge=>{const ut=(Z==null?void 0:Z.lookup_key)===ge.lookup_key,ft=nLe(ge);return i.jsxs("button",{type:"button",onClick:()=>sn(ge.lookup_key,ge.event_count),className:`relative w-full px-5 py-3 text-left transition-colors ${ut?"bg-brand-50/70 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[ut&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-[3px] bg-brand-500"}),i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate font-mono text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:ge.payment_id||ge.request_id||ge.lookup_key}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:tF(ge.last_seen_ms)})]}),i.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${tLe(ge.latest_status)}`,title:Td(ge.latest_status)||"Unknown"}),ge.latest_gateway?i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#a7b2c6] leading-[18px]",children:ge.latest_gateway}):null,i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["· ",ge.event_count," event",ge.event_count===1?"":"s"]})]}),ft?i.jsx("span",{className:"shrink-0 truncate rounded-md bg-orange-500/10 px-2 py-0.5 text-[13px] font-medium text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300 leading-[18px]",children:ft}):null]})]},ge.lookup_key)}):i.jsx("div",{className:"p-5",children:i.jsx(Jh,{title:Se.noMatchesTitle,body:Se.noMatchesBody})})}),i.jsxs("div",{className:"shrink-0 flex items-center gap-2 border-t border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsx(we,{size:"sm",variant:"secondary",disabled:y<=1,onClick:()=>{const ge=Math.max(1,y-1);w(ge),_(!1),te(d,h,ge,v,j)},children:"Prev"}),i.jsx(we,{size:"sm",variant:"secondary",disabled:be.length{const ge=y+1;w(ge),_(!1),te(d,h,ge,v,j)},children:"Next"}),i.jsxs("span",{className:"ml-auto text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["Page ",y]})]})]})]}),i.jsx(Te,{className:"h-full overflow-hidden !rounded-2xl",children:Q&&fe?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 space-y-2 px-5 pb-0 pt-5",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("h2",{className:"truncate font-mono text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Q.payment_id||Q.request_id||B_(Q)}),Q.payment_id||Q.request_id?i.jsx(Fy,{text:Q.payment_id||Q.request_id||"",size:14}):null]}),Q.status?i.jsx(Me,{variant:ah(Q.status),children:Td(Q.status)}):null]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[i.jsx(U_,{label:"Gateway",value:Q.gateway||"Unknown"}),i.jsx(U_,{label:"Stage",value:B_(Q)}),i.jsx(U_,{label:"Time",value:X$e(Q.created_at_ms)})]}),i.jsx("div",{className:"!mt-5 flex flex-wrap items-center gap-5 border-b border-slate-200 dark:border-[#2a303a]",children:V$e.map(ge=>i.jsx("button",{type:"button",onClick:()=>R(ge),className:`-mb-px border-b-2 pb-3 text-[13px] font-medium transition ${P===ge?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-900 dark:text-[#a7b2c6] dark:hover:text-white"} leading-[18px]`,children:W$e[ge]},ge))})]}),i.jsxs("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-5",children:[P==="summary"?i.jsxs("div",{className:"space-y-5",children:[ne?i.jsx(lLe,{title:"Connector scores",value:fe.scoreContext,selectedGateway:Q.gateway,emptyMessage:"No connector score map was captured for this event."}):null,fe.summaryRows.length?i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:"Decision metadata"}),i.jsx(TY,{rows:fe.summaryRows})]}):null,i.jsx(cLe,{title:"Selection reason",value:fe.selectionReason,emptyMessage:"No explicit selection reason was captured for this event."}),ne?i.jsx(Nb,{title:"Details",value:fe.signalRecord,emptyMessage:"This event did not capture additional scoring or rule metadata."}):null]}):null,P==="input"?i.jsx(Nb,{title:"Request",value:fe.requestPayload,emptyMessage:"No dedicated request payload was captured for this event."}):null,P==="response"?i.jsx(Nb,{title:"Response",value:fe.responsePayload,emptyMessage:"No dedicated response payload was captured for this event."}):null,P==="raw"?i.jsx(Nb,{title:"Raw JSON",value:fe.rawEvent,emptyMessage:"No raw payload is available for this event."}):null]})]}):i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4",children:i.jsx(Jh,{title:"No event selected",body:"Select a timeline event to view scores, routing details, request payload, and response payload."})})})]})]})}const fLe=[{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"}],jO={leader_changed:{label:"Leader change",badge:"blue",icon:I0},gateway_entered_auth_band:{label:"Entered auth band",badge:"green",icon:Cy},gateway_exited_auth_band:{label:"Exited auth band",badge:"orange",icon:J3},calibration_applied:{label:"Autopilot tuning",badge:"purple",icon:ec}},nF=Object.keys(jO);function hLe(t){return new Date(t).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function pLe(t){return[t.payment_method_type,t.payment_method].filter(Boolean).join(" / ")||"all"}function mLe(){const[t,e]=g.useState("12h"),[n,r]=g.useState(new Set(nF)),{events:a,isLoading:s,isUnavailable:o,markAllSeen:l,unseenCount:c}=fT(t),u=g.useMemo(()=>a.filter(f=>n.has(f.event_type)),[a,n]);function d(f){r(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Routing events",description:"Live changes in success-rate based routing — leader flips and gateways entering or exiting the auth band."})}),i.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&i.jsxs("button",{onClick:l,className:"text-[13px] font-medium text-brand-600 hover:underline leading-[18px]",children:["Mark all read (",c,")"]}),i.jsx("select",{value:t,onChange:f=>e(f.target.value),className:"h-9 rounded-lg border border-[#e6e6ee] bg-white px-3 text-[13px] font-medium text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 leading-[18px]",children:fLe.map(f=>i.jsx("option",{value:f.value,children:f.label},f.value))})]})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:nF.map(f=>{const h=jO[f],p=n.has(f);return i.jsxs("button",{onClick:()=>d(f),className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors ${p?"border-brand-600/40 bg-brand-50 text-brand-700 dark:border-sky-400/40 dark:bg-sky-400/10 dark:text-sky-200":"border-[#e6e6ee] bg-white text-slate-500 hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-400 dark:hover:bg-[#18181f]"} leading-4`,children:[i.jsx(h.icon,{size:13}),h.label]},f)})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:[u.length," event",u.length===1?"":"s"]}),i.jsx("p",{className:"text-[12px] text-slate-500 leading-4",children:"Refreshes every 30 seconds"})]})}),i.jsx(He,{className:"p-0",children:s?i.jsx("div",{className:"flex items-center justify-center py-16",children:i.jsx(at,{})}):o?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"Routing events are unavailable"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 leading-[18px]",children:"The analytics pipeline (Kafka → ClickHouse) is offline or disabled for this environment."})]}):u.length===0?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"No routing events in this window"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 mx-auto max-w-[57ch] leading-[18px]",children:"Events appear once success-rate feedback flows through update-gateway-score and gateway scores start shifting."})]}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1f2a]",children:u.map(f=>{const h=jO[f.event_type];return i.jsxs("li",{className:"flex items-start gap-4 px-6 py-4",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Me,{variant:h.badge,children:h.label})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-800 dark:text-slate-200",children:hT(f)}),i.jsxs("p",{className:"mt-0.5 text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[hLe(f.bucket_ms)," · dimension ",pLe(f),f.transaction_count!=null&&` · ${f.transaction_count} txns in SR window`]})]})]},f.id)})})})]})]})}const rF={"auth-rate":"Multi-Objective Configuration",rules:"Rule-Based Routing",volume:"Volume Split Routing",debit:"Debit Routing","ab-test":"A/B Testing"};function gLe(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(t)}function Gf(t){var e;return((e=(t==null?void 0:t.algorithm_data)||(t==null?void 0:t.algorithm))==null?void 0:e.type)||""}function aF(t){return t==="advanced"||t==="priority"||t==="single"}function sF(t){return t==="configured"?"Configured":t==="autopilot"?"Auto-pilot":"Enabled"}function xLe(){var I,q;const{mutate:t}=Wk(),e=$r(M=>M.merchantId),n=hr(M=>{var B;return((B=M.user)==null?void 0:B.merchantId)||""}),r=e||n,a=Ey(r),s=Sl(r||void 0),[o,l]=g.useState(null),[c,u]=g.useState(null),[d,f]=g.useState(null),[h,p]=g.useState(null),{data:m,isLoading:x,mutate:v}=ct(r?`/routing/list/active/${r}`:null,()=>Fe(`/routing/list/active/${r}`)),{data:b,isLoading:y,mutate:w}=ct(r?["/rule/get","successRate",r]:null,()=>Fe("/rule/get",{merchant_id:r,algorithm:"successRate"})),{data:j}=ct(r?"/analytics/overview?range=1d":null,Dt,{shouldRetryOnError:!1}),k=m==null?void 0:m[0],S=((I=b==null?void 0:b.config)==null?void 0:I.data)??(b==null?void 0:b.data),_=!!S,C=s.isEnabled("autopilot"),E=(m||[]).some(M=>aF(Gf(M))),P=(m||[]).some(M=>Gf(M)==="volume_split"),R=a.isEnabled,A=(m||[]).some(M=>Gf(M)==="ab_test"),T=x||y||a.isLoading||s.isLoading,D=(m||[]).find(M=>aF(Gf(M))),L=(m||[]).find(M=>Gf(M)==="volume_split");async function X(M){r&&u(M)}async function J(M){l(M),f(null),p(null);try{M==="auth-rate"?(_&&(await Fe("/rule/delete",{merchant_id:r,algorithm:"successRate"}),await w(void 0,{revalidate:!1})),C&&(await s.setFeatureEnabled("autopilot",!1),await s.setFeatureEnabled("elimination",!1),await s.setFeatureEnabled("multi-objective-routing",!1),await s.setFeatureEnabled("auto-calibration",!1))):M==="rules"&&D?(await Fe("/routing/deactivate",{created_by:r,routing_algorithm_id:D.id}),await Promise.all([v(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):M==="volume"&&L?(await Fe("/routing/deactivate",{created_by:r,routing_algorithm_id:L.id}),await Promise.all([v(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):M==="debit"&&await a.setDebitRoutingEnabled(!1),f(`${rF[M]} deactivated.`)}catch(B){p(B instanceof Error?B.message:String(B))}finally{l(null)}}const U=[{id:"auth-rate",title:"Multi-objective",description:"Steers traffic toward the best authorization rate using live connector score signals.",useCase:"Use when you want automatic gateway selection driven by real-time success-rate data.",icon:Bj,state:_?"configured":C?"autopilot":"not_set",canDeactivate:_||C,href:"sr"},{id:"rules",title:"Rule based",description:"Evaluates explicit business conditions before traffic reaches connector selection.",useCase:"Use for BIN, network, country, amount, metadata, or merchant policy overrides.",icon:Dj,state:E?"enabled":"not_set",canDeactivate:!!D,href:"rules"},{id:"volume",title:"Volume split",description:"Distributes payments by configured percentages across gateways.",useCase:"Use for ramp-ups, new gateway rollout, traffic balancing, or controlled migrations.",icon:rf,state:P?"enabled":"not_set",canDeactivate:!!L,href:"volume"},{id:"debit",title:"Debit routing",description:"Enables debit-network decisions for co-badged card payment flows.",useCase:"Use when debit network cost, issuer country, or regulated-card behavior matters.",icon:_o,state:R?"enabled":"not_set",canDeactivate:R,href:"debit"},{id:"ab-test",title:"A/B Testing",description:"Tests two routing strategies against each other with statistical significance reporting.",useCase:"Use when validating a new algorithm, rule, or gateway before full rollout.",icon:$p,state:A?"enabled":"not_set",canDeactivate:!1,href:"ab-testing"}],Y=U.filter(M=>M.state!=="not_set"),W=(j==null?void 0:j.top_rules)||[],G=k!=null&&k.name?k:null;return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsx(Hs,{open:c!==null,title:`Deactivate ${c?rF[c]:""}?`,description:"This will stop routing decisions from using this strategy. You can reactivate it at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const M=c;u(null),J(M)},onCancel:()=>u(null)}),i.jsx("header",{children:i.jsx(Ba,{title:"Routing Hub"})}),h&&i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-sm text-red-600 dark:text-red-400",children:h}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:d}),i.jsxs("div",{className:"grid gap-6 xl:grid-cols-[1.3fr_0.7fr]",children:[i.jsx(Te,{children:i.jsxs(He,{className:"p-0",children:[i.jsx("div",{className:"px-6 pt-5",children:i.jsx(vn,{children:"Routing strategies"})}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:U.map(M=>{const B=M.icon,z=M.state!=="not_set";return i.jsxs("div",{className:`flex items-center gap-4 px-6 py-4 ${z?"bg-emerald-500/[0.04] dark:bg-emerald-500/[0.06]":""}`,children:[i.jsx("div",{className:`rounded-xl border p-2.5 flex-shrink-0 ${z?"border-emerald-200/60 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400":"border-slate-200 bg-slate-50 text-slate-500 dark:border-[#273141] dark:bg-[#0c1119] dark:text-[#6d778a]"}`,children:i.jsx(B,{size:17})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:M.title}),M.state!=="not_set"?i.jsx(Me,{variant:"green",children:sF(M.state)}):i.jsx(Me,{variant:"gray",children:"Not set"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:M.description}),i.jsx("p",{className:"mt-0.5 text-xs leading-5 text-slate-500 dark:text-[#78849a]",children:M.useCase})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[M.canDeactivate&&i.jsxs(we,{size:"sm",variant:"danger",onClick:()=>X(M.id),disabled:o===M.id,children:[i.jsx(_y,{size:13}),o===M.id?"Deactivating":"Deactivate"]}),i.jsxs(Yd,{to:M.href,className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#2a303a] dark:bg-[#11151d] dark:text-[#c4cfdf] dark:hover:bg-[#161b26]",children:["Configure",i.jsx(So,{size:13,className:"text-slate-500 dark:text-[#78849a]"})]})]})]},M.id)})})]})}),i.jsx(Te,{children:i.jsxs(He,{className:"p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx(vn,{children:"Active strategies"}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:Y.length>0?Y.map(M=>{const B=M.icon;return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2.5",children:[i.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[i.jsx(B,{size:14,className:"flex-shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:M.title})]}),i.jsx(Me,{variant:"green",children:sF(M.state)})]},M.id)}):i.jsx("p",{className:"py-2 text-sm text-slate-500 dark:text-[#8d96aa]",children:T?"Checking…":"No active strategies yet"})})]}),G&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsx(vn,{children:"Running algorithm"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:G.name}),G.description&&i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:G.description}),i.jsx("div",{className:"mt-2",children:i.jsx(Me,{variant:"blue",children:Gf(G).replace(/_/g," ")})})]}),i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(vn,{children:"Rules triggered"}),i.jsx(Me,{variant:"blue",children:"Last 24h"})]}),W.length>0?i.jsx("div",{className:"mt-3 space-y-2",children:W.slice(0,5).map(M=>i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("span",{className:"truncate text-xs text-slate-700 dark:text-[#c4cfdf]",children:M.rule_name}),i.jsx("span",{className:"flex-shrink-0 text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:gLe(M.count)})]},M.rule_name))}):i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:"No rule hits in the last 24 hours."})]}),_&&S&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(vn,{children:"Multi-objective config"}),i.jsx(Me,{variant:"green",children:"Configured"})]}),i.jsxs("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:[i.jsx(sd,{label:"Score window",value:`${S.defaultBucketSize} requests`}),S.defaultHedgingPercent!=null&&i.jsx(sd,{label:"Hedging",value:`${S.defaultHedgingPercent}%`}),S.margin!=null&&i.jsx(sd,{label:"Margin",value:`${S.margin*100}%`}),S.defaultLatencyThreshold!=null&&i.jsx(sd,{label:"Latency threshold",value:`${S.defaultLatencyThreshold} ms`}),S.defaultLowerResetFactor!=null&&i.jsx(sd,{label:"Lower reset",value:String(S.defaultLowerResetFactor)}),S.defaultUpperResetFactor!=null&&i.jsx(sd,{label:"Upper reset",value:String(S.defaultUpperResetFactor)}),(((q=S.subLevelInputConfig)==null?void 0:q.length)??0)>0&&i.jsx(sd,{label:"Payment method overrides",value:`${S.subLevelInputConfig.length}`})]})]})]})})]})]})}function sd({label:t,value:e}){return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:t}),i.jsx("span",{className:"text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:e})]})}var By=t=>t.type==="checkbox",Pd=t=>t instanceof Date,As=t=>t==null;const PY=t=>typeof t=="object";var Dr=t=>!As(t)&&!Array.isArray(t)&&PY(t)&&!Pd(t),yLe=t=>Dr(t)&&t.target?By(t.target)?t.target.checked:t.target.value:t,vLe=(t,e)=>e.split(".").some((n,r,a)=>!isNaN(Number(n))&&t.has(a.slice(0,r).join("."))),bLe=t=>{const e=t.constructor&&t.constructor.prototype;return Dr(e)&&e.hasOwnProperty("isPrototypeOf")},jP=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Yn(t){if(t instanceof Date)return new Date(t);const e=typeof FileList<"u"&&t instanceof FileList;if(jP&&(t instanceof Blob||e))return t;const n=Array.isArray(t);if(!n&&!(Dr(t)&&bLe(t)))return t;const r=n?[]:Object.create(Object.getPrototypeOf(t));for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Yn(t[a]));return r}var f2=t=>/^\w*$/.test(t),An=t=>t===void 0,h2=t=>Array.isArray(t)?t.filter(Boolean):[],SP=t=>h2(t.replace(/["|']|\]/g,"").split(/\.|\[/)),qe=(t,e,n)=>{if(!e||!Dr(t))return n;const r=(f2(e)?[e]:SP(e)).reduce((a,s)=>As(a)?a:a[s],t);return An(r)||r===t?An(t[e])?n:t[e]:r},qo=t=>typeof t=="boolean",mo=t=>typeof t=="function",hn=(t,e,n)=>{let r=-1;const a=f2(e)?[e]:SP(e),s=a.length,o=s-1;for(;++rH.useContext(MY);var kLe=(t,e,n,r=!0)=>{const a={defaultValues:e._defaultValues};for(const s in t)Object.defineProperty(a,s,{get:()=>{const o=s;return e._proxyFormState[o]!==Pi.all&&(e._proxyFormState[o]=!r||Pi.all),t[o]}});return a};const DY=typeof window<"u"?H.useLayoutEffect:H.useEffect;var ms=t=>typeof t=="string",jLe=(t,e,n,r,a)=>ms(t)?(r&&e.watch.add(t),qe(n,t,a)):Array.isArray(t)?t.map(s=>(r&&e.watch.add(s),qe(n,s))):(r&&(e.watchAll=!0),n),SO=t=>As(t)||!PY(t);function Hc(t,e,n=new WeakSet){if(SO(t)||SO(e))return Object.is(t,e);if(Pd(t)&&Pd(e))return Object.is(t.getTime(),e.getTime());const r=Object.keys(t),a=Object.keys(e);if(r.length!==a.length)return!1;if(n.has(t)||n.has(e))return!0;n.add(t),n.add(e);for(const s of r){const o=t[s];if(!a.includes(s))return!1;if(s!=="ref"){const l=e[s];if(Pd(o)&&Pd(l)||(Dr(o)||Array.isArray(o))&&(Dr(l)||Array.isArray(l))?!Hc(o,l,n):!Object.is(o,l))return!1}}return!0}const SLe=H.createContext(null);SLe.displayName="HookFormContext";var IY=(t,e,n,r,a)=>e?{...n[t],types:{...n[t]&&n[t].types?n[t].types:{},[r]:a||!0}}:{},Fs=t=>Array.isArray(t)?t:[t],iF=()=>{let t=[];return{get observers(){return t},next:a=>{for(const s of t)s.next&&s.next(a)},subscribe:a=>(t.push(a),{unsubscribe:()=>{t=t.filter(s=>s!==a)}}),unsubscribe:()=>{t=[]}}};function $Y(t,e){const n={};for(const r in t)if(t.hasOwnProperty(r)){const a=t[r],s=e[r];if(a&&Dr(a)&&s){const o=$Y(a,s);Dr(o)&&(n[r]=o)}else t[r]&&(n[r]=s)}return n}var Ha=t=>Dr(t)&&!Object.keys(t).length,_P=t=>t.type==="file",jk=t=>{if(!jP)return!1;const e=t?t.ownerDocument:0;return t instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},LY=t=>t.type==="select-multiple",NP=t=>t.type==="radio",_Le=t=>NP(t)||By(t),G_=t=>jk(t)&&t.isConnected;function NLe(t,e){const n=e.slice(0,-1).length;let r=0;for(;r{for(const e in t)if(mo(t[e]))return!0;return!1};function FY(t){return Array.isArray(t)||Dr(t)&&!ELe(t)}function _O(t,e={}){for(const n in t){const r=t[n];FY(r)?(e[n]=Array.isArray(r)?[]:{},_O(r,e[n])):An(r)||(e[n]=!0)}return e}function tx(t,e,n){n||(n=_O(e));for(const r in t){const a=t[r];if(FY(a))An(e)||SO(n[r])?n[r]=_O(a,Array.isArray(a)?[]:{}):tx(a,As(e)?{}:e[r],n[r]);else{const s=e[r];n[r]=!Hc(a,s)}}return n}const oF={value:!1,isValid:!1},lF={value:!0,isValid:!0};var BY=t=>{if(Array.isArray(t)){if(t.length>1){const e=t.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:e,isValid:!!e.length}}return t[0].checked&&!t[0].disabled?t[0].attributes&&!An(t[0].attributes.value)?An(t[0].value)||t[0].value===""?lF:{value:t[0].value,isValid:!0}:lF:oF}return oF},zY=(t,{valueAsNumber:e,valueAsDate:n,setValueAs:r})=>An(t)?t:e?t===""?NaN:t&&+t:n&&ms(t)?new Date(t):r?r(t):t;const cF={isValid:!1,value:null};var UY=t=>Array.isArray(t)?t.reduce((e,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:e,cF):cF;function uF(t){const e=t.ref;return _P(e)?e.files:NP(e)?UY(t.refs).value:LY(e)?[...e.selectedOptions].map(({value:n})=>n):By(e)?BY(t.refs).value:zY(An(e.value)?t.ref.value:e.value,t)}var ALe=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,OLe=(t,e,n,r)=>{const a={};for(const s of t){const o=qe(e,s);o&&hn(a,s,o._f)}return{criteriaMode:n,names:[...t],fields:a,shouldUseNativeValidation:r}},Sk=t=>t instanceof RegExp,Cg=t=>An(t)?t:Sk(t)?t.source:Dr(t)?Sk(t.value)?t.value.source:t.value:t,Th=t=>({isOnSubmit:!t||t===Pi.onSubmit,isOnBlur:t===Pi.onBlur,isOnChange:t===Pi.onChange,isOnAll:t===Pi.all,isOnTouch:t===Pi.onTouched});const dF="AsyncFunction";var TLe=t=>!!t&&!!t.validate&&!!(mo(t.validate)&&t.validate.constructor.name===dF||Dr(t.validate)&&Object.values(t.validate).find(e=>e.constructor.name===dF)),PLe=t=>t.mount&&(t.required||t.min||t.max||t.maxLength||t.minLength||t.pattern||t.validate),NO=(t,e,n)=>!n&&(e.watchAll||e.watch.has(t)||[...e.watch].some(r=>t.startsWith(r)&&/^\.\w+/.test(t.slice(r.length))));const Zh=(t,e,n,r)=>{for(const a of n||Object.keys(t)){const s=qe(t,a);if(s){const{_f:o,...l}=s;if(o){if(o.refs&&o.refs[0]&&e(o.refs[0],a)&&!r)return!0;if(o.ref&&e(o.ref,o.name)&&!r)return!0;if(Zh(l,e))break}else if(Dr(l)&&Zh(l,e))break}}};function fF(t,e,n){const r=qe(t,n);if(r||f2(n))return{error:r,name:n};const a=n.split(".");for(;a.length;){const s=a.join("."),o=qe(e,s),l=qe(t,s);if(o&&!Array.isArray(o)&&n!==s)return{name:n};if(l&&l.type)return{name:s,error:l};if(l&&l.root&&l.root.type)return{name:`${s}.root`,error:l.root};a.pop()}return{name:n}}var RLe=(t,e,n,r)=>{n(t);const{name:a,...s}=t;return Ha(s)||Object.keys(s).length>=Object.keys(e).length||Object.keys(s).find(o=>e[o]===(!r||Pi.all))},MLe=(t,e,n)=>!t||!e||t===e||Fs(t).some(r=>r&&(n?r===e:r.startsWith(e)||e.startsWith(r))),DLe=(t,e,n,r,a)=>a.isOnAll?!1:!n&&a.isOnTouch?!(e||t):(n?r.isOnBlur:a.isOnBlur)?!t:(n?r.isOnChange:a.isOnChange)?t:!0,ILe=(t,e)=>!h2(qe(t,e)).length&&Or(t,e),VY=(t,e,n)=>{const r=Fs(qe(t,n));return hn(r,RY,e[n]),hn(t,n,r),t};function hF(t,e,n="validate"){if(ms(t)||Array.isArray(t)&&t.every(ms)||qo(t)&&!t)return{type:n,message:ms(t)?t:"",ref:e}}var Kf=t=>Dr(t)&&!Sk(t)?t:{value:t,message:""},CO=async(t,e,n,r,a,s)=>{const{ref:o,refs:l,required:c,maxLength:u,minLength:d,min:f,max:h,pattern:p,validate:m,name:x,valueAsNumber:v,mount:b}=t._f,y=qe(n,x);if(!b||e.has(x))return{};const w=l?l[0]:o,j=A=>{a&&w.reportValidity&&(w.setCustomValidity(qo(A)?"":A||""),w.reportValidity())},k={},S=NP(o),_=By(o),C=S||_,E=(v||_P(o))&&An(o.value)&&An(y)||jk(o)&&o.value===""||y===""||Array.isArray(y)&&!y.length,P=IY.bind(null,x,r,k),R=(A,T,D,L=io.maxLength,X=io.minLength)=>{const J=A?T:D;k[x]={type:A?L:X,message:J,ref:o,...P(A?L:X,J)}};if(s?!Array.isArray(y)||!y.length:c&&(!C&&(E||As(y))||qo(y)&&!y||_&&!BY(l).isValid||S&&!UY(l).isValid)){const{value:A,message:T}=ms(c)?{value:!!c,message:c}:Kf(c);if(A&&(k[x]={type:io.required,message:T,ref:w,...P(io.required,T)},!r))return j(T),k}if(!E&&(!As(f)||!As(h))){let A,T;const D=Kf(h),L=Kf(f);if(!As(y)&&!isNaN(y)){const X=o.valueAsNumber||y&&+y;As(D.value)||(A=X>D.value),As(L.value)||(T=Xnew Date(new Date().toDateString()+" "+W),U=o.type=="time",Y=o.type=="week";ms(D.value)&&y&&(A=U?J(y)>J(D.value):Y?y>D.value:X>new Date(D.value)),ms(L.value)&&y&&(T=U?J(y)+A.value,L=!As(T.value)&&y.length<+T.value;if((D||L)&&(R(D,A.message,T.message),!r))return j(k[x].message),k}if(p&&!E&&ms(y)){const{value:A,message:T}=Kf(p);if(Sk(A)&&!y.match(A)&&(k[x]={type:io.pattern,message:T,ref:o,...P(io.pattern,T)},!r))return j(T),k}if(m){if(mo(m)){const A=await m(y,n),T=hF(A,w);if(T&&(k[x]={...T,...P(io.validate,T.message)},!r))return j(T.message),k}else if(Dr(m)){let A={};for(const T in m){if(!Ha(A)&&!r)break;const D=hF(await m[T](y,n),w,T);D&&(A={...D,...P(T,D.message)},j(D.message),r&&(k[x]=A))}if(!Ha(A)&&(k[x]={ref:w,...A},!r))return k}}return j(!0),k};const $Le={mode:Pi.onSubmit,reValidateMode:Pi.onChange,shouldFocusError:!0};function LLe(t={}){let e={...$Le,...t},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:mo(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},r={},a=Dr(e.defaultValues)||Dr(e.values)?Yn(e.defaultValues||e.values)||{}:{},s=e.shouldUnregister?{}:Yn(a),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,u=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},f={...d};let h={...f};const p={array:iF(),state:iF()},m=e.criteriaMode===Pi.all,x=F=>se=>{clearTimeout(u),u=setTimeout(F,se)},v=async F=>{if(!o.keepIsValid&&!e.disabled&&(f.isValid||h.isValid||F)){let se;e.resolver?(se=Ha((await E()).errors),b()):se=await A({fields:r,onlyCheckValid:!0,eventType:qf.VALID}),se!==n.isValid&&p.state.next({isValid:se})}},b=(F,se)=>{!e.disabled&&(f.isValidating||f.validatingFields||h.isValidating||h.validatingFields)&&((F||Array.from(l.mount)).forEach(ie=>{ie&&(se?hn(n.validatingFields,ie,se):Or(n.validatingFields,ie))}),p.state.next({validatingFields:n.validatingFields,isValidating:!Ha(n.validatingFields)}))},y=F=>{const se=tx(a,s),ie=ALe(F);hn(n.dirtyFields,ie,qe(se,ie))},w=(F,se=[],ie,Se,te=!0,me=!0)=>{if(Se&&ie&&!e.disabled){if(o.action=!0,me&&Array.isArray(qe(r,F))){const ve=ie(qe(r,F),Se.argA,Se.argB);te&&hn(r,F,ve)}if(me&&Array.isArray(qe(n.errors,F))){const ve=ie(qe(n.errors,F),Se.argA,Se.argB);te&&hn(n.errors,F,ve),ILe(n.errors,F)}if((f.touchedFields||h.touchedFields)&&me&&Array.isArray(qe(n.touchedFields,F))){const ve=ie(qe(n.touchedFields,F),Se.argA,Se.argB);te&&hn(n.touchedFields,F,ve)}(f.dirtyFields||h.dirtyFields)&&y(F),p.state.next({name:F,isDirty:D(F,se),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else hn(s,F,se)},j=(F,se)=>{hn(n.errors,F,se),p.state.next({errors:n.errors})},k=F=>{n.errors=F,p.state.next({errors:n.errors,isValid:!1})},S=(F,se,ie,Se)=>{const te=qe(r,F);if(te){const me=qe(s,F,An(ie)?qe(a,F):ie);An(me)||Se&&Se.defaultChecked||se?hn(s,F,se?me:uF(te._f)):J(F,me),o.mount&&!o.action&&v()}},_=(F,se,ie,Se,te)=>{let me=!1,ve=!1;const Ee={name:F};if(!e.disabled){if(!ie||Se){(f.isDirty||h.isDirty)&&(ve=n.isDirty,n.isDirty=Ee.isDirty=D(),me=ve!==Ee.isDirty);const Oe=Hc(qe(a,F),se);ve=!!qe(n.dirtyFields,F),Oe?Or(n.dirtyFields,F):hn(n.dirtyFields,F,!0),Ee.dirtyFields=n.dirtyFields,me=me||(f.dirtyFields||h.dirtyFields)&&ve!==!Oe}if(ie){const Oe=qe(n.touchedFields,F);Oe||(hn(n.touchedFields,F,ie),Ee.touchedFields=n.touchedFields,me=me||(f.touchedFields||h.touchedFields)&&Oe!==ie)}me&&te&&p.state.next(Ee)}return me?Ee:{}},C=(F,se,ie,Se)=>{const te=qe(n.errors,F),me=(f.isValid||h.isValid)&&qo(se)&&n.isValid!==se;if(e.delayError&&ie?(c=x(()=>j(F,ie)),c(e.delayError)):(clearTimeout(u),c=null,ie?hn(n.errors,F,ie):Or(n.errors,F)),(ie?!Hc(te,ie):te)||!Ha(Se)||me){const ve={...Se,...me&&qo(se)?{isValid:se}:{},errors:n.errors,name:F};n={...n,...ve},p.state.next(ve)}},E=async F=>(b(F,!0),await e.resolver(s,e.context,OLe(F||l.mount,r,e.criteriaMode,e.shouldUseNativeValidation))),P=async F=>{const{errors:se}=await E(F);if(b(F),F)for(const ie of F){const Se=qe(se,ie);Se?hn(n.errors,ie,Se):Or(n.errors,ie)}else n.errors=se;return se},R=async({name:F,eventType:se})=>{if(t.validate){const ie=await t.validate({formValues:s,formState:n,name:F,eventType:se});if(Dr(ie))for(const Se in ie)ie[Se]&&z(`${H_}.${Se}`,{message:ms(ie.message)?ie.message:"",type:io.validate});else ms(ie)||!ie?z(H_,{message:ie||"",type:io.validate}):B(H_);return ie}return!0},A=async({fields:F,onlyCheckValid:se,name:ie,eventType:Se,context:te={valid:!0,runRootValidation:!1}})=>{if(t.validate&&(te.runRootValidation=!0,!await R({name:ie,eventType:Se})&&(te.valid=!1,se)))return te.valid;for(const me in F){const ve=F[me];if(ve){const{_f:Ee,...Oe}=ve;if(Ee){const Tt=l.array.has(Ee.name),Bt=ve._f&&TLe(ve._f);Bt&&f.validatingFields&&b([Ee.name],!0);const Pt=await CO(ve,l.disabled,s,m,e.shouldUseNativeValidation&&!se,Tt);if(Bt&&f.validatingFields&&b([Ee.name]),Pt[Ee.name]&&(te.valid=!1,se)||(!se&&(qe(Pt,Ee.name)?Tt?VY(n.errors,Pt,Ee.name):hn(n.errors,Ee.name,Pt[Ee.name]):Or(n.errors,Ee.name)),t.shouldUseNativeValidation&&Pt[Ee.name]))break}!Ha(Oe)&&await A({context:te,onlyCheckValid:se,fields:Oe,name:me,eventType:Se})}}return te.valid},T=()=>{for(const F of l.unMount){const se=qe(r,F);se&&(se._f.refs?se._f.refs.every(ie=>!G_(ie)):!G_(se._f.ref))&&ue(F)}l.unMount=new Set},D=(F,se)=>!e.disabled&&(F&&se&&hn(s,F,se),!Hc(q(),a)),L=(F,se,ie)=>jLe(F,l,{...o.mount?s:An(se)?a:ms(F)?{[F]:se}:se},ie,se),X=F=>h2(qe(o.mount?s:a,F,e.shouldUnregister?qe(a,F,[]):[])),J=(F,se,ie={})=>{const Se=qe(r,F);let te=se;if(Se){const me=Se._f;me&&(!me.disabled&&hn(s,F,zY(se,me)),te=jk(me.ref)&&As(se)?"":se,LY(me.ref)?[...me.ref.options].forEach(ve=>ve.selected=te.includes(ve.value)):me.refs?By(me.ref)?me.refs.forEach(ve=>{(!ve.defaultChecked||!ve.disabled)&&(Array.isArray(te)?ve.checked=!!te.find(Ee=>Ee===ve.value):ve.checked=te===ve.value||!!te)}):me.refs.forEach(ve=>ve.checked=ve.value===te):_P(me.ref)?me.ref.value="":(me.ref.value=te,me.ref.type||p.state.next({name:F,values:Yn(s)})))}(ie.shouldDirty||ie.shouldTouch)&&_(F,te,ie.shouldTouch,ie.shouldDirty,!0),ie.shouldValidate&&I(F)},U=(F,se,ie)=>{for(const Se in se){if(!se.hasOwnProperty(Se))return;const te=se[Se],me=F+"."+Se,ve=qe(r,me);(l.array.has(F)||Dr(te)||ve&&!ve._f)&&!Pd(te)?U(me,te,ie):J(me,te,ie)}},Y=(F,se,ie={})=>{const Se=qe(r,F),te=l.array.has(F),me=Yn(se);hn(s,F,me),te?(p.array.next({name:F,values:Yn(s)}),(f.isDirty||f.dirtyFields||h.isDirty||h.dirtyFields)&&ie.shouldDirty&&(y(F),p.state.next({name:F,dirtyFields:n.dirtyFields,isDirty:D(F,me)}))):Se&&!Se._f&&!As(me)?U(F,me,ie):J(F,me,ie),NO(F,l)?p.state.next({...n,name:F,values:Yn(s)}):p.state.next({name:o.mount?F:void 0,values:Yn(s)})},W=async F=>{o.mount=!0;const se=F.target;let ie=se.name,Se=!0;const te=qe(r,ie),me=Oe=>{Se=Number.isNaN(Oe)||Pd(Oe)&&isNaN(Oe.getTime())||Hc(Oe,qe(s,ie,Oe))},ve=Th(e.mode),Ee=Th(e.reValidateMode);if(te){let Oe,Tt;const Bt=se.type?uF(te._f):yLe(F),Pt=F.type===qf.BLUR||F.type===qf.FOCUS_OUT,sn=!PLe(te._f)&&!t.validate&&!e.resolver&&!qe(n.errors,ie)&&!te._f.deps||DLe(Pt,qe(n.touchedFields,ie),n.isSubmitted,Ee,ve),It=NO(ie,l,Pt);hn(s,ie,Bt),Pt?(!se||!se.readOnly)&&(te._f.onBlur&&te._f.onBlur(F),c&&c(0)):te._f.onChange&&te._f.onChange(F);const xr=_(ie,Bt,Pt),er=!Ha(xr)||It;if(!Pt&&p.state.next({name:ie,type:F.type,values:Yn(s)}),sn)return(f.isValid||h.isValid)&&(e.mode==="onBlur"?Pt&&v():Pt||v()),er&&p.state.next({name:ie,...It?{}:xr});if(!e.resolver&&t.validate&&await R({name:ie,eventType:F.type}),!Pt&&It&&p.state.next({...n}),e.resolver){const{errors:za}=await E([ie]);if(b([ie]),me(Bt),Se){const Gr=fF(n.errors,r,ie),pn=fF(za,r,Gr.name||ie);Oe=pn.error,ie=pn.name,Tt=Ha(za)}}else b([ie],!0),Oe=(await CO(te,l.disabled,s,m,e.shouldUseNativeValidation))[ie],b([ie]),me(Bt),Se&&(Oe?Tt=!1:(f.isValid||h.isValid)&&(Tt=await A({fields:r,onlyCheckValid:!0,name:ie,eventType:F.type})));Se&&(te._f.deps&&(!Array.isArray(te._f.deps)||te._f.deps.length>0)&&I(te._f.deps),C(ie,Tt,Oe,xr))}},G=(F,se)=>{if(qe(n.errors,se)&&F.focus)return F.focus(),1},I=async(F,se={})=>{let ie,Se;const te=Fs(F);if(e.resolver){const me=await P(An(F)?F:te);ie=Ha(me),Se=F?!te.some(ve=>qe(me,ve)):ie}else F?(Se=(await Promise.all(te.map(async me=>{const ve=qe(r,me);return await A({fields:ve&&ve._f?{[me]:ve}:ve,eventType:qf.TRIGGER})}))).every(Boolean),!(!Se&&!n.isValid)&&v()):Se=ie=await A({fields:r,name:F,eventType:qf.TRIGGER});return p.state.next({...!ms(F)||(f.isValid||h.isValid)&&ie!==n.isValid?{}:{name:F},...e.resolver||!F?{isValid:ie}:{},errors:n.errors}),se.shouldFocus&&!Se&&Zh(r,G,F?te:l.mount),Se},q=(F,se)=>{let ie={...o.mount?s:a};return se&&(ie=$Y(se.dirtyFields?n.dirtyFields:n.touchedFields,ie)),An(F)?ie:ms(F)?qe(ie,F):F.map(Se=>qe(ie,Se))},M=(F,se)=>({invalid:!!qe((se||n).errors,F),isDirty:!!qe((se||n).dirtyFields,F),error:qe((se||n).errors,F),isValidating:!!qe(n.validatingFields,F),isTouched:!!qe((se||n).touchedFields,F)}),B=F=>{const se=F?Fs(F):void 0;se==null||se.forEach(ie=>Or(n.errors,ie)),se?se.forEach(ie=>{p.state.next({name:ie,errors:n.errors})}):p.state.next({errors:{}})},z=(F,se,ie)=>{const Se=(qe(r,F,{_f:{}})._f||{}).ref,te=qe(n.errors,F)||{},{ref:me,message:ve,type:Ee,...Oe}=te;hn(n.errors,F,{...Oe,...se,ref:Se}),p.state.next({name:F,errors:n.errors,isValid:!1}),ie&&ie.shouldFocus&&Se&&Se.focus&&Se.focus()},Z=(F,se)=>mo(F)?p.state.subscribe({next:ie=>"values"in ie&&F(L(void 0,se),ie)}):L(F,se,!0),pe=F=>p.state.subscribe({next:se=>{MLe(F.name,se.name,F.exact)&&RLe(se,F.formState||f,Re,F.reRenderRoot)&&F.callback({values:{...s},...n,...se,defaultValues:a})}}).unsubscribe,ae=F=>(o.mount=!0,h={...h,...F.formState},pe({...F,formState:{...d,...F.formState}})),ue=(F,se={})=>{for(const ie of F?Fs(F):l.mount)l.mount.delete(ie),l.array.delete(ie),se.keepValue||(Or(r,ie),Or(s,ie)),!se.keepError&&Or(n.errors,ie),!se.keepDirty&&Or(n.dirtyFields,ie),!se.keepTouched&&Or(n.touchedFields,ie),!se.keepIsValidating&&Or(n.validatingFields,ie),!e.shouldUnregister&&!se.keepDefaultValue&&Or(a,ie);p.state.next({values:Yn(s)}),p.state.next({...n,...se.keepDirty?{isDirty:D()}:{}}),!se.keepIsValid&&v()},de=({disabled:F,name:se})=>{if(qo(F)&&o.mount||F||l.disabled.has(se)){const te=l.disabled.has(se)!==!!F;F?l.disabled.add(se):l.disabled.delete(se),te&&o.mount&&!o.action&&v()}},Q=(F,se={})=>{let ie=qe(r,F);const Se=qo(se.disabled)||qo(e.disabled),te=!l.registerName.has(F)&&ie&&!ie._f.mount;return hn(r,F,{...ie||{},_f:{...ie&&ie._f?ie._f:{ref:{name:F}},name:F,mount:!0,...se}}),l.mount.add(F),ie&&!te?de({disabled:qo(se.disabled)?se.disabled:e.disabled,name:F}):S(F,!0,se.value),{...Se?{disabled:se.disabled||e.disabled}:{},...e.progressive?{required:!!se.required,min:Cg(se.min),max:Cg(se.max),minLength:Cg(se.minLength),maxLength:Cg(se.maxLength),pattern:Cg(se.pattern)}:{},name:F,onChange:W,onBlur:W,ref:me=>{if(me){l.registerName.add(F),Q(F,se),l.registerName.delete(F),ie=qe(r,F);const ve=An(me.value)&&me.querySelectorAll&&me.querySelectorAll("input,select,textarea")[0]||me,Ee=_Le(ve),Oe=ie._f.refs||[];if(Ee?Oe.find(Tt=>Tt===ve):ve===ie._f.ref)return;hn(r,F,{_f:{...ie._f,...Ee?{refs:[...Oe.filter(G_),ve,...Array.isArray(qe(a,F))?[{}]:[]],ref:{type:ve.type,name:F}}:{ref:ve}}}),S(F,!1,void 0,ve)}else ie=qe(r,F,{}),ie._f&&(ie._f.mount=!1),(e.shouldUnregister||se.shouldUnregister)&&!(vLe(l.array,F)&&o.action)&&l.unMount.add(F)}}},fe=()=>e.shouldFocusError&&Zh(r,G,l.mount),ne=F=>{qo(F)&&(p.state.next({disabled:F}),Zh(r,(se,ie)=>{const Se=qe(r,ie);Se&&(se.disabled=Se._f.disabled||F,Array.isArray(Se._f.refs)&&Se._f.refs.forEach(te=>{te.disabled=Se._f.disabled||F}))},0,!1))},ce=(F,se)=>async ie=>{let Se;ie&&(ie.preventDefault&&ie.preventDefault(),ie.persist&&ie.persist());let te=Yn(s);if(p.state.next({isSubmitting:!0}),e.resolver){const{errors:me,values:ve}=await E();b(),n.errors=me,te=Yn(ve)}else await A({fields:r,eventType:qf.SUBMIT});if(l.disabled.size)for(const me of l.disabled)Or(te,me);if(Or(n.errors,RY),Ha(n.errors)){p.state.next({errors:{}});try{await F(te,ie)}catch(me){Se=me}}else se&&await se({...n.errors},ie),fe(),setTimeout(fe);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Ha(n.errors)&&!Se,submitCount:n.submitCount+1,errors:n.errors}),Se)throw Se},he=(F,se={})=>{qe(r,F)&&(An(se.defaultValue)?Y(F,Yn(qe(a,F))):(Y(F,se.defaultValue),hn(a,F,Yn(se.defaultValue))),se.keepTouched||Or(n.touchedFields,F),se.keepDirty||(Or(n.dirtyFields,F),n.isDirty=se.defaultValue?D(F,Yn(qe(a,F))):D()),se.keepError||(Or(n.errors,F),f.isValid&&v()),p.state.next({...n}))},be=(F,se={})=>{const ie=F?Yn(F):a,Se=Yn(ie),te=Ha(F),me=te?a:Se;if(se.keepDefaultValues||(a=ie),!se.keepValues){if(se.keepDirtyValues){const ve=new Set([...l.mount,...Object.keys(tx(a,s))]);for(const Ee of Array.from(ve)){const Oe=qe(n.dirtyFields,Ee),Tt=qe(s,Ee),Bt=qe(me,Ee);Oe&&!An(Tt)?hn(me,Ee,Tt):!Oe&&!An(Bt)&&Y(Ee,Bt)}}else{if(jP&&An(F))for(const ve of l.mount){const Ee=qe(r,ve);if(Ee&&Ee._f){const Oe=Array.isArray(Ee._f.refs)?Ee._f.refs[0]:Ee._f.ref;if(jk(Oe)){const Tt=Oe.closest("form");if(Tt){Tt.reset();break}}}}if(se.keepFieldsRef)for(const ve of l.mount)Y(ve,qe(me,ve));else r={}}s=e.shouldUnregister?se.keepDefaultValues?Yn(a):{}:Yn(me),p.array.next({values:{...me}}),p.state.next({values:{...me}})}l={mount:se.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!f.isValid||!!se.keepIsValid||!!se.keepDirtyValues||!e.shouldUnregister&&!Ha(me),o.watch=!!e.shouldUnregister,o.keepIsValid=!!se.keepIsValid,o.action=!1,se.keepErrors||(n.errors={}),p.state.next({submitCount:se.keepSubmitCount?n.submitCount:0,isDirty:te?!1:se.keepDirty?n.isDirty:!!(se.keepDefaultValues&&!Hc(F,a)),isSubmitted:se.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:te?{}:se.keepDirtyValues?se.keepDefaultValues&&s?tx(a,s):n.dirtyFields:se.keepDefaultValues&&F?tx(a,F):se.keepDirty?n.dirtyFields:{},touchedFields:se.keepTouched?n.touchedFields:{},errors:se.keepErrors?n.errors:{},isSubmitSuccessful:se.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:a})},Pe=(F,se)=>be(mo(F)?F(s):F,{...e.resetOptions,...se}),Ce=(F,se={})=>{const ie=qe(r,F),Se=ie&&ie._f;if(Se){const te=Se.refs?Se.refs[0]:Se.ref;te.focus&&setTimeout(()=>{te.focus(),se.shouldSelect&&mo(te.select)&&te.select()})}},Re=F=>{n={...n,...F}},st={control:{register:Q,unregister:ue,getFieldState:M,handleSubmit:ce,setError:z,_subscribe:pe,_runSchema:E,_updateIsValidating:b,_focusError:fe,_getWatch:L,_getDirty:D,_setValid:v,_setFieldArray:w,_setDisabledField:de,_setErrors:k,_getFieldArray:X,_reset:be,_resetDefaultValues:()=>mo(e.defaultValues)&&e.defaultValues().then(F=>{Pe(F,e.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:T,_disableForm:ne,_subjects:p,_proxyFormState:f,get _fields(){return r},get _formValues(){return s},get _state(){return o},set _state(F){o=F},get _defaultValues(){return a},get _names(){return l},set _names(F){l=F},get _formState(){return n},get _options(){return e},set _options(F){e={...e,...F}}},subscribe:ae,trigger:I,register:Q,handleSubmit:ce,watch:Z,setValue:Y,getValues:q,reset:Pe,resetField:he,clearErrors:B,unregister:ue,setError:z,setFocus:Ce,getFieldState:M};return{...st,formControl:st}}var Tc=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=(Math.random()*16+t)%16|0;return(e=="x"?n:n&3|8).toString(16)})},q_=(t,e,n={})=>n.shouldFocus||An(n.shouldFocus)?n.focusName||`${t}.${An(n.focusIndex)?e:n.focusIndex}.`:"",K_=(t,e)=>[...t,...Fs(e)],Y_=t=>Array.isArray(t)?t.map(()=>{}):void 0;function X_(t,e,n){return[...t.slice(0,e),...Fs(n),...t.slice(e)]}var J_=(t,e,n)=>Array.isArray(t)?(An(t[n])&&(t[n]=void 0),t.splice(n,0,t.splice(e,1)[0]),t):[],Z_=(t,e)=>[...Fs(e),...Fs(t)];function FLe(t,e){let n=0;const r=[...t];for(const a of e)r.splice(a-n,1),n++;return h2(r).length?r:[]}var Q_=(t,e)=>An(e)?[]:FLe(t,Fs(e).sort((n,r)=>n-r)),eN=(t,e,n)=>{[t[e],t[n]]=[t[n],t[e]]},pF=(t,e,n)=>(t[e]=n,t);function BLe(t){const e=wLe(),{control:n=e,name:r,keyName:a="id",shouldUnregister:s,rules:o}=t,[l,c]=H.useState(n._getFieldArray(r)),u=H.useRef(n._getFieldArray(r).map(Tc)),d=H.useRef(!1);n._names.array.add(r),H.useMemo(()=>o&&l.length>=0&&n.register(r,o),[n,r,l.length,o]),DY(()=>n._subjects.array.subscribe({next:({values:j,name:k})=>{if(k===r||!k){const S=qe(j,r);Array.isArray(S)&&(c(S),u.current=S.map(Tc))}}}).unsubscribe,[n,r]);const f=H.useCallback(j=>{d.current=!0,n._setFieldArray(r,j)},[n,r]),h=(j,k)=>{const S=Fs(Yn(j)),_=K_(n._getFieldArray(r),S);n._names.focus=q_(r,_.length-1,k),u.current=K_(u.current,S.map(Tc)),f(_),c(_),n._setFieldArray(r,_,K_,{argA:Y_(j)})},p=(j,k)=>{const S=Fs(Yn(j)),_=Z_(n._getFieldArray(r),S);n._names.focus=q_(r,0,k),u.current=Z_(u.current,S.map(Tc)),f(_),c(_),n._setFieldArray(r,_,Z_,{argA:Y_(j)})},m=j=>{const k=Q_(n._getFieldArray(r),j);u.current=Q_(u.current,j),f(k),c(k),!Array.isArray(qe(n._fields,r))&&hn(n._fields,r,void 0),n._setFieldArray(r,k,Q_,{argA:j})},x=(j,k,S)=>{const _=Fs(Yn(k)),C=X_(n._getFieldArray(r),j,_);n._names.focus=q_(r,j,S),u.current=X_(u.current,j,_.map(Tc)),f(C),c(C),n._setFieldArray(r,C,X_,{argA:j,argB:Y_(k)})},v=(j,k)=>{const S=n._getFieldArray(r);eN(S,j,k),eN(u.current,j,k),f(S),c(S),n._setFieldArray(r,S,eN,{argA:j,argB:k},!1)},b=(j,k)=>{const S=n._getFieldArray(r);J_(S,j,k),J_(u.current,j,k),f(S),c(S),n._setFieldArray(r,S,J_,{argA:j,argB:k},!1)},y=(j,k)=>{const S=Yn(k),_=pF(n._getFieldArray(r),j,S);u.current=[..._].map((C,E)=>!C||E===j?Tc():u.current[E]),f(_),c([..._]),n._setFieldArray(r,_,pF,{argA:j,argB:S},!0,!1)},w=j=>{const k=Fs(Yn(j));u.current=k.map(Tc),f([...k]),c([...k]),n._setFieldArray(r,[...k],S=>S,{},!0,!1)};return H.useEffect(()=>{if(n._state.action=!1,NO(r,n._names)&&n._subjects.state.next({...n._formState}),d.current&&(!Th(n._options.mode).isOnSubmit||n._formState.isSubmitted)&&!Th(n._options.reValidateMode).isOnSubmit)if(n._options.resolver)n._runSchema([r]).then(j=>{n._updateIsValidating([r]);const k=qe(j.errors,r),S=qe(n._formState.errors,r);(S?!k&&S.type||k&&(S.type!==k.type||S.message!==k.message):k&&k.type)&&(k?hn(n._formState.errors,r,k):Or(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{const j=qe(n._fields,r);j&&j._f&&!(Th(n._options.reValidateMode).isOnSubmit&&Th(n._options.mode).isOnSubmit)&&CO(j,n._names.disabled,n._formValues,n._options.criteriaMode===Pi.all,n._options.shouldUseNativeValidation,!0).then(k=>!Ha(k)&&n._subjects.state.next({errors:VY(n._formState.errors,k,r)}))}n._subjects.state.next({name:r,values:Yn(n._formValues)}),n._names.focus&&Zh(n._fields,(j,k)=>{if(n._names.focus&&k.startsWith(n._names.focus)&&j.focus)return j.focus(),1}),n._names.focus="",n._setValid(),d.current=!1},[l,r,n]),H.useEffect(()=>(!qe(n._formValues,r)&&n._setFieldArray(r),()=>{const j=(k,S)=>{const _=qe(n._fields,k);_&&_._f&&(_._f.mount=S)};n._options.shouldUnregister||s?n.unregister(r):j(r,!1)}),[r,n,a,s]),{swap:H.useCallback(v,[f,r,n]),move:H.useCallback(b,[f,r,n]),prepend:H.useCallback(p,[f,r,n]),append:H.useCallback(h,[f,r,n]),remove:H.useCallback(m,[f,r,n]),insert:H.useCallback(x,[f,r,n]),update:H.useCallback(y,[f,r,n]),replace:H.useCallback(w,[f,r,n]),fields:H.useMemo(()=>l.map((j,k)=>({...j,[a]:u.current[k]||Tc()})),[l,a])}}function zLe(t={}){const e=H.useRef(void 0),n=H.useRef(void 0),[r,a]=H.useState({isDirty:!1,isValidating:!1,isLoading:mo(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,isReady:!1,defaultValues:mo(t.defaultValues)?void 0:t.defaultValues});if(!e.current)if(t.formControl)e.current={...t.formControl,formState:r},t.defaultValues&&!mo(t.defaultValues)&&t.formControl.reset(t.defaultValues,t.resetOptions);else{const{formControl:o,...l}=LLe(t);e.current={...l,formState:r}}const s=e.current.control;return s._options=t,DY(()=>{const o=s._subscribe({formState:s._proxyFormState,callback:()=>a({...s._formState}),reRenderRoot:!0});return a(l=>({...l,isReady:!0})),s._formState.isReady=!0,o},[s]),H.useEffect(()=>s._disableForm(t.disabled),[s,t.disabled]),H.useEffect(()=>{t.mode&&(s._options.mode=t.mode),t.reValidateMode&&(s._options.reValidateMode=t.reValidateMode)},[s,t.mode,t.reValidateMode]),H.useEffect(()=>{t.errors&&(s._setErrors(t.errors),s._focusError())},[s,t.errors]),H.useEffect(()=>{t.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,t.shouldUnregister]),H.useEffect(()=>{if(s._proxyFormState.isDirty){const o=s._getDirty();o!==r.isDirty&&s._subjects.state.next({isDirty:o})}},[s,r.isDirty]),H.useEffect(()=>{var o;t.values&&!Hc(t.values,n.current)?(s._reset(t.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((o=s._options.resetOptions)===null||o===void 0)&&o.keepIsValid||s._setValid(),n.current=t.values,a(l=>({...l}))):s._resetDefaultValues()},[s,t.values]),H.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),e.current.formState=H.useMemo(()=>kLe(r,s),[s,r]),e.current}const mF=(t,e,n)=>{if(t&&"reportValidity"in t){const r=qe(n,e);t.setCustomValidity(r&&r.message||""),t.reportValidity()}},WY=(t,e)=>{for(const n in e.fields){const r=e.fields[n];r&&r.ref&&"reportValidity"in r.ref?mF(r.ref,n,t):r.refs&&r.refs.forEach(a=>mF(a,n,t))}},ULe=(t,e)=>{e.shouldUseNativeValidation&&WY(t,e);const n={};for(const r in t){const a=qe(e.fields,r),s=Object.assign(t[r]||{},{ref:a&&a.ref});if(VLe(e.names||Object.keys(t),r)){const o=Object.assign({},qe(n,r));hn(o,"root",s),hn(n,r,o)}else hn(n,r,s)}return n},VLe=(t,e)=>t.some(n=>n.startsWith(e+"."));var WLe=function(t,e){for(var n={};t.length;){var r=t[0],a=r.code,s=r.message,o=r.path.join(".");if(!n[o])if("unionErrors"in r){var l=r.unionErrors[0].errors[0];n[o]={message:l.message,type:l.code}}else n[o]={message:s,type:a};if("unionErrors"in r&&r.unionErrors.forEach(function(d){return d.errors.forEach(function(f){return t.push(f)})}),e){var c=n[o].types,u=c&&c[r.code];n[o]=IY(o,e,n,a,u?[].concat(u,r.message):r.message)}t.shift()}return n},HLe=function(t,e,n){return n===void 0&&(n={}),function(r,a,s){try{return Promise.resolve(function(o,l){try{var c=Promise.resolve(t[n.mode==="sync"?"parse":"parseAsync"](r,e)).then(function(u){return s.shouldUseNativeValidation&&WY({},s),{errors:{},values:n.raw?r:u}})}catch(u){return l(u)}return c&&c.then?c.then(void 0,l):c}(0,function(o){if(function(l){return Array.isArray(l==null?void 0:l.errors)}(o))return{values:{},errors:ULe(WLe(o.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw o}))}catch(o){return Promise.reject(o)}}};const gF=[420,260,180,140,130,210,480,950,1700,2400,2900,3200,3400,3300,3100,2950,3050,3350,3600,3450,2800,1900,1100,640],GLe=t=>Math.round(t/25)*25;function xF(t,e,n,r){return n<=1||t<=0?100:Math.max(100,GLe(5*Math.sqrt(t*e/(n-1))))}function yF(t,e,n,r){const a=(.1+.2*n)/Math.max(1,r-1),s=e*n,o=s>0?t/s:a;return Math.max(.01,Math.min(o,a))}function vF(t){return Number.isFinite(t)?t<=60?"text-emerald-700":t<=120?"text-amber-700":"text-red-600":"text-slate-500"}function bF(t){const e=t.filter(n=>Number.isFinite(n)&&n>=0);if(e.length===24)return{hours:e,note:"Loaded 24 hourly values."};if(e.length>24&&e.length%24===0){const n=e.length/24;return{hours:Array.from({length:24},(a,s)=>{let o=0;for(let l=0;l24?{hours:e.slice(0,24),note:`Using first 24 of ${e.length} values.`}:{error:`Expected 24 values — found ${e.length}. Paste one day (row/column) or N×24.`}}function qLe(t){const e=t.trim();if(!e)return{error:"Paste hourly volumes or upload a CSV."};const n=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>/\d/.test(r));if(n.length>=12){const r=n.map(a=>{const s=a.match(/-?\d+(?:\.\d+)?/g);return s?Number(s[s.length-1]):NaN}).filter(a=>Number.isFinite(a));return bF(r)}return bF((e.match(/-?\d+(?:\.\d+)?/g)||[]).map(Number))}async function KLe(t,e){const n=t.stream().pipeThrough(new TextDecoderStream).getReader();let r=!1,a=!1,s=[],o="",l=0,c=!0,u=-1,d=-1,f=!1,h="",p="";const m=new Map;let x=0;const v=E=>a&&(E===u||E===d),b=()=>{a?l===u?h=o:l===d&&(p=o):s.push(o),o=""},y=()=>{if(!a)u=s.indexOf("Booking Date"),d=s.indexOf("Record Type"),f=u>=0&&d>=0,a=!0,s=[];else if(f){if(x++,p==="Received"&&h.length>=13){const E=(h.charCodeAt(11)-48)*10+(h.charCodeAt(12)-48);if(E>=0&&E<24){const P=h.slice(0,10);let R=m.get(P);R||(R=new Array(24).fill(0),m.set(P,R)),R[E]++}}x%2e5===0&&e(x)}l=0,c=!a||v(0),h="",p=""};for(;;){const{done:E,value:P}=await n.read();if(E)break;const R=P;for(let A=0;A0)&&(b(),y()),!f)return{error:'Not a PAR export (no "Booking Date" / "Record Type" columns).'};if(m.size===0)return{error:'PAR parsed, but found no "Received" rows.'};const w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j=E=>new Date(`${E}T00:00:00Z`).getUTCDay();let k="",S=new Array(24).fill(0),_=-1,C=!1;for(const[E,P]of m){const R=P.reduce((D,L)=>D+L,0),A=j(E)>=1&&j(E)<=5;(_<0||A&&!C||A===C&&R>_)&&(k=E,S=P,_=R,C=A)}return{hours:S.slice(),note:`PAR detected — busiest weekday ${k} (${w[j(k)]}): ${_.toLocaleString()} Received attempts (of ${m.size} day(s) scanned).`}}function YLe(){const[t,e]=g.useState(3),[n,r]=g.useState(100),a=5,s=0,[o,l]=g.useState(gF),[c,u]=g.useState("bucket"),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null),[v,b]=g.useState("Sample day"),[y,w]=g.useState(null),j=g.useRef(null),k=Math.min(1,Math.max(0,n/100)),S=()=>{l(gF),b("Sample day"),w(null),x(null)},_=g.useMemo(()=>{const T=o,D=Math.max(1,t-1),L=T.map((ne,ce)=>({v:ne,h:ce})).filter(({v:ne})=>ne>0&&ne>=s),X=L.length?Math.min(...L.map(ne=>ne.v)):0,J=L.length?Math.min(...L.map(ne=>xF(ne.v,k,t))):100,U=yF(J,X||1,k,t),Y=(ne,ce,he)=>{const be=he*k,Pe=ce*D,Ce=be*Math.max(0,1-Pe),Re=be*ce;return{bucket:ne,h:ce,noise:Math.sqrt(1875/ne),bestRefresh:Ce>0?ne/Ce*60:1/0,worstRefresh:Re>0?ne/Re*60:1/0,hedged:be*Pe}},W=T.map((ne,ce)=>{const he=ne>0&&ne>=s,be=he?xF(ne,k,t):J,Pe=he?yF(be,ne,k,t):U;return{v:ne,hour:ce,on:he,static:Y(J,U,ne),auto:Y(be,Pe,ne)}}),G=W.filter(ne=>ne.on),I=ne=>G.reduce((ce,he)=>ce+ne(he),0),q=I(ne=>ne.v),M=ne=>q>0?I(ce=>ce.v*ce[ne].noise)/q:0,B=ne=>I(ce=>ce[ne].hedged),z=G.map(ne=>ne.auto.bucket),Z=G.map(ne=>ne.auto.h),pe=B("static"),ae=B("auto"),ue=pe-ae,de=ue*(Math.max(0,a)/100/2),Q=T.reduce((ne,ce)=>ne+ce,0),fe=T.reduce((ne,ce,he)=>ce>ne.v?{v:ce,h:he}:ne,{v:0,h:0});return{rows:W,staticB:J,staticH:U,autoBMin:z.length?Math.min(...z):J,autoBMax:z.length?Math.max(...z):J,autoHMin:Z.length?Math.min(...Z):U,autoHMax:Z.length?Math.max(...Z):U,staticNoise:M("static"),autoNoise:M("auto"),staticHedged:pe,autoHedged:ae,hedgedSaved:ue,recovered:de,nHedged:D,totalDay:Q,avgV:T.length?Q/T.length:0,peak:fe,activeCount:G.length,hoursCount:T.length}},[o,t,k,a,s]),C=async T=>{w(null);let D=!1;try{const X=((await T.slice(0,65536).text()).split(/\r?\n/,1)[0]??"").split(",").map(J=>J.trim());D=X.includes("Booking Date")&&X.includes("Record Type")}catch{D=!1}if(D){x("Crunching PAR…");try{const L=await KLe(T,X=>x(`Crunching PAR… ${X.toLocaleString()} rows`));"hours"in L?(l(L.hours.map(X=>Math.round(X))),b(L.note)):w(L.error)}catch{w("Could not read the file (too large for the browser? try a smaller slice).")}finally{x(null)}return}if(x(null),T.size>2e6){w("Unrecognised large file — expected a PAR export or a small 24-value CSV.");return}try{const L=qLe(await T.text());"hours"in L?(l(L.hours),b(`Loaded ${T.name}`)):w(L.error)}catch{w("Could not read the file.")}},E=_.rows.map(T=>({hour:`${String(T.hour).padStart(2,"0")}`,volume:T.v,staticBucket:T.static.bucket,autoBucket:T.auto.bucket,staticHedge:T.static.h*100,autoHedge:T.auto.h*100,staticNoise:T.static.noise,autoNoise:T.auto.noise})),P={bucket:{label:"Bucket B",staticKey:"staticBucket",autoKey:"autoBucket",unit:"",fmt:T=>T.toFixed(0)},hedge:{label:"Hedge %/PG",staticKey:"staticHedge",autoKey:"autoHedge",unit:"%",fmt:T=>T.toFixed(1)},noise:{label:"Noise ±pp",staticKey:"staticNoise",autoKey:"autoNoise",unit:"pp",fmt:T=>T.toFixed(2)}},R=P[c],A="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100";return i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsx("div",{className:"mb-3",children:i.jsx("h3",{className:"text-sm font-semibold text-slate-800 dark:text-white",children:"Auto-tuning — Static vs Automatic"})}),i.jsxs("div",{className:"flex flex-wrap items-end gap-4",children:[i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(vn,{children:"Processors (N)"}),i.jsx("input",{type:"number",min:2,max:12,value:t,onChange:T=>e(Math.max(2,Math.min(12,parseInt(T.target.value||"2",10)))),className:`${A} w-[90px]`})]}),i.jsx("button",{type:"button",onClick:()=>p(T=>!T),className:"self-end pb-1.5 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:h?"▾ Advanced":"▸ Advanced"}),h&&i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(vn,{children:"SRV3 split %"}),i.jsx("input",{type:"number",min:1,max:100,value:n,onChange:T=>r(Math.max(1,Math.min(100,parseInt(T.target.value||"100",10)))),className:`${A} w-[90px]`})]})]}),i.jsxs("div",{className:"mt-4 flex flex-col gap-3 sm:flex-row sm:items-stretch",children:[i.jsxs("div",{onClick:()=>{var T;return(T=j.current)==null?void 0:T.click()},onDragOver:T=>T.preventDefault(),onDrop:T=>{var L;T.preventDefault();const D=(L=T.dataTransfer.files)==null?void 0:L[0];D&&C(D)},className:"flex flex-1 cursor-pointer flex-col items-center justify-center gap-1 rounded-xl border border-dashed border-slate-300 bg-slate-50/60 px-4 py-4 text-center text-xs text-slate-500 hover:border-brand-400 hover:bg-brand-50/30 dark:border-[#222226] dark:bg-[#0b0b10] dark:text-slate-400",children:[i.jsx("input",{ref:j,type:"file",accept:".csv,.txt,text/csv,text/plain",className:"hidden",onChange:T=>{var L;const D=(L=T.target.files)==null?void 0:L[0];D&&C(D)}}),i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:"Drop a CSV or click to browse"}),i.jsx("span",{children:"A raw PAR export (auto-detected — busiest weekday), or any 24-value layout — row, column, N×24, time-column."}),m&&i.jsx("span",{className:"mt-1 font-medium text-amber-700 dark:text-amber-400",children:m})]}),i.jsx("button",{type:"button",onClick:S,className:"shrink-0 rounded-xl border border-slate-200 px-4 py-2 text-sm font-medium text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-slate-300 dark:hover:bg-[#0d0d13] sm:self-stretch",children:"Load sample day"})]}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:y?i.jsx("span",{className:"text-red-600",children:y}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:v})," · ","Total ",_.totalDay.toLocaleString()," · avg ",_.avgV.toFixed(0),"/hr · peak ",_.peak.v.toLocaleString()," @ ",_.peak.h,"h · active ",_.activeCount,"/",_.hoursCount,"h"]})})]})}),i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"mb-2 flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:["Daily volume & ",R.label.toLowerCase()]}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:"Bars = traffic. Lines = the static (flat) vs automatic (per-hour) value — watch automatic track the volume."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:["bucket","hedge","noise"].map(T=>i.jsx("button",{type:"button",onClick:()=>u(T),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${c===T?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:P[T].label},T))})]}),i.jsx("div",{className:"h-[300px] w-full",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:E,margin:{top:8,right:8,bottom:4,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"hour",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:16}),i.jsx(Qa,{yAxisId:"vol",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:48,tickFormatter:T=>T>=1e3?`${(T/1e3).toFixed(1)}k`:`${T}`}),i.jsx(Qa,{yAxisId:"ov",orientation:"right",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:44,tickFormatter:T=>`${R.fmt(T)}${R.unit}`}),i.jsx(xa,{formatter:(T,D)=>D==="Volume"?[Math.round(T).toLocaleString(),D]:[`${R.fmt(T)}${R.unit}`,D],labelFormatter:T=>`${T}:00`,contentStyle:{fontSize:12,borderRadius:8}}),i.jsx(ul,{wrapperStyle:{fontSize:11}}),i.jsx(pi,{yAxisId:"vol",dataKey:"volume",name:"Volume",fill:"#c7d2fe",radius:[3,3,0,0],isAnimationActive:!1}),i.jsx(dc,{yAxisId:"ov",dataKey:R.staticKey,name:`Static ${R.label}`,stroke:"#94a3b8",strokeWidth:2,strokeDasharray:"5 4",dot:!1,isAnimationActive:!1}),i.jsx(dc,{yAxisId:"ov",dataKey:R.autoKey,name:`Auto ${R.label}`,stroke:"#10b981",strokeWidth:2.5,dot:!1,isAnimationActive:!1})]})})})]})}),i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-white px-4 py-3 dark:border-[#1c1c24] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-slate-600 dark:text-slate-300 leading-[18px]",children:"Static"}),i.jsx("span",{className:"rounded bg-slate-100 px-2 py-0.5 text-[11px] font-medium text-slate-500 dark:bg-[#1f1f29] dark:text-slate-400 leading-4",children:"sized for leanest hour"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:_.staticB}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(_.staticH*100).toFixed(1),"% ",i.jsxs("span",{className:"text-slate-500",children:["(tot ",(_.staticH*_.nHedged*100).toFixed(0),"%)"]})]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(_.staticHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",_.staticNoise.toFixed(2),"pp"]})]})]}),i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50/40 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/20",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-emerald-700 dark:text-emerald-300 leading-[18px]",children:"Automatic"}),i.jsx("span",{className:"rounded bg-emerald-100 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-200 leading-4",children:"per-hour sizing"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:_.autoBMin===_.autoBMax?_.autoBMin:`${_.autoBMin}–${_.autoBMax}`}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(_.autoHMin*100).toFixed(1),"–",(_.autoHMax*100).toFixed(1),"%"]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(_.autoHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",_.autoNoise.toFixed(2),"pp"]})]})]})]}),i.jsxs("div",{className:"mt-3 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 text-sm text-slate-700 dark:border-[#1c1c24] dark:bg-[#0b0b10] dark:text-slate-200",children:["Automatic trims ",i.jsx("strong",{className:"font-mono",children:Math.round(_.hedgedSaved).toLocaleString()})," hedged txns/day (≈ ",i.jsx("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:Math.round(_.recovered).toLocaleString()})," recovered approvals) and cuts volume-weighted noise from",i.jsxs("strong",{className:"font-mono",children:[" ±",_.staticNoise.toFixed(2),"pp"]})," → ",i.jsxs("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:["±",_.autoNoise.toFixed(2),"pp"]})," by enlarging buckets in busy hours."," ","Lean-hour refresh is volume-limited, so both stay equal there — the win is the over-hedge trim and busy-hour accuracy."]}),i.jsxs("button",{type:"button",onClick:()=>f(T=>!T),className:"mt-3 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:[d?"Hide":"Show"," per-hour breakdown"]}),d&&i.jsx("div",{className:"mt-2 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-right text-xs tabular-nums",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Hour"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"B (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"h% (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Noise (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Worst refresh (S→A)"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-slate-300",children:_.rows.filter(T=>T.on).map(T=>i.jsxs("tr",{className:"border-b border-slate-100 dark:border-[#141418]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left font-mono",children:[String(T.hour).padStart(2,"0"),":00"]}),i.jsx("td",{className:"py-1 pr-3 font-mono",children:Math.round(T.v).toLocaleString()}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[T.static.bucket," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:T.auto.bucket})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[(T.static.h*100).toFixed(1)," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:(T.auto.h*100).toFixed(1)})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:["±",T.static.noise.toFixed(1)," → ",i.jsxs("span",{className:"text-slate-800 dark:text-slate-100",children:["±",T.auto.noise.toFixed(1)]})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[i.jsx("span",{className:vF(T.static.worstRefresh),children:T.static.worstRefresh.toFixed(0)})," → ",i.jsx("span",{className:vF(T.auto.worstRefresh),children:T.auto.worstRefresh.toFixed(0)}),i.jsx("span",{className:"text-slate-500",children:" min"})]})]},T.hour))})]})})]})})]})}function XLe({merchantId:t}){const{coverage:e,error:n,isLoading:r}=Vj(t),a=!!e&&e.total_clusters>0;return t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-2 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading breakdown…"]}):n?i.jsx("p",{className:"text-sm text-red-600",children:"Failed to load coverage."}):!a||!e?i.jsx("p",{className:"text-sm text-slate-500",children:"The breakdown appears once a settlement report has been fitted."}):i.jsx("div",{className:"space-y-4",children:i.jsx(JLe,{coverage:e})})}function JLe({coverage:t}){const e=[{verdict:"GOOD",note:"trustworthy cost model",dot:"bg-emerald-500",txns:t.good_txns,gross:t.good_gross},{verdict:"Tiered",note:"priced per amount tier — capped or tiered interchange",dot:"bg-sky-500",txns:t.tiered_txns,gross:t.tiered_gross,hideWhenEmpty:!0},{verdict:"THIN",note:"too few txns — safe fallback",dot:"bg-slate-400",txns:t.thin_txns,gross:t.thin_gross},{verdict:"Poor fit",note:"no single rate and no clean tiers — set a contract rate",dot:"bg-amber-500",txns:t.non_linear_txns,gross:t.non_linear_gross,hideWhenEmpty:!0}].filter(a=>!a.hideWhenEmpty||a.txns>0||a.gross>0),n=a=>t.total_txns>0?a/t.total_txns*100:0,r=a=>t.total_gross>0?a/t.total_gross*100:0;return i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[520px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Verdict"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txn %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Vol %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Avg ticket"})]})}),i.jsx("tbody",{children:e.map(a=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsxs("td",{className:"py-2 pr-3",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx("span",{className:`h-2 w-2 rounded-full ${a.dot}`}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-[#c7cfdd]",children:a.verdict})]}),i.jsx("span",{className:"ml-4 text-xs text-slate-500",children:a.note})]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns.toLocaleString()}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[n(a.txns).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:ZLe(a.gross)}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[r(a.gross).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns>0?QLe(a.gross/a.txns):"—"})]},a.verdict))})]})})}function ZLe(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function QLe(t){return t.toLocaleString(void 0,{maximumFractionDigits:0})}const e8e=[{key:"card_network",label:"Network"},{key:"variant",label:"Program"},{key:"funding",label:"Type"},{key:"issuer_country",label:"Country"},{key:"currency",label:"Currency"},{key:"ic_category",label:"Category"},{key:"verdict",label:"Fit"}],t8e="flex w-full items-center justify-between gap-1 rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-700 hover:border-slate-300 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-[#c7cede] dark:hover:border-[#2e3545]",n8e="w-full rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white dark:placeholder:text-[#5c6577]";function r8e({label:t,selected:e,options:n,onChange:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(""),c=g.useRef(null);g.useEffect(()=>{if(!a)return;function h(m){c.current&&!c.current.contains(m.target)&&s(!1)}function p(m){m.key==="Escape"&&s(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[a]);const u=g.useMemo(()=>{const h=o.trim().toLowerCase(),p=h?n.filter(v=>v.value.toLowerCase().includes(h)):n,m=new Set(e);return[...e.filter(v=>!p.some(b=>b.value===v)).map(v=>({dim:"",value:v,txns:0})),...p].slice(0,300).map(v=>({...v,on:m.has(v.value)}))},[n,o,e]);function d(h){r(e.includes(h)?e.filter(p=>p!==h):[...e,h])}const f=e.length===0?t:e.length===1?`${t}: ${e[0]}`:`${t} · ${e.length}`;return i.jsxs("div",{className:"relative",ref:c,children:[i.jsxs("button",{type:"button",className:t8e,"aria-label":`Filter by ${t}`,"aria-expanded":a,onClick:()=>s(h=>!h),children:[i.jsx("span",{className:`truncate ${e.length?"font-medium":"text-slate-500 dark:text-[#78849a]"}`,children:f}),i.jsx(ln,{size:13,className:"shrink-0 opacity-60"})]}),a&&i.jsxs("div",{className:"absolute z-30 mt-1 w-[260px] rounded-lg border border-slate-200 bg-white p-2 shadow-lg dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("input",{autoFocus:!0,className:n8e,value:o,placeholder:`Search ${t.toLowerCase()}…`,onChange:h=>l(h.target.value)}),e.length>0&&i.jsxs("button",{type:"button",className:"mt-1 w-full rounded px-1 py-0.5 text-left text-[11px] text-brand-600 hover:underline dark:text-brand-400 leading-4",onClick:()=>r([]),children:["Clear ",e.length," selected"]}),i.jsxs("div",{className:"mt-1 max-h-56 overflow-y-auto",children:[u.length===0&&i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matching values."}),u.map(h=>i.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 rounded px-1 py-1 text-left text-[12px] text-slate-700 hover:bg-slate-100 dark:text-[#c7cede] dark:hover:bg-[#141a24] leading-4",onClick:()=>d(h.value),children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${h.on?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#39414f]"}`,children:h.on&&i.jsx(gi,{size:10,strokeWidth:3})}),i.jsx("span",{className:"min-w-0 flex-1 truncate",title:h.value,children:h.value}),h.txns>0&&i.jsx("span",{className:"shrink-0 text-[11px] text-slate-500 leading-4",children:h.txns.toLocaleString()})]},h.value))]})]})]})}function HY({filters:t,facets:e,onChange:n,rightSlot:r}){const a=cT(t);return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a>0&&i.jsxs(we,{variant:"ghost",onClick:()=>n({}),children:[i.jsx(Vr,{size:14})," Clear ",a," filter",a===1?"":"s"]}),r]}),i.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-7",children:e8e.map(s=>i.jsx(r8e,{label:s.label,selected:t[s.key]??[],options:e[s.key]??[],onChange:o=>n({...t,[s.key]:o})},s.key))})]})}const wF=[{value:"adyen",label:"Adyen"},{value:"braintree",label:"Braintree"},{value:"chase",label:"Chase"},{value:"checkout",label:"Checkout"},{value:"stripe",label:"Stripe"}],Bs="w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function vo({label:t,hint:e,children:n}){return i.jsxs("label",{className:"block space-y-1.5",children:[i.jsx("span",{className:ks,children:t}),n,e&&i.jsx("span",{className:`block ${pl}`,children:e})]})}const a8e={blue:"bg-blue-50 text-blue-600 dark:bg-blue-500/12 dark:text-blue-300",purple:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300",teal:"bg-teal-50 text-teal-700 dark:bg-teal-500/12 dark:text-teal-300",orange:"bg-orange-50 text-orange-700 dark:bg-orange-500/12 dark:text-orange-300",red:"bg-rose-50 text-rose-600 dark:bg-rose-500/12 dark:text-rose-300",gray:"bg-slate-100 text-slate-600 dark:bg-white/[0.06] dark:text-slate-300"};function GY({variant:t,children:e}){return i.jsx("span",{className:`inline-flex max-w-full items-center truncate rounded-md px-2 py-0.5 text-xs font-semibold ${a8e[t]}`,children:e})}const Bc="w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white disabled:opacity-50",s8e={adyen:"blue",stripe:"purple",checkout:"green","checkout.com":"green",braintree:"orange",authorizenet:"teal","authorize.net":"teal",chase:"blue",paypal:"blue",worldpay:"red"},i8e={visa:"blue",mastercard:"red",amex:"purple","american express":"purple",discover:"orange",ideal:"orange",jcb:"green",diners:"gray",rupay:"green",unionpay:"red"},kF=["blue","purple","green","teal","orange","red"];function o8e(t){let e=0;for(let n=0;n>>0;return kF[e%kF.length]}function l8e(t){const e=t.toLowerCase().trim();return s8e[e]??o8e(e)}function c8e(t){return i8e[t.toLowerCase().trim()]??"gray"}const u8e={usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",inr:"₹",jpy:"¥",aed:"AED "};function zy(t){return t?u8e[t.toLowerCase()]??`${t.toUpperCase()} `:"$"}function CP(t){return t.interchange_bps+t.scheme_bps+t.markup_bps}function vu(t){return`${(t/100).toFixed(2)}%`}function EP(t){return Number.isFinite(t)?Math.round(t/100*1e4)/1e4:0}function AP(t){return Number.isFinite(t)?Math.round(t*100*100)/100:0}function qY(t,e){const n=vu(CP(t));return t.fixed?`${n} + ${zy(t.transaction_currency)}${t.fixed.toFixed(2)}`:n}function iu(t,e,{currency:n,perTxn:r=!1}={}){if(t==null&&e==null)return"—";const a=vu(t??0);return e&&e>0?`${a} + ${zy(n)}${e.toFixed(2)}${r?"/txn":""}`:a}const d8e=["standard","premium","ultra_premium","commercial"];function f8e(t){return{psp:t,card_network:"",payment_method_type:"",card_type:"",transaction_currency:"",card_issuing_country:"",interchange_bps:0,scheme_bps:0,markup_bps:0,fixed:0,label:"",example_amount:null,is_default:!1,effective_pct_bps:0}}function h8e({row:t,busy:e,disabled:n,onEdit:r}){var a;return i.jsxs("tr",{className:"border-b border-slate-100 transition-colors last:border-0 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"px-5 py-3 text-slate-700 dark:text-[#c7cfdd]",children:t.is_default?i.jsx(Me,{variant:"gray",children:"Default"}):t.label||"—"}),i.jsx("td",{className:"py-3 pr-3",children:t.card_network?i.jsx(GY,{variant:c8e(t.card_network),children:t.card_network}):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.payment_method_type||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_type?t.card_type.replace(/_/g," "):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((a=t.transaction_currency)==null?void 0:a.toUpperCase())||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_issuing_country||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.interchange_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.scheme_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.markup_bps)}),i.jsxs("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[zy(t.transaction_currency),t.fixed.toFixed(2)]}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right tabular-nums font-semibold text-brand-700 dark:bg-brand-500/[0.1] dark:text-brand-300",children:qY(t)}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-5 text-right dark:bg-brand-500/[0.1]",children:i.jsx("button",{type:"button",onClick:r,disabled:n||e,title:"Edit scenario","aria-label":"Edit scenario",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-emerald-600 transition-colors hover:bg-emerald-500/10 disabled:opacity-40 dark:text-emerald-400",children:i.jsx(jl,{size:14})})})]})}function p8e({initial:t,isNew:e,busy:n,saveError:r,onSave:a,onRemove:s,onClose:o}){const[l,c]=g.useState(t),[u,d]=g.useState(null),f=g.useRef(null),h=m=>c(x=>({...x,...m}));g.useEffect(()=>{var x;(x=f.current)==null||x.focus();function m(v){v.key==="Escape"&&!n&&o()}return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[n,o]);function p(){if(!l.psp.trim()){d("Enter a connector (PSP).");return}for(const m of[l.interchange_bps,l.scheme_bps,l.markup_bps,l.fixed])if(!Number.isFinite(m)||m<0){d("Fees must be non-negative numbers.");return}d(null),a(l)}return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!n&&o()}),i.jsxs("div",{ref:f,tabIndex:-1,className:"relative w-full max-w-lg rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e?"Add scenario":"Edit scenario"}),i.jsx("button",{type:"button",onClick:o,disabled:n,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Vr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(so,{label:"Scenario name",children:l.is_default?i.jsx("div",{className:"flex h-[34px] items-center",children:i.jsx(Me,{variant:"gray",children:"Default"})}):i.jsx("input",{className:Bc,value:l.label??"",placeholder:"e.g. Visa credit — US",onChange:m=>h({label:m.target.value})})}),i.jsx(so,{label:"PSP",children:i.jsx("div",{className:"flex h-[34px] items-center",children:l.psp?i.jsx(GY,{variant:l8e(l.psp),children:l.psp}):"—"})})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Applies to ",i.jsx("span",{className:"font-normal text-slate-500",children:"(blank = any card)"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(so,{label:"Network",children:i.jsx("input",{className:Bc,value:l.card_network??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_network:m.target.value})})}),i.jsx(so,{label:"Funding",children:i.jsx("input",{className:Bc,value:l.payment_method_type??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({payment_method_type:m.target.value})})}),i.jsx(so,{label:"Program",children:i.jsxs("select",{className:Bc,value:l.card_type??"",disabled:l.is_default,onChange:m=>h({card_type:m.target.value}),children:[i.jsx("option",{value:"",children:"any"}),d8e.map(m=>i.jsx("option",{value:m,children:m},m))]})}),i.jsx(so,{label:"Currency",children:i.jsx("input",{className:`${Bc} uppercase`,value:l.transaction_currency??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({transaction_currency:m.target.value})})}),i.jsx(so,{label:"Region",children:i.jsx("input",{className:Bc,value:l.card_issuing_country??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_issuing_country:m.target.value})})})]})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Fees ",i.jsx("span",{className:"font-normal text-slate-500",children:"(rates in %, fixed per transaction)"})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[i.jsx(so,{label:"Interchange",children:i.jsx(c1,{bps:l.interchange_bps,onChange:m=>h({interchange_bps:m})})}),i.jsx(so,{label:"Scheme",children:i.jsx(c1,{bps:l.scheme_bps,onChange:m=>h({scheme_bps:m})})}),i.jsx(so,{label:"Markup",children:i.jsx(c1,{bps:l.markup_bps,onChange:m=>h({markup_bps:m})})}),i.jsx(so,{label:"Fixed",children:i.jsx(m8e,{value:l.fixed,step:.01,onChange:m=>h({fixed:m})})})]})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg bg-slate-50 px-3 py-2 text-sm dark:bg-[#0b1017]",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#8d96aa]",children:"Effective rate"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-white",children:qY(l)})]}),i.jsx(vt,{error:u??r})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e?i.jsx("span",{}):i.jsxs(we,{variant:"danger",size:"sm",onClick:s,disabled:n,children:[i.jsx(wn,{size:13})," Remove"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:o,disabled:n,children:"Cancel"}),i.jsxs(we,{variant:"primary",size:"sm",onClick:p,disabled:n,children:[n?i.jsx(at,{size:13}):null," Save"]})]})]})]})]})}function so({label:t,children:e}){return i.jsxs("label",{className:"block space-y-1",children:[i.jsx("span",{className:"block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),e]})}function m8e({value:t,step:e=1,onChange:n}){return i.jsx("input",{className:`${Bc} text-right tabular-nums`,type:"number",min:"0",step:e,value:Number.isFinite(t)?t:0,onChange:r=>{const a=parseFloat(r.target.value);n(Number.isFinite(a)?a:0)}})}function c1({bps:t,onChange:e}){const n=EP(t);return i.jsxs("div",{className:"relative",children:[i.jsx("input",{className:`${Bc} pr-6 text-right tabular-nums`,type:"number",min:"0",step:.01,value:n,onChange:r=>{e(AP(parseFloat(r.target.value)))}}),i.jsx("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-500",children:"%"})]})}const g8e=["adyen","stripe","checkout","worldpay","braintree","chase","cybersource"],x8e=2e3,Cb=10,EO={mc:"Mastercard",mastercard:"Mastercard",visa:"Visa",amex:"Amex",mada:"Mada",diners:"Diners",discover:"Discover",jcb:"JCB"};function xl(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function y8e(t){const e=Number(t);return!t||!Number.isFinite(e)||e<=0?"—":vu(e)}function v8e(t){return EO[t.toLowerCase()]??t.toUpperCase()}function b8e(t){var r;if((r=t.card_network)!=null&&r.trim())return v8e(t.card_network);const e=(t.variant??"").trim().toLowerCase();if(!e)return"—";const n=Object.keys(EO).find(a=>e.startsWith(a));return n?EO[n]:xl(e)}function nx(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function jF(t){const e=t.toUpperCase();return e==="GOOD"?"green":e==="THIN"?"orange":"red"}function KY(t){var e;return(e=t.find(({row:n})=>n.is_default)??t[0])==null?void 0:e.row}function YY(t,e){return(t==null?void 0:t.source)==="override"?"override":(t==null?void 0:t.model_pct_bps)!=null?"reports":e?"contract":"none"}const XY={override:"MANUAL OVERRIDE",reports:"FROM REPORTS",contract:"CONTRACT BASELINE",none:"NO FEE SET"},w8e={indigo:"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/12 dark:text-indigo-300",violet:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",slate:"bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-slate-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300"};function p2({tone:t,children:e}){return i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-md px-2 py-1 text-[11px] font-semibold uppercase tracking-wide ${w8e[t]} leading-4`,children:e})}const JY={override:"violet",reports:"indigo",contract:"slate",none:"slate"};function k8e({merchantId:t}){const{fees:e,isLoading:n,error:r,mutate:a}=vH(t),[s,o]=g.useState({}),{clusters:l,mutate:c}=uT(t,{limit:x8e,order:"gross_sum",filters:s}),{facets:u}=bH(t),{rows:d,error:f,mutate:h}=kH(t),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(null),[k,S]=g.useState(!1),[_,C]=g.useState(null),[E,P]=g.useState(!1),R=g.useMemo(()=>{const de=new Map;for(const Q of l){const fe=de.get(Q.connector);fe?fe.push(Q):de.set(Q.connector,[Q])}return de},[l]),A=g.useMemo(()=>{const de=new Map;return d.forEach((Q,fe)=>{const ne=de.get(Q.psp);ne?ne.push({row:Q,index:fe}):de.set(Q.psp,[{row:Q,index:fe}])}),de},[d]),T=e.map(de=>de.connector),D=new Set(T),L=Array.from(A.keys()).filter(de=>de&&!D.has(de)),X=[...T,...L],J=new Set([...D,...A.keys()]),U=g8e.filter(de=>!J.has(de)),Y=p&&X.includes(p)?p:X[0]??null,W=e.find(de=>de.connector===Y),G=Y?A.get(Y)??[]:[],I=Y?R.get(Y)??[]:[];async function q(){await Promise.all([a(),c(),h()])}function M(de){m(de),v(null)}async function B(de){if(t){S(!0),C(null);try{await BEe(t,de),await h(),j(null)}catch(Q){C(Q instanceof Error?Q.message:"Failed to save contract rates")}finally{S(!1)}}}function z(de){if(!w)return;const Q=w.index===null?[...d,de]:d.map((fe,ne)=>ne===w.index?de:fe);B(Q)}function Z(){!w||w.index===null||B(d.filter((de,Q)=>Q!==w.index))}async function pe(){if(t){P(!0),C(null);try{await zEe(t),await h()}catch(de){C(de instanceof Error?de.message:"Failed to reset contract rates")}finally{P(!1)}}}function ae(de){const Q=e.find(ne=>ne.connector===de),fe=KY(A.get(de)??[]);y({connector:de,isNew:!1,initialPctBps:(Q==null?void 0:Q.override_pct_bps)??(Q==null?void 0:Q.model_pct_bps)??(fe?CP(fe):0),initialFixed:(Q==null?void 0:Q.override_fixed)??(Q==null?void 0:Q.model_fixed)??(fe==null?void 0:fe.fixed)??0,canClear:(Q==null?void 0:Q.source)==="override"})}const ue=d.length>0;return i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Costs"}),i.jsx("p",{className:"mt-1 max-w-2xl text-sm text-slate-500 dark:text-[#9ca7ba]",children:"What each connector costs at decide time, and where that number comes from. Pick a connector to override a learned fee or edit its contract baseline."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[t&&ue&&i.jsxs(we,{variant:"secondary",size:"sm",onClick:pe,disabled:E,children:[E?i.jsx(at,{size:13}):i.jsx(FW,{size:13})," Reset contract rates"]}),t&&U.length>0&&i.jsxs(we,{variant:"primary",size:"sm",onClick:()=>y({connector:U[0],connectors:U,isNew:!0,initialPctBps:0,initialFixed:0,canClear:!1}),children:[i.jsx(Qn,{size:14})," Add connector"]})]})]}),i.jsx(j8e,{}),t?n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading connectors…"]}):X.length===0?i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500 max-w-[57ch]",children:"No connectors yet. Add one to set its fee or contract baseline, or configure ingestion below to learn fees from settlement reports."})}):i.jsxs(i.Fragment,{children:[i.jsx(Te,{className:"!rounded-2xl overflow-hidden",children:i.jsx("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c23]",children:X.map(de=>{const Q=e.find(ne=>ne.connector===de),fe=A.get(de)??[];return i.jsx(S8e,{connector:de,fee:Q,clusters:R.get(de)??[],seedRows:fe,isSelected:de===Y,onSelect:()=>M(de),onEditFee:()=>ae(de)},de)})})}),Y&&i.jsx(_8e,{merchantId:t,connector:Y,fee:W,clusters:I,seedRows:G,filters:s,facets:u,onFiltersChange:o,editingKey:x,setEditingKey:v,onRefresh:q,onAddScenario:()=>{C(null),j({connector:Y,index:null,row:f8e(Y)})},onEditScenario:de=>{C(null),j({connector:Y,index:de,row:{...d[de]}})}})]}):i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500",children:"Set a merchant ID to view connector costs."})}),i.jsx("p",{className:"px-1 text-xs text-slate-500 max-w-[57ch]",children:"Rates are a percentage of the transaction amount; fit error stays in basis points (100 bps = 1%) because it is a residual, not a rate. Contract-baseline rates are the last-resort fallback used when a connector has no learned or overridden fee."}),i.jsx(vt,{error:_??(r instanceof Error?r.message:r?"Failed to load connectors":null)??(f instanceof Error?f.message:f?"Failed to load contract rates":null)}),b&&t&&i.jsx(E8e,{merchantId:t,state:b,onClose:()=>y(null),onSaved:async()=>{y(null),await q()}}),w&&i.jsx(p8e,{initial:w.row,isNew:w.index===null,busy:k,saveError:_,onSave:z,onRemove:Z,onClose:()=>{j(null),C(null)}})]})}function j8e(){const t=["override","reports","contract"];return i.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa]",children:"Active fee"}),i.jsx("span",{className:"text-sm font-semibold text-slate-400 dark:text-[#5c6577]",children:"="}),t.map((e,n)=>i.jsxs(g.Fragment,{children:[n>0&&i.jsx(ju,{size:13,"aria-hidden":"true",className:"text-slate-300 dark:text-[#3a3a44]"}),i.jsx(p2,{tone:JY[e],children:XY[e]})]},e)),i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:"— the first one set wins."})]})}function S8e({connector:t,fee:e,clusters:n,seedRows:r,isSelected:a,onSelect:s,onEditFee:o}){var h;const l=KY(r),c=YY(e,r.length>0),u=(e==null?void 0:e.effective_pct_bps)??(l?CP(l):null),d=(e==null?void 0:e.effective_fixed)??(l==null?void 0:l.fixed)??null,f=(l==null?void 0:l.transaction_currency)||((h=n[0])==null?void 0:h.currency)||null;return i.jsxs("div",{role:"button",tabIndex:0,"aria-pressed":a,onClick:s,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),s())},className:`relative flex cursor-pointer items-center gap-3 px-5 py-3.5 transition-colors ${a?"bg-brand-500/[0.06] dark:bg-brand-500/[0.09]":"hover:bg-slate-50 dark:hover:bg-[#0f131b]"}`,children:[a&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-1 bg-brand-500","aria-hidden":!0}),i.jsx("p",{className:"w-28 shrink-0 truncate text-sm font-semibold text-slate-900 dark:text-white",children:xl(t)}),i.jsx(p2,{tone:JY[c],children:XY[c]}),(e==null?void 0:e.account)&&i.jsxs("p",{className:"hidden min-w-0 truncate text-xs text-slate-500 dark:text-[#8d96aa] sm:block",children:["Account ",e.account]}),i.jsx("span",{className:"ml-auto shrink-0 tabular-nums text-sm font-semibold text-slate-900 dark:text-white",children:iu(u,d,{currency:f,perTxn:!0})}),i.jsx("button",{type:"button",onClick:p=>{p.stopPropagation(),o()},title:"Set a manual override for this connector","aria-label":`Set a manual override for ${xl(t)}`,className:"shrink-0 rounded-md border border-transparent p-1 text-slate-400 transition-colors hover:border-brand-500/40 hover:bg-brand-500/10 hover:text-brand-600 dark:text-[#78849a] dark:hover:text-brand-400",children:i.jsx(jl,{size:14})}),i.jsx(So,{size:16,"aria-hidden":"true",className:`shrink-0 ${a?"text-brand-500":"text-slate-300 dark:text-[#3a3a44]"}`})]})}function _8e({merchantId:t,connector:e,fee:n,clusters:r,seedRows:a,filters:s,facets:o,onFiltersChange:l,editingKey:c,setEditingKey:u,onRefresh:d,onAddScenario:f,onEditScenario:h}){const[p,m]=g.useState(null),x=p??(r.length>0?"reports":"contract"),[v,b]=g.useState(0);g.useEffect(()=>{m(null),b(0)},[e]),g.useEffect(()=>{b(0)},[x]);const y=YY(n,a.length>0),w=x==="reports"?r.length:a.length,j=Math.max(1,Math.ceil(w/Cb)),k=Math.min(v,j-1),S=k*Cb,_=r.slice(S,S+Cb),C=a.slice(S,S+Cb),E=r.reduce((D,L)=>D+L.gross_sum,0),P=r.reduce((D,L)=>D+L.n,0),R=x==="reports"?_.length:C.length,A=x==="reports"?"active learned fees":"contract scenarios",T=w===0?`No ${A}`:j>1?`Showing ${S+1}–${S+R} of ${w} ${A}`:`Showing ${w} ${A}`;return i.jsxs(Te,{className:"!rounded-2xl overflow-hidden",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("span",{className:"h-4 w-1 rounded-full bg-brand-500","aria-hidden":!0}),i.jsxs("h3",{className:"text-base font-semibold text-slate-900 dark:text-white",children:[xl(e)," Detail"]}),i.jsx(p2,{tone:y==="none"?"slate":"green",children:y==="none"?"NO FEE":"ACTIVE"}),r.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:[nx(E)," settled · ",P.toLocaleString()," txns"]})]}),i.jsxs("div",{className:"flex items-center gap-1 rounded-lg border border-slate-200 bg-slate-50 p-1 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsxs(SF,{active:x==="reports",onClick:()=>m("reports"),children:["From reports (",r.length,")"]}),i.jsxs(SF,{active:x==="contract",onClick:()=>m("contract"),children:["Contract baseline (",a.length,")"]})]})]}),x==="reports"?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:i.jsx(HY,{filters:s,facets:o,onChange:l})}),r.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:bg-[#0e131b] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"w-16 py-2 pl-5 pr-3"}),i.jsx("th",{className:"w-28 py-2 pr-3 text-left font-semibold",children:"Network"}),i.jsx("th",{className:"w-24 py-2 pr-3 text-left font-semibold",children:"Type"}),i.jsx("th",{className:"w-16 py-2 pr-3 text-left font-semibold",children:"Country"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-left font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 text-left font-semibold",children:"Category"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),i.jsx("th",{className:"py-2 pr-5"})]})}),i.jsx("tbody",{children:_.map(D=>i.jsx(C8e,{merchantId:t,c:D,isEditing:c===D.key,editingActive:c!==null,onEdit:()=>u(D.key),onCancel:()=>u(null),onSaved:async()=>{u(null),await d()}},D.key))})]})}):i.jsx("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:cT(s)>0?"No segments match these filters — clear one to widen the search.":`No settlement data yet for ${xl(e)}. Ingest a report below to learn its fees, or set a contract baseline.`})]}):i.jsx(N8e,{connector:e,rows:C,onAdd:f,onEdit:h}),i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:T}),j>1&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:["Page ",k+1," of ",j]}),i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>b(k-1),disabled:k===0,children:"Previous"}),i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>b(k+1),disabled:k>=j-1,children:"Next"})]})]})]})}function SF({active:t,onClick:e,children:n}){return i.jsx("button",{type:"button",onClick:e,"aria-current":t?"true":void 0,className:`rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors ${t?"bg-white text-brand-600 shadow-sm dark:bg-[#161c26] dark:text-brand-400":"text-slate-500 hover:text-slate-700 dark:text-[#8d96aa] dark:hover:text-white"} leading-[18px]`,children:n})}function N8e({connector:t,rows:e,onAdd:n,onEdit:r}){return i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#232833]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-2.5",children:[i.jsxs("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:["Your contract rate per card scenario — the last-resort fallback when ",xl(t)," ","has no learned or overridden fee. A blank dimension matches any card."]}),i.jsxs(we,{variant:"secondary",size:"sm",onClick:n,children:[i.jsx(Qn,{size:13})," Add scenario"]})]}),e.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[12px] font-semibold text-slate-500 dark:border-[#232833] dark:bg-[#0b0e14] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"px-5 py-3",children:"Scenario"}),i.jsx("th",{className:"py-3 pr-3",children:"Network"}),i.jsx("th",{className:"py-3 pr-3",children:"Funding"}),i.jsx("th",{className:"py-3 pr-3",children:"Program"}),i.jsx("th",{className:"py-3 pr-3",children:"Currency"}),i.jsx("th",{className:"py-3 pr-3",children:"Region"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Interchange"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Scheme"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Markup"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Fixed"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right dark:bg-brand-500/[0.1]",children:"Total rate"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-5 dark:bg-brand-500/[0.1]"})]})}),i.jsx("tbody",{children:e.map(({row:a,index:s})=>i.jsx(h8e,{row:a,busy:!1,disabled:!1,onEdit:()=>r(s)},s))})]})}):i.jsxs("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:["No contract baseline for ",xl(t)," yet. Add a scenario to price it when no learned data is available."]})]})}function C8e({merchantId:t,c:e,isEditing:n,editingActive:r,onEdit:a,onCancel:s,onSaved:o}){var E,P,R;const l=e.source==="override",c=(((E=e.segments)==null?void 0:E.length)??0)>0,u=()=>String(EP(e.effective_pct_bps??e.override_pct_bps??e.model_pct_bps??0)),d=()=>String(e.effective_fixed??e.override_fixed??e.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(!1),[k,S]=g.useState(!1);g.useEffect(()=>{n&&(h(u()),m(d()),y(null))},[n]);async function _(){const A=parseFloat(f),T=parseFloat(p);if(!isFinite(A)||A<0||!isFinite(T)||T<0){y("Enter non-negative numbers for the rate and fixed fee.");return}v("save"),y(null);try{await wH(t,e.key,{pct_bps:AP(A),fixed:T}),await o()}catch(D){y(D instanceof Error?D.message:"Failed to save fee")}finally{v(null)}}async function C(){v("clear"),y(null);try{await FEe(t,e.key),await o()}catch(A){y(A instanceof Error?A.message:"Failed to clear override")}finally{v(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 hover:bg-slate-50/70 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"w-16 py-3.5 pl-5 pr-3",children:i.jsx("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-lg bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-[#8d96aa]",children:i.jsx(FNe,{size:15})})}),i.jsx("td",{className:"w-28 py-3.5 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:b8e(e)}),i.jsx("td",{className:"w-24 py-3.5 pr-3 font-semibold capitalize text-slate-800 dark:text-white",children:e.funding||"—"}),i.jsx("td",{className:"w-16 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((P=e.issuer_country)==null?void 0:P.toUpperCase())||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((R=e.currency)==null?void 0:R.toUpperCase())||"—"}),i.jsx("td",{className:"py-3.5 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:e.ic_category||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 text-right tabular-nums font-medium text-slate-600 dark:text-[#9ca7ba]",children:e.n.toLocaleString()}),i.jsx("td",{className:"py-3.5 pr-3 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${_F} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:A=>h(A.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${_F} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:A=>m(A.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[c&&i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[e.segments.length," tiers"]}),l&&i.jsx(p2,{tone:"indigo",children:"OVERRIDE"}),i.jsxs("div",{children:[i.jsx("span",{className:`block tabular-nums font-semibold ${l?"text-brand-600 dark:text-brand-400":"text-slate-800 dark:text-[#c7cfdd]"}`,children:iu(e.effective_pct_bps,e.effective_fixed,{currency:e.currency})}),l&&e.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:iu(e.model_pct_bps,e.model_fixed,{currency:e.currency})})]})]})}),i.jsx("td",{className:"w-[120px] py-3.5 pr-5 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:_,disabled:x!==null,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(at,{size:13}):i.jsx(gi,{size:14})}),l&&i.jsx("button",{type:"button",onClick:C,disabled:x!==null,title:"Remove override","aria-label":"Remove override",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-rose-50 hover:text-rose-600 disabled:opacity-40 dark:hover:bg-rose-500/10",children:x==="clear"?i.jsx(at,{size:13}):i.jsx(Vr,{size:14})}),!l&&i.jsx("button",{type:"button",onClick:s,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{className:"flex items-center justify-end gap-0.5",children:[i.jsx(tN,{title:"Edit segment fee",disabled:r,onClick:a,icon:i.jsx(jl,{size:15})}),i.jsx(tN,{title:"Show the evidence behind this fee",expanded:k,onClick:()=>S(A=>!A),icon:i.jsx(jf,{size:15})}),c&&i.jsx(tN,{title:"Show per-segment rates",expanded:w,onClick:()=>j(A=>!A),icon:w?i.jsx(ln,{size:16,className:"text-brand-600 dark:text-brand-400"}):i.jsx(So,{size:16,className:"text-brand-600 dark:text-brand-400"})})]})})]}),k&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsx("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:i.jsxs("div",{className:"flex flex-wrap gap-x-10 gap-y-3 rounded-lg border border-slate-200 bg-white px-4 py-3 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx(Eg,{label:"Learned",value:iu(e.model_pct_bps,e.model_fixed,{currency:e.currency})}),i.jsx(Eg,{label:"Override",value:e.override_pct_bps!=null?iu(e.override_pct_bps,e.override_fixed,{currency:e.currency}):"—"}),i.jsx(Eg,{label:"Txns",value:e.n.toLocaleString()}),i.jsx(Eg,{label:"Volume",value:nx(e.gross_sum)}),i.jsx(Eg,{label:"Program",value:y8e(e.card_product)}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fit"}),i.jsx("div",{className:"mt-1",children:e.verdict?i.jsx(Me,{variant:jF(e.verdict),children:e.verdict}):i.jsx("span",{className:"text-[13px] text-slate-500 leading-[18px]",children:"no fitted rate"})})]})]})})}),w&&c&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsxs("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:[i.jsx("p",{className:"mb-0.5 text-sm font-semibold text-slate-700 dark:text-[#c7cfdd]",children:"Per-segment rates"}),i.jsx("p",{className:"mb-2 text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:"Optimized tiers dynamically calculated based on historical card activity and fit-error thresholds."}),i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 bg-white dark:border-[#232833] dark:bg-[#0b0e14]",children:i.jsxs("table",{className:"w-full min-w-[560px] text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Amount range"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:e.segments.map(A=>i.jsxs("tr",{className:"border-b border-slate-100 tabular-nums text-slate-600 last:border-0 dark:border-[#1c1c23] dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"px-3 py-2 text-left",children:[nx(A.lo)," - ",nx(A.hi)]}),i.jsx("td",{className:"py-2 pr-3 text-right font-medium",children:A.pct_bps!=null?vu(A.pct_bps):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.fixed!=null?`${zy(e.currency)}${A.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.n.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right",children:nx(A.gross_sum)}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.bps_rmse!=null?A.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:i.jsx(Me,{variant:jF(A.verdict),children:A.verdict})})]},A.seg_idx))})]})})]})}),n&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:9,className:"px-5 pb-2",children:i.jsx(vt,{error:b})})})]})}function tN({title:t,icon:e,onClick:n,disabled:r=!1,expanded:a}){return i.jsx("button",{type:"button",onClick:n,disabled:r,title:t,"aria-label":t,"aria-expanded":a,className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:opacity-40 dark:hover:bg-[#121214] dark:hover:text-white",children:e})}function Eg({label:t,value:e}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("p",{className:"mt-1 truncate text-[13px] tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd] leading-[18px]",children:e})]})}const _F="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function E8e({merchantId:t,state:e,onClose:n,onSaved:r}){const[a,s]=g.useState(e.connector),[o,l]=g.useState(e.initialPctBps),[c,u]=g.useState(String(e.initialFixed)),[d,f]=g.useState(null),[h,p]=g.useState(null);g.useEffect(()=>{function y(w){w.key==="Escape"&&!d&&n()}return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[d,n]);async function m(){const y=parseFloat(c);if(o<0||!isFinite(y)||y<0){p("Enter non-negative numbers for the rate and fixed fee.");return}f("save"),p(null);try{await $Ee(t,a,{pct_bps:o,fixed:y}),await r()}catch(w){p(w instanceof Error?w.message:"Failed to save fee")}finally{f(null)}}async function x(){f("clear"),p(null);try{await LEe(t,a),await r()}catch(y){p(y instanceof Error?y.message:"Failed to clear override")}finally{f(null)}}const v="block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa]";return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!d&&n()}),i.jsxs("div",{className:"relative w-full max-w-md rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e.isNew?"Add connector fee":`${xl(a)} manual override`}),i.jsx("button",{type:"button",onClick:n,disabled:d!==null,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Vr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-4",children:[e.isNew&&e.connectors&&i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Connector"}),i.jsx("select",{className:`${Bs} mt-1`,value:a,onChange:y=>s(y.target.value),children:e.connectors.map(y=>i.jsx("option",{value:y,children:xl(y)},y))})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Rate"}),i.jsx("div",{className:"mt-1",children:i.jsx(c1,{bps:o,onChange:l})})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Fixed per txn"}),i.jsx("input",{className:"mt-1 w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",type:"number",step:"0.01",min:"0",value:c,onChange:y=>u(y.target.value)})]})]}),i.jsxs("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:["Applied to every economic-value calculation for ",xl(a)," from now on, overriding the learned model and contract baseline for this connector."]}),i.jsx(vt,{error:h})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.canClear?i.jsxs(we,{variant:"danger",size:"sm",onClick:x,disabled:d!==null,children:[d==="clear"?i.jsx(at,{size:13}):null," Remove override"]}):i.jsx("span",{}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:n,disabled:d!==null,children:"Cancel"}),i.jsxs(we,{variant:"primary",size:"sm",onClick:m,disabled:d!==null,children:[d==="save"?i.jsx(at,{size:13}):null," Save fee"]})]})]})]})]})}function A8e({merchantId:t}){const{sources:e,mutate:n}=UEe(t),[r,a]=g.useState("adyen"),[s,o]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(null);function k(){c(""),d("")}function S(){h(null),o(""),k()}const _=r==="checkout",C=_?"Checkout":"Adyen",E=t?QNe(`/webhooks/settlement/${encodeURIComponent(t)}/${r}`):null;async function P(){if(!t){y("Set a merchant ID first");return}if(!s||!l||!u){y("Account, webhook secret and download auth are all required");return}const T={account:s,webhook_secret:l,download_auth:u};m(!0),y(null),j(null);try{await VEe(t,r,T),j(`Saved credentials for ${r} / ${s}.`),S(),await n()}catch(D){y(D instanceof Error?D.message:"Failed to save credentials")}finally{m(!1)}}function R(T){h(T),a(T.connector),o(T.account),c(""),d(""),y(null),j(null)}async function A(T){if(!t||!window.confirm(`Delete credentials for ${T.connector} / ${T.account}?`))return;const D=`${T.connector}:${T.account}`;v(D),y(null),j(null);try{await WEe(t,T.connector,T.account),f&&s===T.account&&r===T.connector&&S(),await n()}catch(L){y(L instanceof Error?L.message:"Failed to delete credentials")}finally{v(null)}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(X3,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Settlement report access"})})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsx(vo,{label:"Connector",children:i.jsxs("select",{className:Bs,value:r,onChange:T=>{a(T.target.value),y(null)},children:[i.jsx("option",{value:"adyen",children:"Adyen"}),i.jsx("option",{value:"checkout",children:"Checkout"})]})}),E&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("span",{className:`block ${ks}`,children:"Webhook URL"}),i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsx("code",{className:"min-w-0 flex-1 break-all font-mono text-[13px] text-slate-700 dark:text-[#c7cfdd]",children:E}),i.jsx(Fy,{text:E,size:14,label:"Copy webhook URL",className:"mt-0.5"})]}),i.jsxs("span",{className:`block ${pl}`,children:["Register this in your ",C," dashboard as the settlement-report notification endpoint. It's public - deliveries are authenticated by the webhook secret below."]})]}),i.jsx(vo,{label:"Account",hint:f?"Editing an existing source — account is locked":_?"Checkout entity id the report relates to (ent_…)":"Connector-side account (e.g. Adyen merchantAccountCode)",children:i.jsx("input",{className:Bs,value:s,onChange:T=>o(T.target.value),placeholder:_?"ent_r7nge7vl53crsa3ozjxzoiykj4":"AcmeMerchantEU",disabled:f!==null})}),i.jsx(vo,{label:"Webhook secret",hint:f?"Enter a new value to replace the stored secret":_?"Checkout webhook signature key (HMAC-SHA256 over the raw body, sent as Cko-Signature)":"Used to verify inbound webhook signatures (HMAC key)",children:i.jsx("input",{className:Bs,type:"password",value:l,onChange:T=>c(T.target.value),placeholder:(f==null?void 0:f.webhook_secret_hint)||"••••••••"})}),i.jsx(vo,{label:"Report download auth",hint:f?"Enter a new value to replace the stored auth":_?'Checkout secret key (sk_…). Or JSON {"secret_key":"sk_…","api_base_url":"…"} for a sandbox/regional host.':"Report-user Basic auth as user:password, or a Report Service API key on its own",children:i.jsx("input",{className:Bs,type:"password",value:u,onChange:T=>d(T.target.value),placeholder:(f==null?void 0:f.download_auth_hint)||"••••••••"})}),i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(we,{onClick:P,disabled:!t||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Saving..."]}):f?"Update credentials":"Save credentials"}),f&&i.jsx(we,{variant:"ghost",size:"sm",onClick:S,disabled:p,children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:"Secrets are encrypted at rest."})]}),i.jsx(vt,{error:b}),w&&i.jsx("p",{className:"text-sm text-emerald-700",children:w}),e.length>0&&i.jsxs("div",{className:"mt-2 border-t border-slate-100 pt-4 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Configured"}),i.jsx("ul",{className:"mt-2 space-y-1 text-sm text-slate-600 dark:text-[#9ca7ba]",children:e.map(T=>{const D=`${T.connector}:${T.account}`;return i.jsxs("li",{className:"flex items-center justify-between gap-2 py-0.5",children:[i.jsxs("span",{children:[T.connector," · ",T.account]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",title:"Edit credentials",onClick:()=>R(T),className:"rounded p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(jl,{size:14})}),i.jsx("button",{type:"button",title:"Delete credentials",disabled:x===D,onClick:()=>A(T),className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:x===D?i.jsx(at,{size:14}):i.jsx(wn,{size:14})})]})]},D)})})]})]})]})}function O8e({merchantId:t,connector:e,account:n,preflight:r,sampleText:a,truncated:s,initialMapping:o,onSaved:l,onCancel:c}){const[u,d]=g.useState(o??{}),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(!1),[b,y]=g.useState(null),[w,j]=g.useState(!1),k=g.useMemo(()=>P8e(a,r.found),[a,r.found]);g.useEffect(()=>{if(o&&Object.keys(o).length>0)return;const A=new Set,T={};for(const D of r.missing){const L=R8e(D,r.found,A);L&&(T[D]=L,A.add(L))}Object.keys(T).length>0&&d(D=>({...T,...D}))},[r.missing,r.found,o]);const S=r.missing.filter(A=>!u[A]),_=S.length===0,C=g.useCallback((A,T)=>{h(null),y(null),d(D=>{const L={...D};return T?L[A]=T:delete L[A],L})},[]),E=new Set(Object.values(u));async function P(){m(!0),y(null);try{h(await qEe(t,e,u,a,s))}catch(A){h(null),y(A instanceof Error?A.message:"Could not preview this mapping")}finally{m(!1)}}async function R(){v(!0),y(null);try{await YEe(t,e,n,u,a,s),l()}catch(A){y(A instanceof Error?A.message:"Could not save this mapping")}finally{v(!1)}}return i.jsxs("div",{className:"space-y-4 rounded-lg border border-amber-200 bg-amber-50/50 p-4 dark:border-amber-900/40 dark:bg-amber-950/20",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(wm,{size:16,className:"mt-0.5 shrink-0 text-amber-700"}),i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-slate-800 dark:text-white",children:["This file's columns don't match ",e]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#9ca7ba] max-w-[57ch]",children:[r.missing.length," required"," ",r.missing.length===1?"column is":"columns are"," missing. Map them to the matching columns in your file below — we'll remember this mapping for future"," ",e," / ",n," reports."]})]})]}),r.suggested_connectors.length>0&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-900/40 dark:bg-blue-950/30",children:[i.jsx(qu,{size:15,className:"mt-0.5 shrink-0 text-blue-600"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-300",children:["This file matches all"," ",r.suggested_connectors[0].matched_required," columns of"," ",i.jsx("strong",{children:r.suggested_connectors[0].connector}),". If it's a"," ",r.suggested_connectors[0].connector," report, switch the connector above instead of mapping columns — mapping it as ",e," would produce a wrong cost model."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] gap-3 px-1 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:[i.jsx("span",{children:"Your column"}),i.jsx("span",{}),i.jsxs("span",{children:["Maps to (",e,")"]})]}),r.missing.map(A=>{const T=u[A]??"",D=T?k[T]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Bs,value:T,onChange:L=>C(A,L.target.value),children:[i.jsx("option",{value:"",children:"— Select your column —"}),r.found.map(L=>i.jsx("option",{value:L,disabled:E.has(L)&&L!==T,children:L},L))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:T?D?`e.g. ${D}`:"no example value in this file":" "})]}),i.jsx(ju,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm font-medium text-slate-700 dark:border-[#232833] dark:bg-[#141a24] dark:text-[#c7cfdd]",children:A}),i.jsx("p",{className:"mt-1 text-xs text-amber-700 dark:text-amber-500",children:"Required"})]})]},A)})]}),r.optional_missing.length>0&&i.jsxs("details",{className:"rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("summary",{className:"cursor-pointer text-sm text-slate-600 dark:text-[#9ca7ba]",children:[r.optional_missing.length," optional"," ",r.optional_missing.length===1?"column is":"columns are"," also missing — not required, but they improve the model"]}),i.jsx("div",{className:"mt-3 space-y-2",children:r.optional_missing.map(A=>{const T=u[A]??"",D=T?k[T]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-100 p-2 dark:border-[#1a1f29]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Bs,value:T,onChange:L=>C(A,L.target.value),children:[i.jsx("option",{value:"",children:"— Not in my file —"}),r.found.map(L=>i.jsx("option",{value:L,disabled:E.has(L)&&L!==T,children:L},L))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:T&&D?`e.g. ${D}`:" "})]}),i.jsx(ju,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx($a,{tone:"info",children:A}),i.jsx("p",{className:"mt-1 text-xs text-slate-500",children:"Optional"})]})]},A)})})]}),r.matched.length>0&&i.jsxs("div",{children:[i.jsxs("button",{type:"button",onClick:()=>j(A=>!A),className:"flex items-center gap-1.5 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(gi,{size:14,className:"text-emerald-700"}),r.matched.length," required"," ",r.matched.length===1?"column":"columns"," already matched",i.jsx("span",{className:"text-xs",children:w?"▲":"▼"})]}),w&&i.jsx("ul",{className:"mt-2 grid gap-1 sm:grid-cols-2",children:r.matched.map(A=>i.jsxs("li",{className:"flex items-center gap-2 rounded-md bg-white px-2.5 py-1.5 text-xs text-slate-600 dark:bg-[#0b1017] dark:text-[#9ca7ba]",children:[i.jsx(gi,{size:12,className:"shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate",children:A})]},A))})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[i.jsx(we,{variant:"secondary",onClick:P,disabled:!_||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Checking…"]}):"Preview result"}),i.jsx(we,{onClick:R,disabled:!f||x,children:x?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Saving…"]}):"Save mapping"}),i.jsx("button",{type:"button",onClick:c,className:"text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:_?f?"Applied to this and future reports for this account":"Preview your mapping before saving":`${S.length} still to map`})]}),i.jsx(vt,{error:b}),f&&i.jsx(T8e,{preview:f})]})}function T8e({preview:t}){return i.jsxs("div",{className:"space-y-2 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium text-slate-700 dark:text-[#c7cfdd]",children:"Result of this mapping"}),t.median_effective_pct!=null&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#9ca7ba]",children:["median effective fee"," ",i.jsxs("strong",{className:"text-slate-700 dark:text-white",children:[t.median_effective_pct.toFixed(3),"%"]})]})]}),t.warning&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-900/40 dark:bg-red-950/30",children:[i.jsx(wm,{size:15,className:"mt-0.5 shrink-0 text-red-600"}),i.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:t.warning})]}),t.rows.length>0?i.jsxs("div",{className:"overflow-x-auto",children:[i.jsxs("table",{className:"w-full text-left text-xs",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{children:[i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Network"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Currency"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Gross"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fee"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Effective"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-[#c7cfdd]",children:t.rows.map((e,n)=>i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1f29]",children:[i.jsx("td",{className:"py-1 pr-3",children:e.card_network||"—"}),i.jsx("td",{className:"py-1 pr-3",children:e.currency||"—"}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.gross.toFixed(2)}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.total_fee.toFixed(2)}),i.jsxs("td",{className:"py-1 text-right tabular-nums",children:[e.effective_pct.toFixed(3),"%"]})]},n))})]}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 max-w-[57ch]",children:"Gross, Fee and Effective are derived from the columns you mapped — check they look right for your business before saving."})]}):i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba]",children:"No rows were produced from this file sample."})]})}function P8e(t,e){const n={};if(e.length===0)return n;const r=t.split(/\r?\n/),a=r.findIndex(o=>{const l=NF(o);return l.length===e.length&&l[0]===e[0]});if(a<0)return n;const s=NF(r[a+1]??"");return e.forEach((o,l)=>{const c=(s[l]??"").trim();c&&(n[o]=c.length>40?`${c.slice(0,40)}…`:c)}),n}function NF(t){const e=[];let n="",r=!1;for(let a=0;a0&&(e[0]=e[0].replace(/^/,"")),e}function R8e(t,e,n){const r=CF(t);if(r.length===0)return;let a,s=0;for(const o of e){if(n.has(o))continue;const l=new Set(CF(o)),u=r.filter(d=>l.has(d)).length/r.length;u>s&&(s=u,a=o)}return s>.5?a:void 0}function CF(t){return t.toLowerCase().replace(/\(.*?\)/g," ").split(/[^a-z0-9]+/).filter(e=>e.length>1)}const M8e="development".trim().toLowerCase(),OP=M8e==="production",TP=!OP,PP=!OP,EF=!OP;function D8e({merchantId:t}){var z;const{mutate:e}=Vj(t),{ingestions:n,mutate:r}=dT(t),a=g.useRef(null),[s,o]=g.useState(EF?"sample":"upload"),[l,c]=g.useState("adyen"),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(0),[b,y]=g.useState(null),[w,j]=g.useState(null),[k,S]=g.useState(null),[_,C]=g.useState(""),[E,P]=g.useState(!1),[R,A]=g.useState(!1),[T,D]=g.useState(!1),{connectors:L}=KEe(),X=(L.length>0?L.map(Z=>Z.id):wF.map(Z=>Z.value)).map(Z=>{var pe;return{value:Z,label:((pe=wF.find(ae=>ae.value===Z))==null?void 0:pe.label)??Z.charAt(0).toUpperCase()+Z.slice(1)}}),J=((z=X.find(Z=>Z.value===l))==null?void 0:z.label)??l,U=w!=null?n.find(Z=>Z.id===w):void 0;g.useEffect(()=>{(U==null?void 0:U.status)==="completed"&&e()},[U==null?void 0:U.status,e]),g.useEffect(()=>{f&&Y(f)},[l,u]);const Y=g.useCallback(async Z=>{if(t){D(!0),S(null),y(null);try{const pe=Z.slice(0,aL),ae=await pe.text();C(ae),P(Z.size>aL),A(!1),S(await GEe(t,l,pe,u||void 0))}catch(pe){S(null),y(pe instanceof Error?pe.message:"Could not check this file’s columns")}finally{D(!1)}}},[t,l,u]);function W(Z){h(Z),S(null),C(""),A(!1),y(null),Z&&Y(Z)}async function G(){if(!t){y("Set a merchant ID first");return}if(!u||!f){y("Account and a report file are both required");return}m(!0),v(0),y(null),j(null);try{const Z=await HEe(t,l,u,f,pe=>{pe.phase==="uploading"?v(pe.total?Math.round(pe.loaded/pe.total*100):0):v(100)});j(Z.id),h(null),a.current&&(a.current.value=""),await r()}catch(Z){y(Z instanceof Error?Z.message:"Failed to upload report")}finally{m(!1)}}async function I(){if(!t){y("Set a merchant ID first");return}m(!0),v(100),y(null),j(null);try{const Z=await XEe(t,l);j(Z.id),await r()}catch(Z){const pe=Z instanceof Error?Z.message:"";y(/404|not found|no sample/i.test(pe)?`No sample report available for ${J}.`:pe||"Failed to run sample report")}finally{m(!1)}}const q=(U==null?void 0:U.status)==="processing",M=(U==null?void 0:U.status)==="completed",B=(U==null?void 0:U.status)==="failed";return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(UW,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Upload a settlement report"})})]})}),i.jsxs(He,{className:"space-y-4",children:[EF&&i.jsx("div",{className:"inline-flex rounded-lg border border-slate-200 p-0.5 dark:border-[#2a3344]",children:[["sample","Use a sample file"],["upload","Upload a file"]].map(([Z,pe])=>i.jsx("button",{type:"button",onClick:()=>{o(Z),y(null)},className:"rounded-md px-3 py-1.5 text-sm font-medium transition-colors "+(s===Z?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white"),children:pe},Z))}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:s==="upload"?"Upload a settlement report file directly - no webhook needed. Processing runs in the background (the upload won't hang on large files). Watch progress below and in the history.":`No report file? Run a curated ${J} sample report through the exact same fit, so you can see the ingest → cost-coverage flow end to end. Progress shows below and in the history.`}),i.jsx(vo,{label:"Connector",children:i.jsx("select",{className:Bs,value:l,onChange:Z=>c(Z.target.value),children:X.map(Z=>i.jsx("option",{value:Z.value,children:Z.label},Z.value))})}),s==="upload"&&i.jsxs(i.Fragment,{children:[i.jsx(vo,{label:"Account",hint:"Connector-side account the report belongs to",children:i.jsx("input",{className:Bs,value:u,onChange:Z=>d(Z.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(vo,{label:"Report file",hint:"The connector's settlement / PAR report (CSV)",children:i.jsx("input",{ref:a,type:"file",accept:".csv,text/csv,text/plain",className:Bs,onChange:Z=>{var pe;return W(((pe=Z.target.files)==null?void 0:pe[0])??null)}})}),T&&i.jsxs("p",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx(at,{size:14}),"Checking this file's columns…"]}),(k==null?void 0:k.ok)&&i.jsxs($a,{tone:"success",children:["All ",k.required.length," required columns found — this file is ready to upload."]}),k&&!k.ok&&!R&&t&&u&&i.jsx(O8e,{merchantId:t,connector:l,account:u,preflight:k,sampleText:_,truncated:E,onCancel:()=>A(!0),onSaved:()=>{f&&Y(f)}}),k&&!k.ok&&R&&u&&i.jsxs($a,{tone:"warning",children:["This file is still missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",", so it can't be uploaded."," ",i.jsx("button",{type:"button",onClick:()=>A(!1),className:"font-medium underline underline-offset-2",children:"Map columns"})," ","or choose a different file."]}),k&&!k.ok&&!u&&i.jsxs($a,{tone:"warning",children:["This file is missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",". Enter the account above to map your columns to ",l,"'s."]})]}),i.jsxs("div",{className:"flex items-center gap-3",children:[s==="upload"?i.jsx(we,{onClick:G,disabled:!t||p||q||T||(k==null?void 0:k.ok)===!1,children:p||q?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),p?"Uploading…":"Processing…"]}):"Upload & fit"}):i.jsx(we,{onClick:I,disabled:!t||p||q,children:p||q?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),p?"Starting…":"Processing…"]}):"Run sample"}),i.jsx("span",{className:"text-xs text-slate-500",children:s==="upload"?"Runs in the background after upload.":"Fetches the sample and runs in the background."})]}),s==="upload"&&p&&i.jsx(AF,{label:`Uploading report… ${x}%`,pct:x,showPct:!1}),q&&U&&i.jsx(AF,{label:`Processing — ${U.staged_rows.toLocaleString()} rows staged…`,pct:100,pulse:!0}),i.jsx(vt,{error:b}),M&&U&&i.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-900/40 dark:bg-emerald-950/30",children:[i.jsxs("p",{className:"text-sm font-medium text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:["Ingested ",U.staged_rows.toLocaleString()," rows for ",U.connector," /"," ",U.account,U.period_start&&U.period_end?` (${U.period_start} → ${U.period_end})`:"","."]}),i.jsxs("p",{className:"mt-1 text-sm text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:[U.good_clusters," of ",U.total_clusters," clusters graded GOOD ·"," ",U.currency_count," currencies · ",U.country_count," countries.",U.good_clusters===0&&" No trustworthy cost model yet — this volume still falls back to SR routing."]})]}),B&&U&&i.jsx(vt,{error:U.last_error||"Ingestion failed"})]})]})}function AF({label:t,pct:e,pulse:n,showPct:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex justify-between text-xs text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx("span",{children:t}),r&&i.jsxs("span",{children:[e,"%"]})]}),i.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full bg-brand-500 transition-all duration-200 ${n?"animate-pulse":""}`,style:{width:`${e}%`}})})]})}const I8e=[{value:"adyen",label:"Adyen"}];function Qh(t,e,n=2){const r=e?{style:"currency",currency:e,maximumFractionDigits:n}:{maximumFractionDigits:n};try{return new Intl.NumberFormat(void 0,r).format(t)}catch{return`${t.toFixed(n)}${e?` ${e}`:""}`}}const $8e={flat_per_txn:"Flat per transaction",periodic:"Periodic / non-transactional",credit:"Credit",already_modeled:"Already in report",volume:"Turnover"};function L8e({merchantId:t}){const{addons:e,mutate:n}=ZEe(t),r=g.useRef(null),[a,s]=g.useState("adyen"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(null),[h,p]=g.useState(!1),[m,x]=g.useState(null),[v,b]=g.useState(null);async function y(){if(!t)return x("Set a merchant ID first");if(!o||!d)return x("Account and an invoice file are both required");p(!0),x(null),b(null);try{const j=await QEe(t,a,o,d,c||void 0);b(j),f(null),r.current&&(r.current.value=""),await n()}catch(j){x(j instanceof Error?j.message:"Failed to process invoice")}finally{p(!1)}}async function w(j){if(t)try{await eAe(t,j),await n(),(v==null?void 0:v.connector)===j&&b(null)}catch(k){x(k instanceof Error?k.message:"Failed to remove add-on")}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(MW,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Upload a connector invoice"})})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:"The settlement report only carries a transaction's core fees, so our model was structurally missing ~9% of the true cost — flat per-transaction fees, periodic fees and credits that only appear on the monthly invoice. Upload that invoice and we'll identify those missing fees and start applying them to every routing decision."}),i.jsx(vo,{label:"Connector",children:i.jsx("select",{className:Bs,value:a,onChange:j=>s(j.target.value),children:I8e.map(j=>i.jsx("option",{value:j.value,children:j.label},j.value))})}),i.jsx(vo,{label:"Account",hint:"Connector-side account the invoice covers",children:i.jsx("input",{className:Bs,value:o,onChange:j=>l(j.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(vo,{label:"Invoice number",hint:"Optional — for your records",children:i.jsx("input",{className:Bs,value:c,onChange:j=>u(j.target.value),placeholder:"NL2025…"})}),i.jsx(vo,{label:"Invoice file",hint:"The monthly invoice — a PDF (as downloaded from Adyen) or a CSV export",children:i.jsx("input",{ref:r,type:"file",accept:".pdf,application/pdf,.csv,text/csv,text/plain",className:Bs,onChange:j=>{var k;return f(((k=j.target.files)==null?void 0:k[0])??null)}})}),i.jsx("div",{className:"flex items-center gap-3",children:i.jsx(we,{onClick:y,disabled:!t||h,children:h?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Reading invoice…"]}):"Upload & identify fees"})}),i.jsx(vt,{error:m})]})]}),v&&i.jsx(F8e,{result:v}),e.length>0&&i.jsx(z8e,{addons:e,onRemove:w})]})}function F8e({result:t}){const e=t.currency,n=t.breakdown.filter(a=>a.added),r=t.breakdown.filter(a=>!a.added);return i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"rounded-xl border border-brand-500/30 bg-brand-500/5 p-5",children:[i.jsxs("div",{className:"flex items-center gap-2 text-brand-600 dark:text-brand-400",children:[i.jsx(gi,{size:16}),i.jsx("span",{className:"text-sm font-medium",children:"We understood the fees missing from your settlement report"})]}),i.jsxs("p",{className:"mt-3 text-3xl font-semibold text-slate-900 dark:text-white",children:["+",Qh(t.total_addon_per_txn,e,4),i.jsx("span",{className:"ml-2 text-base font-normal text-slate-500 dark:text-[#9ca7ba]",children:"additional cost per transaction"})]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#c7cfdd]",children:["Now applied on top of the learned model for"," ",i.jsxs("span",{className:"font-medium",children:[t.connector," / ",t.account]})," ","in every economic-value calculation."]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[i.jsxs(Eb,{children:["+",Qh(t.fixed_addon,e,4)," flat / txn"]}),i.jsxs(Eb,{children:["+",t.pct_addon_bps.toFixed(3)," bps on amount"]}),t.subtotal_ex_tax!=null&&i.jsxs(Eb,{muted:!0,children:["Invoice subtotal ",Qh(t.subtotal_ex_tax,e)]}),t.txn_count!=null&&i.jsxs(Eb,{muted:!0,children:[t.txn_count.toLocaleString()," transactions"]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-medium text-slate-800 dark:text-white",children:"Fees we identified and are now applying"}),i.jsx(OF,{lines:n,ccy:e,showPerTxn:!0})]}),r.length>0&&i.jsxs("details",{className:"group",children:[i.jsxs("summary",{className:"flex cursor-pointer items-center gap-2 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(qu,{size:14}),r.length," line",r.length===1?"":"s"," already captured by your settlement report — ignored so nothing is double-counted"]}),i.jsx("div",{className:"mt-3",children:i.jsx(OF,{lines:r,ccy:e,showPerTxn:!1})})]})]})})}function OF({lines:t,ccy:e,showPerTxn:n}){return t.length===0?i.jsx("p",{className:"text-sm text-slate-500",children:"No lines in this group."}):i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Fee"}),i.jsx("th",{className:"px-3 py-2 font-medium",children:"Category"}),i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"On invoice"}),n&&i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"Per transaction"})]})}),i.jsx("tbody",{children:t.map((r,a)=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"px-3 py-2 capitalize text-slate-800 dark:text-[#e7ecf3]",children:r.description}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(B8e,{kind:r.kind,added:r.added})}),i.jsx("td",{className:"px-3 py-2 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:Qh(r.amount,e)}),n&&i.jsx("td",{className:"px-3 py-2 text-right font-medium tabular-nums text-slate-900 dark:text-white",children:r.per_txn!==0?`${r.per_txn<0?"−":"+"}${Qh(Math.abs(r.per_txn),e,4)}`:"—"})]},`${r.kind}-${r.description}-${a}`))})]})})}function B8e({kind:t,added:e}){const n=$8e[t]??t,r=e?"bg-brand-500/10 text-brand-600 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1c1c23] dark:text-[#9ca7ba]";return i.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${r}`,children:n})}function Eb({children:t,muted:e}){const n=e?"border-slate-200 text-slate-500 dark:border-[#232833] dark:text-[#9ca7ba]":"border-brand-500/30 text-brand-600 dark:text-brand-400";return i.jsx("span",{className:`rounded-full border px-2.5 py-1 font-medium ${n}`,children:t})}function z8e({addons:t,onRemove:e}){return i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h3",{className:ra,children:"Active invoice add-ons"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Currently applied to routing."})]}),i.jsx(He,{className:"space-y-2",children:t.map(n=>i.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-slate-200 px-3 py-2.5 dark:border-[#232833]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:n.connector}),i.jsxs("p",{className:"text-xs text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:["+",Qh(n.fixed_addon,n.currency,4)," / txn · +",n.pct_addon_bps.toFixed(3)," bps",n.invoice_ref?` · invoice ${n.invoice_ref}`:""]})]}),i.jsxs("button",{type:"button",onClick:()=>e(n.connector),className:"flex shrink-0 items-center gap-1 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs text-slate-500 hover:border-rose-300 hover:text-rose-600 dark:border-[#232833] dark:hover:border-rose-900/50",children:[i.jsx(wn,{size:13}),"Remove"]})]},n.connector))})]})}const TF="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",U8e={mc:"Mastercard",visa:"Visa",amex:"Amex",diners:"Diners",discover:"Discover",jcb:"JCB"};function Px(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function V8e(t){return U8e[t.toLowerCase()]??Px(t)}const W8e=["world elite","ultra premium","superpremium","infinite","signature","platinum","purchasing","corporate","business","premium","classic","standard","world","gold"];function ZY(t){var o,l;let e=(t.variant??"").toLowerCase();if(e.includes("_")){const c=e.split("_").slice(1).join(" ");return c.includes("apple")?"Apple Pay":c.includes("google")?"Google Pay":Px(c)}const n=((o=t.card_network)==null?void 0:o.toLowerCase())??"",r=((l=t.funding)==null?void 0:l.toLowerCase())??"";if(n&&e.startsWith(n)&&(e=e.slice(n.length)),r&&e.endsWith(r)&&(e=e.slice(0,e.length-r.length)),e)return Px(e);const a=(t.ic_category??"").toLowerCase(),s=W8e.find(c=>a.includes(c));return s?s.split(" ").map(Px).join(" "):"—"}function H8e(t){const e=Number(t.card_product);if(!(!t.card_product||!Number.isFinite(e)||e<=0))return`Issuer BIN's dominant interchange rate: ${(e/100).toFixed(2)}%`}function Ab(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const QY={GOOD:{label:"Good",variant:"green",hint:"Enough transactions and a tight fit — this rate is trusted at decide time."},THIN:{label:"Thin",variant:"orange",hint:"Too few transactions to pin the rate confidently. Override it with your contract rate."},NON_LINEAR:{label:"Poor fit",variant:"red",hint:"A single rate can't price this segment — its cost isn't one straight line, and no clean set of amount tiers could be recovered either. Override it with your contract rate."}};function G8e({merchantId:t,editable:e,limit:n=500,scope:r,defaultSort:a="gross_sum"}){const[s,o]=g.useState({}),l=cT(s),{clusters:c,isLoading:u,error:d,mutate:f}=uT(t,{limit:n,order:a,filters:s,...r}),{facets:h}=bH(t,r),[p,m]=g.useState(null),[x,v]=g.useState(a),[b,y]=g.useState("desc"),w=g.useMemo(()=>{const _=[...c];return _.sort((C,E)=>{const P=C[x]-E[x];return b==="desc"?-P:P}),_},[c,x,b]),j=g.useMemo(()=>c.some(_=>ZY(_)!=="—"),[c]);function k(_){_===x?y(C=>C==="desc"?"asc":"desc"):(v(_),y("desc"))}const S=i.jsx(HY,{filters:s,facets:h,onChange:o,rightSlot:i.jsxs("span",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:[c.length.toLocaleString()," segment",c.length===1?"":"s",c.length>=n&&" (capped — narrow the filters to see the rest)"]})});return t&&u?i.jsxs("div",{className:"space-y-3",children:[S,i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading segments…"]})]}):c.length?i.jsxs("div",{className:"space-y-3",children:[S,i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Network"}),j&&i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Program"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Type"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Country"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Category"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Fit"}),i.jsx(PF,{label:"Volume",active:x==="gross_sum",dir:b,onClick:()=>k("gross_sum")}),i.jsx(PF,{label:"Txns",active:x==="n",dir:b,onClick:()=>k("n")}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),e&&i.jsx("th",{className:"py-2 pr-3"})]})}),i.jsx("tbody",{children:w.map(_=>i.jsx(K8e,{c:_,editable:e,showProgram:j,merchantId:t,isEditing:p===_.key,onEdit:()=>m(_.key),onCancel:()=>m(null),onSaved:()=>{m(null),f()}},_.key))})]})}),i.jsx(vt,{error:d instanceof Error?d.message:d?"Failed to load segments":null})]}):i.jsxs("div",{className:"space-y-3",children:[S,i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:l>0?"No segments match these filters — clear one to widen the search.":"No fitted segments yet — they appear once a settlement report has been ingested."})]})}function q8e({verdict:t,segments:e}){const n=(e==null?void 0:e.length)??0;if(n>0){const a=e.filter(s=>{var o;return((o=s.verdict)==null?void 0:o.toUpperCase())!=="GOOD"}).length;return a===0?i.jsx("span",{title:`One rate couldn't price this segment, so it was split into ${n} amount tiers — each one fits tightly. The tiered rates are what the Fee column expands to.`,children:i.jsx(Me,{variant:"green",children:"Tiered"})}):i.jsx("span",{title:`Split into ${n} amount tiers, but ${a} of them still don't fit well. Worth overriding with your contract rate.`,children:i.jsx(Me,{variant:"orange",children:"Tiered"})})}const r=QY[(t==null?void 0:t.toUpperCase())??""];return r?i.jsx("span",{title:r.hint,children:i.jsx(Me,{variant:r.variant,children:r.label})}):i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"—"})}function PF({label:t,active:e,dir:n,onClick:r}){return i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:i.jsxs("button",{type:"button",onClick:r,"aria-sort":e?n==="desc"?"descending":"ascending":"none",className:`inline-flex items-center gap-1 transition-colors hover:text-slate-600 dark:hover:text-slate-200 ${e?"text-slate-600 dark:text-slate-200":""}`,children:[t,e?n==="desc"?i.jsx(ln,{size:12}):i.jsx(hs,{size:12}):i.jsx(ln,{size:12,className:"opacity-30"})]})})}function K8e({c:t,editable:e,showProgram:n,merchantId:r,isEditing:a,onEdit:s,onCancel:o,onSaved:l}){var _,C,E;const c=t.source==="override",u=()=>String(EP(t.effective_pct_bps??t.override_pct_bps??t.model_pct_bps??0)),d=()=>String(t.effective_fixed??t.override_fixed??t.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(!1),k=(((_=t.segments)==null?void 0:_.length)??0)>0;g.useEffect(()=>{a&&(h(u()),m(d()),y(null))},[a]);async function S(){if(!r)return;const P=parseFloat(f),R=parseFloat(p);if(!isFinite(P)||P<0||!isFinite(R)||R<0){y("Enter non-negative numbers for the rate and fixed fee.");return}v("save"),y(null);try{await wH(r,t.key,{pct_bps:AP(P),fixed:R}),l()}catch(A){y(A instanceof Error?A.message:"Failed to save fee")}finally{v(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:Px(t.connector)}),i.jsx("td",{className:"py-2 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:V8e(t.card_network)}),n&&i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",title:H8e(t),children:ZY(t)}),i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.funding||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((C=t.issuer_country)==null?void 0:C.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((E=t.currency)==null?void 0:E.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:t.ic_category||"—"}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(q8e,{verdict:t.verdict,segments:t.segments})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:t.gross_sum>0?Ab(t.gross_sum):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:t.n>0?t.n.toLocaleString():"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${TF} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:P=>h(P.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${TF} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:P=>m(P.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):k?i.jsxs("button",{type:"button",onClick:()=>j(P=>!P),className:"ml-auto flex items-center justify-end gap-1.5",title:"Show per-segment rates","aria-expanded":w,children:[i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[t.segments.length," tiers"]}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:iu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})}),w?i.jsx(hs,{size:12}):i.jsx(ln,{size:12})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[c&&i.jsx(Me,{variant:"purple",children:"Override"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:iu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})})]}),c&&t.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:iu(t.model_pct_bps,t.model_fixed,{currency:t.currency})})]})}),e&&i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:S,disabled:x!==null||!r,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(at,{size:13}):i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:o,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Vr,{size:14})})]}):i.jsxs(we,{variant:"ghost",size:"sm",onClick:s,children:[i.jsx(jl,{size:13})," Edit"]})})]}),w&&k&&i.jsx("tr",{className:"bg-slate-50/60 dark:bg-[#15151a]",children:i.jsxs("td",{colSpan:10+(n?1:0)+(e?1:0),className:"px-3 pb-3 pt-1",children:[i.jsx("div",{className:"mb-1 text-[11px] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Per-segment rates — this cluster’s interchange is capped or tiered, so one rate can’t price it. Each tier below is priced separately by transaction amount."}),i.jsxs("table",{className:"w-full text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-slate-500 dark:text-[#78849a]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Amount range"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:t.segments.map(P=>{var R,A;return i.jsxs("tr",{className:"tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left",children:[Ab(P.lo),"–",Ab(P.hi)]}),i.jsx("td",{className:"py-1 pr-3 text-right font-medium",children:P.pct_bps!=null?vu(P.pct_bps):"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.fixed!=null?`${zy(t.currency)}${P.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.n.toLocaleString()}),i.jsx("td",{className:"py-1 pr-3 text-right",children:Ab(P.gross_sum)}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.bps_rmse!=null?P.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-1 text-right text-slate-500 dark:text-[#9ca7ba]",children:((A=QY[((R=P.verdict)==null?void 0:R.toUpperCase())??""])==null?void 0:A.label)??P.verdict})]},P.seg_idx)})})]})]})}),a&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:10+(n?1:0)+(e?1:0),className:"pb-2 pr-3",children:i.jsx(vt,{error:b})})})]})}function Y8e({merchantId:t}){const{ingestions:e,isLoading:n,mutate:r}=dT(t),{mutate:a}=Vj(t),[s,o]=g.useState(new Set),[l,c]=g.useState(null);function u(f){o(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}async function d(f){const h=f.period_start&&f.period_end?`${f.connector} / ${f.account} (${f.period_start} → ${f.period_end})`:`${f.connector} / ${f.account}`;if(!(!t||!window.confirm(`Delete this ingestion? - -${h} - -This removes its fitted cost models and staged rows. Coverage reverts to the previous snapshot. This cannot be undone.`))){c(f.id);try{await JEe(t,f.id),await Promise.all([r(),a()])}catch(p){window.alert(p instanceof Error?p.message:"Failed to delete ingestion")}finally{c(null)}}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(HNe,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Reports ingested"})})]})}),i.jsx(He,{children:t&&n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Loading history..."]}):e.length===0?i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:"No ingestions yet. Upload a report or configure a webhook connector."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-2 font-semibold"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Ingested"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Source"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector · Account"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Period"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Status"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Rows"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ccy"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ctry"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",title:"Segments whose fitted rate graded GOOD, out of all fitted segments. Expand a row to see every segment with its grade.",children:"GOOD"}),i.jsx("th",{className:"py-2 pr-2 font-semibold"})]})}),i.jsx("tbody",{children:e.map(f=>i.jsx(X8e,{merchantId:t,job:f,open:s.has(f.id),onToggle:()=>u(f.id),onDelete:()=>d(f),deleting:l===f.id},f.id))})]})})})]})}function X8e({merchantId:t,job:e,open:n,onToggle:r,onDelete:a,deleting:s}){const o=e.period_start&&e.period_end?`${e.period_start} → ${e.period_end}`:"—";return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"cursor-pointer border-b border-slate-100 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0b1017]",onClick:r,children:[i.jsx("td",{className:"py-2 pr-2 text-slate-500",children:n?i.jsx(ln,{size:14}):i.jsx(So,{size:14})}),i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:Z8e(e.created_at)}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx("span",{className:"rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]",children:e.source})}),i.jsxs("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:[e.connector," · ",e.account]}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:o}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(J8e,{status:e.status})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.staged_rows.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.currency_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.country_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.status==="completed"?`${e.good_clusters}/${e.total_clusters}`:"—"}),i.jsx("td",{className:"py-2 pr-2 text-right",children:e.status!=="processing"&&i.jsx("button",{type:"button",title:"Delete ingestion",disabled:s,onClick:l=>{l.stopPropagation(),a()},className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:s?i.jsx(at,{size:14}):i.jsx(wn,{size:14})})})]}),n&&i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/60 dark:border-[#1c1c23] dark:bg-[#0b1017]",children:[i.jsx("td",{}),i.jsxs("td",{colSpan:10,className:"py-3 pr-3",children:[i.jsxs("dl",{className:"grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2",children:[i.jsx(Ag,{label:"Settled volume",value:Q8e(e.total_gross)}),i.jsx(Ag,{label:"Report date",value:e.report_date??"—"}),i.jsx(Ag,{label:`Currencies (${e.currency_count})`,value:e.currencies.length?e.currencies.join(", "):"—"}),i.jsx(Ag,{label:`Countries (${e.country_count})`,value:e.countries.length?e.countries.join(", "):"—"}),e.last_error&&i.jsx(Ag,{label:"Error",value:e.last_error,error:!0})]}),e.status==="completed"&&e.report_date&&i.jsxs("div",{className:"mt-4 border-t border-slate-200 pt-3 dark:border-[#232833]",children:[i.jsx("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fitted segments (top by txns) — edit any rate to override it"}),i.jsx(G8e,{merchantId:t,editable:!1,limit:2e3,defaultSort:"n",scope:{connector:e.connector,account:e.account,reportDate:e.report_date,ingestionId:e.id}})]})]})]})]})}function Ag({label:t,value:e,error:n}){return i.jsxs("div",{children:[i.jsx("dt",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("dd",{className:`mt-0.5 break-words text-sm ${n?"text-red-600":"text-slate-600 dark:text-[#c7cfdd]"}`,children:e})]})}function J8e({status:t}){const e={completed:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/40 dark:text-emerald-400",processing:"bg-amber-100 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400 animate-pulse",failed:"bg-red-100 text-red-700 dark:bg-red-950/40 dark:text-red-400",pending:"bg-slate-100 text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]"},n=e[t]??e.pending;return i.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs ${n}`,children:t})}function Z8e(t){const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}function Q8e(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const e6e=["ingestion","data","costs"],eX=[{id:"automatic",label:"Automatic"},{id:"manual",label:"Manual"},{id:"invoice",label:"Invoice"}],t6e=[{id:"ingestion",icon:tA,title:"Data ingestion",blurb:"Connect a settlement source or upload a report"},{id:"data",icon:IW,title:"Ingested data",blurb:"What we learned — coverage & history"},{id:"costs",icon:RW,title:"Costs",blurb:"Effective fees per connector — overrides, learned rates & contract baseline"}];function n6e({merchantId:t}){const[e,n]=vc(),r=e.get("section"),a=e6e.includes(r)?r:"costs",s=e.get("source"),o=a==="ingestion"&&eX.some(c=>c.id===s)?s:"automatic",l=(c,u=o)=>{n(d=>{const f=new URLSearchParams(d);return c==="costs"?f.delete("section"):f.set("section",c),c!=="ingestion"||u==="automatic"?f.delete("source"):f.set("source",u),f},{replace:!0})};return g.useEffect(()=>{(r!==(a==="costs"?null:a)||s!==(a==="ingestion"&&o!=="automatic"?o:null))&&l(a,o)},[a,r,o,s]),i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(r6e,{merchantId:t,active:a,onSelect:c=>l(c),ingestMode:o,onSelectIngestMode:c=>l("ingestion",c)}),i.jsxs("div",{className:"min-w-0",children:[a==="ingestion"&&i.jsx(s6e,{merchantId:t,mode:o}),a==="data"&&i.jsx(a6e,{merchantId:t}),a==="costs"&&i.jsx(k8e,{merchantId:t})]})]})}function r6e({merchantId:t,active:e,onSelect:n,ingestMode:r,onSelectIngestMode:a}){const{coverage:s}=Vj(t),{ingestions:o}=dT(t),l={ingestion:o.length>0?`${o.length} report${o.length===1?"":"s"}`:"Not set up",data:s&&s.total_clusters>0?`${s.priced_gross_pct.toFixed(1)}% volume covered`:"No data yet",costs:void 0};return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:t6e.map(({id:c,icon:u,title:d,blurb:f})=>{const h=e===c;return i.jsxs("div",{className:"shrink-0 lg:w-full",children:[i.jsxs("button",{type:"button",onClick:()=>n(c),"aria-current":h?"page":void 0,className:`flex w-full items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors ${h?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(u,{size:18,className:`mt-0.5 shrink-0 ${h?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:d}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:l[c]??f})]})]}),c==="ingestion"&&h&&i.jsx("div",{className:"ml-[1.3125rem] mt-1 flex flex-col gap-0.5 border-l border-slate-200 pl-2 dark:border-[#2a3344]",children:eX.map(p=>{const m=r===p.id;return i.jsx("button",{type:"button",onClick:()=>a(p.id),"aria-current":m?"true":void 0,className:`rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors ${m?"bg-brand-500/10 font-medium text-brand-600 dark:text-brand-400":"text-slate-500 hover:bg-slate-50 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:bg-[#141923] dark:hover:text-white"}`,children:p.label},p.id)})})]},c)})})}function tX({title:t,subtitle:e}){return i.jsxs("div",{className:"mb-5",children:[i.jsx("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-1 max-w-[57ch] text-sm text-slate-500 dark:text-[#9ca7ba]",children:e})]})}function a6e({merchantId:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx(tX,{title:"Ingested data",subtitle:"What your settlement reports taught us: how much volume we can cost accurately, and — inside each report below — the fee learned for every segment."}),!1,i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h3",{className:ra,children:"Cost model coverage"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"How much volume we can cost accurately."})]}),i.jsx(He,{children:i.jsx(XLe,{merchantId:t})})]}),i.jsx(Y8e,{merchantId:t})]})}function s6e({merchantId:t,mode:e}){return i.jsxs("div",{children:[i.jsx(tX,{title:"Data ingestion",subtitle:"Connect a settlement source so reports flow in automatically, or upload a report file manually. Add the monthly invoice to also recover the fees the report can't carry."}),e==="automatic"&&i.jsx(A8e,{merchantId:t}),e==="manual"&&i.jsx(D8e,{merchantId:t}),e==="invoice"&&i.jsx(L8e,{merchantId:t})]})}const Rx="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function RF(t,e){return e&&!t.includes(e)?[e,...t]:[...t]}const i6e=[{key:"card_network",label:"Card network"},{key:"currency",label:"Currency"},{key:"country",label:"Country"},{key:"auth_type",label:"Auth type"},{key:"card_is_in",label:"Card BIN",note:"High cardinality — not auto-calibrated"}],o6e=["card_network","currency","country","auth_type"];async function l6e(t){var a,s;let e=[],n=[];try{const o=await Dt(`/config-sr-dimension/${t}`);e=((a=o==null?void 0:o.paymentInfo)==null?void 0:a.fields)??[],n=((s=o==null?void 0:o.paymentInfo)==null?void 0:s.udfs)??[]}catch{}const r=Array.from(new Set([...e,...o6e]));await Fe("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:n,fields:r}})}const Og=Od(t=>t===""||t===null||t===void 0?null:t,Ud().nullable()),c6e=d2({paymentMethodType:Ud().min(1),paymentMethod:Ud().min(1),cardNetwork:Og,currency:Og,country:Og,authType:Og,source:Og,bucketSize:_Y.number().int().positive(),hedgingPercent:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),latencyThreshold:Od(t=>t===""||t===null?null:Number(t),Ad().nullable())}),u6e=d2({defaultBucketSize:_Y.number().int().positive(),defaultSuccessRate:Od(t=>t===""||t===null?null:Number(t),Ad().min(0).max(1).nullable()),defaultLatencyThreshold:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),defaultHedgingPercent:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),margin:Od(t=>t===""||t===null?null:Number(t),Ad().min(0).max(100).nullable()),subLevelInputConfig:SY(c6e)}),d6e=["autopilot","manual","flags","cost"],f6e=["manual","cost"],h6e=["scoring","elimination","dimensions"],p6e=[{id:"scoring",icon:ec,title:"Scoring defaults",blurb:"Bucket size, hedging & per-payment-type overrides"},{id:"elimination",icon:OW,title:"Elimination",blurb:"Drop a PSP whose auth rate falls too low"},{id:"dimensions",icon:Fj,title:"SR Dimensions",blurb:"Attributes scoring splits clusters on"}];function m6e(){const t=$r(M=>M.merchantId),e=hr(M=>{var B;return((B=M.user)==null?void 0:B.merchantId)||""}),n=t||e,a=Sl(n??void 0).isEnabled("autopilot"),[s,o]=vc(),l=s.get("tab"),c=d6e.includes(l)?l:"autopilot",u=M=>{o(B=>{const z=new URLSearchParams(B);return M==="autopilot"?z.delete("tab"):z.set("tab",M),z},{replace:!0})},d=s.get("section"),f=h6e.includes(d)?d:"scoring",h=M=>{o(B=>{const z=new URLSearchParams(B);return M==="scoring"?z.delete("section"):z.set("section",M),z},{replace:!0})};g.useEffect(()=>{if(c!=="manual")return;d!==(f==="scoring"?null:f)&&h(f)},[c,f,d]);const[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState(!1),[w,j]=g.useState(!1),{data:k,isLoading:S,mutate:_}=ct(n?["/rule/get","successRate",n]:null,()=>Fe("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{register:C,control:E,handleSubmit:P,reset:R,watch:A,formState:{errors:T}}=zLe({resolver:HLe(u6e),defaultValues:{defaultBucketSize:200,defaultSuccessRate:.5,defaultLatencyThreshold:null,defaultHedgingPercent:null,margin:null,subLevelInputConfig:[]}});g.useEffect(()=>{var M;if((M=k==null?void 0:k.config)!=null&&M.data){const B=k.config.data,z=(B.subLevelInputConfig??[]).map(Z=>({paymentMethodType:Z.paymentMethodType,paymentMethod:Z.paymentMethod,cardNetwork:Z.cardNetwork??null,currency:Z.currency??null,country:Z.country??null,authType:Z.authType??null,source:Z.source??null,bucketSize:Z.bucketSize,hedgingPercent:Z.hedgingPercent??null,latencyThreshold:Z.latencyThreshold??null}));R({defaultBucketSize:B.defaultBucketSize??200,defaultSuccessRate:B.defaultSuccessRate??.5,defaultLatencyThreshold:B.defaultLatencyThreshold??null,defaultHedgingPercent:B.defaultHedgingPercent??null,margin:B.margin!=null?B.margin*100:null,subLevelInputConfig:z}),j(z.length>0)}},[k,R]);const{fields:D,append:L,remove:X}=BLe({control:E,name:"subLevelInputConfig"}),J=A("subLevelInputConfig"),U=w||D.length>0;function Y(){j(!0),L({paymentMethodType:"card",paymentMethod:"credit",cardNetwork:null,currency:null,country:null,authType:null,source:null,bucketSize:20,hedgingPercent:null,latencyThreshold:null})}function W(M){X(M),D.length<=1&&j(!1)}async function G(){try{await Fe("/merchant-account/create",{merchant_id:n,gateway_success_rate_based_decider_input:null})}catch{}}async function I(M){if(!n){v("Set a Merchant ID first.");return}m(!0),v(null),y(!1);try{k||await G(),await Fe(k?"/rule/update":"/rule/create",{merchant_id:n,config:{type:"successRate",data:{defaultBucketSize:M.defaultBucketSize,defaultSuccessRate:M.defaultSuccessRate,defaultLatencyThreshold:M.defaultLatencyThreshold,defaultHedgingPercent:M.defaultHedgingPercent,subLevelInputConfig:M.subLevelInputConfig.length>0?M.subLevelInputConfig:null}}}),y(!0),_()}catch(B){v(B instanceof Error?B.message:String(B))}finally{m(!1)}}const q=M=>`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${c===M?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-700 dark:hover:text-slate-300"}`;return i.jsxs("div",{className:`space-y-6 ${f6e.includes(c)?"w-full":"max-w-4xl"}`,children:[i.jsx("div",{children:i.jsx(Ba,{title:"Multi Objective Routing",description:"Dynamic gateway scoring based on real-time success rates."})}),!n&&i.jsx($a,{tone:"warning",children:"Set a Merchant ID in the top bar to load and save configuration."}),i.jsx("div",{className:"border-b border-slate-200 dark:border-[#1c1c23]",children:i.jsxs("nav",{className:"-mb-px flex gap-1",children:[i.jsx("button",{type:"button",className:q("autopilot"),onClick:()=>u("autopilot"),children:"Autopilot"}),i.jsx("button",{type:"button",className:q("manual"),onClick:()=>u("manual"),children:"Manual"}),i.jsx("button",{type:"button",className:q("flags"),onClick:()=>u("flags"),children:"Feature Flags"}),i.jsx("button",{type:"button",className:q("cost"),onClick:()=>u("cost"),children:"Cost Estimation"})]})}),S?i.jsx("div",{className:"flex justify-center py-12",children:i.jsx(at,{})}):i.jsxs(i.Fragment,{children:[c==="autopilot"&&i.jsx(y6e,{merchantId:n}),c==="manual"&&i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(g6e,{active:f,onSelect:h}),i.jsxs("div",{className:"min-w-0 space-y-6",children:[f==="scoring"&&i.jsx("div",{className:"space-y-6",children:i.jsxs("form",{onSubmit:P(I),className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"Scoring defaults"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Applied to every payment type unless an override below replaces them."})]}),i.jsxs(He,{className:"grid gap-6 md:grid-cols-3",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Bucket size"}),i.jsx("input",{type:"number",placeholder:"50–200",...C("defaultBucketSize"),className:Rx}),T.defaultBucketSize&&i.jsx("p",{className:"text-[13px] text-red-600 leading-[18px]",children:T.defaultBucketSize.message}),i.jsx("p",{className:pl,children:"Recent payments per gateway score. Lower adapts faster, higher stays steadier."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Hedging %"}),i.jsx("input",{type:"number",step:"0.1",...C("defaultHedgingPercent"),placeholder:"10",className:Rx}),i.jsx("p",{className:pl,children:"Traffic share sent to non-top gateways to keep their scores fresh. Needs Explore-exploit on."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Latency threshold (s)"}),i.jsx("input",{type:"number",...C("defaultLatencyThreshold"),placeholder:"300",className:Rx}),i.jsx("p",{className:pl,children:"Timeouts inside this window count as outages, outside it as slow performance."})]})]})]}),i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h2",{className:ra,children:"Sub-level overrides"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Optional per payment-method-type overrides for the settings above."})]}),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",onClick:Y,children:[i.jsx(Qn,{size:14})," Add Override"]})]}),U&&i.jsx(He,{className:"overflow-x-auto p-0",children:D.length?i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] border-b border-slate-200 dark:border-[#1c1c24] bg-slate-50 dark:bg-[#0a0a0f] leading-4",children:[i.jsx("th",{className:"px-4 py-2",children:"Source"}),i.jsx("th",{className:"px-4 py-2",children:"Method Type"}),i.jsx("th",{className:"px-4 py-2",children:"Method"}),i.jsx("th",{className:"px-4 py-2",children:"Card Network"}),i.jsx("th",{className:"px-4 py-2",children:"Currency"}),i.jsx("th",{className:"px-4 py-2",children:"Country"}),i.jsx("th",{className:"px-4 py-2",children:"Auth Type"}),i.jsx("th",{className:"px-4 py-2",children:"Bucket Size"}),i.jsx("th",{className:"px-4 py-2",children:"Hedging %"}),i.jsx("th",{className:"px-4 py-2",children:"Latency Threshold (s)"}),i.jsx("th",{className:"px-4 py-2"})]})}),i.jsx("tbody",{children:D.map((M,B)=>{var be,Pe,Ce,Re;const z=((be=J==null?void 0:J[B])==null?void 0:be.paymentMethodType)||"",Z=((Pe=J==null?void 0:J[B])==null?void 0:Pe.paymentMethod)||"",pe=pEe[z.toLowerCase()]||["credit","debit"],ae=RF(hEe,z),ue=RF(pe,Z),de=a&&((Ce=J==null?void 0:J[B])==null?void 0:Ce.source)==="autopilot",Q=de?"Managed by Autopilot — turn Autopilot off to edit":void 0,fe="text-sm text-slate-600 dark:text-slate-300",ne=J==null?void 0:J[B],ce=Be=>Be==null||Be===""?"Any":Be,he=Be=>Be==null||Be===""?"—":String(Be);return i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24] hover:bg-slate-50 dark:bg-[#0f0f16] transition-colors",children:[i.jsxs("td",{className:"px-4 py-2",children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.source`)}),((Re=J==null?void 0:J[B])==null?void 0:Re.source)==="autopilot"?i.jsx(Me,{variant:"green",children:"Auto"}):i.jsx(Me,{variant:"gray",children:"Manual"})]}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.paymentMethodType`)}),i.jsx("span",{className:fe,title:Q,children:z||"—"})]}):i.jsx("select",{...C(`subLevelInputConfig.${B}.paymentMethodType`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:ae.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.paymentMethod`)}),i.jsx("span",{className:fe,title:Q,children:Z||"—"})]}):i.jsx("select",{...C(`subLevelInputConfig.${B}.paymentMethod`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:ue.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.cardNetwork`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.cardNetwork)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.cardNetwork`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.currency`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.currency)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.currency`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.country`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.country)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.country`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.authType`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.authType)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.authType`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.bucketSize`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.bucketSize)})]}):i.jsx("input",{type:"number",...C(`subLevelInputConfig.${B}.bucketSize`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.hedgingPercent`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.hedgingPercent)})]}):i.jsx("input",{type:"number",step:"0.1",...C(`subLevelInputConfig.${B}.hedgingPercent`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.latencyThreshold`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.latencyThreshold)})]}):i.jsx("input",{type:"number",...C(`subLevelInputConfig.${B}.latencyThreshold`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsx("span",{className:"text-slate-500 dark:text-slate-400",title:"Managed by Autopilot — turn Autopilot off to remove",children:i.jsx(wn,{size:14})}):i.jsx("button",{type:"button",onClick:()=>W(B),className:"text-slate-500 hover:text-red-600",children:i.jsx(wn,{size:14})})})]},M.id)})})]}):i.jsx("div",{className:"px-4 py-6 text-sm text-slate-500",children:"No overrides yet — defaults apply to all payment types."})})]}),i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Configuration saved."}),i.jsx(we,{type:"submit",disabled:p||!n,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save changes"})]})}),f==="elimination"&&i.jsx(w6e,{merchantId:n}),f==="dimensions"&&i.jsx(v6e,{merchantId:n})]})]}),c==="flags"&&i.jsx(b6e,{merchantId:n}),c==="cost"&&i.jsx(n6e,{merchantId:n})]})]})}function g6e({active:t,onSelect:e}){return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:p6e.map(({id:n,icon:r,title:a,blurb:s})=>{const o=t===n;return i.jsxs("button",{type:"button",onClick:()=>e(n),"aria-current":o?"page":void 0,className:`flex shrink-0 items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors lg:w-full ${o?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(r,{size:18,className:`mt-0.5 shrink-0 ${o?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:a}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:s})]})]},n)})})}function x6e({on:t,onClick:e,disabled:n}){return i.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:n,onClick:e,className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${t?"bg-brand-500":"bg-slate-300 dark:bg-slate-600"}`,children:i.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${t?"translate-x-6":"translate-x-1"}`})})}function y6e({merchantId:t}){const e=Sl(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null),[c,u]=g.useState(!1),d=e.isEnabled("autopilot");async function f(p){r("master"),s(null),l(null);try{await e.setFeatureEnabled("autopilot",p),p?(await e.setFeatureEnabled("multi-objective-routing",!0),await e.setFeatureEnabled("auto-calibration",!0),t&&await l6e(t)):(await e.setFeatureEnabled("elimination",!1),await e.setFeatureEnabled("multi-objective-routing",!1),await e.setFeatureEnabled("auto-calibration",!1)),l(p?"Autopilot on — the engine self-tunes to your traffic (cost savings also enabled).":"Autopilot off — routing uses your Manual configuration.")}catch(m){s(m instanceof Error?m.message:String(m))}finally{r(null)}}const h=!t||e.isLoading;return i.jsxs("div",{className:"space-y-4",children:[a&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:a}),o&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:o}),i.jsx(Te,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:ra,children:"Autopilot mode"}),d?i.jsx(Me,{variant:"green",children:"On"}):i.jsx(Me,{variant:"gray",children:"Off"}),d&&i.jsx("button",{type:"button",onClick:()=>u(p=>!p),"aria-expanded":c,"aria-label":"Show static vs automatic tuning illustration",className:`inline-flex items-center rounded-full p-0.5 transition-colors ${c?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300"}`,children:i.jsx(qu,{className:"h-4 w-4"})})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb] max-w-[57ch]",children:"Let the engine self-tune routing to your traffic — it auto-configures the Learning window and Discovery share from your volume. Turn off to route purely by your Manual configuration."})]}),i.jsx(x6e,{on:d,disabled:h||n!==null,onClick:()=>f(!d)})]})}),i.jsx(Te,{className:d?"":"opacity-60",children:i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Always route to the best-performing PSP"}),i.jsx(Me,{variant:"gray",children:"SRv3"}),i.jsx(Me,{variant:"green",children:"Active"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb]",children:"Real-time success-rate routing. Always on — it is the base routing path."})]})})}),d&&c&&i.jsx(YLe,{})]})}const MF=[{feature:"gsm-scoring-filter",title:"GSM scoring filter",description:"Skip gateway penalization for failures classified by GSM as user or issuer-originated. Keeps gateway scores accurate by excluding faults that are not the gateway's responsibility."},{feature:"explore-exploit-srv3",title:"Explore-exploit on SRv3 (Card)",description:"Keeps all gateway ratings fresh by regularly sending a small share of payments to every gateway — not just the top performer. This ensures the system can quickly detect when a backup gateway becomes better than the current top, and reroute accordingly. The Hedging % setting controls how large this share is."},{feature:"ab-test-real-payments",title:"A/B test on real payments",description:"Routes live production traffic through the active A/B test algorithm. When enabled, each payment is deterministically assigned to a control or variant arm based on its payment ID. Disable at any time to fall back to standard SR routing with no impact on in-flight payments."},{feature:"multi-objective-routing",title:"Cost savings (optimize for economic value)",description:"Multi-objective routing: alongside approval rate, weighs each PSP's expected cost and picks the highest expected-value option. Works with either the Autopilot or Manual scoring config.",docsUrl:"https://docs.hyperswitch.io/integration-guide/workflows/intelligent-routing/routing-strategies/multi-objective-routing"}];function v6e({merchantId:t}){const e=Ao(),{data:n,mutate:r}=ct(t?`/config-sr-dimension/${t}`:null,Dt,{revalidateOnFocus:!1,shouldRetryOnError:!1}),[a,s]=g.useState(null),[o,l]=g.useState([]),[c,u]=g.useState(!1),[d,f]=g.useState(null),[h,p]=g.useState(!1);g.useEffect(()=>{var b,y;n&&(s(((b=n.paymentInfo)==null?void 0:b.fields)??[]),l(((y=n.paymentInfo)==null?void 0:y.udfs)??[]))},[n]);const m=a??[];function x(b){p(!1),s(y=>{const w=y??[];return w.includes(b)?w.filter(j=>j!==b):[...w,b]})}async function v(){if(!(!t||a==null)){u(!0),f(null),p(!1);try{await Fe("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:o,fields:a}}),p(!0),r()}catch(b){f(b instanceof Error?b.message:String(b))}finally{u(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"SR scoring dimensions"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Attributes SR scoring splits clusters on. More dimensions = finer, more responsive scores, but more clusters (each needs its own volume to score well). Changing this re-buckets scores. Autopilot enables the low-cardinality dimensions automatically."})]}),i.jsx(He,{className:"space-y-1",children:i6e.map(({key:b,label:y,note:w})=>i.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none py-1.5",children:[i.jsx("input",{type:"checkbox",checked:m.includes(b),onChange:()=>x(b),disabled:!t||a==null,className:"rounded border-slate-300 dark:border-slate-600 disabled:cursor-not-allowed"}),i.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-200",children:y}),w&&i.jsx("span",{className:"text-[11px] text-amber-700 leading-4",children:w})]},b))})]}),i.jsx(vt,{error:d}),h&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"SR dimensions saved."}),i.jsx(we,{onClick:v,disabled:c||!t||a==null||!e,children:c?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save SR Dimensions"})]})}function b6e({merchantId:t}){const e=Sl(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null);async function c(u,d){var f;r(u),s(null),l(null);try{await e.setFeatureEnabled(u,d);const h=((f=MF.find(p=>p.feature===u))==null?void 0:f.title)??u;s(`${h} ${d?"enabled":"disabled"}.`)}catch(h){l(h instanceof Error?h.message:String(h))}finally{r(null)}}return i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h2",{className:ra,children:"Scoring behaviour flags"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Merchant-level toggles that affect how SR scores are computed and how traffic is explored."})]}),o&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:o}),a&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:a}),i.jsx(Te,{children:MF.map(({feature:u,title:d,description:f,docsUrl:h},p)=>{const m=e.isEnabled(u);return i.jsxs("div",{className:`flex flex-wrap items-center justify-between gap-4 px-5 py-4 ${p>0?"border-t border-slate-100 dark:border-[#222226]":""}`,children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:d}),h&&i.jsx("a",{href:h,target:"_blank",rel:"noreferrer","aria-label":`${d} — documentation`,title:"Learn more",className:"inline-flex items-center rounded-full p-0.5 text-slate-500 transition-colors hover:text-brand-600 dark:text-slate-400 dark:hover:text-brand-400",children:i.jsx(qu,{className:"h-4 w-4"})}),e.isLoading?i.jsx(Me,{variant:"gray",children:"Checking"}):m?i.jsx(Me,{variant:"green",children:"Enabled"}):null]}),i.jsx("p",{className:`mt-1 ${pl} max-w-[68ch]`,children:f})]}),i.jsx("div",{children:m?i.jsxs(we,{size:"sm",variant:"danger",onClick:()=>c(u,!1),disabled:!t||n===u||e.isLoading,children:[i.jsx(_y,{size:13}),n===u?"Disabling":"Disable"]}):i.jsx(we,{size:"sm",variant:"primary",onClick:()=>c(u,!0),disabled:!t||n===u||e.isLoading,children:n===u?"Enabling":"Enable"})})]},u)})})]})}function w6e({merchantId:t}){var j;const e=Ao(),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),{data:v,mutate:b}=ct(t?["rule-elimination",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});g.useEffect(()=>{var k,S;if((k=v==null?void 0:v.config)!=null&&k.data){const _=v.config.data;r(String(_.threshold)),s(((S=_.txnLatency)==null?void 0:S.gatewayLatency)!=null?String(_.txnLatency.gatewayLatency):"")}},[v]);async function y(){if(!t)return;const k=parseFloat(n);if(isNaN(k)||k<0||k>1){u("Threshold must be a number between 0 and 1.");return}l(!0),u(null),f(!1);try{const S=v?"/rule/update":"/rule/create",_=a!==""?parseFloat(a):null;await Fe(S,{merchant_id:t,config:{type:"elimination",data:{threshold:k,txnLatency:_!=null?{gatewayLatency:_}:null}}}),f(!0),b()}catch(S){u(S instanceof Error?S.message:String(S))}finally{l(!1)}}async function w(){if(t){p(!0);try{await Fe("/rule/delete",{merchant_id:t,algorithm:"elimination"}),r(""),s(""),b(void 0,{revalidate:!1})}catch(k){u(k instanceof Error?k.message:String(k))}finally{p(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[t&&((j=v==null?void 0:v.config)==null?void 0:j.data)&&i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:ra,children:"Elimination Configuration"}),i.jsxs("p",{className:`mt-1 ${fc}`,children:["Elimination routing is active · threshold ",v.config.data.threshold]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Me,{variant:"green",children:"Active"}),i.jsxs(we,{type:"button",variant:"ghost",size:"sm",onClick:()=>x(k=>!k),children:[i.jsx(jf,{size:14,className:"mr-1"}),m?"Hide":"View"]}),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",disabled:h||!e,onClick:()=>{confirm("Clear the Elimination configuration?")&&w()},children:[i.jsx(wn,{size:14,className:"mr-1"}),h?"Clearing…":"Clear"]})]})]}),m&&i.jsx(He,{className:"border-t border-slate-100 dark:border-[#222226] text-xs text-slate-600 dark:text-[#b2bdd1]",children:i.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-3 font-mono text-xs dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef]",children:JSON.stringify(v.config,null,2)})})]}),i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"Elimination"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Each gateway carries a health score that decays on consecutive failures and recovers on successes. Below the threshold, it drops out of routing until it recovers."})]}),i.jsxs(He,{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsxs("span",{className:ks,children:["Threshold ",i.jsx("span",{className:"text-red-600",children:"*"})]}),i.jsx("input",{type:"number",step:"0.01",min:"0",max:"1",value:n,onChange:k=>r(k.target.value),placeholder:"0.05",className:Rx}),i.jsx("p",{className:pl,children:"Health score from 0 to 1, not success rate. Lower tolerates more failures before dropping a gateway."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Gateway latency threshold (ms)"}),i.jsx("input",{type:"number",value:a,onChange:k=>s(k.target.value),placeholder:"5000",className:Rx}),i.jsx("p",{className:pl,children:"Gateways slower than this are eliminated too. Leave blank to disable."})]})]})]}),i.jsx(vt,{error:c}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Elimination configuration saved successfully."}),i.jsx(we,{onClick:y,disabled:o||!t||n===""||!e,children:o?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save Elimination Config"})]})}function k6e(t){var r;const n=(((r=u2(t))==null?void 0:r.gateways)??[]).filter(a=>a.gatewayName.trim());return n.length===0?"No gateways configured":n.map(a=>`${a.gatewayName} ${a.split}%`).join(" / ")}function DF(t){var e;return(((e=u2(t))==null?void 0:e.gateways)??[]).map(n=>n.gatewayName.trim()).filter(Boolean)}function j6e(){const t=Ao(),e=Hr(),{merchantId:n}=$r(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState("all"),[k,S]=g.useState("all"),[_,C]=g.useState(""),{data:E,mutate:P}=ct(n?`/routing/list/${n}`:null,()=>Fe(`/routing/list/${n}`)),{data:R,mutate:A}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`)),T=new Set((R||[]).map(M=>M.id)),D=(R||[]).find(M=>{var z;const B=(z=M.algorithm_data||M.algorithm)==null?void 0:z.type;return B&&B!=="volume_split"}),L=(E||[]).filter(M=>{var B;return((B=M.algorithm_data||M.algorithm)==null?void 0:B.type)==="volume_split"}).sort((M,B)=>F0(B)-F0(M)),X=Array.from(new Set(L.flatMap(DF))).sort(),J=L.filter(M=>{if(w==="active"&&!T.has(M.id)||w==="inactive"&&T.has(M.id)||k!=="all"&&!DF(M).includes(k))return!1;if(_.trim()){const B=_.trim().toLowerCase();if(!M.name.toLowerCase().includes(B)&&!M.id.toLowerCase().includes(B))return!1}return!0});function U(M){a(B=>{const z=new Set(B);return z.has(M)?z.delete(M):z.add(M),z})}async function Y(M){if(n){if(D){o(M);return}await W(M)}}async function W(M){h(!0),v(null),y(null);try{await Fe("/routing/activate",{created_by:n,routing_algorithm_id:M}),y("Rule activated."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to activate")}finally{h(!1)}}async function G(M){m(M),v(null),y(null);try{await Fe("/routing/deactivate",{created_by:n,routing_algorithm_id:M}),y("Rule deactivated."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to deactivate")}finally{m(null)}}async function I(M){if(n){v(null),y(null);try{await Fe("/routing/delete",{created_by:n,routing_algorithm_id:M}),y("Rule deleted."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to delete")}finally{d(null)}}}const q=L.find(M=>M.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Hs,{open:s!==null,title:"Switch to Volume Split Routing?",description:`"${D==null?void 0:D.name}" is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const M=s;o(null),W(M)},onCancel:()=>o(null)}),i.jsx(Hs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const M=l;c(null),G(M)},onCancel:()=>c(null)}),i.jsx(Hs,{open:u!==null,title:"Delete this rule?",description:`"${q==null?void 0:q.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>I(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(Ba,{title:"Volume Split Routing",description:"Divide payment traffic across gateways by fixed percentages, independent of transaction attributes."})}),i.jsxs(we,{onClick:()=>e("/routing/volume/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?L.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No volume split rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(DH,{label:"Rule Name & ID",value:_,onChange:C,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:M=>j(M),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Distribution",value:k,options:[{value:"all",label:"All gateways"},...X.map(M=>({value:M,label:M}))],onChange:S,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[J.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),S("all"),C("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),J.map(M=>{var ae;const B=T.has(M.id),z=r.has(M.id),Z=k6e(M),pe=B?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":M.name,onClick:()=>U(M.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${B?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[z?i.jsx(ln,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(So,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:M.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:M.id})]})]})}),i.jsx("td",{className:"px-5 py-4",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${B?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:B?"Active":"Inactive"})}),i.jsx("td",{className:"max-w-[320px] px-5 py-4",children:i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",title:Z,children:Z})}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const ue=$H(M);return ue?i.jsxs("span",{title:ue.full,children:[ue.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:ue.time})]}):"—"})()}),i.jsx("td",{className:"px-5 py-4",onClick:ue=>ue.stopPropagation(),children:i.jsx(IH,{items:[B?{label:p===M.id?"Deactivating…":"Deactivate",icon:_y,onSelect:()=>c(M.id),disabled:p===M.id||!t}:{label:"Activate",icon:VW,tone:"positive",onSelect:()=>Y(M.id),disabled:f||!t},{label:"Edit",icon:jl,onSelect:()=>e(`/routing/volume/${M.id}/edit`),disabled:!!pe,hint:pe},{label:"Duplicate",icon:nf,onSelect:()=>e(`/routing/volume/new?cloneFrom=${M.id}`),disabled:!t},{label:"Delete",icon:wn,tone:"danger",onSelect:()=>d(M.id),disabled:!!pe,hint:pe}]})})]},M.id),z?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:5,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[M.description&&M.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:M.description}),i.jsx(NY,{gateways:((ae=u2(M))==null?void 0:ae.gateways)??[]})]})},`${M.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs($a,{tone:"warning",children:[i.jsxs("strong",{children:["“",D.name,"” is active"]})," — activating a volume split rule will automatically deactivate it."]})]})}function S6e(t){if(!t.name.trim())return"Enter an experiment name";if(t.experimentType==="sr_config_tuning"){const e=t.variantSrConfig;if(e.hedgingPercent!==null&&(e.hedgingPercent<0||e.hedgingPercent>100))return"Hedging % must be between 0 and 100";if(e.eliminationThreshold!==null&&(e.eliminationThreshold<0||e.eliminationThreshold>1))return"Elimination threshold must be between 0 and 1";if(e.hedgingPercent===null&&e.eliminationThreshold===null)return"Set at least one parameter override for the variant arm"}else{if(!t.controlAlgorithmId)return"Select a control strategy";if(!t.variantAlgorithmId)return"Select a variant strategy";if(t.controlAlgorithmId===t.variantAlgorithmId)return"Control and variant must be different strategies"}return t.variantSplitPct<5||t.variantSplitPct>30?"Variant traffic must be between 5% and 30%":t.minSampleSize<100?"Minimum sample size must be at least 100 transactions":t.guardrailThresholdPp<=0||t.guardrailThresholdPp>20?"Guardrail threshold must be between 0.1 and 20 percentage points":null}function _6e(t){const e={};return t.hedgingPercent!==null&&(e.hedging_percent=t.hedgingPercent),t.eliminationThreshold!==null&&(e.elimination_threshold=t.eliminationThreshold),e}const N6e={sr_config_tuning:t=>`SR config tuning: ${t}% variant traffic`,algorithm_comparison:t=>`A/B test: ${t}% variant traffic`};function IF(t){switch(t){case"sr_auth":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!1}};case"sr_auth_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!0}};case"sr_mo_manual":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!1}};case"sr_mo_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!0}};default:return{id:t}}}function C6e(t,e){const n={variant_split_pct:t.variantSplitPct,min_sample_size:t.minSampleSize,guardrail_threshold_pp:t.guardrailThresholdPp};let r;if(t.experimentType==="sr_config_tuning")r={...n,control_algorithm_id:"sr_routing",variant_algorithm_id:"sr_routing",variant_sr_config:_6e(t.variantSrConfig)};else{const a=IF(t.controlAlgorithmId),s=IF(t.variantAlgorithmId);r={...n,control_algorithm_id:a.id,variant_algorithm_id:s.id,...a.config&&{control_sr_config:a.config},...s.config&&{variant_sr_config:s.config}}}return{name:t.name.trim(),description:N6e[t.experimentType](t.variantSplitPct),created_by:e,algorithm_for:"payment",metadata:{},algorithm:{type:"ab_test",data:r}}}const RP={sr_auth:"Maximize approvals · manual tuning",sr_auth_autopilot:"Maximize approvals · auto-tuned",sr_mo_manual:"Approvals + save on fees · manual",sr_mo_autopilot:"Approvals + save on fees · auto-tuned"},E6e={hedgingPercent:null,eliminationThreshold:null};function A6e(t){const e=t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function $F(t,e){return t!=="sr_routing"?t:(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth"}function LF(t){var r,a;const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="ab_test")return null;const n=e.data;return{name:t.name,experimentType:A6e(n),controlAlgorithmId:$F(n.control_algorithm_id,n.control_sr_config),variantAlgorithmId:$F(n.variant_algorithm_id,n.variant_sr_config),variantSplitPct:n.variant_split_pct,minSampleSize:n.min_sample_size,guardrailThresholdPp:n.guardrail_threshold_pp,variantSrConfig:{hedgingPercent:((r=n.variant_sr_config)==null?void 0:r.hedging_percent)??null,eliminationThreshold:((a=n.variant_sr_config)==null?void 0:a.elimination_threshold)??null}}}const FF=[1e3,5e3,1e4,5e4],O6e={algorithm_comparison:"Compare any two routing strategies — SR (auth), SR cost-aware (manual/autopilot), rule-based, or volume split.",sr_config_tuning:"Same SR algorithm, different hedging % or elimination threshold on the variant."};function nX(t){const e=t==null?void 0:t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function T6e(t){var e,n;return((e=t==null?void 0:t.control_sr_config)==null?void 0:e.enable_multi_objective)===!0||((n=t==null?void 0:t.variant_sr_config)==null?void 0:n.enable_multi_objective)===!0}function P6e({kind:t}){return t==="sr_config_tuning"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-violet-100 text-violet-700 dark:bg-violet-900/30 dark:text-violet-300 leading-4",children:[i.jsx(zW,{size:9})," SR Config Tuning"]}):null}function ly(t,e,n){if(t==="sr_routing"){const r=(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth";return RP[r]}return n(t)}function AO({algorithmId:t,algorithms:e}){const n=e.find(o=>o.id===t);if(!n)return null;const r=n.algorithm_data||n.algorithm,a=r==null?void 0:r.type,s=r==null?void 0:r.data;if(a==="advanced")return i.jsx(bT,{algo:n});if(a==="priority"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-xs font-medium text-brand-700 dark:text-brand-300",children:[c+1,". ",l.gateway_name]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connectors configured."})}if(a==="volume_split"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300",children:[l.output.gateway_name," ",l.split,"%"]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No splits configured."})}if(a==="single"){const o=s;return o?i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-xs font-medium text-slate-600 dark:text-[#8090a8]",children:o.gateway_name}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connector configured."})}return null}function pf({text:t}){const[e,n]=g.useState(null);return i.jsxs("span",{tabIndex:0,"aria-label":t,className:"inline-flex cursor-help align-middle text-slate-500 hover:text-slate-600 focus:text-slate-600 focus:outline-none dark:text-slate-400 dark:hover:text-slate-300 dark:focus:text-slate-300 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-brand-500/60",onMouseEnter:r=>n({x:r.clientX,y:r.clientY}),onMouseLeave:()=>n(null),onFocus:r=>{const a=r.currentTarget.getBoundingClientRect();n({x:a.left+a.width/2,y:a.bottom})},onBlur:()=>n(null),children:[i.jsx(qu,{size:12}),e&&gs.createPortal(i.jsx("span",{role:"tooltip",style:{position:"fixed",left:Math.min(e.x+14,window.innerWidth-252),top:e.y+16,maxWidth:240},className:"pointer-events-none z-[200] block w-max rounded-lg bg-slate-900 px-2.5 py-1.5 text-xs font-normal leading-snug text-white shadow-lg dark:bg-slate-700",children:t}),document.body)]})}function nN({children:t,hint:e,required:n}){return i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:[t,n&&i.jsx("span",{className:"text-slate-500",children:"*"}),e&&i.jsx(pf,{text:e})]})}const ep="border border-slate-200 bg-transparent rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function rN({children:t,divide:e}){return i.jsx("section",{className:`space-y-4 ${e?"border-t border-slate-200 dark:border-[#262d3a] pt-6":""}`,children:t})}const BF={advanced:"Rule-based",volume_split:"Volume split",priority:"Priority list",single:"Single connector"},rX=Object.keys(RP),Tg=t=>rX.includes(t);function zF({label:t,help:e,accent:n,algorithms:r,value:a,excludeId:s,allowedSrStrategies:o,liveSrConfig:l,onChange:c}){var b;const u=rX.filter(y=>o.includes(y)||a===y),d=y=>{var j;if(Tg(y))return y;const w=r.find(k=>k.id===y);return w?((j=w.algorithm_data||w.algorithm)==null?void 0:j.type)??"":""},[f,h]=g.useState(()=>d(a));g.useEffect(()=>{const y=d(a);y&&h(y)},[a,r]);const p=Array.from(new Set(r.map(y=>{var w;return(w=y.algorithm_data||y.algorithm)==null?void 0:w.type}).filter(Boolean))),m=f&&!Tg(f)?r.filter(y=>{var w;return((w=y.algorithm_data||y.algorithm)==null?void 0:w.type)===f}):[];function x(y){if(h(y),Tg(y)){c(y);return}if(!y){c("");return}const w=r.filter(j=>{var k;return((k=j.algorithm_data||j.algorithm)==null?void 0:k.type)===y});c(w.length===1?w[0].id:"")}const v=`w-full ${ep}`;return i.jsxs("div",{className:`rounded-xl border p-3 ${n?"border-brand-200 bg-brand-50/40 dark:border-brand-800/50 dark:bg-brand-900/10":"border-slate-200 bg-slate-50/50 dark:border-[#222226] dark:bg-[#0c0c10]"}`,children:[i.jsxs("div",{className:"mb-2 flex items-center gap-1.5",children:[i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:t}),i.jsx(pf,{text:e})]}),i.jsxs("select",{className:v,value:f,onChange:y=>x(y.target.value),children:[i.jsx("option",{value:"",children:"Select strategy"}),u.map(y=>i.jsx("option",{value:y,disabled:s===y,children:RP[y]},y)),p.map(y=>i.jsx("option",{value:y,children:BF[y]??y},y))]}),m.length>1&&i.jsxs("select",{className:`${v} mt-2`,value:a,onChange:y=>c(y.target.value),children:[i.jsxs("option",{value:"",children:["Select ",((b=BF[f])==null?void 0:b.toLowerCase())??"config"]}),m.map(y=>i.jsx("option",{value:y.id,disabled:y.id===s,children:y.name},y.id))]}),m.length===1&&i.jsxs("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:["Using ",i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:m[0].name})]}),a&&!Tg(a)&&i.jsx("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:i.jsx(AO,{algorithmId:a,algorithms:r})}),a&&Tg(a)&&i.jsxs("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] mb-1.5 leading-4",children:"Base SR config"}),i.jsx(D6e,{hedging:l.hedging,elimination:l.elimination,bucketSize:l.bucketSize,autopilotSegmentCount:l.autopilotSegmentCount,autopilotFeatureOn:l.autopilotFeatureOn,honorsAutopilot:a==="sr_mo_autopilot"||a==="sr_auth_autopilot"})]})]})}function UF(t){return`${t>0?"+":""}${t.toFixed(2)}pp`}function Ob(t){return`${(t*100).toFixed(2)}%`}function R6e({verdict:t}){return t==="collecting_data"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(PW,{size:11})," Collecting data"]}):t==="variant_wins"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[i.jsx(Ip,{size:11})," Variant wins"]}):t==="variant_loses"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Ij,{size:11})," Variant loses"]}):t==="guardrail_breached"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(wm,{size:11})," Guardrail breached"]}):t==="not_significant"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(Ip,{size:11})," No significant difference"]}):null}const M6e="autopilot";function aX(t){var r,a,s,o,l,c,u,d;const{data:e}=ct(t?["rule-sr-live",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{data:n}=ct(t?["rule-elim-live",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});return{liveHedging:((a=(r=e==null?void 0:e.config)==null?void 0:r.data)==null?void 0:a.defaultHedgingPercent)??null,liveElimination:((o=(s=n==null?void 0:n.config)==null?void 0:s.data)==null?void 0:o.threshold)??null,liveBucketSize:((c=(l=e==null?void 0:e.config)==null?void 0:l.data)==null?void 0:c.defaultBucketSize)??null,autopilotSegmentCount:(((d=(u=e==null?void 0:e.config)==null?void 0:u.data)==null?void 0:d.subLevelInputConfig)??[]).filter(f=>f.source===M6e).length}}function D6e({hedging:t,elimination:e,bucketSize:n,autopilotSegmentCount:r,honorsAutopilot:a,autopilotFeatureOn:s}){return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Hedging %"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:t!==null?`${t}%`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Elimination threshold"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:e!==null?`Drops below ${(e*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket size"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:n!==null?`${n} requests`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),a&&s&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-amber-700 dark:text-amber-400 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Auto-tunes bucket size and hedging % per segment, based on your traffic volume.",i.jsx(pf,{text:r>0?`Autopilot is tuning ${r} segment${r===1?"":"s"} (by payment method / network / currency / country) — bucket size and hedging % can differ per segment and over time, so the values above are just the base config.`:"Autopilot will start tuning bucket size and hedging % per segment once enough traffic flows through it. Until then, every transaction uses the base config shown above."})]}),a&&!s&&r>0&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-slate-500 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Autopilot is off — ",r," segment",r===1?"":"s"," from earlier tuning",i.jsx(pf,{text:`Autopilot (auto-calibration) is currently disabled for this merchant. ${r} segment${r===1?"":"s"} still carry values it tuned before being turned off, but nothing is being actively adjusted right now — every transaction uses the base config shown above.`})]})]})}function I6e(t){return t==="variant_wins"||t==="variant_loses"||t==="guardrail_breached"}function $6e({verdict:t}){return t==="not_significant"?i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-slate-300 bg-slate-50 px-4 py-3 dark:border-slate-600/40 dark:bg-slate-500/10",children:[i.jsx(qu,{size:16,className:"mt-0.5 shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("p",{className:"text-[13px] text-slate-700 dark:text-slate-300 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-slate-900 dark:text-slate-100",children:"Sample target reached — no significant difference."})," ","Control and variant are statistically tied: the delta below sits within the 95% confidence interval, so neither strategy is a proven winner. Collecting more traffic won't change this unless the true gap is larger than the current split can detect — a wider variant allocation would tighten the interval faster."]})]}):i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(wm,{size:16,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("p",{className:"text-[13px] text-amber-800 dark:text-amber-300/90 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-amber-900 dark:text-amber-200",children:"Not statistically significant yet."})," ","The deltas below are still within noise — let the experiment reach its sample target before drawing conclusions."]})]})}function _k({label:t,pct:e,accent:n}){return i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:[t," · ",e,"%"]})}function L6e({abData:t,isTuning:e,controlPct:n,variantPct:r,live:a,autopilotOn:s,algorithmName:o,algorithms:l}){var x,v,b,y;const c=t.control_algorithm_id==="sr_routing",u=t.variant_algorithm_id==="sr_routing",d=w=>i.jsx("span",{className:"italic text-slate-500",children:w}),f=i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"—"}),h=w=>i.jsx("span",{className:"font-medium text-brand-600 dark:text-brand-400",children:w}),p=w=>`Drops below ${(w*100).toFixed(0)}% score`,m=[{label:"Strategy",control:ly(t.control_algorithm_id,t.control_sr_config,o),variant:ly(t.variant_algorithm_id,t.variant_sr_config,o)}];if(e){const w=(x=t.variant_sr_config)==null?void 0:x.hedging_percent,j=(v=t.variant_sr_config)==null?void 0:v.elimination_threshold;m.push({label:"Hedging %",control:a.hedging!=null?`${a.hedging}%`:d("Uses default"),variant:typeof w=="number"?h(`${w}%`):d("Same as control")}),m.push({label:"Elimination threshold",control:a.elimination!=null?p(a.elimination):d("Uses default"),variant:typeof j=="number"?h(p(j)):d("Same as control")})}else{if(c||u){const w=c&&((b=t.control_sr_config)==null?void 0:b.use_autopilot)!==!1&&s,j=u&&((y=t.variant_sr_config)==null?void 0:y.use_autopilot)!==!1&&s,k=(C,E)=>C?E?d("Auto-tuned per segment"):a.hedging!=null?`${a.hedging}%`:d("Uses default"):f,S=(C,E)=>C?E?d("Auto-tuned per segment"):a.bucketSize!=null?`${a.bucketSize} requests`:d("Uses default"):f,_=C=>C?a.elimination!=null?p(a.elimination):d("Uses default"):f;m.push({label:"Hedging %",control:k(c,w),variant:k(u,j)}),m.push({label:"Elimination threshold",control:_(c),variant:_(u)}),m.push({label:"Bucket size",control:S(c,w),variant:S(u,j)})}(!c||!u)&&m.push({label:"Routing rule",control:c?d("SR scoring"):i.jsx(AO,{algorithmId:t.control_algorithm_id,algorithms:l}),variant:u?d("SR scoring"):i.jsx(AO,{algorithmId:t.variant_algorithm_id,algorithms:l})})}return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"w-[28%] px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Attribute"}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(_k,{label:"Control",pct:n})}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(_k,{label:"Variant",pct:r,accent:!0})})]})}),i.jsx("tbody",{children:m.map((w,j)=>i.jsxs("tr",{className:j>0?"border-t border-slate-100 dark:border-[#1a1a22]":"",children:[i.jsx("td",{className:"px-4 py-2.5 align-top text-[13px] font-medium text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:w.label}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.control}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.variant})]},w.label))})]})})}function F6e({results:t,controlPct:e,variantPct:n,costKind:r,significant:a}){const s=t.control,o=t.variant,l=(o.auth_rate-s.auth_rate)*100,c=(o.first_attempt_auth_rate-s.first_attempt_auth_rate)*100,u=(o.total_cost_saved??0)-(s.total_cost_saved??0),d=p=>a?p>0?"text-emerald-700 dark:text-emerald-400":p<0?"text-red-600":"text-slate-500":"text-slate-500 dark:text-slate-400",f="px-4 py-2.5 text-right text-slate-700 dark:text-slate-200",h=(p,m)=>i.jsxs("td",{className:"px-4 py-2.5",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:p})," ",i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:m})]});return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm [font-variant-numeric:tabular-nums]",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Metric"}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(_k,{label:"Control",pct:e})}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(_k,{label:"Variant",pct:n,accent:!0})}),i.jsx("th",{className:"px-4 py-2.5 text-right text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Delta"})]})}),i.jsxs("tbody",{children:[i.jsxs("tr",{children:[h("Net auth rate","NAR"),i.jsx("td",{className:f,children:Ob(s.auth_rate)}),i.jsx("td",{className:f,children:Ob(o.auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(l)}`,children:UF(l)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("First-attempt rate","FAAR"),i.jsx("td",{className:f,children:Ob(s.first_attempt_auth_rate)}),i.jsx("td",{className:f,children:Ob(o.first_attempt_auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(c)}`,children:UF(c)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Transactions","count"),i.jsx("td",{className:f,children:s.transaction_count.toLocaleString()}),i.jsx("td",{className:f,children:o.transaction_count.toLocaleString()}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Outcome","success / fail"),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:s.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:s.failure_count.toLocaleString()})]}),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:o.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:o.failure_count.toLocaleString()})]}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),r&&i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Cost saved","TCS"),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:s.total_cost_saved!=null?s.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:o.total_cost_saved!=null?o.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(u)}`,children:`${u>0?"+":""}${u.toLocaleString(void 0,{maximumFractionDigits:2})}`})]})]})]})})}function B6e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t))}function z6e({algorithm:t,isActive:e,merchantId:n,algorithmName:r,algorithms:a,onActivate:s,onStop:o,onEdit:l,onDelete:c,onClone:u,realPaymentsOn:d}){var Z,pe;const f=Ao(),h=(Z=t.algorithm_data||t.algorithm)==null?void 0:Z.data,p=nX(h),m=p==="sr_config_tuning",x=T6e(h),{liveHedging:v,liveElimination:b,liveBucketSize:y}=aX(n||void 0),w=Sl(n||void 0),j=w.isEnabled("auto-calibration")||w.isEnabled("autopilot"),k=(pe=h==null?void 0:h.variant_sr_config)==null?void 0:pe.margin,S=h?`/analytics/experiment/${t.id}/results?min_sample_size=${h.min_sample_size}&guardrail_threshold_pp=${h.guardrail_threshold_pp}${k!==void 0?`&evaluation_margin=${k}`:""}`:null,{data:_,isLoading:C}=ct(n&&S?S:null,Dt,{refreshInterval:6e4}),E=20,[P,R]=g.useState(1),A=`/analytics/experiment/${t.id}/transactions?page_size=${E}&page=${P}`,{data:T,isLoading:D}=ct(n?A:null,Dt,{refreshInterval:6e4});function L(ae){if(!h)return"—";const ue=ae==="control"?h.control_algorithm_id:h.variant_algorithm_id,de=ae==="control"?h.control_sr_config:h.variant_sr_config;return ue==="sr_routing"&&m?ae==="variant"?"SR Routing (custom params)":"SR Routing (live config)":ly(ue,de,r)}function X(ae,ue){if(!(ue==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing"))return;const Q=`/audit?range=1d&exclude_routing_approach=NTW_BASED_ROUTING&payment_id=${encodeURIComponent(ae)}`;window.open(Q,"_blank")}function J(ae,ue){if(ue<=7)return Array.from({length:ue},(he,be)=>be+1);const Q=Math.floor(5/2);let fe=ae-Q,ne=ae+Q;fe<2&&(ne+=2-fe,fe=2),ne>ue-1&&(fe-=ne-(ue-1),ne=ue-1),fe=Math.max(2,fe),ne=Math.min(ue-1,ne);const ce=[1];fe>2&&ce.push(null);for(let he=fe;he<=ne;he++)ce.push(he);return ne{if(q!=="active"||U<=0||U>=Y)return null;const ae=t.modified_at?Date.parse(t.modified_at):NaN;if(!Number.isFinite(ae))return null;const ue=Date.now()-ae;if(ue<=0)return null;const Q=ue/U*(Y-U)/36e5;if(!Number.isFinite(Q)||Q<=0)return null;const fe="at current volume";return Q<1?`~${Math.max(1,Math.round(Q*60))} min remaining ${fe}`:Q<48?`~${Math.round(Q)} hrs remaining ${fe}`:`~${Math.round(Q/24)} days remaining ${fe}`})(),z=h?[{label:"Traffic split",value:`${G}% / ${I}%`},{label:"Sample target",value:`${Y.toLocaleString()} txns`},{label:"Guardrail",value:`${h.guardrail_threshold_pp}pp`}]:[];return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white px-5 py-5 dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx("div",{className:"min-w-0",children:i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h2",{className:"text-lg font-semibold tracking-tight text-slate-900 dark:text-white",children:t.name}),i.jsx(P6e,{kind:p}),q==="active"&&i.jsx(Me,{variant:"green",children:"Active"}),q==="paused"&&i.jsx(Me,{variant:"orange",children:"Not collecting"}),q==="inactive"&&i.jsx(Me,{variant:"gray",children:"Inactive"})]})}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:e?i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(nf,{size:13})," Duplicate"]}),i.jsxs(we,{size:"sm",variant:"danger",onClick:o,disabled:!f,children:[i.jsx(_y,{size:13})," Stop"]})]}):i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(nf,{size:13})," Duplicate"]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:l,disabled:!f,children:[i.jsx(jl,{size:13})," Edit"]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:c,disabled:!f,children:[i.jsx(wn,{size:13})," Delete"]}),i.jsx(we,{size:"sm",variant:"primary",onClick:s,disabled:!f,children:"Activate"})]})})]}),z.length>0&&i.jsx("div",{className:"mt-4 flex flex-wrap gap-y-3",children:z.map((ae,ue)=>i.jsxs("div",{className:`min-w-[8rem] pr-6 ${ue>0?"border-l border-slate-200 pl-6 dark:border-[#222226]":""}`,children:[i.jsx("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:ae.label}),i.jsx("p",{className:"mt-0.5 text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:ae.value})]},ae.label))}),_&&i.jsxs("div",{className:"mt-5 space-y-2 border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"flex items-end justify-between",children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Transactions collected"}),i.jsxs("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:[U.toLocaleString()," ",i.jsxs("span",{className:"text-slate-500",children:["/ ",Y.toLocaleString()]})]})]}),i.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${M?"bg-emerald-500":"bg-brand-500"}`,style:{width:`${W}%`}})}),i.jsxs("p",{className:"text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[W,"% of the ",Y.toLocaleString(),"-transaction target",B?` · ${B}`:""]})]})]}),h&&i.jsxs("section",{className:"space-y-2.5 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsx("h3",{className:ra,children:"Configuration"}),i.jsx(L6e,{abData:h,isTuning:m,controlPct:G,variantPct:I,live:{hedging:v,elimination:b,bucketSize:y},autopilotOn:j,algorithmName:r,algorithms:a})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:ra,children:"Results"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:"Updates every 60 seconds"})]}),_&&i.jsx(R6e,{verdict:_.verdict})]}),C&&!_?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[i.jsx(at,{size:14})," Loading stats…"]}):_?i.jsxs("div",{className:"space-y-4",children:[!M&&i.jsx($6e,{verdict:_.verdict}),i.jsx(F6e,{results:_,controlPct:G,variantPct:I,costKind:x,significant:M}),_.verdict==="guardrail_breached"&&i.jsxs($a,{tone:"danger",children:[i.jsx(qNe,{size:12}),"Variant auth rate dropped ",Math.abs(_.delta_pp).toFixed(2),"pp below control — beyond the ",h==null?void 0:h.guardrail_threshold_pp,"pp guardrail. Consider stopping the experiment."]})]}):i.jsx("p",{className:"text-sm italic text-slate-500",children:"Stats unavailable — analytics pipeline may not be configured in this environment."})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:ra,children:"Transactions"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:T?`${T.total.toLocaleString()} decisions`:"Loading…"})]}),D&&i.jsx(at,{size:14})]}),i.jsxs("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:[i.jsx("table",{className:"w-full text-sm",children:i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-xs text-slate-500 bg-slate-50 dark:bg-[#0c0c10] border-b border-slate-200 dark:border-[#222226]",children:[i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Arm"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Routing"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Payment ID"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Gateway"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Status"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Time"})]})})}),i.jsxs("div",{className:"max-h-[400px] overflow-y-auto",children:[i.jsx("table",{className:"w-full text-base",children:i.jsx("tbody",{children:T!=null&&T.transactions.length?T.transactions.map((ae,ue)=>{const de=ae.variant_arm==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing";return i.jsxs("tr",{onClick:()=>X(ae.payment_id,ae.variant_arm),title:de?"Open in Decision Audit":"Audit trail not available for static arm payments",className:`border-b border-slate-50 dark:border-[#131318] transition-colors ${de?"cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f16]":"cursor-default opacity-60"}`,children:[i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-semibold ${ae.variant_arm==="control"?"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300":"bg-brand-100 text-brand-700 dark:bg-brand-900/30 dark:text-brand-300"} leading-4`,children:ae.variant_arm==="control"?"Control":"Variant"})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 dark:text-slate-400 whitespace-nowrap",children:L(ae.variant_arm)}),i.jsx("td",{className:"px-4 py-3 font-mono text-sm text-slate-600 dark:text-slate-400 max-w-[180px] truncate",children:ae.payment_id}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-700 dark:text-slate-300",children:ae.gateway??"—"}),i.jsx("td",{className:"px-4 py-3",children:ae.status==="success"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400 leading-4",children:"success"}):ae.status==="failure"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400 leading-4",children:"failure"}):i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 leading-4",title:"Payment was routed but no outcome was recorded — counted against auth rate",children:[i.jsx(PW,{size:9})," no outcome"]})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 whitespace-nowrap",children:B6e(ae.created_at_ms)})]},`${ae.payment_id}-${ue}`)}):i.jsx("tr",{children:i.jsx("td",{colSpan:6,className:"px-4 py-8 text-base text-slate-500 text-center",children:D?"Loading…":"No transactions logged yet for this experiment."})})})}),T&&T.total>E&&(()=>{const ae=Math.ceil(T.total/E);return i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-t border-slate-100 dark:border-[#1e2330]",children:[i.jsxs("p",{className:"text-sm text-slate-500",children:["Page ",P," of ",ae," · ",T.total.toLocaleString()," total"]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",onClick:()=>R(ue=>Math.max(1,ue-1)),disabled:P===1||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"← Prev"}),J(P,ae).map((ue,de)=>ue===null?i.jsx("span",{className:"px-1 text-sm text-slate-500",children:"…"},`ellipsis-${de}`):i.jsx("button",{type:"button",onClick:()=>R(ue),disabled:D,className:`min-w-[28px] px-2 py-1 rounded-md border text-sm transition-colors ${ue===P?"border-brand-500 bg-brand-500 text-white":"border-slate-200 dark:border-[#222226] text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22]"}`,children:ue},ue)),i.jsx("button",{type:"button",onClick:()=>R(ue=>Math.min(ae,ue+1)),disabled:P===ae||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"Next →"})]})]})})()]})]})]})]})}function U6e({label:t,splitPct:e,config:n,onChange:r}){return i.jsxs("div",{className:"rounded-xl border border-brand-200 dark:border-brand-800/50 bg-brand-50/30 dark:bg-brand-900/10 px-4 py-4 space-y-3",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-brand-100 px-2 py-0.5 text-[11px] font-semibold text-brand-700 dark:bg-brand-900/40 dark:text-brand-300 leading-4",children:[t," (",e,"%)"]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:["Hedging %",i.jsx(pf,{text:"Share of traffic sent to non-top gateways to keep their scores fresh (the explore-exploit tradeoff)."})]}),i.jsx("input",{type:"number",min:0,max:100,step:1,value:n.hedgingPercent??"",placeholder:"e.g. 5",onChange:a=>r(s=>({...s,hedgingPercent:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${ep}`})]}),i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:["Elimination threshold (0–1)",i.jsx(pf,{text:"SR score (0–1) below which a gateway is dropped from routing."})]}),i.jsx("input",{type:"number",min:0,max:1,step:.01,value:n.eliminationThreshold??"",placeholder:"e.g. 0.70",onChange:a=>r(s=>({...s,eliminationThreshold:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${ep}`})]})]})]})}function VF({form:t,setForm:e,eligibleAlgorithms:n,saving:r,error:a,success:s,createdId:o,merchantId:l,isEditing:c,onCreate:u,onActivateCreated:d,onCancel:f}){const h=Ao(),p=Sl(l||void 0),m=p.isEnabled("multi-objective-routing"),x=p.isEnabled("auto-calibration")||p.isEnabled("autopilot"),v=["sr_auth",...x?["sr_auth_autopilot"]:[],...m?["sr_mo_manual"]:[],...m&&x?["sr_mo_autopilot"]:[]],{liveHedging:b,liveElimination:y,liveBucketSize:w,autopilotSegmentCount:j}=aX(l||void 0),[k,S]=g.useState(!FF.includes(t.minSampleSize)),_=C=>`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors ${t.experimentType===C?"bg-white text-slate-900 shadow-sm dark:bg-[#2a3140] dark:text-white":"text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-white"}`;return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h2",{className:ra,children:c?"Edit experiment":"New experiment"})}),i.jsxs(He,{className:"space-y-6",children:[c&&i.jsxs("div",{children:[i.jsx(nN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${ep}`,value:t.name,onChange:C=>e(E=>({...E,name:C.target.value}))}),i.jsx("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:"Only the name can be changed. To test a different routing setup, create a new experiment."})]}),!c&&i.jsxs(i.Fragment,{children:[i.jsxs(rN,{children:[i.jsxs("div",{children:[i.jsx("label",{className:`mb-2 block ${ks}`,children:"Experiment type"}),i.jsxs("div",{className:"inline-flex rounded-lg border border-slate-200 bg-slate-100 p-0.5 dark:border-[#222226] dark:bg-[#14181f]",children:[i.jsxs("button",{type:"button",className:_("algorithm_comparison"),onClick:()=>e(C=>({...C,experimentType:"algorithm_comparison"})),children:[i.jsx(VNe,{size:13})," Algorithm comparison"]}),i.jsxs("button",{type:"button",className:_("sr_config_tuning"),onClick:()=>e(C=>({...C,experimentType:"sr_config_tuning"})),children:[i.jsx(zW,{size:13})," SR config tuning"]})]}),i.jsxs("div",{className:"mt-2.5 flex items-start gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-[#14181f]",children:[i.jsx(qu,{size:14,className:"mt-0.5 shrink-0 text-slate-500"}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:O6e[t.experimentType]})]})]}),i.jsxs("div",{children:[i.jsx(nN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${ep}`,placeholder:t.experimentType==="sr_config_tuning"?"e.g. Hedging 10% vs 5%":"e.g. Stripe vs Checkout.com",value:t.name,onChange:C=>e(E=>({...E,name:C.target.value}))})]}),t.experimentType==="algorithm_comparison"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i.jsx(zF,{label:"Control",help:"Your current strategy — the baseline.",algorithms:n,value:t.controlAlgorithmId,excludeId:t.variantAlgorithmId,allowedSrStrategies:v,liveSrConfig:{hedging:b,elimination:y,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:C=>e(E=>({...E,controlAlgorithmId:C}))}),i.jsx(zF,{label:"Variant",help:"The new strategy you want to test.",accent:!0,algorithms:n,value:t.variantAlgorithmId,excludeId:t.controlAlgorithmId,allowedSrStrategies:v,liveSrConfig:{hedging:b,elimination:y,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:C=>e(E=>({...E,variantAlgorithmId:C}))})]}),t.experimentType==="sr_config_tuning"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-slate-50/50 dark:bg-[#0c0c10] px-4 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold text-slate-600 dark:bg-slate-700 dark:text-slate-200 leading-4",children:["Control (",100-t.variantSplitPct,"%)"]}),i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:"current config"})]}),i.jsxs("div",{className:"space-y-2.5",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Hedging %"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:b!==null?`${b}%`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Elimination threshold"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:y!==null?`Drops below ${(y*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]})]}),i.jsxs("p",{className:"text-[12px] text-slate-500 pt-1 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Edit in ",i.jsx("span",{className:"font-medium",children:"SR Routing → Scoring / Elimination"})]})]}),i.jsx(U6e,{label:"Variant",splitPct:t.variantSplitPct,config:t.variantSrConfig,onChange:C=>e(E=>({...E,variantSrConfig:C(E.variantSrConfig)}))})]})]}),i.jsxs(rN,{divide:!0,children:[i.jsxs("div",{children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("span",{className:ks,children:"Traffic allocation"}),i.jsxs("span",{className:"text-[13px] tabular-nums text-slate-500 dark:text-slate-400 leading-[18px]",children:[100-t.variantSplitPct,"% control",i.jsx("span",{className:"mx-1.5 text-slate-500 dark:text-slate-400",children:"/"}),i.jsxs("span",{className:"font-semibold text-brand-600 dark:text-brand-400",children:[t.variantSplitPct,"% variant"]})]})]}),i.jsxs("div",{className:"relative rounded-full py-2 focus-within:ring-2 focus-within:ring-brand-500/40",children:[i.jsxs("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full",children:[i.jsx("div",{className:"bg-slate-200 dark:bg-[#232833] transition-all duration-100",style:{width:`${100-t.variantSplitPct}%`}}),i.jsx("div",{className:"flex-1 bg-brand-500"})]}),i.jsx("div",{className:"pointer-events-none absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-brand-500 bg-white shadow-sm dark:bg-slate-900",style:{left:`${100-t.variantSplitPct}%`}}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:100-t.variantSplitPct,onChange:C=>{const E=Math.min(30,Math.max(5,100-Number(C.target.value)));e(P=>({...P,variantSplitPct:E}))},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":"Control traffic percentage"})]})]}),i.jsxs("div",{children:[i.jsx(nN,{hint:"Transactions the experiment collects before it reports a significance verdict.",children:"Sample target"}),i.jsxs("div",{className:"inline-flex flex-wrap items-center gap-0.5 rounded-lg border border-slate-200 p-0.5 dark:border-[#222226]",children:[FF.map(C=>{const E=!k&&t.minSampleSize===C;return i.jsx("button",{type:"button",onClick:()=>{S(!1),e(P=>({...P,minSampleSize:C}))},className:`rounded-md px-3 py-1.5 text-xs font-medium tabular-nums transition-colors ${E?"bg-brand-500 text-white":"text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white"}`,children:C.toLocaleString()},C)}),k?i.jsx("input",{type:"text",inputMode:"numeric",autoFocus:!0,placeholder:"Custom",className:"w-24 rounded-md bg-transparent px-2.5 py-1.5 text-xs tabular-nums focus:outline-none focus:border-brand-500",value:t.minSampleSize?t.minSampleSize.toLocaleString():"",onChange:C=>e(E=>({...E,minSampleSize:Number(C.target.value.replace(/[^\d]/g,""))}))}):i.jsx("button",{type:"button",onClick:()=>S(!0),className:"rounded-md px-3 py-1.5 text-xs font-medium text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",children:"Custom…"})]})]})]}),i.jsx(rN,{divide:!0,children:i.jsxs("label",{className:"flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-slate-700 dark:text-[#c7cfdd]",children:[i.jsx("span",{children:"Flag if variant auth drops by"}),i.jsx("input",{type:"number",min:.5,max:20,step:.5,className:`w-16 ${ep}`,value:t.guardrailThresholdPp,onChange:C=>e(E=>({...E,guardrailThresholdPp:Number(C.target.value)}))}),i.jsx("span",{children:"percentage points below control"}),i.jsx(pf,{text:"Percentage points, not percent — a 3 here flags the test when the variant's auth rate is 3+ points under control (say 89% vs 92%)."})]})})]}),i.jsx(vt,{error:a}),s&&i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-emerald-200 bg-emerald-50 px-5 py-4 text-base text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200",children:[i.jsx("span",{children:s}),o&&i.jsx(we,{size:"sm",variant:"primary",onClick:()=>d(o),disabled:!h,children:"Activate now"})]}),i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-slate-100 dark:border-[#1e2330] pt-5",children:[f&&i.jsx(we,{variant:"secondary",onClick:f,disabled:r,children:"Cancel"}),i.jsx(we,{variant:"primary",onClick:u,disabled:r||!l||!h,children:r?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," ",c?"Saving…":"Creating…"]}):c?"Save changes":"Create experiment"})]})]})]})}const Pg={name:"",experimentType:"algorithm_comparison",controlAlgorithmId:"",variantAlgorithmId:"",variantSplitPct:10,minSampleSize:5e3,guardrailThresholdPp:3,variantSrConfig:{...E6e}};function V6e(){const t=Ao(),{merchantId:e}=$r(),{mutate:n}=Wk(),{data:r,mutate:a}=ct(e?["routing-list",e]:null,()=>Fe(`/routing/list/${e}`)),{data:s,mutate:o}=ct(e?["active-routing",e]:null,()=>Fe(`/routing/list/active/${e}`)),l=Sl(e||void 0),c=l.isEnabled("ab-test-real-payments"),u=s==null?void 0:s.find(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)==="ab_test"}),d=(r==null?void 0:r.filter(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)==="ab_test"}))??[],f=(r==null?void 0:r.filter(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)!=="ab_test"}))??[],[h,p]=vc(),m=h.get("experiment"),[x,v]=g.useState(!1),b=d.find(ce=>ce.id===m)??null,[y,w]=g.useState({...Pg}),[j,k]=g.useState(!1),[S,_]=g.useState(null),[C,E]=g.useState(null),[P,R]=g.useState(null),[A,T]=g.useState(null),[D,L]=g.useState(null),[X,J]=g.useState(null),[U,Y]=g.useState(!1),[W,G]=g.useState(null);g.useEffect(()=>{!m&&!x&&u&&p({experiment:u.id},{replace:!0})},[u==null?void 0:u.id]);function I(ce){p({experiment:ce},{replace:!0}),v(!1)}function q(){p({},{replace:!0}),v(!0),G(null),w({...Pg}),E(null),_(null)}function M(ce){const he=LF(ce);he&&(w(he),G(ce.id),v(!0),E(null),_(null))}function B(ce){const he=LF(ce);he&&(p({},{replace:!0}),w({...he,name:`${he.name} (copy)`}),G(null),v(!0),E(null),_(null))}function z(){v(!1),G(null),w({...Pg}),_(null),E(null),u&&p({experiment:u.id},{replace:!0})}async function Z(){if(!e)return;if(W){if(!y.name.trim()){_("Enter an experiment name");return}const he=d.find(Pe=>Pe.id===W),be=he&&(he.algorithm_data||he.algorithm);if(!he||!be){_("Could not load the experiment to edit");return}k(!0),_(null),E(null);try{await Fe("/routing/update",{created_by:e,routing_algorithm_id:W,name:y.name.trim(),description:he.description??"",algorithm:be}),await a(),E(`"${y.name.trim()}" updated.`),p({experiment:W},{replace:!0}),G(null),w({...Pg}),v(!1)}catch(Pe){_(Pe instanceof Error?Pe.message:"Failed to update experiment")}finally{k(!1)}return}const ce=S6e(y);if(ce){_(ce);return}k(!0),_(null),E(null);try{const he=C6e(y,e),be=await Fe("/routing/create",he),Pe=be.rule_id||be.id;R(Pe),E(`"${y.name}" created.`),w({...Pg}),await a(),p({experiment:Pe},{replace:!0}),v(!1)}catch(he){_(he instanceof Error?he.message:"Failed to create experiment")}finally{k(!1)}}async function pe(ce){if(e)try{await Fe("/routing/delete",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a()]),m===ce&&p({},{replace:!0})}catch(he){_(he instanceof Error?he.message:"Failed to delete experiment")}finally{J(null)}}async function ae(ce){if(!!(u&&u.id!==ce)||!c){T(ce);return}await ue(ce)}async function ue(ce){if(e)try{c||await l.setFeatureEnabled("ab-test-real-payments",!0),await Fe("/routing/activate",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a()]),R(null),E(null)}catch(he){_(he instanceof Error?he.message:"Failed to activate experiment")}}async function de(ce){Y(!0),_(null);try{await l.setFeatureEnabled("ab-test-real-payments",ce)}catch(he){_(he instanceof Error?he.message:"Failed to enable A/B testing on live traffic")}finally{Y(!1)}}async function Q(ce){if(e)try{await Fe("/routing/deactivate",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a(),n(["active-routing",e])])}catch(he){_(he instanceof Error?he.message:"Failed to stop experiment")}finally{L(null)}}function fe(ce){var he;return ce==="sr_routing"?"SR Routing (Dynamic)":((he=r==null?void 0:r.find(be=>be.id===ce))==null?void 0:he.name)??ce}const ne=x?"create":b?"detail":d.length===0?"create":"empty";return i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("div",{children:i.jsx(Ba,{title:"A/B Testing",description:"Compare routing strategies on live traffic with statistical significance."})}),ne!=="create"&&i.jsxs(we,{variant:"secondary",size:"sm",onClick:q,disabled:!t,children:[i.jsx(Qn,{size:14})," New experiment"]})]}),u&&l.data&&!c&&i.jsxs("div",{className:"flex flex-wrap items-start gap-3 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(wm,{size:18,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-sm font-medium text-amber-900 dark:text-amber-200",children:["“",u.name,"” is active but not collecting results"]}),i.jsx("p",{className:"mt-0.5 text-[13px] text-amber-800/90 dark:text-amber-300/90 max-w-[57ch] leading-[18px]",children:"“A/B test on real payments” is off, so live traffic isn’t being split between the arms. Turn it back on to resume recording stats."})]}),i.jsx(we,{size:"sm",variant:"primary",onClick:()=>de(!0),disabled:U,children:U?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:13})," Enabling…"]}):"Enable live-traffic testing"})]}),e&&r&&d.length===0?i.jsx("div",{className:"mx-auto w-full max-w-3xl",children:i.jsx(VF,{form:y,setForm:w,eligibleAlgorithms:f,saving:j,error:S,success:C,createdId:P,merchantId:e,isEditing:W!==null,onCreate:Z,onActivateCreated:ce=>ae(ce)})}):i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[280px_1fr] gap-5",children:[i.jsx("div",{className:"space-y-1",children:e?r?i.jsx("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] overflow-hidden",children:d.map((ce,he)=>{var Be;const be=(Be=ce.algorithm_data||ce.algorithm)==null?void 0:Be.data,Pe=(u==null?void 0:u.id)===ce.id,Ce=m===ce.id,Re=nX(be);return i.jsxs("button",{type:"button",onClick:()=>I(ce.id),className:`relative w-full text-left pl-4 pr-3 py-3 transition-colors ${he>0?"border-t border-slate-100 dark:border-[#1e2330]":""} ${Ce?"bg-brand-50 dark:bg-brand-900/20":"hover:bg-slate-50 dark:hover:bg-[#0f0f16]"}`,children:[Ce&&i.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-brand-500"}),i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[i.jsx("p",{className:`truncate text-base font-medium ${Ce?"text-brand-700 dark:text-brand-300":"text-slate-800 dark:text-white"}`,children:ce.name}),Pe&&i.jsx("span",{className:"shrink-0 inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[11px] font-semibold bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 leading-4",children:"● Active"})]}),be&&i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] mt-0.5 truncate max-w-[57ch] leading-[18px]",children:Re==="sr_config_tuning"?"SR config tuning":`${ly(be.control_algorithm_id,be.control_sr_config,fe)} → ${ly(be.variant_algorithm_id,be.variant_sr_config,fe)}`})]},ce.id)})}):i.jsx("p",{className:"px-2 py-2 text-sm text-slate-500",children:"Loading…"}):i.jsx("p",{className:"px-2 py-2 text-base text-slate-500",children:"Set merchant ID to load experiments."})}),i.jsxs("div",{children:[ne==="detail"&&b&&e&&i.jsx(z6e,{algorithm:b,isActive:(u==null?void 0:u.id)===b.id,merchantId:e,algorithmName:fe,algorithms:r??[],onActivate:()=>ae(b.id),onStop:()=>L(b.id),onEdit:()=>M(b),onClone:()=>B(b),onDelete:()=>J(b.id),realPaymentsOn:c}),ne==="create"&&i.jsx(VF,{form:y,setForm:w,eligibleAlgorithms:f,saving:j,error:S,success:C,createdId:P,merchantId:e,isEditing:W!==null,onCreate:Z,onActivateCreated:ce=>ae(ce),onCancel:z}),ne==="empty"&&i.jsxs("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 dark:border-[#222226] py-16 text-center",children:[i.jsx($p,{size:26,className:"text-slate-500 dark:text-slate-400 mb-2"}),i.jsx("p",{className:"text-base text-slate-500",children:"Select an experiment to view details"})]})]})]}),(()=>{const ce=!!(A&&u&&u.id!==A),he=!c,be=[ce?"An experiment is already running — activating this one replaces it.":null,he?"This also turns on “A/B test on real payments”, so live traffic is split between the arms and results start collecting. You can stop the experiment at any time to revert to standard routing.":null].filter(Boolean).join(" ");return i.jsx(Hs,{open:A!==null,title:ce?"Switch active experiment?":"Route live traffic through this experiment?",description:be,confirmLabel:he?"Enable & activate":"Yes, activate",variant:"primary",onConfirm:()=>{const Pe=A;T(null),ue(Pe)},onCancel:()=>T(null)})})(),i.jsx(Hs,{open:D!==null,title:"Stop experiment?",description:"This will deactivate the experiment and restore default routing. Results will remain available.",confirmLabel:"Stop experiment",variant:"danger",onConfirm:()=>{Q(D)},onCancel:()=>L(null)}),i.jsx(Hs,{open:X!==null,title:"Delete experiment?",description:"This permanently deletes the experiment definition. Any results already collected remain in analytics. This cannot be undone.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{pe(X)},onCancel:()=>J(null)})]})}const sX="theme";function iX(){if(typeof window>"u")return null;const t=window.localStorage.getItem(sX);return t==="dark"||t==="light"?t:null}function W6e(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Om(){return iX()??W6e()}function MP(t=Om()){typeof document>"u"||document.documentElement.classList.toggle("dark",t==="dark")}function Uy(t){typeof window<"u"&&window.localStorage.setItem(sX,t),MP(t)}function H6e(){const t=wl(),e=Hr(),{user:n,clearAuth:r}=hr(),[a,s]=g.useState(null),[o,l]=g.useState(()=>Om()==="dark"),[c,u]=g.useState(!1),d=g.useRef(null),f=a??t.pathname,h=n!=null&&n.email?n.email.slice(0,2).toUpperCase():"ME";g.useEffect(()=>{function x(v){d.current&&!d.current.contains(v.target)&&u(!1)}return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]),g.useEffect(()=>{if(typeof window.matchMedia!="function")return;const x=window.matchMedia("(prefers-color-scheme: dark)"),v=()=>{if(iX())return;const b=x.matches;l(b),MP(b?"dark":"light")};return v(),x.addEventListener("change",v),()=>x.removeEventListener("change",v)},[]);async function p(){u(!1);try{await aa("/auth/logout",{method:"POST"})}catch{}r(),e("/login",{replace:!0})}function m(){const x=o?"light":"dark";l(x==="dark"),Uy(x)}return g.useLayoutEffect(()=>{if(!a)return;(t.pathname===a||t.pathname.startsWith(`${a}/`))&&s(null)},[t.pathname,a]),i.jsxs("aside",{className:"relative z-20 flex h-screen w-64 shrink-0 flex-col border-r border-slate-200 bg-white transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d]",children:[i.jsx("div",{className:"flex h-[78px] shrink-0 items-center border-b border-slate-200 px-4 transition-colors duration-300 dark:border-[#22262f]",children:i.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 434 56",fill:"none",className:"h-14 w-auto","aria-label":"Juspay Decision Engine",role:"img",children:[i.jsx("defs",{children:i.jsx("style",{children:".de-brand{font-family:'Google Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:30px;dominant-baseline:central}.de-bold{font-weight:700;letter-spacing:-0.02em}.de-semi{font-weight:600;letter-spacing:-0.01em}"})}),i.jsxs("g",{transform:"translate(0, 1)",children:[i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2375 54.3079C25.9366 54.3441 24.6718 54.2355 23.3708 54.0545C19.8655 53.5477 16.577 52.4255 13.5414 50.5792C6.81987 46.5246 2.51952 40.6238 0.748782 32.8766C0.35127 31.139 0.170583 29.3651 0.170583 27.5912C0.134446 20.4957 2.44724 14.2691 7.1451 8.98363C11.2286 4.42224 16.2879 1.63472 22.2505 0.476271C23.9129 0.150457 25.5752 -0.0305508 27.2375 0.0418522C27.2375 2.75697 27.2375 5.43588 27.2375 8.15099C27.1652 8.18719 27.093 8.2234 27.0207 8.2958C26.045 8.98363 25.0693 9.70766 24.1297 10.4679C21.9976 12.2056 19.9739 14.0518 18.2754 16.2601C15.9988 19.1925 14.481 22.4144 14.2642 26.2156C14.1558 28.0256 14.3726 29.7995 14.9508 31.501C16.3601 35.7366 20.7328 40.1169 26.8761 40.2255C27.2375 40.2255 27.3098 40.298 27.3098 40.6962C27.2736 42.5424 27.2736 46.235 27.2736 46.235C27.2736 46.235 27.2736 46.4522 27.2736 46.5608C27.2375 49.1311 27.2375 51.7014 27.2375 54.3079Z",fill:"#0099FF"}),i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2368 8.11469C27.2368 8.11469 27.2368 2.72066 27.2368 0.00554404C28.7184 -0.0306575 30.1639 0.114149 31.6094 0.331358C34.3197 0.765776 36.9216 1.56221 39.379 2.82926C44.4743 5.47197 48.4856 9.23693 51.1959 14.3775C52.7498 17.3461 53.7617 20.4956 54.1592 23.7899C54.6289 27.6635 54.2676 31.5009 53.1112 35.2296C51.7741 39.4652 49.5336 43.194 46.3896 46.3435C42.5591 50.1447 38.0057 52.6064 32.7297 53.7286C30.9228 54.0906 29.0798 54.3078 27.2368 54.2716C27.2368 51.6651 27.2368 49.0948 27.2368 46.4883C27.2368 46.3797 27.2368 46.1987 27.2368 46.1987C27.2368 46.1987 27.3452 46.1263 27.3813 46.0901C30.2001 44.099 32.8742 41.9269 35.187 39.3204C36.7048 37.6189 38.0057 35.8088 38.9092 33.7092C40.174 30.7406 40.6799 27.6997 40.0294 24.4778C38.873 18.6131 33.6331 14.2327 27.5982 14.0879C27.2007 14.0879 27.2368 13.7621 27.2368 13.7621V8.11469Z",fill:"#0561E2"})]}),i.jsx("text",{x:"72",y:"28",className:"de-brand de-bold fill-[#0F172A] dark:fill-white",children:"JUSPAY"}),i.jsx("text",{x:"200",y:"28",className:"de-brand de-semi fill-[#475569] dark:fill-[#9CA3AF]",children:"Decision Engine"})]})}),i.jsxs("nav",{className:"flex-1 space-y-0.5 overflow-y-auto px-4 py-4",children:[i.jsx(Cs,{to:"/",icon:DW,end:!0,selectedPath:f,onNavigate:s,children:"Overview"}),i.jsx(Cs,{to:"/analytics",icon:Yb,selectedPath:f,onNavigate:s,children:"Analytics"}),i.jsx(Cs,{to:"/audit",icon:Uh,selectedPath:f,onNavigate:s,children:"Decision Audit"}),i.jsx(Cs,{to:"/events",icon:zw,selectedPath:f,onNavigate:s,children:"Routing Events"}),i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Routing"})}),i.jsx(Cs,{to:"/routing",icon:Lj,end:!0,selectedPath:f,onNavigate:s,children:"Routing Hub"}),i.jsx(Cs,{to:"/routing/sr",icon:Bj,indent:!0,selectedPath:f,onNavigate:s,children:"Multi Objective"}),i.jsx(Cs,{to:"/routing/rules",icon:Dj,indent:!0,selectedPath:f,onNavigate:s,children:"Rule-Based"}),i.jsx(Cs,{to:"/routing/volume",icon:rf,indent:!0,selectedPath:f,onNavigate:s,children:"Volume Split"}),i.jsx(Cs,{to:"/routing/debit",icon:_o,indent:!0,selectedPath:f,onNavigate:s,children:"Debit Routing"}),i.jsx(Cs,{to:"/routing/volume-contracts",icon:Cy,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"Volume Contracts"}),i.jsx(Cs,{to:"/routing/ab-testing",icon:$p,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"A/B Testing"}),PP?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Simulation"})}),i.jsx(Cs,{to:"/decisions/simulator",icon:$p,selectedPath:f,onNavigate:s,children:"Decision Simulator"})]}):null,i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Settings"})}),i.jsx(Cs,{to:"/members",icon:Z3,selectedPath:f,onNavigate:s,children:"Members"}),i.jsx(Cs,{to:"/api-keys",icon:Y3,selectedPath:f,onNavigate:s,children:"API Keys"})]}),i.jsxs("div",{ref:d,className:"relative border-t border-slate-200 bg-white px-4 py-4 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#0a0d12]",children:[c?i.jsxs("div",{className:"absolute bottom-full left-4 right-4 mb-3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_20px_60px_-36px_rgba(15,23,42,0.35)] dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-3 py-3 dark:border-[#242b36]",children:[i.jsx("p",{className:"break-all text-sm font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Signed-in user"}),n!=null&&n.merchantId?i.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate text-xs text-slate-500 dark:text-[#8a8a93]",children:n.merchantId}),i.jsx(Fy,{text:n.merchantId,label:"Copy merchant ID",size:13,className:"rounded-md p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:text-[#6d768a] dark:hover:bg-[#151b24] dark:hover:text-white"})]}):null]}),i.jsxs("button",{type:"button",onClick:()=>{u(!1),e("/account")},className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:text-slate-300 dark:hover:bg-white/5",children:[i.jsx(K3,{size:16}),"Change password"]}),i.jsxs("button",{type:"button",onClick:p,className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-red-600 transition-colors hover:bg-red-50 dark:text-red-300 dark:hover:bg-red-950/25",children:[i.jsx($W,{size:16}),"Logout"]})]}):null,i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("button",{type:"button",onClick:()=>u(x=>!x),"aria-haspopup":"menu","aria-expanded":c,title:(n==null?void 0:n.email)||"Account",className:"flex min-w-0 flex-1 items-center gap-2 rounded-2xl px-1.5 py-2 text-left transition-colors hover:bg-slate-100 dark:hover:bg-[#151b24]",children:[i.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:h}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx("span",{className:"block truncate text-xs font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Account"})}),i.jsx(ln,{size:13,className:`shrink-0 text-slate-500 transition-transform ${c?"rotate-180":""}`})]}),i.jsx("button",{type:"button",onClick:m,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-[#1a1f2a] dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Ny,{size:15}):i.jsx(Sy,{size:15})})]})]})]})}function Cs({to:t,icon:e,children:n,end:r,indent:a,beta:s,selectedPath:o,onNavigate:l}){const c=Hr(),u=r?o===t:o===t||o.startsWith(`${t}/`);return i.jsxs("button",{type:"button","aria-current":u?"page":void 0,onMouseDown:d=>{d.detail>0&&d.preventDefault()},onClick:d=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),l==null||l(t),d.currentTarget.blur(),c(t)},className:`group relative flex w-full appearance-none items-center gap-3 rounded-[16px] border-0 px-4 py-2.5 text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[#3b82f6]/40 focus-visible:ring-offset-0 ${a?"pl-8":""} ${u?"bg-transparent text-slate-950 dark:text-white":"bg-transparent text-slate-500 hover:bg-slate-900/[0.025] hover:text-slate-900 dark:text-[#8d96aa] dark:hover:bg-white/[0.035] dark:hover:text-white"} leading-5`,children:[i.jsx("span",{"aria-hidden":"true",className:`absolute left-1 top-1/2 h-7 w-[3px] -translate-y-1/2 rounded-full transition-all duration-150 ${u?"bg-brand-600 opacity-100 dark:bg-sky-300":"opacity-0"}`}),i.jsx(e,{size:18,className:`transition-colors duration-200 ${u?"text-brand-600 dark:text-sky-300":"text-slate-500 group-hover:text-slate-700 dark:text-[#78849a] dark:group-hover:text-white"}`,strokeWidth:u?2.5:2}),i.jsx("span",{className:"flex-1 text-left",children:n}),s&&i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400 leading-4",children:"Beta"})]})}const G6e={leader_changed:I0,gateway_entered_auth_band:Cy,gateway_exited_auth_band:J3,calibration_applied:ec},q6e={leader_changed:"text-sky-700 dark:text-sky-300",gateway_entered_auth_band:"text-emerald-700 dark:text-emerald-300",gateway_exited_auth_band:"text-amber-700 dark:text-amber-300",calibration_applied:"text-violet-600 dark:text-violet-300"};function K6e(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Y6e(){const t=Hr(),[e,n]=g.useState(!1),{events:r,unseenCount:a,markAllSeen:s,isUnavailable:o}=fT("1h",{enabled:e}),l=g.useRef(null);g.useEffect(()=>{function u(d){l.current&&!l.current.contains(d.target)&&n(!1)}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[]);const c=r.slice(0,8);return i.jsxs("div",{className:"relative shrink-0",ref:l,children:[i.jsxs("button",{onClick:()=>n(u=>!u),"aria-label":"Routing events",className:"relative flex items-center justify-center h-8 w-8 rounded-lg border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] hover:bg-slate-50 dark:hover:bg-[#18181f] transition-colors text-slate-700 dark:text-slate-300",children:[i.jsx(DNe,{size:14,className:"text-slate-500"}),a>0&&i.jsx("span",{className:"absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-brand-600 px-1 text-[11px] font-semibold text-white leading-4",children:a>99?"99+":a})]}),e&&i.jsxs("div",{className:"absolute right-0 top-10 w-96 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg py-1 z-50",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 leading-4",children:"Routing events"}),r.length>0&&i.jsx("button",{onClick:s,className:"text-[11px] font-medium text-brand-600 hover:underline leading-4",children:"Mark all read"})]}),c.length===0?i.jsx("p",{className:"px-3 py-4 text-[12px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-4",children:o?"Routing events are unavailable — analytics pipeline is offline.":"No routing events in the last hour."}):c.map(u=>{const d=G6e[u.event_type];return i.jsxs("div",{className:"flex items-start gap-2.5 px-3 py-2 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(d,{size:14,className:q6e[u.event_type]})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-[12px] text-slate-700 dark:text-slate-300 leading-4",children:hT(u)}),i.jsx("p",{className:"text-[11px] text-slate-500 leading-4",children:K6e(u.bucket_ms)})]})]},u.id)}),i.jsx("div",{className:"border-t border-[#e6e6ee] dark:border-[#1a1a24] mt-1 pt-1",children:i.jsx("button",{onClick:()=>{n(!1),t("/events")},className:"w-full px-3 py-2 text-left text-[13px] font-medium text-brand-600 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors leading-[18px]",children:"View all events"})})]})]})}var WF=1,X6e=.9,J6e=.8,Z6e=.17,aN=.1,sN=.999,Q6e=.9999,eFe=.99,tFe=/[\\\/_+.#"@\[\(\{&]/,nFe=/[\\\/_+.#"@\[\(\{&]/g,rFe=/[\s-]/,oX=/[\s-]/g;function OO(t,e,n,r,a,s,o){if(s===e.length)return a===t.length?WF:eFe;var l=`${a},${s}`;if(o[l]!==void 0)return o[l];for(var c=r.charAt(s),u=n.indexOf(c,a),d=0,f,h,p,m;u>=0;)f=OO(t,e,n,r,u+1,s+1,o),f>d&&(u===a?f*=WF:tFe.test(t.charAt(u-1))?(f*=J6e,p=t.slice(a,u-1).match(nFe),p&&a>0&&(f*=Math.pow(sN,p.length))):rFe.test(t.charAt(u-1))?(f*=X6e,m=t.slice(a,u-1).match(oX),m&&a>0&&(f*=Math.pow(sN,m.length))):(f*=Z6e,a>0&&(f*=Math.pow(sN,u-a))),t.charAt(u)!==e.charAt(s)&&(f*=Q6e)),(ff&&(f=h*aN)),f>d&&(d=f),u=n.indexOf(c,u+1);return o[l]=d,d}function HF(t){return t.toLowerCase().replace(oX," ")}function aFe(t,e,n){return t=n&&n.length>0?`${t+" "+n.join(" ")}`:t,OO(t,e,HF(t),HF(e),0,0,{})}var sFe=Object.defineProperty,Tm=(t,e)=>sFe(t,"name",{value:e,configurable:!0}),lX=!!(typeof window<"u"&&window.document&&window.document.createElement);function Vd(t,e,{checkForDefaultPrevented:n=!0}={}){return Tm(function(a){if(t==null||t(a),n===!1||!a||!a.defaultPrevented)return e==null?void 0:e(a)},"handleEvent")}Tm(Vd,"composeEventHandlers");function iFe(t){var e;if(!lX)throw new Error("Cannot access window outside of the DOM");return((e=t==null?void 0:t.ownerDocument)==null?void 0:e.defaultView)??window}Tm(iFe,"getOwnerWindow");function TO(t){if(!lX)throw new Error("Cannot access document outside of the DOM");return(t==null?void 0:t.ownerDocument)??document}Tm(TO,"getOwnerDocument");function cX(t,e=!1){const{activeElement:n}=TO(t);if(!(n!=null&&n.nodeName))return null;if(uX(n)&&n.contentDocument)return cX(n.contentDocument.body,e);if(e){const r=n.getAttribute("aria-activedescendant");if(r){const a=TO(n).getElementById(r);if(a)return a}}return n}Tm(cX,"getActiveElement");function uX(t){return t.tagName==="IFRAME"}Tm(uX,"isFrame");function GF(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Qp(...t){return e=>{let n=!1;const r=t.map(a=>{const s=GF(a,e);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{var b;const{scope:h,children:p,...m}=f,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,v=g.useMemo(()=>m,Object.values(m));return i.jsx(x.Provider,{value:v,children:p})};u.displayName=s+"Provider";function d(f,h,p={}){var b;const{optional:m=!1}=p,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,v=g.useContext(x);if(v)return v;if(o!==void 0)return o;if(!m)throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const a=()=>{const s=n.map(o=>g.createContext(o));return function(l){const c=(l==null?void 0:l[t])||s;return g.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,lFe(a,...e)]}function lFe(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const o=r.reduce((l,{useScope:c,scopeName:u})=>{const f=c(s)[`__scope${u}`];return{...l,...f}},{});return g.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var em=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},cFe=nm[" useId ".trim().toString()]||(()=>{}),uFe=0;function rc(t){const[e,n]=g.useState(cFe());return em(()=>{n(r=>r??String(uFe++))},[t]),e?`radix-${e}`:""}var qF=nm[" useEffectEvent ".trim().toString()],KF=nm[" useInsertionEffect ".trim().toString()];function dFe(t){if(typeof qF=="function")return qF(t);const e=g.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof KF=="function"?KF(()=>{e.current=t}):em(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var fFe=Object.defineProperty,Wy=(t,e)=>fFe(t,"name",{value:e,configurable:!0}),hFe=nm[" useInsertionEffect ".trim().toString()]||em;function dX({prop:t,defaultProp:e,onChange:n=Wy(()=>{},"onChange"),caller:r}){const[a,s,o]=fX({defaultProp:e,onChange:n}),l=t!==void 0,c=l?t:a,u=g.useCallback(d=>{var f;if(l){const h=hX(d)?d(t):d;h!==t&&((f=o.current)==null||f.call(o,h))}else s(d)},[l,t,s,o]);return[c,u]}Wy(dX,"useControllableState");function fX({defaultProp:t,onChange:e}){const[n,r]=g.useState(t),a=g.useRef(n),s=g.useRef(e);return hFe(()=>{s.current=e},[e]),g.useEffect(()=>{var o;a.current!==n&&((o=s.current)==null||o.call(s,n),a.current=n)},[n,a]),[n,r,s]}Wy(fX,"useUncontrolledState");function hX(t){return typeof t=="function"}Wy(hX,"isFunction");var YF=Symbol("RADIX:SYNC_STATE");function pFe(t,e,n,r){const{prop:a,defaultProp:s,onChange:o,caller:l}=e,c=a!==void 0,u=dFe(o),d=[{...n,state:s}];r&&d.push(r);const[f,h]=g.useReducer((v,b)=>{if(b.type===YF)return{...v,state:b.state};const y=t(v,b);return c&&!Object.is(y.state,v.state)&&u(y.state),y},...d),p=f.state,m=g.useRef(p);g.useEffect(()=>{m.current!==p&&(m.current=p,c||u(p))},[p,m,c]);const x=g.useMemo(()=>a!==void 0?{...f,state:a}:f,[f,a]);return g.useEffect(()=>{c&&!Object.is(a,f.state)&&h({type:YF,state:a})},[a,f.state,c]),[x,h]}Wy(pFe,"useControllableStateReducer");function pX(t){const e=g.forwardRef((n,r)=>{let{children:a,...s}=n,o=null,l=!1;const c=[];XF(a)&&typeof Tb=="function"&&(a=Tb(a._payload)),g.Children.forEach(a,h=>{var p;if(vFe(h)){l=!0;const m=h;let x="child"in m.props?m.props.child:m.props.children;XF(x)&&typeof Tb=="function"&&(x=Tb(x._payload)),o=gFe(m,x),c.push((p=o==null?void 0:o.props)==null?void 0:p.children)}else c.push(h)}),o?o=g.cloneElement(o,void 0,c):!l&&g.Children.count(a)===1&&g.isValidElement(a)&&(o=a);const u=o?yFe(o):void 0,d=Vy(r,u);if(!o){if(a||a===0)throw new Error(l?jFe(t):kFe(t));return a}const f=xFe(s,o.props??{});return o.type!==g.Fragment&&(f.ref=r?d:u),g.cloneElement(o,f)});return e.displayName=`${t}.Slot`,e}var mFe=Symbol.for("radix.slottable"),gFe=(t,e)=>{if("child"in t.props){const n=t.props.child;return g.isValidElement(n)?g.cloneElement(n,void 0,t.props.children(n.props.children)):null}return g.isValidElement(e)?e:null};function xFe(t,e){const n={...e};for(const r in e){const a=t[r],s=e[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const c=s(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...t,...n}}function yFe(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function vFe(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===mFe}var bFe=Symbol.for("react.lazy");function XF(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===bFe&&"_payload"in t&&wFe(t._payload)}function wFe(t){return typeof t=="object"&&t!==null&&"then"in t}var kFe=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,jFe=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Tb=nm[" use ".trim().toString()],SFe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ki=SFe.reduce((t,e)=>{const n=pX(`Primitive.${e}`),r=g.forwardRef((a,s)=>{const{asChild:o,...l}=a,c=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function _Fe(t,e){t&&gs.flushSync(()=>t.dispatchEvent(e))}function cy(t){const e=g.useRef(t);return g.useEffect(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var NFe=Object.defineProperty,ya=(t,e)=>NFe(t,"name",{value:e,configurable:!0}),PO="dismissableLayer.update",CFe="dismissableLayer.pointerDownOutside",EFe="dismissableLayer.focusOutside",JF,mX=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),AFe=g.forwardRef(ya(function(e,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...d}=e,f=g.useContext(mX),[h,p]=g.useState(null),m=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=g.useState({}),v=Vy(n,p),b=Array.from(f.layers),[y]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),w=y?b.indexOf(y):-1,j=h?b.indexOf(h):-1,k=f.layersWithOutsidePointerEventsDisabled.size>0,S=j>=w,_=g.useRef(!1),C=xX(A=>{o==null||o(A),c==null||c(A),A.defaultPrevented||u==null||u()},{ownerDocument:m,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:_,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:g.useCallback(A=>{if(!(A instanceof Node))return!1;const T=[...f.branches].some(D=>D.contains(A));return S&&!T},[f.branches,S])}),E=yX(A=>{if(a&&_.current)return;const T=A.target;[...f.branches].some(L=>L.contains(T))||(l==null||l(A),c==null||c(A),A.defaultPrevented||u==null||u())},m),P=h?j===b.length-1:!1,R=cy(A=>{A.key==="Escape"&&(s==null||s(A),!A.defaultPrevented&&u&&(A.preventDefault(),u()))});return g.useEffect(()=>{if(P)return m.addEventListener("keydown",R,{capture:!0}),()=>m.removeEventListener("keydown",R,{capture:!0})},[m,P,R]),g.useEffect(()=>{if(h)return r&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(JF=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(h)),f.layers.add(h),RO(),()=>{r&&(f.layersWithOutsidePointerEventsDisabled.delete(h),f.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=JF))}},[h,m,r,f]),g.useEffect(()=>()=>{h&&(f.layers.delete(h),f.layersWithOutsidePointerEventsDisabled.delete(h),RO())},[h,f]),g.useEffect(()=>{const A=ya(()=>x({}),"handleUpdate");return document.addEventListener(PO,A),()=>document.removeEventListener(PO,A)},[]),i.jsx(Ki.div,{...d,ref:v,style:{pointerEvents:k?S?"auto":"none":void 0,...e.style},onFocusCapture:Vd(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Vd(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Vd(e.onPointerDownCapture,C.onPointerDownCapture)})},"DismissableLayer"));function gX(){const t=g.useContext(mX),[e,n]=g.useState(null);return g.useEffect(()=>{if(e)return t.dismissableSurfaces.add(e),()=>{t.dismissableSurfaces.delete(e)}},[e,t.dismissableSurfaces]),n}ya(gX,"useDismissableLayerSurface");var OFe=ya(()=>!0,"IS_TRUE");function xX(t,e){const{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:a,dismissableSurfaces:s,shouldHandlePointerDownOutside:o=OFe}=e,l=cy(t),c=g.useRef(!1),u=g.useRef(!1),d=g.useRef(new Map),f=g.useRef(()=>{});return g.useEffect(()=>{function h(){u.current=!1,a.current=!1,d.current.clear()}ya(h,"resetOutsideInteraction");function p(){return Array.from(d.current.values()).some(Boolean)}ya(p,"isOutsideInteractionIntercepted");function m(w){if(!u.current)return;const j=w.target;j instanceof Node&&[...s].some(S=>S.contains(j))||d.current.set(w.type,!0),w.type==="click"&&window.setTimeout(()=>{u.current&&f.current()},0)}ya(m,"handleInteractionCapture");function x(w){u.current&&d.current.set(w.type,!1)}ya(x,"handleInteractionBubble");const v=ya(w=>{if(w.target&&!c.current){let j=function(){n.removeEventListener("click",f.current);const S=p();h(),S||DP(CFe,l,k,{discrete:!0})};if(ya(j,"handleAndDispatchPointerDownOutsideEvent"),!o(w.target)){n.removeEventListener("click",f.current),h(),c.current=!1;return}const k={originalEvent:w};u.current=!0,a.current=r&&w.button===0,d.current.clear(),!r||w.button!==0?j():(n.removeEventListener("click",f.current),f.current=j,n.addEventListener("click",f.current,{once:!0}))}else n.removeEventListener("click",f.current),h();c.current=!1},"handlePointerDown"),b=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const w of b)n.addEventListener(w,m,!0),n.addEventListener(w,x);const y=window.setTimeout(()=>{n.addEventListener("pointerdown",v)},0);return()=>{window.clearTimeout(y),n.removeEventListener("pointerdown",v),n.removeEventListener("click",f.current);for(const w of b)n.removeEventListener(w,m,!0),n.removeEventListener(w,x)}},[n,l,r,a,s,o]),{onPointerDownCapture:ya(()=>c.current=!0,"onPointerDownCapture")}}ya(xX,"usePointerDownOutside");function yX(t,e=globalThis==null?void 0:globalThis.document){const n=cy(t),r=g.useRef(!1);return g.useEffect(()=>{const a=ya(s=>{s.target&&!r.current&&DP(EFe,n,{originalEvent:s},{discrete:!1})},"handleFocus");return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:ya(()=>r.current=!0,"onFocusCapture"),onBlurCapture:ya(()=>r.current=!1,"onBlurCapture")}}ya(yX,"useFocusOutside");function RO(){const t=new CustomEvent(PO);document.dispatchEvent(t)}ya(RO,"dispatchUpdate");function DP(t,e,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),r?_Fe(a,s):a.dispatchEvent(s)}ya(DP,"handleAndDispatchCustomEvent");var TFe=Object.defineProperty,bs=(t,e)=>TFe(t,"name",{value:e,configurable:!0}),iN="focusScope.autoFocusOnMount",oN="focusScope.autoFocusOnUnmount",ZF={bubbles:!1,cancelable:!0},PFe=g.forwardRef(bs(function(e,n){const{loop:r=!1,trapped:a=!1,onMountAutoFocus:s,onUnmountAutoFocus:o,...l}=e,[c,u]=g.useState(null),d=cy(s),f=cy(o),h=g.useRef(null),p=Vy(n,u),m=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(a){let v=function(j){if(m.paused||!c)return;const k=j.target;c.contains(k)?h.current=k:Ll(h.current,{select:!0})},b=function(j){if(m.paused||!c)return;const k=j.relatedTarget;k!==null&&(c.contains(k)||Ll(h.current,{select:!0}))},y=function(j){if(document.activeElement===document.body)for(const S of j)S.removedNodes.length>0&&Ll(c)};bs(v,"handleFocusIn"),bs(b,"handleFocusOut"),bs(y,"handleMutations"),document.addEventListener("focusin",v),document.addEventListener("focusout",b);const w=new MutationObserver(y);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",b),w.disconnect()}}},[a,c,m.paused]),g.useEffect(()=>{if(c){QF.add(m);const v=document.activeElement;if(!c.contains(v)){const y=new CustomEvent(iN,ZF);c.addEventListener(iN,d),c.dispatchEvent(y),y.defaultPrevented||(vX(SX(IP(c)),{select:!0}),document.activeElement===v&&Ll(c))}return()=>{c.removeEventListener(iN,d),setTimeout(()=>{const y=new CustomEvent(oN,ZF);c.addEventListener(oN,f),c.dispatchEvent(y),y.defaultPrevented||Ll(v??document.body,{select:!0}),c.removeEventListener(oN,f),QF.remove(m)},0)}}},[c,d,f,m]);const x=g.useCallback(v=>{if(!r&&!a||m.paused)return;const b=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,y=document.activeElement;if(b&&y){const w=v.currentTarget,[j,k]=bX(w);j&&k?!v.shiftKey&&y===k?(v.preventDefault(),r&&Ll(j,{select:!0})):v.shiftKey&&y===j&&(v.preventDefault(),r&&Ll(k,{select:!0})):y===w&&v.preventDefault()}},[r,a,m.paused]);return i.jsx(Ki.div,{tabIndex:-1,...l,ref:p,onKeyDown:x})},"FocusScope"));function vX(t,{select:e=!1}={}){const n=document.activeElement;for(const r of t)if(Ll(r,{select:e}),document.activeElement!==n)return}bs(vX,"focusFirst");function bX(t){const e=IP(t),n=MO(e,t),r=MO(e.reverse(),t);return[n,r]}bs(bX,"getTabbableEdges");function IP(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:bs(r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)e.push(n.currentNode);return e}bs(IP,"getTabbableCandidates");function MO(t,e){const n=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const r of t)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):wX(r,{upTo:e})))return r}bs(MO,"findVisible");function wX(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}bs(wX,"isHidden");function kX(t){return t instanceof HTMLInputElement&&"select"in t}bs(kX,"isSelectableInput");function Ll(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&kX(t)&&e&&t.select()}}bs(Ll,"focus");var QF=jX();function jX(){let t=[];return{add(e){const n=t[0];e!==n&&(n==null||n.pause()),t=DO(t,e),t.unshift(e)},remove(e){var n;t=DO(t,e),(n=t[0])==null||n.resume()}}}bs(jX,"createFocusScopesStack");function DO(t,e){const n=[...t],r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}bs(DO,"arrayRemove");function SX(t){return t.filter(e=>e.tagName!=="A")}bs(SX,"removeLinks");var RFe=Object.defineProperty,MFe=(t,e)=>RFe(t,"name",{value:e,configurable:!0}),DFe=g.forwardRef(MFe(function(e,n){var c;const{container:r,...a}=e,[s,o]=g.useState(!1);em(()=>o(!0),[]);const l=r||s&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?gs.createPortal(i.jsx(Ki.div,{...a,ref:n}),l):null},"Portal")),IFe=Object.defineProperty,xc=(t,e)=>IFe(t,"name",{value:e,configurable:!0});function _X(t,e){return g.useReducer((n,r)=>e[n][r]??n,t)}xc(_X,"useStateMachine");var $P=xc(t=>{const{present:e,children:n}=t,r=NX(e),a=typeof n=="function"?n({present:r.isPresent}):g.Children.only(n),s=CX(r.ref,EX(a));return typeof n=="function"||r.isPresent?g.cloneElement(a,{ref:s}):null},"Presence");function NX(t){const[e,n]=g.useState(),r=g.useRef(null),a=g.useRef(t),s=g.useRef("none"),o=g.useRef(void 0),l=t?"mounted":"unmounted",[c,u]=_X(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{c==="mounted"?(s.current=o.current??sh(r.current),o.current=void 0):s.current="none"},[c]),em(()=>{const d=r.current,f=a.current;if(f!==t){const p=s.current,m=sh(d);t?(o.current=m,u("MOUNT")):m==="none"||(d==null?void 0:d.display)==="none"?u("UNMOUNT"):u(f&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,u]),em(()=>{if(e){let d;const f=e.ownerDocument.defaultView??window,h=xc(m=>{const v=sh(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&v&&(u("ANIMATION_END"),!a.current)){const b=e.style.animationFillMode;e.style.animationFillMode="forwards",d=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=b)})}},"handleAnimationEnd"),p=xc(m=>{m.target===e&&(s.current=sh(r.current))},"handleAnimationStart");return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",h),e.addEventListener("animationend",h),()=>{f.clearTimeout(d),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",h),e.removeEventListener("animationend",h)}}else u("ANIMATION_END")},[e,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:g.useCallback(d=>{if(d){const f=getComputedStyle(d);r.current=f,o.current=sh(f)}else r.current=null;n(d)},[])}}xc(NX,"usePresence");function IO(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}xc(IO,"setRef");function CX(...t){const e=g.useRef(t);return e.current=t,g.useCallback(n=>{const r=e.current;let a=!1;const s=r.map(o=>{const l=IO(o,n);return!a&&typeof l=="function"&&(a=!0),l});if(a)return()=>{for(let o=0;o{Vo||(Vo={start:eB(),end:eB()});const{start:t,end:e}=Vo;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),Pb++,()=>{Pb===1&&(Vo==null||Vo.start.remove(),Vo==null||Vo.end.remove(),Vo=null),Pb=Math.max(0,Pb-1)}},[])}function eB(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var el=function(){return el=Object.assign||function(e){for(var n,r=1,a=arguments.length;r"u")return eBe;var e=tBe(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},rBe=PX(),tp="data-scroll-locked",aBe=function(t,e,n,r){var a=t.left,s=t.top,o=t.right,l=t.gap;return n===void 0&&(n="margin"),` - .`.concat(FFe,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(l,"px ").concat(r,`; - } - body[`).concat(tp,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([e&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(o,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(l,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(u1,` { - right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(d1,` { - margin-right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(u1," .").concat(u1,` { - right: 0 `).concat(r,`; - } - - .`).concat(d1," .").concat(d1,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(tp,`] { - `).concat(BFe,": ").concat(l,`px; - } -`)},nB=function(){var t=parseInt(document.body.getAttribute(tp)||"0",10);return isFinite(t)?t:0},sBe=function(){g.useEffect(function(){return document.body.setAttribute(tp,(nB()+1).toString()),function(){var t=nB()-1;t<=0?document.body.removeAttribute(tp):document.body.setAttribute(tp,t.toString())}},[])},iBe=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,a=r===void 0?"margin":r;sBe();var s=g.useMemo(function(){return nBe(a)},[a]);return g.createElement(rBe,{styles:aBe(s,!e,a,n?"":"!important")})},$O=!1;if(typeof window<"u")try{var Rb=Object.defineProperty({},"passive",{get:function(){return $O=!0,!0}});window.addEventListener("test",Rb,Rb),window.removeEventListener("test",Rb,Rb)}catch{$O=!1}var Yf=$O?{passive:!1}:!1,oBe=function(t){return t.tagName==="TEXTAREA"},RX=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!oBe(t)&&n[e]==="visible")},lBe=function(t){return RX(t,"overflowY")},cBe=function(t){return RX(t,"overflowX")},rB=function(t,e){var n=e.ownerDocument,r=e;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=MX(t,r);if(a){var s=DX(t,r),o=s[1],l=s[2];if(o>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},uBe=function(t){var e=t.scrollTop,n=t.scrollHeight,r=t.clientHeight;return[e,n,r]},dBe=function(t){var e=t.scrollLeft,n=t.scrollWidth,r=t.clientWidth;return[e,n,r]},MX=function(t,e){return t==="v"?lBe(e):cBe(e)},DX=function(t,e){return t==="v"?uBe(e):dBe(e)},fBe=function(t,e){return t==="h"&&e==="rtl"?-1:1},hBe=function(t,e,n,r,a){var s=fBe(t,window.getComputedStyle(e).direction),o=s*r,l=n.target,c=e.contains(l),u=!1,d=o>0,f=0,h=0;do{if(!l)break;var p=DX(t,l),m=p[0],x=p[1],v=p[2],b=x-v-s*m;(m||b)&&MX(t,l)&&(f+=b,h+=m);var y=l.parentNode;l=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!c&&l!==document.body||c&&(e.contains(l)||e===l));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Mb=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},aB=function(t){return[t.deltaX,t.deltaY]},sB=function(t){return t&&"current"in t?t.current:t},pBe=function(t,e){return t[0]===e[0]&&t[1]===e[1]},mBe=function(t){return` - .block-interactivity-`.concat(t,` {pointer-events: none;} - .allow-interactivity-`).concat(t,` {pointer-events: all;} -`)},gBe=0,Xf=[];function xBe(t){var e=g.useRef([]),n=g.useRef([0,0]),r=g.useRef(),a=g.useState(gBe++)[0],s=g.useState(PX)[0],o=g.useRef(t);g.useEffect(function(){o.current=t},[t]),g.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var x=LFe([t.lockRef.current],(t.shards||[]).map(sB),!0).filter(Boolean);return x.forEach(function(v){return v.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var l=g.useCallback(function(x,v){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!o.current.allowPinchZoom;var b=Mb(x),y=n.current,w="deltaX"in x?x.deltaX:y[0]-b[0],j="deltaY"in x?x.deltaY:y[1]-b[1],k,S=x.target,_=Math.abs(w)>Math.abs(j)?"h":"v";if("touches"in x&&_==="h"&&S.type==="range")return!1;var C=window.getSelection(),E=C&&C.anchorNode,P=E?E===S||E.contains(S):!1;if(P)return!1;var R=rB(_,S);if(!R)return!0;if(R?k=_:(k=_==="v"?"h":"v",R=rB(_,S)),!R)return!1;if(!r.current&&"changedTouches"in x&&(w||j)&&(r.current=k),!k)return!0;var A=r.current||k;return hBe(A,v,x,A==="h"?w:j)},[]),c=g.useCallback(function(x){var v=x;if(!(!Xf.length||Xf[Xf.length-1]!==s)){var b="deltaY"in v?aB(v):Mb(v),y=e.current.filter(function(k){return k.name===v.type&&(k.target===v.target||v.target===k.shadowParent)&&pBe(k.delta,b)})[0];if(y&&y.should){v.cancelable&&v.preventDefault();return}if(!y){var w=(o.current.shards||[]).map(sB).filter(Boolean).filter(function(k){return k.contains(v.target)}),j=w.length>0?l(v,w[0]):!o.current.noIsolation;j&&v.cancelable&&v.preventDefault()}}},[]),u=g.useCallback(function(x,v,b,y){var w={name:x,delta:v,target:b,should:y,shadowParent:yBe(b)};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(j){return j!==w})},1)},[]),d=g.useCallback(function(x){n.current=Mb(x),r.current=void 0},[]),f=g.useCallback(function(x){u(x.type,aB(x),x.target,l(x,t.lockRef.current))},[]),h=g.useCallback(function(x){u(x.type,Mb(x),x.target,l(x,t.lockRef.current))},[]);g.useEffect(function(){return Xf.push(s),t.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",c,Yf),document.addEventListener("touchmove",c,Yf),document.addEventListener("touchstart",d,Yf),function(){Xf=Xf.filter(function(x){return x!==s}),document.removeEventListener("wheel",c,Yf),document.removeEventListener("touchmove",c,Yf),document.removeEventListener("touchstart",d,Yf)}},[]);var p=t.removeScrollBar,m=t.inert;return g.createElement(g.Fragment,null,m?g.createElement(s,{styles:mBe(a)}):null,p?g.createElement(iBe,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function yBe(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const vBe=qFe(TX,xBe);var IX=g.forwardRef(function(t,e){return g.createElement(m2,el({},t,{ref:e,sideCar:vBe}))});IX.classNames=m2.classNames;var bBe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Jf=new WeakMap,Db=new WeakMap,Ib={},dN=0,$X=function(t){return t&&(t.host||$X(t.parentNode))},wBe=function(t,e){return e.map(function(n){if(t.contains(n))return n;var r=$X(n);return r&&t.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},kBe=function(t,e,n,r){var a=wBe(e,Array.isArray(t)?t:[t]);Ib[n]||(Ib[n]=new WeakMap);var s=Ib[n],o=[],l=new Set,c=new Set(a),u=function(f){!f||l.has(f)||(l.add(f),u(f.parentNode))};a.forEach(u);var d=function(f){!f||c.has(f)||Array.prototype.forEach.call(f.children,function(h){if(l.has(h))d(h);else try{var p=h.getAttribute(r),m=p!==null&&p!=="false",x=(Jf.get(h)||0)+1,v=(s.get(h)||0)+1;Jf.set(h,x),s.set(h,v),o.push(h),x===1&&m&&Db.set(h,!0),v===1&&h.setAttribute(n,"true"),m||h.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return d(e),l.clear(),dN++,function(){o.forEach(function(f){var h=Jf.get(f)-1,p=s.get(f)-1;Jf.set(f,h),s.set(f,p),h||(Db.has(f)||f.removeAttribute(r),Db.delete(f)),p||f.removeAttribute(n)}),dN--,dN||(Jf=new WeakMap,Jf=new WeakMap,Db=new WeakMap,Ib={})}},jBe=function(t,e,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),a=bBe(t);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),kBe(r,a,n,"aria-hidden")):function(){return null}},SBe=Object.defineProperty,jc=(t,e)=>SBe(t,"name",{value:e,configurable:!0}),LP="Dialog",[LX]=oFe(LP),[_Be,Nf]=LX(LP),NBe=jc(t=>{const{__scopeDialog:e,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:o=!0}=t,l=g.useRef(null),c=g.useRef(null),[u,d]=dX({prop:r,defaultProp:a??!1,onChange:s,caller:LP}),[f,h]=g.useState(0),[p,m]=g.useState(0);return i.jsx(_Be,{scope:e,triggerRef:l,contentRef:c,contentId:rc(),titleId:rc(),descriptionId:rc(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:h,setDescriptionCount:m,open:u,onOpenChange:d,onOpenToggle:g.useCallback(()=>d(x=>!x),[d]),modal:o,children:n})},"Dialog"),FX="DialogPortal",[CBe,BX]=LX(FX,{forceMount:void 0}),EBe=jc(t=>{const{__scopeDialog:e,forceMount:n,children:r,container:a}=t,s=Nf(FX,e);return i.jsx(CBe,{scope:e,forceMount:n,children:g.Children.map(r,o=>i.jsx($P,{present:n||s.open,children:i.jsx(DFe,{asChild:!0,container:a,children:o})}))})},"DialogPortal"),LO="DialogOverlay",ABe=g.forwardRef(jc(function(e,n){const r=BX(LO,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Nf(LO,e.__scopeDialog);return o.modal?i.jsx($P,{present:a||o.open,children:i.jsx(TBe,{...s,ref:n})}):null},"DialogOverlay")),OBe=pX("DialogOverlay.RemoveScroll"),TBe=g.forwardRef(jc(function(e,n){const{__scopeDialog:r,...a}=e,s=Nf(LO,r),o=gX(),l=Vy(n,o);return i.jsx(IX,{as:OBe,allowPinchZoom:!0,shards:[s.contentRef],children:i.jsx(Ki.div,{"data-state":FP(s.open),...a,ref:l,style:{pointerEvents:"auto",...a.style}})})},"DialogOverlayImpl")),uy="DialogContent",PBe=g.forwardRef(jc(function(e,n){const r=BX(uy,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Nf(uy,e.__scopeDialog);return i.jsx($P,{present:a||o.open,children:o.modal?i.jsx(RBe,{...s,ref:n}):i.jsx(MBe,{...s,ref:n})})},"DialogContent")),RBe=g.forwardRef(jc(function(e,n){const r=Nf(uy,e.__scopeDialog),a=g.useRef(null),s=Vy(n,r.contentRef,a);return g.useEffect(()=>{const o=a.current;if(o)return jBe(o)},[]),i.jsx(zX,{...e,ref:s,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Vd(e.onCloseAutoFocus,o=>{var l;o.preventDefault(),(l=r.triggerRef.current)==null||l.focus()}),onPointerDownOutside:Vd(e.onPointerDownOutside,o=>{const l=o.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&o.preventDefault()}),onFocusOutside:Vd(e.onFocusOutside,o=>o.preventDefault())})},"DialogContentModal")),MBe=g.forwardRef(jc(function(e,n){const r=Nf(uy,e.__scopeDialog),a=g.useRef(!1),s=g.useRef(!1);return i.jsx(zX,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,o),o.defaultPrevented||(a.current||(c=r.triggerRef.current)==null||c.focus(),o.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:o=>{var u,d;(u=e.onInteractOutside)==null||u.call(e,o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const l=o.target;((d=r.triggerRef.current)==null?void 0:d.contains(l))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&s.current&&o.preventDefault()}})},"DialogContentNonModal")),zX=g.forwardRef(jc(function(e,n){const{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:o,...l}=e,c=Nf(uy,r);return $Fe(),i.jsx(i.Fragment,{children:i.jsx(PFe,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:o,children:i.jsx(AFe,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionPresent?c.descriptionId:void 0,"aria-labelledby":c.titlePresent?c.titleId:void 0,"data-state":FP(c.open),...l,ref:n,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})},"DialogContentImpl"));function FP(t){return t?"open":"closed"}jc(FP,"getState");var Rg='[cmdk-group=""]',fN='[cmdk-group-items=""]',DBe='[cmdk-group-heading=""]',UX='[cmdk-item=""]',iB=`${UX}:not([aria-disabled="true"])`,FO="cmdk-item-select",ih="data-value",IBe=(t,e,n)=>aFe(t,e,n),VX=g.createContext(void 0),Hy=()=>g.useContext(VX),WX=g.createContext(void 0),BP=()=>g.useContext(WX),HX=g.createContext(void 0),GX=g.forwardRef((t,e)=>{let n=oh(()=>{var I,q;return{search:"",value:(q=(I=t.value)!=null?I:t.defaultValue)!=null?q:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=oh(()=>new Set),a=oh(()=>new Map),s=oh(()=>new Map),o=oh(()=>new Set),l=qX(t),{label:c,children:u,value:d,onValueChange:f,filter:h,shouldFilter:p,loop:m,disablePointerSelection:x=!1,vimBindings:v=!0,...b}=t,y=rc(),w=rc(),j=rc(),k=g.useRef(null),S=qBe();mf(()=>{if(d!==void 0){let I=d.trim();n.current.value=I,_.emit()}},[d]),mf(()=>{S(6,T)},[]);let _=g.useMemo(()=>({subscribe:I=>(o.current.add(I),()=>o.current.delete(I)),snapshot:()=>n.current,setState:(I,q,M)=>{var B,z,Z,pe;if(!Object.is(n.current[I],q)){if(n.current[I]=q,I==="search")A(),P(),S(1,R);else if(I==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let ae=document.getElementById(j);ae?ae.focus():(B=document.getElementById(y))==null||B.focus()}if(S(7,()=>{var ae;n.current.selectedItemId=(ae=D())==null?void 0:ae.id,_.emit()}),M||S(5,T),((z=l.current)==null?void 0:z.value)!==void 0){let ae=q??"";(pe=(Z=l.current).onValueChange)==null||pe.call(Z,ae);return}}_.emit()}},emit:()=>{o.current.forEach(I=>I())}}),[]),C=g.useMemo(()=>({value:(I,q,M)=>{var B;q!==((B=s.current.get(I))==null?void 0:B.value)&&(s.current.set(I,{value:q,keywords:M}),n.current.filtered.items.set(I,E(q,M)),S(2,()=>{P(),_.emit()}))},item:(I,q)=>(r.current.add(I),q&&(a.current.has(q)?a.current.get(q).add(I):a.current.set(q,new Set([I]))),S(3,()=>{A(),P(),n.current.value||R(),_.emit()}),()=>{s.current.delete(I),r.current.delete(I),n.current.filtered.items.delete(I);let M=D();S(4,()=>{A(),(M==null?void 0:M.getAttribute("id"))===I&&R(),_.emit()})}),group:I=>(a.current.has(I)||a.current.set(I,new Set),()=>{s.current.delete(I),a.current.delete(I)}),filter:()=>l.current.shouldFilter,label:c||t["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:y,inputId:j,labelId:w,listInnerRef:k}),[]);function E(I,q){var M,B;let z=(B=(M=l.current)==null?void 0:M.filter)!=null?B:IBe;return I?z(I,n.current.search,q):0}function P(){if(!n.current.search||l.current.shouldFilter===!1)return;let I=n.current.filtered.items,q=[];n.current.filtered.groups.forEach(B=>{let z=a.current.get(B),Z=0;z.forEach(pe=>{let ae=I.get(pe);Z=Math.max(ae,Z)}),q.push([B,Z])});let M=k.current;L().sort((B,z)=>{var Z,pe;let ae=B.getAttribute("id"),ue=z.getAttribute("id");return((Z=I.get(ue))!=null?Z:0)-((pe=I.get(ae))!=null?pe:0)}).forEach(B=>{let z=B.closest(fN);z?z.appendChild(B.parentElement===z?B:B.closest(`${fN} > *`)):M.appendChild(B.parentElement===M?B:B.closest(`${fN} > *`))}),q.sort((B,z)=>z[1]-B[1]).forEach(B=>{var z;let Z=(z=k.current)==null?void 0:z.querySelector(`${Rg}[${ih}="${encodeURIComponent(B[0])}"]`);Z==null||Z.parentElement.appendChild(Z)})}function R(){let I=L().find(M=>M.getAttribute("aria-disabled")!=="true"),q=I==null?void 0:I.getAttribute(ih);_.setState("value",q||void 0)}function A(){var I,q,M,B;if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let z=0;for(let Z of r.current){let pe=(q=(I=s.current.get(Z))==null?void 0:I.value)!=null?q:"",ae=(B=(M=s.current.get(Z))==null?void 0:M.keywords)!=null?B:[],ue=E(pe,ae);n.current.filtered.items.set(Z,ue),ue>0&&z++}for(let[Z,pe]of a.current)for(let ae of pe)if(n.current.filtered.items.get(ae)>0){n.current.filtered.groups.add(Z);break}n.current.filtered.count=z}function T(){var I,q,M;let B=D();B&&(((I=B.parentElement)==null?void 0:I.firstChild)===B&&((M=(q=B.closest(Rg))==null?void 0:q.querySelector(DBe))==null||M.scrollIntoView({block:"nearest"})),B.scrollIntoView({block:"nearest"}))}function D(){var I;return(I=k.current)==null?void 0:I.querySelector(`${UX}[aria-selected="true"]`)}function L(){var I;return Array.from(((I=k.current)==null?void 0:I.querySelectorAll(iB))||[])}function X(I){let q=L()[I];q&&_.setState("value",q.getAttribute(ih))}function J(I){var q;let M=D(),B=L(),z=B.findIndex(pe=>pe===M),Z=B[z+I];(q=l.current)!=null&&q.loop&&(Z=z+I<0?B[B.length-1]:z+I===B.length?B[0]:B[z+I]),Z&&_.setState("value",Z.getAttribute(ih))}function U(I){let q=D(),M=q==null?void 0:q.closest(Rg),B;for(;M&&!B;)M=I>0?HBe(M,Rg):GBe(M,Rg),B=M==null?void 0:M.querySelector(iB);B?_.setState("value",B.getAttribute(ih)):J(I)}let Y=()=>X(L().length-1),W=I=>{I.preventDefault(),I.metaKey?Y():I.altKey?U(1):J(1)},G=I=>{I.preventDefault(),I.metaKey?X(0):I.altKey?U(-1):J(-1)};return g.createElement(Ki.div,{ref:e,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:I=>{var q;(q=b.onKeyDown)==null||q.call(b,I);let M=I.nativeEvent.isComposing||I.keyCode===229;if(!(I.defaultPrevented||M))switch(I.key){case"n":case"j":{v&&I.ctrlKey&&W(I);break}case"ArrowDown":{W(I);break}case"p":case"k":{v&&I.ctrlKey&&G(I);break}case"ArrowUp":{G(I);break}case"Home":{I.preventDefault(),X(0);break}case"End":{I.preventDefault(),Y();break}case"Enter":{I.preventDefault();let B=D();if(B){let z=new Event(FO);B.dispatchEvent(z)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:YBe},c),g2(t,I=>g.createElement(WX.Provider,{value:_},g.createElement(VX.Provider,{value:C},I))))}),$Be=g.forwardRef((t,e)=>{var n,r;let a=rc(),s=g.useRef(null),o=g.useContext(HX),l=Hy(),c=qX(t),u=(r=(n=c.current)==null?void 0:n.forceMount)!=null?r:o==null?void 0:o.forceMount;mf(()=>{if(!u)return l.item(a,o==null?void 0:o.id)},[u]);let d=KX(a,s,[t.value,t.children,s],t.keywords),f=BP(),h=Du(S=>S.value&&S.value===d.current),p=Du(S=>u||l.filter()===!1?!0:S.search?S.filtered.items.get(a)>0:!0);g.useEffect(()=>{let S=s.current;if(!(!S||t.disabled))return S.addEventListener(FO,m),()=>S.removeEventListener(FO,m)},[p,t.onSelect,t.disabled]);function m(){var S,_;x(),(_=(S=c.current).onSelect)==null||_.call(S,d.current)}function x(){f.setState("value",d.current,!0)}if(!p)return null;let{disabled:v,value:b,onSelect:y,forceMount:w,keywords:j,...k}=t;return g.createElement(Ki.div,{ref:Qp(s,e),...k,id:a,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!h,"data-disabled":!!v,"data-selected":!!h,onPointerMove:v||l.getDisablePointerSelection()?void 0:x,onClick:v?void 0:m},t.children)}),LBe=g.forwardRef((t,e)=>{let{heading:n,children:r,forceMount:a,...s}=t,o=rc(),l=g.useRef(null),c=g.useRef(null),u=rc(),d=Hy(),f=Du(p=>a||d.filter()===!1?!0:p.search?p.filtered.groups.has(o):!0);mf(()=>d.group(o),[]),KX(o,l,[t.value,t.heading,c]);let h=g.useMemo(()=>({id:o,forceMount:a}),[a]);return g.createElement(Ki.div,{ref:Qp(l,e),...s,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&g.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:u},n),g2(t,p=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?u:void 0},g.createElement(HX.Provider,{value:h},p))))}),FBe=g.forwardRef((t,e)=>{let{alwaysRender:n,...r}=t,a=g.useRef(null),s=Du(o=>!o.search);return!n&&!s?null:g.createElement(Ki.div,{ref:Qp(a,e),...r,"cmdk-separator":"",role:"separator"})}),BBe=g.forwardRef((t,e)=>{let{onValueChange:n,...r}=t,a=t.value!=null,s=BP(),o=Du(u=>u.search),l=Du(u=>u.selectedItemId),c=Hy();return g.useEffect(()=>{t.value!=null&&s.setState("search",t.value)},[t.value]),g.createElement(Ki.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:a?t.value:o,onChange:u=>{a||s.setState("search",u.target.value),n==null||n(u.target.value)}})}),zBe=g.forwardRef((t,e)=>{let{children:n,label:r="Suggestions",...a}=t,s=g.useRef(null),o=g.useRef(null),l=Du(u=>u.selectedItemId),c=Hy();return g.useEffect(()=>{if(o.current&&s.current){let u=o.current,d=s.current,f,h=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let p=u.offsetHeight;d.style.setProperty("--cmdk-list-height",p.toFixed(1)+"px")})});return h.observe(u),()=>{cancelAnimationFrame(f),h.unobserve(u)}}},[]),g.createElement(Ki.div,{ref:Qp(s,e),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:c.listId},g2(t,u=>g.createElement("div",{ref:Qp(o,c.listInnerRef),"cmdk-list-sizer":""},u)))}),UBe=g.forwardRef((t,e)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:o,...l}=t;return g.createElement(NBe,{open:n,onOpenChange:r},g.createElement(EBe,{container:o},g.createElement(ABe,{"cmdk-overlay":"",className:a}),g.createElement(PBe,{"aria-label":t.label,"cmdk-dialog":"",className:s},g.createElement(GX,{ref:e,...l}))))}),VBe=g.forwardRef((t,e)=>Du(n=>n.filtered.count===0)?g.createElement(Ki.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),WBe=g.forwardRef((t,e)=>{let{progress:n,children:r,label:a="Loading...",...s}=t;return g.createElement(Ki.div,{ref:e,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},g2(t,o=>g.createElement("div",{"aria-hidden":!0},o)))}),Zf=Object.assign(GX,{List:zBe,Item:$Be,Input:BBe,Group:LBe,Separator:FBe,Dialog:UBe,Empty:VBe,Loading:WBe});function HBe(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return n;n=n.nextElementSibling}}function GBe(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return n;n=n.previousElementSibling}}function qX(t){let e=g.useRef(t);return mf(()=>{e.current=t}),e}var mf=typeof window>"u"?g.useEffect:g.useLayoutEffect;function oh(t){let e=g.useRef();return e.current===void 0&&(e.current=t()),e}function Du(t){let e=BP(),n=()=>t(e.snapshot());return g.useSyncExternalStore(e.subscribe,n,n)}function KX(t,e,n,r=[]){let a=g.useRef(),s=Hy();return mf(()=>{var o;let l=(()=>{var u;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(u=d.current.textContent)==null?void 0:u.trim():a.current}})(),c=r.map(u=>u.trim());s.value(t,l,c),(o=e.current)==null||o.setAttribute(ih,l),a.current=l}),a}var qBe=()=>{let[t,e]=g.useState(),n=oh(()=>new Map);return mf(()=>{n.current.forEach(r=>r()),n.current=new Map},[t]),(r,a)=>{n.current.set(r,a),e({})}};function KBe(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function g2({asChild:t,children:e},n){return t&&g.isValidElement(e)?g.cloneElement(KBe(e),{ref:e.ref},n(e.props.children)):n(e)}var YBe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const oB=[{heading:"General",items:[{to:"/",label:"Overview",icon:DW,keywords:["home","dashboard"]},{to:"/analytics",label:"Analytics",icon:Yb,keywords:["metrics","charts","stats"]},{to:"/analytics",label:"Multi-objective",hint:"Analytics",icon:Yb,keywords:["sr","success rate","multi objective","transactions"]},{to:"/analytics?view=rule_based",label:"Rule & Volume",hint:"Analytics",icon:Yb,keywords:["rule based","volume","rules","analytics"]},{to:"/audit",label:"Decision Audit",icon:Uh,keywords:["payment","inspect","logs","transactions"]},{to:"/audit",label:"Multi-objective",hint:"Decision Audit",icon:Uh,keywords:["sr","success rate","multi objective","transactions"]},{to:"/audit?mode=rule_based",label:"Rule & Volume",hint:"Decision Audit",icon:Uh,keywords:["rule based","volume","rules"]},{to:"/audit?mode=debit_routing",label:"Debit Routing",hint:"Decision Audit",icon:_o,keywords:["debit","network","card"]},{to:"/events",label:"Routing Events",icon:zw,keywords:["stream","live","feed"]}]},{heading:"Routing",items:[{to:"/routing",label:"Routing Hub",icon:Lj,keywords:["strategies","algorithms","overview"]},{to:"/routing/sr",label:"Multi Objective",icon:Bj,keywords:["sr","success rate","auth rate"]},{to:"/routing/sr?tab=autopilot",label:"Autopilot",hint:"Multi Objective",icon:UNe,keywords:["sr","auto","automatic"]},{to:"/routing/sr?tab=manual",label:"Manual Config",hint:"Multi Objective",icon:ec,keywords:["sr","weights","tuning"]},{to:"/routing/sr?tab=manual",label:"Scoring Defaults",hint:"Manual Config",icon:ec,keywords:["sr","scoring","defaults","weights","bucket size","hedging","payment type override"]},{to:"/routing/sr?tab=manual§ion=elimination",label:"Elimination",hint:"Manual Config",icon:OW,keywords:["sr","eliminate","threshold","latency","auth rate","drop psp","remove gateway"]},{to:"/routing/sr?tab=manual§ion=dimensions",label:"SR Dimensions",hint:"Manual Config",icon:Fj,keywords:["sr","dimensions","split","clusters","udf","card network","currency","country","bin"]},{to:"/routing/sr?tab=flags",label:"Feature Flags",hint:"Multi Objective",icon:KNe,keywords:["sr","toggles","settings"]},{to:"/routing/sr?tab=cost",label:"Cost Estimation",hint:"Multi Objective",icon:RW,keywords:["cost","pricing","fees","connectors","clusters"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Data Ingestion",hint:"Cost Estimation",icon:tA,keywords:["cost","ingest","connector","settlement","upload","report"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Automatic Ingestion",hint:"Data Ingestion",icon:tA,keywords:["cost","ingest","credentials","sftp","connector","automatic","scheduled"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=manual",label:"Manual Report Upload",hint:"Data Ingestion",icon:UW,keywords:["cost","ingest","upload","csv","settlement","report","par","sample","manual"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=invoice",label:"Invoice Upload",hint:"Data Ingestion",icon:MW,keywords:["cost","ingest","invoice","upload","monthly","scheme fees","billing"]},{to:"/routing/sr?tab=cost§ion=data",label:"Ingested Data",hint:"Cost Estimation",icon:IW,keywords:["cost","coverage","history","data"]},{to:"/routing/sr?tab=cost",label:"Costs",hint:"Cost Estimation",icon:ec,keywords:["cost","override","blended fee","fee","contract","seed","baseline","interchange","scheme","markup","connector","psp"]},{to:"/routing/rules",label:"Rule Based",icon:Dj,keywords:["euclid","rules","conditions"]},{to:"/routing/volume",label:"Volume Split",icon:rf,keywords:["distribution","percentage","weights"]},{to:"/routing/debit",label:"Debit Routing",icon:_o,keywords:["debit","network","card"]},{to:"/routing/ab-testing",label:"A/B Testing",hint:"Beta",icon:$p,keywords:["experiment","split test","ab"]}]},{heading:"Simulation",items:[{to:"/decisions/simulator",label:"Decision Simulator",icon:$p,keywords:["simulate","test","preview"]}]},{heading:"Settings",items:[{to:"/members",label:"Members",icon:Z3,keywords:["team","users","roles","invite","access"]},{to:"/api-keys",label:"API Keys",icon:Y3,keywords:["tokens","credentials","secrets"]},{to:"/account",label:"Change Password",hint:"Account",icon:K3,keywords:["account","password","security"]}]}],XBe=PP?oB:oB.filter(t=>t.heading!=="Simulation");function JBe(t,e,n){const r=e.trim().toLowerCase();if(!r)return 1;const a=t.toLowerCase();return a.startsWith(r)?1:a.includes(r)?.9:(n??[]).join(" ").toLowerCase().includes(r)?.6:0}function ZBe(){const t=Hr(),[e,n]=g.useState(!1);g.useEffect(()=>{function a(s){s.key.toLowerCase()==="k"&&(s.metaKey||s.ctrlKey)&&(s.preventDefault(),n(o=>!o))}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);const r=g.useCallback(a=>{n(!1),t(a)},[t]);return i.jsxs(i.Fragment,{children:[i.jsx(QBe,{onClick:()=>n(!0)}),i.jsx(e9e,{open:e,onOpenChange:n,onSelect:r})]})}function QBe({onClick:t}){const e=g.useMemo(()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),[]);return i.jsxs("button",{type:"button",onClick:t,className:"group flex h-9 w-full max-w-md items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-500 transition-colors hover:border-slate-300 hover:text-slate-500 dark:border-[#1a1a24] dark:bg-[#121218] dark:hover:border-[#2a2a38] dark:hover:text-slate-300","aria-label":"Search",children:[i.jsx(Lp,{size:14,className:"shrink-0"}),i.jsx("span",{className:"flex-1 text-left text-[13px] font-medium leading-[18px]",children:"Search…"}),i.jsxs("kbd",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-slate-200 bg-slate-50 px-1.5 py-0.5 text-[11px] font-semibold text-slate-500 sm:flex dark:border-[#22262f] dark:bg-[#0a0d12] dark:text-[#6d768a] leading-4",children:[e?"⌘":"Ctrl"," K"]})]})}function e9e({open:t,onOpenChange:e,onSelect:n}){return i.jsxs(Zf.Dialog,{open:t,onOpenChange:e,label:"Global search",filter:JBe,loop:!0,className:"flex min-h-0 flex-1 flex-col",overlayClassName:"fixed inset-0 z-[100] bg-slate-900/40 backdrop-blur-sm dark:bg-black/60",contentClassName:"fixed left-1/2 top-[12vh] z-[101] flex max-h-[76vh] w-[calc(100vw-2rem)] max-w-xl -translate-x-1/2 flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_30px_80px_-40px_rgba(15,23,42,0.55)] focus:outline-none dark:border-[#22262f] dark:bg-[#0a0d12]",children:[i.jsxs("div",{className:"flex items-center gap-3 border-b border-slate-200 px-4 dark:border-[#22262f]",children:[i.jsx(Lp,{size:17,className:"shrink-0 text-slate-500"}),i.jsx(Zf.Input,{autoFocus:!0,placeholder:"Search pages and settings…",className:"h-12 w-full bg-transparent px-0 text-[15px] text-slate-900 outline-none focus:ring-0 placeholder:text-slate-500 dark:text-white dark:placeholder:text-[#78849a] leading-[22px]"})]}),i.jsxs(Zf.List,{className:"min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-2",children:[i.jsx(Zf.Empty,{className:"px-3 py-8 text-center text-sm text-slate-500",children:"No results found."}),XBe.map(r=>i.jsx(Zf.Group,{heading:r.heading,className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-widest [&_[cmdk-group-heading]]:text-slate-400 dark:[&_[cmdk-group-heading]]:text-[#6d768a]",children:r.items.map(a=>{const s=a.icon;return i.jsxs(Zf.Item,{value:a.hint?`${a.label} ${a.hint}`:a.label,keywords:a.keywords??[],onSelect:()=>n(a.to),className:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-[14px] text-slate-600 aria-selected:bg-slate-100 aria-selected:text-slate-900 dark:text-[#8d96aa] dark:aria-selected:bg-white/[0.06] dark:aria-selected:text-white leading-5",children:[i.jsx(s,{size:16,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate font-medium",children:a.label}),a.hint?i.jsx("span",{className:"shrink-0 text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:a.hint}):null]},`${a.to}::${a.label}`)})},r.heading))]})]})}const t9e=8;function Nk(t){return{org:t.hs_org_name??t.hs_org_id??null,merchant:t.hs_merchant_name??t.hs_merchant_id??null,profile:t.profile_name??t.merchant_name??t.merchant_id}}function n9e(t){return t.length>14?`${t.slice(0,8)}…${t.slice(-4)}`:t}const lB="ungrouped:no-ancestry";function r9e(t){const e=new Map;for(const n of t){const r=Nk(n),a=n.hs_merchant_id??r.merchant??lB,s=e.get(a);s?s.scopes.push(n):e.set(a,{key:a,merchant:r.merchant,org:r.org,orgIsId:n.hs_org_name==null,orgKey:n.hs_org_id??r.org??lB,scopes:[n]})}return[...e.values()]}function a9e(t,e){const n=Nk(t);return[n.profile,n.merchant,n.org,t.merchant_id,t.merchant_name].some(r=>r==null?void 0:r.toLowerCase().includes(e))}function s9e(){const t=Hr(),{user:e,merchants:n,updateMerchant:r}=hr(),{setMerchantId:a}=$r(),[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState(null),[f,h]=g.useState(new Set),[p,m]=g.useState(null),x=g.useRef(null),v=g.useRef(null),b=!!(e!=null&&e.isRedirectSession||e!=null&&e.isSuperAdminView),y=n.length>(b?1:0),w=!(e!=null&&e.isRedirectSession)&&!(e!=null&&e.isSuperAdminView),j=n.find(W=>W.merchant_id===(e==null?void 0:e.merchantId)),k=e!=null&&e.hierarchy?{org:e.hierarchy.hs_org_name??e.hierarchy.hs_org_id??null,merchant:e.hierarchy.hs_merchant_name??e.hierarchy.hs_merchant_id??null,profile:e.hierarchy.profile_name??(j==null?void 0:j.merchant_name)??e.merchantId}:j?Nk(j):{org:null,merchant:null,profile:(e==null?void 0:e.merchantId)??"No scope"},S=g.useMemo(()=>r9e(n),[n]),_=l.trim().toLowerCase(),C=S.length>1,E=g.useMemo(()=>new Set(S.map(W=>W.orgKey)).size>1,[S]),P=C?null:S[0]??null,R=g.useMemo(()=>_?S.map(W=>({...W,scopes:W.scopes.filter(G=>a9e(G,_))})).filter(W=>W.scopes.length>0):S,[S,_]),A=W=>C&&W.merchant!==null&&!_&&f.has(W.key),T=g.useMemo(()=>R.flatMap(W=>A(W)?[]:W.scopes),[R,f,_,C]);g.useEffect(()=>{function W(G){x.current&&!x.current.contains(G.target)&&o(!1)}return document.addEventListener("mousedown",W),()=>document.removeEventListener("mousedown",W)},[]),g.useEffect(()=>{if(!s)return;c(""),m((e==null?void 0:e.merchantId)??null);const W=S.find(G=>G.scopes.some(I=>I.merchant_id===(e==null?void 0:e.merchantId)));h(n.length<=t9e?new Set:new Set(S.filter(G=>G.key!==(W==null?void 0:W.key)).map(G=>G.key)))},[s,S,n.length,e==null?void 0:e.merchantId]),g.useEffect(()=>{var W;!s||!_||m(((W=T[0])==null?void 0:W.merchant_id)??null)},[s,_,T]),g.useEffect(()=>{var W,G;s&&((G=(W=v.current)==null?void 0:W.querySelector('[data-active="true"]'))==null||G.scrollIntoView({block:"nearest"}))},[p,s]);async function D(W){if(W===(e==null?void 0:e.merchantId)){o(!1);return}if(!u){d(W);try{const G=await aa("/auth/switch-merchant",{method:"POST",body:JSON.stringify({merchant_id:W})});r(G.token,G.merchant_id,G.merchants),a(G.merchant_id),o(!1)}catch{}finally{d(null)}}}function L(W){h(G=>{const I=new Set(G);return I.has(W)?I.delete(W):I.add(W),I})}function X(W){if(W.key==="Escape"){o(!1);return}if(W.key==="ArrowDown"||W.key==="ArrowUp"){if(W.preventDefault(),T.length===0)return;const G=W.key==="ArrowDown"?1:-1,I=T.findIndex(M=>M.merchant_id===p),q=I===-1?G===1?0:T.length-1:(I+G+T.length)%T.length;m(T[q].merchant_id);return}if(W.key==="Enter"){W.preventDefault();const G=T.find(I=>I.merchant_id===p);G&&D(G.merchant_id)}}const J=k.merchant?PS:jh,U=i.jsxs(i.Fragment,{children:[i.jsx(J,{size:14,className:"shrink-0 text-slate-500"}),i.jsxs("span",{className:"flex min-w-0 flex-col items-start leading-tight",children:[k.merchant&&i.jsx("span",{className:"max-w-[170px] truncate text-[11px] font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:k.merchant}),i.jsx("span",{className:"max-w-[170px] truncate text-[12.5px] font-semibold text-slate-700 dark:text-slate-200 leading-[17px]",children:k.profile})]})]}),Y=[k.org&&`Organization ${k.org}`,k.merchant&&`Merchant ${k.merchant}`,`Profile ${k.profile}`,`Scope id ${(e==null?void 0:e.merchantId)??"—"}`].filter(Boolean).join(` -`);return y?i.jsxs("div",{className:"relative",ref:x,children:[i.jsxs("button",{onClick:()=>o(W=>!W),title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 dark:hover:bg-[#18181f]",children:[U,i.jsx(ln,{size:12,className:"shrink-0 text-slate-500"})]}),s&&i.jsxs("div",{onKeyDown:X,className:"absolute right-0 top-12 z-50 flex max-h-[min(560px,70vh)] w-[380px] flex-col overflow-hidden rounded-xl border border-[#e6e6ee] bg-white shadow-xl dark:border-[#1a1a24] dark:bg-[#0c0c10]",children:[P&&(P.org||P.merchant)&&i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-[#e6e6ee] px-3.5 py-2 text-slate-500 dark:border-[#1a1a24] dark:text-slate-400",children:[P.org&&i.jsxs(i.Fragment,{children:[i.jsx(jh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`min-w-0 truncate leading-4 ${P.orgIsId?"font-mono text-[10.5px]":"text-[11px]"}`,children:P.org})]}),P.org&&P.merchant&&i.jsx(So,{size:10,className:"shrink-0"}),P.merchant&&i.jsxs(i.Fragment,{children:[i.jsx(PS,{size:11,className:"shrink-0"}),i.jsx("span",{className:"min-w-0 truncate text-[11px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:P.merchant})]})]}),i.jsxs("div",{className:"relative border-b border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx(Lp,{size:13,className:"pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{value:l,onChange:W=>c(W.target.value),placeholder:b?"Search profiles, merchants, ids":"Search merchants",autoFocus:!0,className:"h-11 w-full bg-transparent pl-9 pr-3.5 text-[13px] text-slate-700 placeholder:text-slate-500 focus:outline-none dark:text-slate-200 leading-[18px]"})]}),i.jsxs("div",{ref:v,className:`flex-1 overflow-y-auto pb-1 ${E||C?"":"pt-1"}`,children:[R.length===0&&i.jsxs("p",{className:"px-3.5 py-6 text-center text-[12px] text-slate-500 leading-4",children:["Nothing matches “",l.trim(),"”."]}),R.map((W,G)=>{const I=E&&W.org!==null,q=I&&(G===0||R[G-1].orgKey!==W.orgKey),M=C&&W.merchant!==null,B=A(W);return i.jsxs("div",{children:[q&&i.jsxs("p",{className:"sticky top-0 z-20 flex items-center gap-1.5 bg-white px-3.5 pb-1 pt-2.5 text-slate-500 dark:bg-[#0c0c10] dark:text-slate-500 leading-4",children:[i.jsx(jh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`truncate ${W.orgIsId?"font-mono text-[10.5px]":"text-[11px] font-semibold uppercase tracking-widest"}`,children:W.org})]}),M&&i.jsxs("button",{onClick:()=>L(W.key),className:`sticky z-10 flex w-full items-center gap-1.5 bg-white px-3.5 py-1.5 text-left transition-colors hover:bg-slate-50 dark:bg-[#0c0c10] dark:hover:bg-[#13131a] ${I?"top-[26px]":"top-0"}`,children:[i.jsx(So,{size:12,className:`shrink-0 text-slate-500 transition-transform ${B?"":"rotate-90"}`}),i.jsx(PS,{size:12,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate text-[12px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:W.merchant}),i.jsx("span",{className:"shrink-0 text-[11px] tabular-nums text-slate-500 leading-4",children:W.scopes.length})]}),!B&&W.scopes.map(z=>{const Z=W.merchant!==null?Fj:jh,pe=Nk(z),ae=z.merchant_id===(e==null?void 0:e.merchantId),ue=z.merchant_id===p;return i.jsxs("button",{"data-active":ue,onMouseEnter:()=>m(z.merchant_id),onClick:()=>D(z.merchant_id),disabled:u===z.merchant_id,className:`flex w-full items-center gap-2 py-1.5 pr-3 text-left transition-colors disabled:opacity-50 ${M?"pl-9":"pl-3.5"} ${ue?"bg-slate-50 dark:bg-[#13131a]":""}`,children:[i.jsx(Z,{size:12,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:`flex-1 truncate text-[13px] ${ae?"font-semibold text-brand-600":"font-medium text-slate-700 dark:text-slate-300"} leading-[18px]`,children:pe.profile}),i.jsx("span",{className:"shrink-0 font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:n9e(z.merchant_id)}),ae&&i.jsx(gi,{size:13,className:"shrink-0 text-brand-600"})]},z.merchant_id)})]},W.key)})]}),i.jsxs("div",{className:"flex items-center gap-1.5 border-t border-[#e6e6ee] px-3.5 py-2 dark:border-[#1a1a24]",children:[i.jsx("span",{title:Y,className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:e==null?void 0:e.merchantId}),i.jsx(Fy,{text:(e==null?void 0:e.merchantId)??"",label:"Copy scope id"}),w&&i.jsxs("button",{onClick:()=>{o(!1),t("/onboarding")},className:"ml-auto flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-brand-600 transition-colors hover:bg-slate-50 dark:hover:bg-[#13131a]",children:[i.jsx(Qn,{size:12}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Add merchant"})]})]})]})]}):i.jsx("div",{title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300",children:U})}function i9e(){const{user:t,setAuth:e}=hr(),{setMerchantId:n}=$r(),[r,a]=g.useState(!1),[s,o]=g.useState(""),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(""),[p,m]=g.useState([]),[x,v]=g.useState(!1),b=g.useRef(null);g.useEffect(()=>{function w(j){b.current&&!b.current.contains(j.target)&&a(!1)}return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[]),g.useEffect(()=>{if(!r)return;const w=f.trim();if(!w){m([]),v(!1);return}let j=!1;v(!0);const k=setTimeout(async()=>{try{const S=await aa("/auth/super-admin/lookup",{method:"POST",body:JSON.stringify({query:w})});j||m(S)}catch{j||m([])}finally{j||v(!1)}},300);return()=>{j=!0,clearTimeout(k)}},[f,r]);async function y(w){if(!(!w||l)){c(!0),d(null);try{const j=await aa("/auth/super-admin/enter-merchant",{method:"POST",body:JSON.stringify({merchant_id:w})});e(j.token,{userId:j.user_id,email:j.email,merchantId:j.merchant_id,role:j.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!0},[]),n(j.merchant_id),a(!1),o(""),h(""),m([])}catch(j){const k=j.status;d(k===404?"No merchant with that ID.":"Could not enter that merchant.")}finally{c(!1)}}}return i.jsxs("header",{className:"flex h-[78px] shrink-0 items-center gap-4 border-b border-slate-200 bg-white px-6 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d] relative z-10",children:[i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex min-w-0 flex-[2] justify-center lg:-translate-x-32",children:i.jsx(ZBe,{})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-end gap-2",children:[i.jsx(Y6e,{}),(t==null?void 0:t.isSuperAdmin)&&!(t!=null&&t.isSuperAdminView)&&i.jsxs("div",{className:"relative shrink-0",ref:b,children:[i.jsxs("button",{onClick:()=>a(w=>!w),className:"flex items-center gap-2 h-8 px-3 whitespace-nowrap rounded-lg border border-amber-300/70 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 hover:bg-amber-100 dark:hover:bg-amber-500/20 transition-colors text-amber-700 dark:text-amber-300",children:[i.jsx(X3,{size:13,className:"shrink-0"}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Super admin"}),i.jsx(ln,{size:12,className:"shrink-0"})]}),r&&i.jsxs("div",{className:"absolute right-0 top-10 w-80 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg p-3 z-50",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 mb-2 leading-4",children:"View a merchant dashboard"}),i.jsx("input",{value:f,onChange:w=>h(w.target.value),placeholder:"Search by email or merchant name",autoFocus:!0,className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),f.trim()&&i.jsx("div",{className:"mt-2 max-h-64 overflow-y-auto",children:x&&p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"Searching…"}):p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matches."}):p.map(w=>i.jsxs("button",{onClick:()=>y(w.merchant_id),disabled:l,className:"w-full text-left px-2 py-2 rounded-md hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors disabled:opacity-50",children:[(w.hs_org_name||w.hs_merchant_name)&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:[w.hs_org_name,w.hs_merchant_name].filter(Boolean).join(" › ")}),i.jsx("p",{className:"text-[13px] font-medium text-slate-700 dark:text-slate-200 truncate leading-[18px]",children:w.merchant_name}),i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.merchant_id}),w.members.length>0&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.members.map(j=>j.email).join(", ")})]},w.merchant_id))}),i.jsxs("div",{className:"mt-2 pt-2 border-t border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx("input",{value:s,onChange:w=>{o(w.target.value),d(null)},onKeyDown:w=>{w.key==="Enter"&&y(s.trim())},placeholder:"…or paste an exact merchant ID",className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),u&&i.jsx("p",{className:"mt-1.5 text-[11px] text-red-600 leading-4",children:u}),i.jsx("button",{onClick:()=>y(s.trim()),disabled:!s.trim()||l,className:"mt-2 w-full flex items-center justify-center gap-1.5 h-8 rounded-md bg-amber-600 hover:bg-amber-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors text-[13px] font-medium text-white leading-[18px]",children:l?"Entering…":i.jsxs(i.Fragment,{children:["Enter dashboard ",i.jsx(ju,{size:13})]})})]})]})]}),i.jsx(s9e,{})]})]})}function o9e(){var l,c;const{user:t,setAuth:e}=hr(),{setMerchantId:n}=$r(),[r,a]=g.useState(!1);if(!(t!=null&&t.isSuperAdminView))return null;const s=[(l=t.hierarchy)==null?void 0:l.hs_merchant_name,(c=t.hierarchy)==null?void 0:c.profile_name].filter(Boolean).join(" / ")||t.merchantId;async function o(){if(!r){a(!0);try{const u=await aa("/auth/super-admin/exit",{method:"POST"});e(u.token,{userId:u.user_id,email:u.email,merchantId:u.merchant_id,role:u.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!1},u.merchants),n(u.merchant_id)}catch{}finally{a(!1)}}}return i.jsxs("div",{title:`Scope id ${t.merchantId}`,className:"flex h-9 shrink-0 items-center justify-center gap-3 bg-amber-500 px-4 text-[12.5px] font-medium text-amber-950 leading-[17px]",children:[i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(X3,{size:14,className:"shrink-0"}),"Viewing",i.jsx("span",{className:"min-w-0 truncate font-semibold",children:s}),"as platform super admin"]}),i.jsxs("button",{onClick:o,disabled:r,className:"flex items-center gap-1.5 rounded-md bg-amber-950/15 px-2.5 py-1 hover:bg-amber-950/25 disabled:opacity-60 transition-colors",children:[i.jsx($W,{size:12}),r?"Exiting…":"Exit"]})]})}function l9e(){const t=hr(n=>n.user);return hr(n=>sT(n.user,"routing:write"))?null:i.jsxs("div",{className:"flex h-9 shrink-0 items-center justify-center gap-2 bg-slate-700 px-4 text-[12.5px] font-medium text-slate-100 dark:bg-[#1e2430] leading-[17px]",children:[i.jsx(jf,{size:14,className:"shrink-0"}),i.jsxs("span",{children:["View only — your Hyperswitch role can see routing for"," ",i.jsx("span",{className:"font-semibold",children:t==null?void 0:t.merchantId})," but not change it."]})]})}function c9e(){return i.jsx(sAe,{children:i.jsxs("div",{className:"relative flex h-screen overflow-hidden bg-[#ffffff] text-slate-900 transition-colors duration-300 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(59,130,246,0.05),_transparent_22%),radial-gradient(circle_at_top_right,_rgba(14,165,233,0.04),_transparent_20%),linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[radial-gradient(circle_at_top_left,_rgba(56,189,248,0.06),_transparent_22%),linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"aurora-top"}),i.jsx(H6e,{}),i.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden relative z-10",children:[i.jsx(o9e,{}),i.jsx(l9e,{}),i.jsx(i9e,{}),i.jsx("main",{className:"relative flex-1 overflow-y-auto px-4 py-5 sm:px-5 sm:py-6 lg:px-6 lg:py-7 xl:px-8",children:i.jsx("div",{className:"mx-auto w-full max-w-[1760px]",children:i.jsx(Iz,{})})})]})]})})}function u9e(t){return typeof t=="string"?t:Array.isArray(t)&&typeof t[0]=="string"?t[0]:null}function d9e(t){const e=u9e(t);return e!=null&&e.startsWith("/")?e!=="/auth/me"&&!e.startsWith("/health"):!1}function f9e(){Gz(d9e,void 0,{revalidate:!0}).catch(()=>{})}function hN({label:t}){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-slate-200 bg-white px-5 py-4 text-sm text-slate-600 shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:text-[#c7cfdb] dark:shadow-none",children:[i.jsx(Su,{size:16,className:"animate-spin text-brand-600 dark:text-[#7ea4ff]"}),t]})})}function cB(){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white px-4 text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex max-w-sm flex-col items-center gap-3 rounded-2xl border border-slate-200 bg-white px-6 py-6 text-center shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:shadow-none",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:"Your routing session has expired"}),i.jsx("p",{className:"text-sm text-slate-600 dark:text-[#c7cfdb]",children:"Reopen it from the Hyperswitch dashboard to continue."}),i.jsx("button",{type:"button",onClick:()=>window.close(),className:"mt-1 rounded-lg bg-brand-600 px-4 py-2 text-sm font-medium text-white hover:bg-brand-700 dark:bg-[#2d4b8f] dark:hover:bg-[#33569f]",children:"Close tab"})]})})}function h9e(){const t=hr(h=>h.token),e=hr(h=>h.user),n=hr(h=>h.hasHydrated),r=hr(h=>h.setAuth),a=hr(h=>h.clearAuth),s=$r(h=>h.setMerchantId),o=g.useRef(null),[l,c]=g.useState(!1),{data:u,error:d,isValidating:f}=ct(t&&n?["/auth/me",t]:null,([h])=>Dt(h),{revalidateOnFocus:!1,shouldRetryOnError:!1});if(g.useEffect(()=>{!n||!t||o.current===t||(o.current=t,f9e())},[n,t]),g.useEffect(()=>{var p;if(!u||!t)return;const h=u.merchant_id||((p=u.merchants[0])==null?void 0:p.merchant_id)||"";r(t,{userId:u.user_id,email:u.email,merchantId:h,role:u.role,isRedirectSession:u.user_id.startsWith("hs_"),isSuperAdmin:u.is_super_admin,isSuperAdminView:u.is_super_admin_view,permissions:u.permissions,hierarchy:u.hierarchy},u.merchants),s(h)},[u,t,r,s]),g.useEffect(()=>{if(!d||f)return;const h=d.status;(h===401||h===403)&&(e!=null&&e.isRedirectSession&&c(!0),a(),s(""))},[d,f,a,s,e]),!n)return i.jsx(hN,{label:"Restoring session"});if(l)return i.jsx(cB,{});if(!t)return i.jsx($1,{to:"/login",replace:!0});if(!u&&!d)return i.jsx(hN,{label:"Validating session"});if(d){const h=d.status;if(h===401||h===403)return f?i.jsx(hN,{label:"Validating session"}):e!=null&&e.isRedirectSession?i.jsx(cB,{}):i.jsx($1,{to:"/login",replace:!0})}return i.jsx(Iz,{})}function uB(t){return TP&&t.endsWith("/signup")?"signup":"login"}function p9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function m9e(t){return/email.*(already registered|already exists)|user.*already exists/i.test(t)}function dB(){const t=Hr(),e=wl(),n=e.state,{token:r,hasHydrated:a,setAuth:s,updateMerchant:o}=hr(),{setMerchantId:l}=$r(),c="/decision-engine/",u=g.useRef(null),[d,f]=g.useState(()=>Om()==="dark"),[h,p]=g.useState(()=>uB(e.pathname)),[m,x]=g.useState((n==null?void 0:n.email)??""),[v,b]=g.useState(""),[y,w]=g.useState(""),[j,k]=g.useState(!1),[S,_]=g.useState(!1),[C,E]=g.useState(null),[P,R]=g.useState((n==null?void 0:n.notice)??null),[A,T]=g.useState(!!(n!=null&&n.focusPassword));g.useEffect(()=>{!a||!r||S||t(oH()??"/",{replace:!0})},[a,S,t,r]),g.useEffect(()=>{p(uB(e.pathname)),n!=null&&n.email&&x(n.email),n!=null&&n.notice&&R(n.notice),n!=null&&n.focusPassword&&T(!0)},[e.pathname,n==null?void 0:n.email,n==null?void 0:n.focusPassword,n==null?void 0:n.notice]),g.useEffect(()=>{var J;h!=="login"||!A||((J=u.current)==null||J.focus(),T(!1))},[A,h]);function D(){const J=d?"light":"dark";f(J==="dark"),Uy(J)}function L(J){p(J),E(null),R(null),t(J==="login"?"/login":"/signup")}async function X(J){if(J.preventDefault(),E(null),R(null),h==="signup"){const U=p9e(v);if(U){E(U);return}}_(!0);try{const U=h==="login"?"/auth/login":"/auth/signup",Y=y.trim(),W=await aa(U,{method:"POST",body:JSON.stringify({email:m,password:v})});if("email_verification_required"in W&&W.email_verification_required){Y&&localStorage.setItem("pending_merchant_name",JSON.stringify({email:m,merchant_name:Y})),t("/login",{replace:!0,state:{notice:W.message}});return}const G=W;s(G.token,{userId:G.user_id,email:G.email,merchantId:G.merchant_id,role:G.role,isRedirectSession:!1},G.merchants),G.merchant_id&&l(G.merchant_id);const I=localStorage.getItem("pending_merchant_name"),q=I?(()=>{try{return JSON.parse(I)}catch{return null}})():null,M=((q==null?void 0:q.email)===G.email?q.merchant_name:"")??"",B=Y||M;if(B&&!G.merchant_id){localStorage.removeItem("pending_merchant_name");const z=await aa("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:B})});o(z.token,z.merchant_id,z.merchants),l(z.merchant_id),t("/",{replace:!0});return}localStorage.removeItem("pending_merchant_name"),!G.merchant_id||G.merchants.length===0?t("/onboarding",{replace:!0}):t("/",{replace:!0})}catch(U){const Y=Sf(U);if(h==="signup"&&m9e(Y)){p("login");const W="Account already exists. Sign in with this email.";R(W),T(!0),t("/login",{replace:!0,state:{email:m,focusPassword:!0,notice:W}});return}E(Y)}finally{_(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.06fr_0.94fr]",children:[i.jsx("button",{type:"button",onClick:D,className:"absolute right-4 top-4 z-20 flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white sm:right-6 sm:top-6","aria-label":"Toggle theme",title:"Toggle theme",children:d?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})}),i.jsxs("section",{className:"flex min-h-[44vh] flex-col border-b border-slate-200 px-6 py-8 dark:border-white/6 sm:px-10 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${c}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-11 w-auto dark:hidden sm:h-12"}),i.jsx("img",{src:`${c}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-11 w-auto dark:block sm:h-12"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h2",{className:"max-w-[10ch] text-[clamp(4rem,7vw,6.2rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Manage routing, analytics, and audits from one dashboard."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.35rem]",children:"Sign in to manage gateway routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(gN,{children:"Gateway routing"}),i.jsx(gN,{children:"Merchant analytics"}),i.jsx(gN,{children:"Payment audit"})]})]})})]}),i.jsx("section",{className:"flex min-h-[56vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[520px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h3",{className:"text-[clamp(2.25rem,3.6vw,3.15rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:h==="login"?"Welcome back":"Create account"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:h==="login"?"Sign in to access your dashboard":"Create access for your Decision Engine dashboard"})]}),i.jsxs("div",{className:"mt-10",children:[i.jsxs("div",{className:"inline-flex rounded-full border border-slate-200 bg-white p-1 dark:border-[#27272a] dark:bg-[#121214]",children:[i.jsx(fB,{active:h==="login",onClick:()=>L("login"),children:"Sign in"}),TP?i.jsx(fB,{active:h==="signup",onClick:()=>L("signup"),children:"Sign up"}):null]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:X,className:"space-y-5",children:[i.jsx(pN,{label:"Email",children:i.jsx(mN,{type:"email",value:m,onChange:J=>x(J.target.value),placeholder:"name@company.com",required:!0,icon:i.jsx(LW,{size:16})})}),h==="signup"?i.jsx(pN,{label:"Merchant name",footer:"This merchant will be available across routing, analytics, and audits.",children:i.jsx(mN,{type:"text",value:y,onChange:J=>w(J.target.value),placeholder:"e.g. Acme Corp",required:!0,icon:i.jsx(jh,{size:16})})}):null,i.jsx(pN,{label:"Password",footer:h==="login"?void 0:"Use at least 10 characters with uppercase, lowercase, number, and special character.",children:i.jsxs("div",{className:"relative",children:[i.jsx(mN,{type:j?"text":"password",value:v,onChange:J=>b(J.target.value),placeholder:"Enter your password",required:!0,icon:i.jsx(nA,{size:16}),inputRef:u,className:"pr-12"}),i.jsx("button",{type:"button",onClick:()=>k(J=>!J),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":j?"Hide password":"Show password",children:j?i.jsx(jf,{size:18}):i.jsx($j,{size:18})})]})}),h==="login"?i.jsx("div",{className:"-mt-1 flex justify-end",children:i.jsx(Yd,{to:"/forgot-password",state:{email:m},className:"text-sm font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-500 dark:hover:text-brand-100",children:"Forgot password?"})}):null,h==="signup"?i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Password policy: minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}):null,i.jsx(vt,{error:C}),P?i.jsx("div",{className:"rounded-lg border border-sky-500/30 bg-sky-50 px-4 py-3 text-sm text-sky-700 dark:border-sky-500/20 dark:bg-sky-500/8 dark:text-sky-300",children:P}):null,i.jsx("button",{type:"submit",disabled:S,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:S?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Authenticating"]}):i.jsxs(i.Fragment,{children:[h==="login"?"Enter dashboard":"Create account",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"By continuing you agree to access policy and audit logging for account activity."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})]})})]})]})}function fB({active:t,children:e,onClick:n}){return i.jsx("button",{type:"button",onClick:n,className:`rounded-full px-4 py-2 text-sm font-semibold transition-all duration-200 ${t?"bg-slate-950 text-white shadow-[0_8px_24px_-18px_rgba(15,23,42,0.45)] dark:bg-white dark:text-slate-950":"text-slate-500 hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white"}`,children:e})}function pN({label:t,children:e,footer:n}){return i.jsxs("label",{className:"block",children:[i.jsx(vn,{className:"mb-2 block text-slate-500 dark:text-[#8a94a7]",children:t}),e,n?i.jsx("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#7b8496]",children:n}):null]})}function mN({icon:t,className:e="",inputRef:n,...r}){return i.jsxs("div",{className:"relative",children:[t?i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:t}):null,i.jsx("input",{...r,ref:n,className:`h-14 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none ${t?"pl-12":""} ${e}`})]})}function gN({children:t}){return i.jsx("div",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm text-slate-700 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.1)] dark:border-[#27272a] dark:bg-[#121214] dark:text-[#c6d0e1] dark:shadow-none",children:t})}function xN({children:t}){return i.jsx("span",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 dark:border-[#2a2d35] dark:bg-[#111318] dark:text-[#d0d7e2]",children:t})}function g9e({label:t,children:e,footer:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("label",{className:"block text-xs font-semibold uppercase tracking-[0.24em] text-slate-500 dark:text-[#8d95a3]",children:t}),e,n?i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#78849a]",children:n}):null]})}function x9e(){const t=Hr(),{updateMerchant:e}=hr(),{setMerchantId:n}=$r(),r="/decision-engine/",[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null);async function d(f){f.preventDefault(),u(null),l(!0);try{const h=await aa("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:a})});e(h.token,h.merchant_id,h.merchants),n(h.merchant_id),t("/",{replace:!0})}catch(h){u(Sf(h))}finally{l(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(248,250,252,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_20%_22%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_74%_18%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.08fr_0.92fr]",children:[i.jsxs("section",{className:"flex min-h-[42vh] flex-col border-b border-slate-200 dark:border-white/6 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] px-6 py-8 sm:px-10 lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h1",{className:"max-w-[10ch] text-[clamp(3.8rem,6.8vw,6rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Set up your merchant before processing traffic."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.3rem]",children:"Create your merchant account, then configure routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(xN,{children:"Merchant account"}),i.jsx(xN,{children:"Routing controls"}),i.jsx(xN,{children:"Analytics ready"})]})]})})]}),i.jsx("section",{className:"flex min-h-[58vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[540px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h2",{className:"text-[clamp(2.15rem,3.6vw,3.05rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:"Create your merchant"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7]",children:"Set up the merchant account for your Decision Engine dashboard."})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:d,className:"space-y-6",children:[i.jsx(g9e,{label:"Merchant name",footer:"You can adjust rules, connectors, and analytics after the merchant is created.",children:i.jsxs("div",{className:"relative",children:[i.jsx(jh,{size:16,className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#798191]"}),i.jsx("input",{type:"text",required:!0,autoFocus:!0,value:a,onChange:f=>s(f.target.value),placeholder:"e.g. Acme Corp",className:"h-16 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-5 text-[15px] text-slate-900 outline-none transition-all placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500 leading-[22px]"})]})}),i.jsx(vt,{error:c}),i.jsx("button",{type:"submit",disabled:o,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:o?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Creating merchant"]}):i.jsxs(i.Fragment,{children:["Create merchant",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"Merchant access will be linked to your current session."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})})]})]})}function y9e({role:t}){const e=t==="admin"?"bg-violet-50 text-violet-700 dark:bg-violet-950/40 dark:text-violet-300":"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300";return i.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-[11px] font-semibold capitalize ${e} leading-4`,children:t})}function hB({text:t}){const[e,n]=g.useState(!1);async function r(){if(navigator.clipboard)try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsx("button",{onClick:r,className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-slate-500 hover:text-slate-600 dark:hover:text-slate-200 transition-colors",title:e?"Copied":"Copy","aria-label":e?"Copied":"Copy",children:e?i.jsx(gi,{size:13,className:"text-green-700"}):i.jsx(nf,{size:13})})}function v9e(){const[t,e]=g.useState([]),[n,r]=g.useState(!0),[a,s]=g.useState(null),[o,l]=g.useState(""),[c,u]=g.useState("member"),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(null),[v,b]=g.useState(!1);async function y(){r(!0),s(null);try{const j=await aa("/merchant/members");e(j)}catch(j){s(j instanceof Error?j.message:"Failed to load members")}finally{r(!1)}}g.useEffect(()=>{y()},[]);async function w(j){j.preventDefault(),p(null),x(null),f(!0);try{const k=await aa("/merchant/members/invite",{method:"POST",body:JSON.stringify({email:o,role:c})});x(k),l(""),y()}catch(k){p(Sf(k))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-3xl space-y-8 px-4 py-8",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Members"})}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-6 dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 mb-5",children:[i.jsx(E$,{size:18,className:"text-brand-600 dark:text-sky-400"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Invite member"})]}),i.jsxs("form",{onSubmit:w,className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{type:"email",required:!0,value:o,onChange:j=>l(j.target.value),placeholder:"colleague@example.com",className:"h-10 flex-1 rounded-xl border border-slate-200 bg-white px-3.5 text-sm text-slate-900 outline-none transition placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500"}),i.jsxs("select",{value:c,onChange:j=>u(j.target.value),className:"h-10 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-slate-200",children:[i.jsx("option",{value:"member",children:"Member"}),i.jsx("option",{value:"admin",children:"Admin"})]}),i.jsxs("button",{type:"submit",disabled:d,className:"inline-flex h-10 items-center gap-2 rounded-xl bg-brand-600 px-4 text-sm font-semibold text-white transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:[d?i.jsx(Su,{size:14,className:"animate-spin"}):i.jsx(E$,{size:14}),"Invite"]})]}),i.jsx(vt,{error:h})]}),m&&i.jsx("div",{className:`mt-4 rounded-xl border p-4 ${m.is_new_user?"border-amber-200 bg-amber-50 dark:border-amber-900/40 dark:bg-amber-950/20":"border-green-200 bg-green-50 dark:border-green-900/40 dark:bg-green-950/20"}`,children:m.is_new_user?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"text-sm font-semibold text-amber-800 dark:text-amber-300 mb-2",children:"New account created — share these credentials"}),i.jsxs("div",{className:"space-y-1.5 text-sm",children:[i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Email"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:m.email}),i.jsx(hB,{text:m.email})]}),i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Password"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:v?m.password:"••••••••••••••••"}),i.jsx("button",{onClick:()=>b(j=>!j),className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-amber-700 hover:text-amber-800 dark:text-amber-400 dark:hover:text-amber-200 transition-colors",title:v?"Hide password":"Show password","aria-label":v?"Hide password":"Show password",children:v?i.jsx($j,{size:13}):i.jsx(jf,{size:13})}),m.password&&i.jsx(hB,{text:m.password})]})]})]}):i.jsxs("p",{className:"text-sm text-green-800 dark:text-green-300",children:[i.jsx("span",{className:"font-semibold",children:m.email})," has been added to this merchant."]})})]}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 border-b border-slate-100 px-6 py-4 dark:border-[#1a1d25]",children:[i.jsx(Z3,{size:18,className:"text-slate-500"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Current members"}),!n&&i.jsxs("span",{className:"ml-auto text-xs text-slate-500",children:[t.length," member",t.length!==1?"s":""]})]}),n?i.jsx("div",{className:"flex items-center justify-center py-12 text-slate-500",children:i.jsx(Su,{size:20,className:"animate-spin"})}):a?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-red-600",children:a}):t.length===0?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-slate-500",children:"No members yet"}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1d25]",children:t.map(j=>i.jsxs("li",{className:"flex items-center gap-4 px-6 py-3.5",children:[i.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:j.email.slice(0,2).toUpperCase()}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",children:j.email}),i.jsx("p",{className:"truncate text-xs text-slate-500",children:j.user_id})]}),i.jsx(y9e,{role:j.role})]},j.user_id))})]})]})}function b9e({text:t}){const[e,n]=g.useState(!1);async function r(){try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsxs("button",{onClick:r,className:"inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2.5 py-1 text-xs font-medium text-slate-600 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-slate-300 dark:hover:text-white",title:e?"Copied":"Copy key",children:[e?i.jsx(gi,{size:12,className:"text-emerald-700"}):i.jsx(nf,{size:12}),e?"Copied":"Copy"]})}function w9e(){const{merchantId:t}=$r(),[e,n]=g.useState(""),[r,a]=g.useState(!1),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(null),[p,m]=g.useState(new Set),{data:x,mutate:v}=ct(t?`/api-key/list/${t}`:null,Dt);async function b(){if(t){a(!0),c(null),o(null);try{const j=await Fe("/api-key/create",{merchant_id:t,description:e.trim()||null});o(j),n(""),await v()}catch(j){c(j instanceof Error?j.message:"Failed to create API key")}finally{a(!1)}}}async function y(j){d(j),h(null);try{await aa(`/api-key/${j}`,{method:"DELETE"}),m(k=>new Set([...k,j])),(s==null?void 0:s.key_id)===j&&o(null),v()}catch(k){h(k instanceof Error?k.message:"Failed to revoke key")}finally{d(null)}}const w=(x==null?void 0:x.filter(j=>j.is_active&&!p.has(j.key_id)))??[];return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{children:i.jsx(Ba,{title:"API Keys",description:i.jsxs(i.Fragment,{children:["Create and manage API keys for programmatic access to the routing engine. Pass the key via the"," "," ",i.jsx("code",{className:"rounded bg-slate-100 px-1 py-0.5 text-xs font-mono dark:bg-[#1c1c24]",children:"x-api-key"})," "," header on all API requests."]})})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Qn,{size:15}),i.jsx("span",{className:"font-medium text-slate-800 dark:text-white",children:"Create API Key"})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{value:e,onChange:j=>n(j.target.value),onKeyDown:j=>j.key==="Enter"&&b(),placeholder:"Description (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(we,{onClick:b,disabled:r||!t,children:r?"Creating…":"Create API Key"})]}),i.jsx(vt,{error:l}),s&&i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-800/40 dark:bg-emerald-950/20",children:[i.jsx("p",{className:"mb-2 text-xs font-semibold text-emerald-700 dark:text-emerald-400",children:"API key created — copy it now. It will not be shown again."}),i.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-200 bg-white px-3 py-2 font-mono text-sm dark:border-emerald-800/40 dark:bg-[#0d1a12]",children:[i.jsx("span",{"data-testid":"api-key-value",className:"flex-1 break-all text-slate-800 dark:text-slate-200",children:s.api_key}),i.jsx(b9e,{text:s.api_key})]}),s.description&&i.jsxs("p",{className:"mt-2 text-xs text-emerald-700 dark:text-emerald-500",children:["Description: ",s.description]})]})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Y3,{size:15}),i.jsxs("span",{className:"font-medium text-slate-800 dark:text-white",children:["Active Keys",w.length>0&&` (${w.length})`]})]})}),i.jsxs(He,{className:"p-0",children:[i.jsx(vt,{error:f}),w.length===0?i.jsx("p",{className:"px-5 py-6 text-sm text-slate-500 dark:text-[#8a8a93]",children:"No active API keys. Create one above."}):i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs font-semibold uppercase tracking-wider text-slate-500 dark:bg-[#0a0a0f] dark:text-[#6d768a]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-5 py-3 text-left",children:"Key prefix"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Description"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Created"}),i.jsx("th",{className:"px-5 py-3"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:w.map(j=>i.jsxs("tr",{className:"dark:bg-[#0f0f16]",children:[i.jsxs("td",{className:"px-5 py-3 font-mono text-slate-800 dark:text-slate-200",children:[j.key_prefix,"…"]}),i.jsx("td",{className:"px-5 py-3 text-slate-600 dark:text-[#8a8a93]",children:j.description||i.jsx("span",{className:"italic text-slate-500",children:"—"})}),i.jsx("td",{className:"px-5 py-3 text-slate-500 dark:text-[#78849a]",children:new Date(j.created_at).toLocaleDateString()}),i.jsx("td",{className:"px-5 py-3 text-right",children:i.jsxs(we,{size:"sm",variant:"danger",disabled:u===j.key_id,onClick:()=>y(j.key_id),children:[i.jsx(wn,{size:12}),u===j.key_id?"Revoking…":"Revoke"]})})]},j.key_id))})]})]})]})]})}function k9e(){const[t]=vc(),e=Hr(),[n,r]=g.useState("verifying"),[a,s]=g.useState(null),[o,l]=g.useState(()=>Om()==="dark"),c=g.useRef(null),u="/decision-engine/";g.useEffect(()=>{const f=t.get("token");if(f!==c.current){if(c.current=f,!f){r("error"),s("Verification link is missing a token. Please use the link from your email.");return}aa(`/auth/verify-email?token=${encodeURIComponent(f)}`,{method:"GET"}).then(()=>{r("success"),setTimeout(()=>{e("/login",{replace:!0,state:{notice:"Email verified! You can now sign in."}})},2500)}).catch(h=>{s(Sf(h,"Verification failed")),r("error")})}},[e,t]);function d(){const f=o?"light":"dark";l(f==="dark"),Uy(f)}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${u}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${u}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:d,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsxs("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:[n==="verifying"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-brand-500/10",children:i.jsx(Su,{size:28,className:"animate-spin text-brand-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verifying your email"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Hang on while we confirm your address…"})]})]}),n==="success"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(TW,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Email verified"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Your account is confirmed. Redirecting you to sign in…"})]}),i.jsx("div",{className:"pt-1",children:i.jsx("div",{className:"mx-auto h-1 w-24 overflow-hidden rounded-full bg-slate-100 dark:bg-white/8",children:i.jsx("div",{className:"h-full animate-[progress_2.5s_linear_forwards] rounded-full bg-emerald-500"})})})]}),n==="error"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Ij,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verification failed"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:a??"The link may have expired or already been used."})]}),i.jsx("div",{className:"pt-2",children:i.jsx("button",{onClick:()=>e("/login",{replace:!0}),className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})})]})]})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function j9e(){var x;const t="/decision-engine/",n=((x=wl().state)==null?void 0:x.email)??"",[r,a]=g.useState(()=>Om()==="dark"),[s,o]=g.useState(n),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(null);function p(){const v=r?"light":"dark";a(v==="dark"),Uy(v)}async function m(v){v.preventDefault(),d(null),c(!0);try{const b=await aa("/auth/forgot-password",{method:"POST",body:JSON.stringify({email:s})});h(b.message??"If an account exists for that email, a password reset link has been sent.")}catch(b){d(Sf(b))}finally{c(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${t}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${t}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:p,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:r?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsx("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:f?i.jsxs("div",{className:"space-y-6 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(TW,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Check your inbox"}),i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:f})]}),i.jsx(Yd,{to:"/login",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Forgot your password?"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:"Enter the email tied to your account and we’ll send you a link to reset your password."})]}),i.jsxs("form",{onSubmit:m,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Email"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(LW,{size:16})}),i.jsx("input",{type:"email",value:s,onChange:v=>o(v.target.value),placeholder:"name@company.com",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx(vt,{error:u}),i.jsx("button",{type:"submit",disabled:l,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:l?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Sending link"]}):i.jsxs(i.Fragment,{children:["Send reset link",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsxs(Yd,{to:"/login",className:"inline-flex items-center gap-1.5 text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:[i.jsx(Mj,{size:15}),"Back to sign in"]})})]})})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function S9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function _9e(){const t=Hr(),[e]=vc(),n=e.get("token"),r="/decision-engine/",[a,s]=g.useState(()=>Om()==="dark"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null);function v(){const j=a?"light":"dark";s(j==="dark"),Uy(j)}async function b(j){j.preventDefault(),x(null);const k=S9e(o);if(k){x(k);return}if(o!==c){x("Passwords do not match.");return}p(!0);try{await aa("/auth/reset-password",{method:"POST",body:JSON.stringify({token:n,new_password:o})}),t("/login",{replace:!0,state:{notice:"Password reset! Sign in with your new password."}})}catch(S){x(Sf(S))}finally{p(!1)}}const y=i.jsx("button",{type:"button",onClick:v,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:a?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})}),w=j=>i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),y]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:j}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]});return w(n?i.jsxs("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Set a new password"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:"Choose a strong password you don’t use anywhere else."})]}),i.jsxs("form",{onSubmit:b,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"New password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(nA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:o,onChange:j=>l(j.target.value),placeholder:"Enter new password",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-12 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"}),i.jsx("button",{type:"button",onClick:()=>f(j=>!j),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":d?"Hide password":"Show password",children:d?i.jsx(jf,{size:18}):i.jsx($j,{size:18})})]})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Confirm password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(nA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:c,onChange:j=>u(j.target.value),placeholder:"Re-enter new password",required:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}),i.jsx(vt,{error:m}),i.jsx("button",{type:"submit",disabled:h,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:h?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Resetting"]}):i.jsxs(i.Fragment,{children:["Reset password",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsx(Yd,{to:"/login",className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:"Back to sign in"})})]}):i.jsx("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Ij,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Invalid reset link"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"This link is missing a token. Request a new password reset link to continue."})]}),i.jsx(Yd,{to:"/forgot-password",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Request a new link"})]})}))}function N9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function C9e(){const[t,e]=g.useState(""),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(!1);async function v(b){b.preventDefault(),p(null),x(!1);const y=N9e(n);if(y){p(y);return}if(n!==a){p("New passwords do not match.");return}if(n===t){p("New password must differ from the current one.");return}f(!0);try{await aa("/auth/change-password",{method:"POST",body:JSON.stringify({current_password:t,new_password:n})}),x(!0),e(""),r(""),s("")}catch(w){p(Sf(w))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-lg px-4 py-10",children:[i.jsxs("div",{className:"mb-8 flex items-center gap-3",children:[i.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-brand-500/10",children:i.jsx(K3,{size:20,className:"text-brand-600"})}),i.jsx("div",{children:i.jsx(Ba,{title:"Account",description:"Manage your account security"})})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:"Change password"}),i.jsx(He,{children:i.jsxs("form",{onSubmit:v,className:"space-y-5",children:[i.jsx(yN,{label:"Current password",value:t,onChange:e,show:o,onToggleShow:()=>l(b=>!b)}),i.jsx(yN,{label:"New password",value:n,onChange:r,show:c,onToggleShow:()=>u(b=>!b),footer:"Minimum 10 characters with uppercase, lowercase, number, and special character."}),i.jsx(yN,{label:"Confirm new password",value:a,onChange:s,show:c,onToggleShow:()=>u(b=>!b)}),i.jsx(vt,{error:h}),m&&i.jsx("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-50 px-4 py-3 text-sm text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/8 dark:text-emerald-300",children:"Password updated successfully."}),i.jsx(we,{type:"submit",disabled:d,className:"w-full",children:d?"Updating…":"Update password"})]})})]})]})}function yN({label:t,value:e,onChange:n,show:r,onToggleShow:a,footer:s}){return i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-1.5 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:t}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:r?"text":"password",value:e,onChange:o=>n(o.target.value),required:!0,className:"h-12 w-full rounded-xl border border-slate-200 bg-white px-4 pr-11 text-sm text-slate-950 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white"}),i.jsx("button",{type:"button",onClick:a,className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200","aria-label":r?"Hide password":"Show password",children:r?i.jsx(jf,{size:17}):i.jsx($j,{size:17})})]}),s&&i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#7b8496]",children:s})]})}let vN=null;function E9e(){const t=hr(s=>s.setAuth),e=$r(s=>s.setMerchantId),n=Hr(),[r,a]=g.useState(()=>new URLSearchParams(window.location.search).has("code"));return g.useEffect(()=>{const s=new URLSearchParams(window.location.search).get("code");if(!s){a(!1);return}const o=()=>{const c=new URLSearchParams(window.location.search);c.delete("code");const u=c.toString(),d=window.location.pathname+(u?`?${u}`:"");window.history.replaceState(window.history.state,"",d)};vN||(vN=Fe("/auth/admin/merchant-token/exchange",{code:s}).catch(()=>null));let l=!0;return vN.then(c=>{if(l)try{if(c){const d=c.merchant_id??"";t(c.token,{userId:c.user_id??"",email:c.email??"",merchantId:d,role:c.role??"admin",isRedirectSession:!0}),d&&(e(d),uEe(d))}const u=c?oH():null;u&&n(u,{replace:!0})}finally{o(),a(!1)}}),()=>{l=!1}},[t,e,n]),r?i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-sm text-slate-600 dark:bg-[#030507] dark:text-[#c7cfdb]",children:"Signing you in…"}):i.jsxs(wee,{children:[i.jsx(on,{path:"login",element:i.jsx(dB,{})}),TP?i.jsx(on,{path:"signup",element:i.jsx(dB,{})}):null,i.jsx(on,{path:"verify-email",element:i.jsx(k9e,{})}),i.jsx(on,{path:"forgot-password",element:i.jsx(j9e,{})}),i.jsx(on,{path:"reset-password",element:i.jsx(_9e,{})}),i.jsxs(on,{element:i.jsx(h9e,{}),children:[i.jsx(on,{path:"onboarding",element:i.jsx(x9e,{})}),i.jsxs(on,{element:i.jsx(c9e,{}),children:[i.jsx(on,{index:!0,element:i.jsx(B$e,{})}),i.jsx(on,{path:"routing",element:i.jsx(xLe,{})}),i.jsx(on,{path:"routing/sr",element:i.jsx(m6e,{})}),i.jsx(on,{path:"routing/rules",element:i.jsx(aOe,{})}),i.jsx(on,{path:"routing/rules/new",element:i.jsx(T6,{})}),i.jsx(on,{path:"routing/rules/:id/edit",element:i.jsx(T6,{})}),i.jsx(on,{path:"routing/volume",element:i.jsx(j6e,{})}),i.jsx(on,{path:"routing/volume/new",element:i.jsx(K6,{})}),i.jsx(on,{path:"routing/volume/:id/edit",element:i.jsx(K6,{})}),i.jsx(on,{path:"routing/debit",element:i.jsx(zAe,{})}),i.jsx(on,{path:"routing/volume-contracts",element:i.jsx(uOe,{})}),i.jsx(on,{path:"routing/cost",element:i.jsx($1,{to:"/routing/sr?tab=cost",replace:!0})}),i.jsx(on,{path:"routing/ab-testing",element:i.jsx(V6e,{})}),i.jsx(on,{path:"decisions",element:i.jsx(MEe,{})}),PP?i.jsx(on,{path:"decisions/simulator",element:i.jsx(LAe,{})}):null,i.jsx(on,{path:"analytics",element:i.jsx(CCe,{})}),i.jsx(on,{path:"audit",element:i.jsx(dLe,{})}),i.jsx(on,{path:"events",element:i.jsx(mLe,{})}),i.jsx(on,{path:"members",element:i.jsx(v9e,{})}),i.jsx(on,{path:"api-keys",element:i.jsx(w9e,{})}),i.jsx(on,{path:"account",element:i.jsx(C9e,{})}),i.jsx(on,{path:"*",element:i.jsx($1,{to:".",replace:!0})})]})]})]})}class A9e extends g.Component{constructor(){super(...arguments);dR(this,"state",{error:null,errorInfo:null})}static getDerivedStateFromError(n){return{error:n,errorInfo:null}}componentDidCatch(n,r){console.log(` -`+"!".repeat(80)),console.log("[ERROR BOUNDARY] Component Error Caught"),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Error Message:",n.message),console.log("Error Stack:",n.stack),console.log("Component Stack:",r.componentStack),console.log("!".repeat(80)+` -`),this.setState({errorInfo:r})}render(){return this.state.error?i.jsxs("div",{style:{padding:32,fontFamily:"monospace",color:"red"},children:[i.jsx("h2",{children:"Dashboard Error"}),i.jsx("pre",{children:this.state.error.message}),i.jsx("pre",{children:this.state.error.stack}),this.state.errorInfo&&i.jsxs("pre",{style:{marginTop:16,color:"darkred"},children:["Component Stack:",this.state.errorInfo.componentStack]})]}):this.props.children}}const O9e="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/";MP(),console.log(` -`+"=".repeat(80)),console.log("[APP STARTUP] Dashboard initializing..."),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Environment: production"),console.log("Base URL: /decision-engine/"),console.log("=".repeat(80)+` -`),window.onerror=(t,e,n,r,a)=>{console.log(` -`+"!".repeat(80)),console.log("[WINDOW ERROR]"),console.log("Message:",t),console.log("Source:",e),console.log("Line:",n,"Column:",r),a&&(console.log("Error:",a.message),console.log("Stack:",a.stack)),console.log("!".repeat(80)+` -`)},window.onunhandledrejection=t=>{console.log(` -`+"!".repeat(80)),console.log("[UNHANDLED PROMISE REJECTION]"),console.log("Reason:",t.reason),t.reason instanceof Error&&console.log("Stack:",t.reason.stack),console.log("!".repeat(80)+` -`)},bN.createRoot(document.getElementById("root")).render(i.jsx(H.StrictMode,{children:i.jsx(A9e,{children:i.jsx(Aee,{basename:O9e,children:i.jsx(E9e,{})})})})); diff --git a/website/dist/decision-engine/assets/index-BNDMqUsk.js b/website/dist/decision-engine/assets/index-BNDMqUsk.js new file mode 100644 index 00000000..99bd599f --- /dev/null +++ b/website/dist/decision-engine/assets/index-BNDMqUsk.js @@ -0,0 +1,641 @@ +var GJ=Object.defineProperty;var qJ=(t,e,n)=>e in t?GJ(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var VM=(t,e,n)=>qJ(t,typeof e!="symbol"?e+"":e,n);function KJ(t,e){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var vv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Y9={exports:{}},$k={},X9={exports:{}},qt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var by=Symbol.for("react.element"),YJ=Symbol.for("react.portal"),XJ=Symbol.for("react.fragment"),JJ=Symbol.for("react.strict_mode"),ZJ=Symbol.for("react.profiler"),QJ=Symbol.for("react.provider"),eZ=Symbol.for("react.context"),tZ=Symbol.for("react.forward_ref"),nZ=Symbol.for("react.suspense"),rZ=Symbol.for("react.memo"),aZ=Symbol.for("react.lazy"),WM=Symbol.iterator;function sZ(t){return t===null||typeof t!="object"?null:(t=WM&&t[WM]||t["@@iterator"],typeof t=="function"?t:null)}var J9={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Z9=Object.assign,Q9={};function dm(t,e,n){this.props=t,this.context=e,this.refs=Q9,this.updater=n||J9}dm.prototype.isReactComponent={};dm.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};dm.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function eB(){}eB.prototype=dm.prototype;function oO(t,e,n){this.props=t,this.context=e,this.refs=Q9,this.updater=n||J9}var lO=oO.prototype=new eB;lO.constructor=oO;Z9(lO,dm.prototype);lO.isPureReactComponent=!0;var HM=Array.isArray,tB=Object.prototype.hasOwnProperty,cO={current:null},nB={key:!0,ref:!0,__self:!0,__source:!0};function rB(t,e,n){var r,a={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)tB.call(e,r)&&!nB.hasOwnProperty(r)&&(a[r]=e[r]);var l=arguments.length-2;if(l===1)a.children=n;else if(1>>1,$=V[G];if(0>>1;Ga(z,H))U<$&&0>a(ee,z)?(V[G]=ee,V[U]=H,G=U):(V[G]=z,V[R]=H,G=R);else if(U<$&&0>a(ee,H))V[G]=ee,V[U]=H,G=U;else break e}}return Y}function a(V,Y){var H=V.sortIndex-Y.sortIndex;return H!==0?H:V.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,m=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(V){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=V)r(u),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=n(u)}}function j(V){if(x=!1,w(V),!m)if(n(c)!==null)m=!0,X(k);else{var Y=n(u);Y!==null&&Q(j,Y.startTime-V)}}function k(V,Y){m=!1,x&&(x=!1,b(N),N=-1),p=!0;var H=h;try{for(w(Y),f=n(c);f!==null&&(!(f.expirationTime>Y)||V&&!M());){var G=f.callback;if(typeof G=="function"){f.callback=null,h=f.priorityLevel;var $=G(f.expirationTime<=Y);Y=t.unstable_now(),typeof $=="function"?f.callback=$:f===n(c)&&r(c),w(Y)}else r(c);f=n(c)}if(f!==null)var F=!0;else{var R=n(u);R!==null&&Q(j,R.startTime-Y),F=!1}return F}finally{f=null,h=H,p=!1}}var _=!1,S=null,N=-1,E=5,P=-1;function M(){return!(t.unstable_now()-PV||125G?(V.sortIndex=H,e(u,V),n(c)===null&&V===n(u)&&(x?(b(N),N=-1):x=!0,Q(j,H-G))):(V.sortIndex=$,e(c,V),m||p||(m=!0,X(k))),V},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(V){var Y=h;return function(){var H=h;h=Y;try{return V.apply(this,arguments)}finally{h=H}}}})(lB);oB.exports=lB;var gZ=oB.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var xZ=g,mi=gZ;function $e(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$N=Object.prototype.hasOwnProperty,yZ=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,qM={},KM={};function vZ(t){return $N.call(KM,t)?!0:$N.call(qM,t)?!1:yZ.test(t)?KM[t]=!0:(qM[t]=!0,!1)}function bZ(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function wZ(t,e,n,r){if(e===null||typeof e>"u"||bZ(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function bs(t,e,n,r,a,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var za={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){za[t]=new bs(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];za[e]=new bs(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){za[t]=new bs(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){za[t]=new bs(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){za[t]=new bs(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){za[t]=new bs(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){za[t]=new bs(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){za[t]=new bs(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){za[t]=new bs(t,5,!1,t.toLowerCase(),null,!1,!1)});var dO=/[\-:]([a-z])/g;function fO(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(dO,fO);za[e]=new bs(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){za[t]=new bs(t,1,!1,t.toLowerCase(),null,!1,!1)});za.xlinkHref=new bs("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){za[t]=new bs(t,1,!1,t.toLowerCase(),null,!0,!0)});function hO(t,e,n,r){var a=za.hasOwnProperty(e)?za[e]:null;(a!==null?a.type!==0:r||!(2l||a[o]!==s[l]){var c=` +`+a[o].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=o&&0<=l);break}}}finally{$2=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?zg(t):""}function kZ(t){switch(t.tag){case 5:return zg(t.type);case 16:return zg("Lazy");case 13:return zg("Suspense");case 19:return zg("SuspenseList");case 0:case 2:case 15:return t=L2(t.type,!1),t;case 11:return t=L2(t.type.render,!1),t;case 1:return t=L2(t.type,!0),t;default:return""}}function zN(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case gh:return"Fragment";case mh:return"Portal";case LN:return"Profiler";case pO:return"StrictMode";case FN:return"Suspense";case BN:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case dB:return(t.displayName||"Context")+".Consumer";case uB:return(t._context.displayName||"Context")+".Provider";case mO:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case gO:return e=t.displayName||null,e!==null?e:zN(t.type)||"Memo";case Fc:e=t._payload,t=t._init;try{return zN(t(e))}catch{}}return null}function jZ(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return zN(e);case 8:return e===pO?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Nu(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function hB(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function SZ(t){var e=hB(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function kv(t){t._valueTracker||(t._valueTracker=SZ(t))}function pB(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=hB(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function k1(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function UN(t,e){var n=e.checked;return vr({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function XM(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=Nu(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function mB(t,e){e=e.checked,e!=null&&hO(t,"checked",e,!1)}function VN(t,e){mB(t,e);var n=Nu(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?WN(t,e.type,n):e.hasOwnProperty("defaultValue")&&WN(t,e.type,Nu(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function JM(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function WN(t,e,n){(e!=="number"||k1(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var Ug=Array.isArray;function Fh(t,e,n,r){if(t=t.options,e){e={};for(var a=0;a"+e.valueOf().toString()+"",e=jv.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Ux(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var ux={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},_Z=["Webkit","ms","Moz","O"];Object.keys(ux).forEach(function(t){_Z.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),ux[e]=ux[t]})});function vB(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||ux.hasOwnProperty(t)&&ux[t]?(""+e).trim():e+"px"}function bB(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=vB(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,a):t[n]=a}}var NZ=vr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function qN(t,e){if(e){if(NZ[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error($e(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error($e(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error($e(61))}if(e.style!=null&&typeof e.style!="object")throw Error($e(62))}}function KN(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var YN=null;function xO(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var XN=null,Bh=null,zh=null;function eR(t){if(t=jy(t)){if(typeof XN!="function")throw Error($e(280));var e=t.stateNode;e&&(e=Uk(e),XN(t.stateNode,t.type,e))}}function wB(t){Bh?zh?zh.push(t):zh=[t]:Bh=t}function kB(){if(Bh){var t=Bh,e=zh;if(zh=Bh=null,eR(t),e)for(t=0;t>>=0,t===0?32:31-($Z(t)/LZ|0)|0}var Sv=64,_v=4194304;function Vg(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function N1(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,a=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~a;l!==0?r=Vg(l):(s&=o,s!==0&&(r=Vg(s)))}else o=n&~a,o!==0?r=Vg(o):s!==0&&(r=Vg(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&a)&&(a=r&-r,s=e&-e,a>=s||a===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function wy(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-No(e),t[e]=n}function UZ(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=fx),cR=" ",uR=!1;function UB(t,e){switch(t){case"keyup":return gQ.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function VB(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var xh=!1;function yQ(t,e){switch(t){case"compositionend":return VB(e);case"keypress":return e.which!==32?null:(uR=!0,cR);case"textInput":return t=e.data,t===cR&&uR?null:t;default:return null}}function vQ(t,e){if(xh)return t==="compositionend"||!_O&&UB(t,e)?(t=BB(),Yb=kO=Zc=null,xh=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pR(n)}}function qB(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?qB(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function KB(){for(var t=window,e=k1();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=k1(t.document)}return e}function NO(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function EQ(t){var e=KB(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&qB(n.ownerDocument.documentElement,n)){if(r!==null&&NO(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var a=n.textContent.length,s=Math.min(r.start,a);r=r.end===void 0?s:Math.min(r.end,a),!t.extend&&s>r&&(a=r,r=s,s=a),a=mR(n,s);var o=mR(n,r);a&&o&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(a.node,a.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,yh=null,nC=null,px=null,rC=!1;function gR(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;rC||yh==null||yh!==k1(r)||(r=yh,"selectionStart"in r&&NO(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),px&&Kx(px,r)||(px=r,r=A1(nC,"onSelect"),0wh||(t.current=cC[wh],cC[wh]=null,wh--)}function Zn(t,e){wh++,cC[wh]=t.current,t.current=e}var Cu={},ns=Vu(Cu),Vs=Vu(!1),Yd=Cu;function fp(t,e){var n=t.type.contextTypes;if(!n)return Cu;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var a={},s;for(s in n)a[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=a),a}function Ws(t){return t=t.childContextTypes,t!=null}function T1(){ir(Vs),ir(ns)}function jR(t,e,n){if(ns.current!==Cu)throw Error($e(168));Zn(ns,e),Zn(Vs,n)}function rz(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in e))throw Error($e(108,jZ(t)||"Unknown",a));return vr({},n,r)}function P1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Cu,Yd=ns.current,Zn(ns,t),Zn(Vs,Vs.current),!0}function SR(t,e,n){var r=t.stateNode;if(!r)throw Error($e(169));n?(t=rz(t,e,Yd),r.__reactInternalMemoizedMergedChildContext=t,ir(Vs),ir(ns),Zn(ns,t)):ir(Vs),Zn(Vs,n)}var ql=null,Vk=!1,Z2=!1;function az(t){ql===null?ql=[t]:ql.push(t)}function BQ(t){Vk=!0,az(t)}function Wu(){if(!Z2&&ql!==null){Z2=!0;var t=0,e=Nn;try{var n=ql;for(Nn=1;t>=o,a-=o,Xl=1<<32-No(e)+a|n<N?(E=S,S=null):E=S.sibling;var P=h(b,S,w[N],j);if(P===null){S===null&&(S=E);break}t&&S&&P.alternate===null&&e(b,S),v=s(P,v,N),_===null?k=P:_.sibling=P,_=P,S=E}if(N===w.length)return n(b,S),fr&&dd(b,N),k;if(S===null){for(;NN?(E=S,S=null):E=S.sibling;var M=h(b,S,P.value,j);if(M===null){S===null&&(S=E);break}t&&S&&M.alternate===null&&e(b,S),v=s(M,v,N),_===null?k=M:_.sibling=M,_=M,S=E}if(P.done)return n(b,S),fr&&dd(b,N),k;if(S===null){for(;!P.done;N++,P=w.next())P=f(b,P.value,j),P!==null&&(v=s(P,v,N),_===null?k=P:_.sibling=P,_=P);return fr&&dd(b,N),k}for(S=r(b,S);!P.done;N++,P=w.next())P=p(S,b,N,P.value,j),P!==null&&(t&&P.alternate!==null&&S.delete(P.key===null?N:P.key),v=s(P,v,N),_===null?k=P:_.sibling=P,_=P);return t&&S.forEach(function(A){return e(b,A)}),fr&&dd(b,N),k}function y(b,v,w,j){if(typeof w=="object"&&w!==null&&w.type===gh&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case wv:e:{for(var k=w.key,_=v;_!==null;){if(_.key===k){if(k=w.type,k===gh){if(_.tag===7){n(b,_.sibling),v=a(_,w.props.children),v.return=b,b=v;break e}}else if(_.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Fc&&CR(k)===_.type){n(b,_.sibling),v=a(_,w.props),v.ref=lg(b,_,w),v.return=b,b=v;break e}n(b,_);break}else e(b,_);_=_.sibling}w.type===gh?(v=Fd(w.props.children,b.mode,j,w.key),v.return=b,b=v):(j=r1(w.type,w.key,w.props,null,b.mode,j),j.ref=lg(b,v,w),j.return=b,b=j)}return o(b);case mh:e:{for(_=w.key;v!==null;){if(v.key===_)if(v.tag===4&&v.stateNode.containerInfo===w.containerInfo&&v.stateNode.implementation===w.implementation){n(b,v.sibling),v=a(v,w.children||[]),v.return=b,b=v;break e}else{n(b,v);break}else e(b,v);v=v.sibling}v=iS(w,b.mode,j),v.return=b,b=v}return o(b);case Fc:return _=w._init,y(b,v,_(w._payload),j)}if(Ug(w))return m(b,v,w,j);if(rg(w))return x(b,v,w,j);Pv(b,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,v!==null&&v.tag===6?(n(b,v.sibling),v=a(v,w),v.return=b,b=v):(n(b,v),v=sS(w,b.mode,j),v.return=b,b=v),o(b)):n(b,v)}return y}var pp=lz(!0),cz=lz(!1),D1=Vu(null),I1=null,Sh=null,OO=null;function TO(){OO=Sh=I1=null}function PO(t){var e=D1.current;ir(D1),t._currentValue=e}function fC(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Vh(t,e){I1=t,OO=Sh=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&($s=!0),t.firstContext=null)}function qi(t){var e=t._currentValue;if(OO!==t)if(t={context:t,memoizedValue:e,next:null},Sh===null){if(I1===null)throw Error($e(308));Sh=t,I1.dependencies={lanes:0,firstContext:t}}else Sh=Sh.next=t;return e}var kd=null;function MO(t){kd===null?kd=[t]:kd.push(t)}function uz(t,e,n,r){var a=e.interleaved;return a===null?(n.next=n,MO(e)):(n.next=a.next,a.next=n),e.interleaved=n,dc(t,r)}function dc(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Bc=!1;function RO(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function dz(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function rc(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function mu(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,cn&2){var a=r.pending;return a===null?e.next=e:(e.next=a.next,a.next=e),r.pending=e,dc(t,n)}return a=r.interleaved,a===null?(e.next=e,MO(r)):(e.next=a.next,a.next=e),r.interleaved=e,dc(t,n)}function Jb(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,vO(t,n)}}function ER(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?a=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?a=s=e:s=s.next=e}else a=s=e;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function $1(t,e,n,r){var a=t.updateQueue;Bc=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?s=u:o.next=u,o=c;var d=t.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(s!==null){var f=a.baseState;o=0,d=u=c=null,l=s;do{var h=l.lane,p=l.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,x=l;switch(h=e,p=n,x.tag){case 1:if(m=x.payload,typeof m=="function"){f=m.call(p,f,h);break e}f=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=x.payload,h=typeof m=="function"?m.call(p,f,h):m,h==null)break e;f=vr({},f,h);break e;case 2:Bc=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,h=a.effects,h===null?a.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=p,c=f):d=d.next=p,o|=h;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;h=l,l=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);if(d===null&&(c=f),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,e=a.shared.interleaved,e!==null){a=e;do o|=a.lane,a=a.next;while(a!==e)}else s===null&&(a.shared.lanes=0);Zd|=o,t.lanes=o,t.memoizedState=f}}function AR(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=eS.transition;eS.transition={};try{t(!1),e()}finally{Nn=n,eS.transition=r}}function Ez(){return Ki().memoizedState}function WQ(t,e,n){var r=xu(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Az(t))Oz(e,n);else if(n=uz(t,e,n,r),n!==null){var a=gs();Co(n,t,r,a),Tz(n,e,r)}}function HQ(t,e,n){var r=xu(t),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Az(t))Oz(e,a);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(a.hasEagerState=!0,a.eagerState=l,Eo(l,o)){var c=e.interleaved;c===null?(a.next=a,MO(e)):(a.next=c.next,c.next=a),e.interleaved=a;return}}catch{}finally{}n=uz(t,e,a,r),n!==null&&(a=gs(),Co(n,t,r,a),Tz(n,e,r))}}function Az(t){var e=t.alternate;return t===yr||e!==null&&e===yr}function Oz(t,e){mx=F1=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Tz(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,vO(t,n)}}var B1={readContext:qi,useCallback:Wa,useContext:Wa,useEffect:Wa,useImperativeHandle:Wa,useInsertionEffect:Wa,useLayoutEffect:Wa,useMemo:Wa,useReducer:Wa,useRef:Wa,useState:Wa,useDebugValue:Wa,useDeferredValue:Wa,useTransition:Wa,useMutableSource:Wa,useSyncExternalStore:Wa,useId:Wa,unstable_isNewReconciler:!1},GQ={readContext:qi,useCallback:function(t,e){return Ko().memoizedState=[t,e===void 0?null:e],t},useContext:qi,useEffect:TR,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,Qb(4194308,4,jz.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Qb(4194308,4,t,e)},useInsertionEffect:function(t,e){return Qb(4,2,t,e)},useMemo:function(t,e){var n=Ko();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Ko();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=WQ.bind(null,yr,t),[r.memoizedState,t]},useRef:function(t){var e=Ko();return t={current:t},e.memoizedState=t},useState:OR,useDebugValue:UO,useDeferredValue:function(t){return Ko().memoizedState=t},useTransition:function(){var t=OR(!1),e=t[0];return t=VQ.bind(null,t[1]),Ko().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=yr,a=Ko();if(fr){if(n===void 0)throw Error($e(407));n=n()}else{if(n=e(),ja===null)throw Error($e(349));Jd&30||mz(r,e,n)}a.memoizedState=n;var s={value:n,getSnapshot:e};return a.queue=s,TR(xz.bind(null,r,s,t),[t]),r.flags|=2048,n0(9,gz.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=Ko(),e=ja.identifierPrefix;if(fr){var n=Jl,r=Xl;n=(r&~(1<<32-No(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=e0++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[Zo]=e,t[Jx]=r,zz(t,e,!1,!1),e.stateNode=t;e:{switch(o=KN(n,r),n){case"dialog":nr("cancel",t),nr("close",t),a=r;break;case"iframe":case"object":case"embed":nr("load",t),a=r;break;case"video":case"audio":for(a=0;axp&&(e.flags|=128,r=!0,cg(s,!1),e.lanes=4194304)}else{if(!r)if(t=L1(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),cg(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!fr)return Ha(e),null}else 2*Dr()-s.renderingStartTime>xp&&n!==1073741824&&(e.flags|=128,r=!0,cg(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Dr(),e.sibling=null,n=gr.current,Zn(gr,r?n&1|2:n&1),e):(Ha(e),null);case 22:case 23:return KO(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ii&1073741824&&(Ha(e),e.subtreeFlags&6&&(e.flags|=8192)):Ha(e),null;case 24:return null;case 25:return null}throw Error($e(156,e.tag))}function eee(t,e){switch(EO(e),e.tag){case 1:return Ws(e.type)&&T1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return mp(),ir(Vs),ir(ns),$O(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return IO(e),null;case 13:if(ir(gr),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error($e(340));hp()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ir(gr),null;case 4:return mp(),null;case 10:return PO(e.type._context),null;case 22:case 23:return KO(),null;case 24:return null;default:return null}}var Rv=!1,Ya=!1,tee=typeof WeakSet=="function"?WeakSet:Set,ot=null;function _h(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){_r(t,e,r)}else n.current=null}function wC(t,e,n){try{n()}catch(r){_r(t,e,r)}}var UR=!1;function nee(t,e){if(aC=C1,t=KB(),NO(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=t,h=null;t:for(;;){for(var p;f!==n||a!==0&&f.nodeType!==3||(l=o+a),f!==s||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===t)break t;if(h===n&&++u===a&&(l=o),h===s&&++d===r&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(sC={focusedElem:t,selectionRange:n},C1=!1,ot=e;ot!==null;)if(e=ot,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,ot=t;else for(;ot!==null;){e=ot;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,y=m.memoizedState,b=e.stateNode,v=b.getSnapshotBeforeUpdate(e.elementType===e.type?x:ho(e.type,x),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=e.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error($e(163))}}catch(j){_r(e,e.return,j)}if(t=e.sibling,t!==null){t.return=e.return,ot=t;break}ot=e.return}return m=UR,UR=!1,m}function gx(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&t)===t){var s=a.destroy;a.destroy=void 0,s!==void 0&&wC(e,n,s)}a=a.next}while(a!==r)}}function Gk(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function kC(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function Wz(t){var e=t.alternate;e!==null&&(t.alternate=null,Wz(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Zo],delete e[Jx],delete e[lC],delete e[LQ],delete e[FQ])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Hz(t){return t.tag===5||t.tag===3||t.tag===4}function VR(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Hz(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function jC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=O1));else if(r!==4&&(t=t.child,t!==null))for(jC(t,e,n),t=t.sibling;t!==null;)jC(t,e,n),t=t.sibling}function SC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(SC(t,e,n),t=t.sibling;t!==null;)SC(t,e,n),t=t.sibling}var Pa=null,po=!1;function Rc(t,e,n){for(n=n.child;n!==null;)Gz(t,e,n),n=n.sibling}function Gz(t,e,n){if(fl&&typeof fl.onCommitFiberUnmount=="function")try{fl.onCommitFiberUnmount(Lk,n)}catch{}switch(n.tag){case 5:Ya||_h(n,e);case 6:var r=Pa,a=po;Pa=null,Rc(t,e,n),Pa=r,po=a,Pa!==null&&(po?(t=Pa,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Pa.removeChild(n.stateNode));break;case 18:Pa!==null&&(po?(t=Pa,n=n.stateNode,t.nodeType===8?J2(t.parentNode,n):t.nodeType===1&&J2(t,n),Gx(t)):J2(Pa,n.stateNode));break;case 4:r=Pa,a=po,Pa=n.stateNode.containerInfo,po=!0,Rc(t,e,n),Pa=r,po=a;break;case 0:case 11:case 14:case 15:if(!Ya&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var s=a,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&wC(n,e,o),a=a.next}while(a!==r)}Rc(t,e,n);break;case 1:if(!Ya&&(_h(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){_r(n,e,l)}Rc(t,e,n);break;case 21:Rc(t,e,n);break;case 22:n.mode&1?(Ya=(r=Ya)||n.memoizedState!==null,Rc(t,e,n),Ya=r):Rc(t,e,n);break;default:Rc(t,e,n)}}function WR(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new tee),e.forEach(function(r){var a=dee.bind(null,t,r);n.has(r)||(n.add(r),r.then(a,a))})}}function oo(t,e){var n=e.deletions;if(n!==null)for(var r=0;ra&&(a=o),r&=~s}if(r=a,r=Dr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*aee(r/1960))-r,10t?16:t,Qc===null)var r=!1;else{if(t=Qc,Qc=null,V1=0,cn&6)throw Error($e(331));var a=cn;for(cn|=4,ot=t.current;ot!==null;){var s=ot,o=s.child;if(ot.flags&16){var l=s.deletions;if(l!==null){for(var c=0;cDr()-GO?Ld(t,0):HO|=n),Hs(t,e)}function e7(t,e){e===0&&(t.mode&1?(e=_v,_v<<=1,!(_v&130023424)&&(_v=4194304)):e=1);var n=gs();t=dc(t,e),t!==null&&(wy(t,e,n),Hs(t,n))}function uee(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),e7(t,n)}function dee(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,a=t.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=t.stateNode;break;default:throw Error($e(314))}r!==null&&r.delete(e),e7(t,n)}var t7;t7=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||Vs.current)$s=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return $s=!1,ZQ(t,e,n);$s=!!(t.flags&131072)}else $s=!1,fr&&e.flags&1048576&&sz(e,R1,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;e1(t,e),t=e.pendingProps;var a=fp(e,ns.current);Vh(e,n),a=FO(null,e,r,t,a,n);var s=BO();return e.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ws(r)?(s=!0,P1(e)):s=!1,e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,RO(e),a.updater=Hk,e.stateNode=a,a._reactInternals=e,pC(e,r,t,n),e=xC(null,e,r,!0,s,n)):(e.tag=0,fr&&s&&CO(e),ls(null,e,a,n),e=e.child),e;case 16:r=e.elementType;e:{switch(e1(t,e),t=e.pendingProps,a=r._init,r=a(r._payload),e.type=r,a=e.tag=hee(r),t=ho(r,t),a){case 0:e=gC(null,e,r,t,n);break e;case 1:e=FR(null,e,r,t,n);break e;case 11:e=$R(null,e,r,t,n);break e;case 14:e=LR(null,e,r,ho(r.type,t),n);break e}throw Error($e(306,r,""))}return e;case 0:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),gC(t,e,r,a,n);case 1:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),FR(t,e,r,a,n);case 3:e:{if(Lz(e),t===null)throw Error($e(387));r=e.pendingProps,s=e.memoizedState,a=s.element,dz(t,e),$1(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){a=gp(Error($e(423)),e),e=BR(t,e,r,n,a);break e}else if(r!==a){a=gp(Error($e(424)),e),e=BR(t,e,r,n,a);break e}else for(di=pu(e.stateNode.containerInfo.firstChild),pi=e,fr=!0,xo=null,n=cz(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(hp(),r===a){e=fc(t,e,n);break e}ls(t,e,r,n)}e=e.child}return e;case 5:return fz(e),t===null&&dC(e),r=e.type,a=e.pendingProps,s=t!==null?t.memoizedProps:null,o=a.children,iC(r,a)?o=null:s!==null&&iC(r,s)&&(e.flags|=32),$z(t,e),ls(t,e,o,n),e.child;case 6:return t===null&&dC(e),null;case 13:return Fz(t,e,n);case 4:return DO(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=pp(e,null,r,n):ls(t,e,r,n),e.child;case 11:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),$R(t,e,r,a,n);case 7:return ls(t,e,e.pendingProps,n),e.child;case 8:return ls(t,e,e.pendingProps.children,n),e.child;case 12:return ls(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,a=e.pendingProps,s=e.memoizedProps,o=a.value,Zn(D1,r._currentValue),r._currentValue=o,s!==null)if(Eo(s.value,o)){if(s.children===a.children&&!Vs.current){e=fc(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=rc(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),fC(s.return,n,e),l.lanes|=n;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error($e(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),fC(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ls(t,e,a.children,n),e=e.child}return e;case 9:return a=e.type,r=e.pendingProps.children,Vh(e,n),a=qi(a),r=r(a),e.flags|=1,ls(t,e,r,n),e.child;case 14:return r=e.type,a=ho(r,e.pendingProps),a=ho(r.type,a),LR(t,e,r,a,n);case 15:return Dz(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:ho(r,a),e1(t,e),e.tag=1,Ws(r)?(t=!0,P1(e)):t=!1,Vh(e,n),Pz(e,r,a),pC(e,r,a,n),xC(null,e,r,!0,t,n);case 19:return Bz(t,e,n);case 22:return Iz(t,e,n)}throw Error($e(156,e.tag))};function n7(t,e){return AB(t,e)}function fee(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $i(t,e,n,r){return new fee(t,e,n,r)}function XO(t){return t=t.prototype,!(!t||!t.isReactComponent)}function hee(t){if(typeof t=="function")return XO(t)?1:0;if(t!=null){if(t=t.$$typeof,t===mO)return 11;if(t===gO)return 14}return 2}function yu(t,e){var n=t.alternate;return n===null?(n=$i(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function r1(t,e,n,r,a,s){var o=2;if(r=t,typeof t=="function")XO(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case gh:return Fd(n.children,a,s,e);case pO:o=8,a|=8;break;case LN:return t=$i(12,n,e,a|2),t.elementType=LN,t.lanes=s,t;case FN:return t=$i(13,n,e,a),t.elementType=FN,t.lanes=s,t;case BN:return t=$i(19,n,e,a),t.elementType=BN,t.lanes=s,t;case fB:return Kk(n,a,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case uB:o=10;break e;case dB:o=9;break e;case mO:o=11;break e;case gO:o=14;break e;case Fc:o=16,r=null;break e}throw Error($e(130,t==null?t:typeof t,""))}return e=$i(o,n,e,a),e.elementType=t,e.type=r,e.lanes=s,e}function Fd(t,e,n,r){return t=$i(7,t,r,e),t.lanes=n,t}function Kk(t,e,n,r){return t=$i(22,t,r,e),t.elementType=fB,t.lanes=n,t.stateNode={isHidden:!1},t}function sS(t,e,n){return t=$i(6,t,null,e),t.lanes=n,t}function iS(t,e,n){return e=$i(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function pee(t,e,n,r,a){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=B2(0),this.expirationTimes=B2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=B2(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function JO(t,e,n,r,a,s,o,l,c){return t=new pee(t,e,n,l,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=$i(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},RO(s),t}function mee(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i7)}catch(t){console.error(t)}}i7(),iB.exports=yi;var fs=iB.exports,ZR=fs;IN.createRoot=ZR.createRoot,IN.hydrateRoot=ZR.hydrateRoot;/** + * @remix-run/router v1.23.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function a0(){return a0=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function t3(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function wee(){return Math.random().toString(36).substr(2,8)}function e4(t,e){return{usr:t.state,key:t.key,idx:e}}function AC(t,e,n,r){return n===void 0&&(n=null),a0({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?mm(e):e,{state:n,key:e&&e.key||r||wee()})}function G1(t){let{pathname:e="/",search:n="",hash:r=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function mm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function kee(t,e,n,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:s=!1}=r,o=a.history,l=eu.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(a0({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=eu.Pop;let y=d(),b=y==null?null:y-u;u=y,c&&c({action:l,location:x.location,delta:b})}function h(y,b){l=eu.Push;let v=AC(x.location,y,b);u=d()+1;let w=e4(v,u),j=x.createHref(v);try{o.pushState(w,"",j)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;a.location.assign(j)}s&&c&&c({action:l,location:x.location,delta:1})}function p(y,b){l=eu.Replace;let v=AC(x.location,y,b);u=d();let w=e4(v,u),j=x.createHref(v);o.replaceState(w,"",j),s&&c&&c({action:l,location:x.location,delta:0})}function m(y){let b=a.location.origin!=="null"?a.location.origin:a.location.href,v=typeof y=="string"?y:G1(y);return v=v.replace(/ $/,"%20"),Lr(b,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,b)}let x={get action(){return l},get location(){return t(a,o)},listen(y){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(QR,f),c=y,()=>{a.removeEventListener(QR,f),c=null}},createHref(y){return e(a,y)},createURL:m,encodeLocation(y){let b=m(y);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:p,go(y){return o.go(y)}};return x}var t4;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(t4||(t4={}));function jee(t,e,n){return n===void 0&&(n="/"),See(t,e,n)}function See(t,e,n,r){let a=typeof e=="string"?mm(e):e,s=n3(a.pathname||"/",n);if(s==null)return null;let o=o7(t);_ee(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};c.relativePath.startsWith("/")&&(Lr(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=vu([r,c.relativePath]),d=n.concat(c);s.children&&s.children.length>0&&(Lr(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),o7(s.children,e,d,u)),!(s.path==null&&!s.index)&&e.push({path:u,score:Pee(u,s.index),routesMeta:d})};return t.forEach((s,o)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))a(s,o);else for(let c of l7(s.path))a(s,o,c)}),e}function l7(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,a=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return a?[s,""]:[s];let o=l7(r.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),a&&l.push(...o),l.map(c=>t.startsWith("/")&&c===""?"/":c)}function _ee(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:Mee(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Nee=/^:[\w-]+$/,Cee=3,Eee=2,Aee=1,Oee=10,Tee=-2,n4=t=>t==="*";function Pee(t,e){let n=t.split("/"),r=n.length;return n.some(n4)&&(r+=Tee),e&&(r+=Eee),n.filter(a=>!n4(a)).reduce((a,s)=>a+(Nee.test(s)?Cee:s===""?Aee:Oee),r)}function Mee(t,e){return t.length===e.length&&t.slice(0,-1).every((r,a)=>r===e[a])?t[t.length-1]-e[e.length-1]:0}function Ree(t,e,n){let{routesMeta:r}=t,a={},s="/",o=[];for(let l=0;l{let{paramName:h,isOptional:p}=d;if(h==="*"){let x=l[f]||"";o=s.slice(0,s.length-x.length).replace(/(.)\/+$/,"$1")}const m=l[f];return p&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:t}}function Iee(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),t3(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,e?void 0:"i"),r]}function $ee(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return t3(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function n3(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}const Lee=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Fee=t=>Lee.test(t);function Bee(t,e){e===void 0&&(e="/");let{pathname:n,search:r="",hash:a=""}=typeof t=="string"?mm(t):t,s;if(n)if(Fee(n))s=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),t3(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?s=r4(n.substring(1),"/"):s=r4(n,e)}else s=e;return{pathname:s,search:Vee(r),hash:Wee(a)}}function r4(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function oS(t,e,n,r){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function zee(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function r3(t,e){let n=zee(t);return e?n.map((r,a)=>a===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function a3(t,e,n,r){r===void 0&&(r=!1);let a;typeof t=="string"?a=mm(t):(a=a0({},t),Lr(!a.pathname||!a.pathname.includes("?"),oS("?","pathname","search",a)),Lr(!a.pathname||!a.pathname.includes("#"),oS("#","pathname","hash",a)),Lr(!a.search||!a.search.includes("#"),oS("#","search","hash",a)));let s=t===""||a.pathname==="",o=s?"/":a.pathname,l;if(o==null)l=n;else{let f=e.length-1;if(!r&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),f-=1;a.pathname=h.join("/")}l=f>=0?e[f]:"/"}let c=Bee(a,l),u=o&&o!=="/"&&o.endsWith("/"),d=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const vu=t=>t.join("/").replace(/\/\/+/g,"/"),Uee=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Vee=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Wee=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Hee(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const c7=["post","put","patch","delete"];new Set(c7);const Gee=["get",...c7];new Set(Gee);/** + * React Router v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function s0(){return s0=Object.assign?Object.assign.bind():function(t){for(var e=1;e{l.current=!0}),g.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=a3(u,JSON.parse(o),s,d.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:vu([e,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[e,r,o,s,t])}const Xee=g.createContext(null);function Jee(t){let e=g.useContext(Sl).outlet;return e&&g.createElement(Xee.Provider,{value:t},e)}function f7(){let{matches:t}=g.useContext(Sl),e=t[t.length-1];return e?e.params:{}}function h7(t,e){let{relative:n}=e===void 0?{}:e,{future:r}=g.useContext(Hu),{matches:a}=g.useContext(Sl),{pathname:s}=_l(),o=JSON.stringify(r3(a,r.v7_relativeSplatPath));return g.useMemo(()=>a3(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function Zee(t,e){return Qee(t,e)}function Qee(t,e,n,r){gm()||Lr(!1);let{navigator:a}=g.useContext(Hu),{matches:s}=g.useContext(Sl),o=s[s.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=_l(),d;if(e){var f;let y=typeof e=="string"?mm(e):e;c==="/"||(f=y.pathname)!=null&&f.startsWith(c)||Lr(!1),d=y}else d=u;let h=d.pathname||"/",p=h;if(c!=="/"){let y=c.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(y.length).join("/")}let m=jee(t,{pathname:p}),x=ate(m&&m.map(y=>Object.assign({},y,{params:Object.assign({},l,y.params),pathname:vu([c,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?c:vu([c,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),s,n,r);return e&&x?g.createElement(Qk.Provider,{value:{location:s0({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:eu.Pop}},x):x}function ete(){let t=lte(),e=Hee(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},e),n?g.createElement("pre",{style:a},n):null,null)}const tte=g.createElement(ete,null);class nte extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?g.createElement(Sl.Provider,{value:this.props.routeContext},g.createElement(u7.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function rte(t){let{routeContext:e,match:n,children:r}=t,a=g.useContext(s3);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(Sl.Provider,{value:e},r)}function ate(t,e,n,r){var a;if(e===void 0&&(e=[]),n===void 0&&(n=null),r===void 0&&(r=null),t==null){var s;if(!n)return null;if(n.errors)t=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,l=(a=n)==null?void 0:a.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Lr(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,h)=>{let p,m=!1,x=null,y=null;n&&(p=l&&f.route.id?l[f.route.id]:void 0,x=f.route.errorElement||tte,c&&(u<0&&h===0?(ute("route-fallback"),m=!0,y=null):u===h&&(m=!0,y=f.route.hydrateFallbackElement||null)));let b=e.concat(o.slice(0,h+1)),v=()=>{let w;return p?w=x:m?w=y:f.route.Component?w=g.createElement(f.route.Component,null):f.route.element?w=f.route.element:w=d,g.createElement(rte,{match:f,routeContext:{outlet:d,matches:b,isDataRoute:n!=null},children:w})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(nte,{location:n.location,revalidation:n.revalidation,component:x,error:p,children:v(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):v()},null)}var p7=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(p7||{}),m7=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(m7||{});function ste(t){let e=g.useContext(s3);return e||Lr(!1),e}function ite(t){let e=g.useContext(qee);return e||Lr(!1),e}function ote(t){let e=g.useContext(Sl);return e||Lr(!1),e}function g7(t){let e=ote(),n=e.matches[e.matches.length-1];return n.route.id||Lr(!1),n.route.id}function lte(){var t;let e=g.useContext(u7),n=ite(),r=g7();return e!==void 0?e:(t=n.errors)==null?void 0:t[r]}function cte(){let{router:t}=ste(p7.UseNavigateStable),e=g7(m7.UseNavigateStable),n=g.useRef(!1);return d7(()=>{n.current=!0}),g.useCallback(function(a,s){s===void 0&&(s={}),n.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,s0({fromRouteId:e},s)))},[t,e])}const a4={};function ute(t,e,n){a4[t]||(a4[t]=!0)}function dte(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function vx(t){let{to:e,replace:n,state:r,relative:a}=t;gm()||Lr(!1);let{future:s,static:o}=g.useContext(Hu),{matches:l}=g.useContext(Sl),{pathname:c}=_l(),u=Kr(),d=a3(e,r3(l,s.v7_relativeSplatPath),c,a==="path"),f=JSON.stringify(d);return g.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:a}),[u,f,a,n,r]),null}function x7(t){return Jee(t.context)}function bn(t){Lr(!1)}function fte(t){let{basename:e="/",children:n=null,location:r,navigationType:a=eu.Pop,navigator:s,static:o=!1,future:l}=t;gm()&&Lr(!1);let c=e.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:c,navigator:s,static:o,future:s0({v7_relativeSplatPath:!1},l)}),[c,l,s,o]);typeof r=="string"&&(r=mm(r));let{pathname:d="/",search:f="",hash:h="",state:p=null,key:m="default"}=r,x=g.useMemo(()=>{let y=n3(d,c);return y==null?null:{location:{pathname:y,search:f,hash:h,state:p,key:m},navigationType:a}},[c,d,f,h,p,m,a]);return x==null?null:g.createElement(Hu.Provider,{value:u},g.createElement(Qk.Provider,{children:n,value:x}))}function hte(t){let{children:e,location:n}=t;return Zee(OC(e),n)}new Promise(()=>{});function OC(t,e){e===void 0&&(e=[]);let n=[];return g.Children.forEach(t,(r,a)=>{if(!g.isValidElement(r))return;let s=[...e,a];if(r.type===g.Fragment){n.push.apply(n,OC(r.props.children,s));return}r.type!==bn&&Lr(!1),!r.props.index||!r.props.children||Lr(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=OC(r.props.children,s)),n.push(o)}),n}/** + * React Router DOM v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function TC(){return TC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(n[a]=t[a]);return n}function mte(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function gte(t,e){return t.button===0&&(!e||e==="_self")&&!mte(t)}function PC(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let r=t[n];return e.concat(Array.isArray(r)?r.map(a=>[n,a]):[[n,r]])},[]))}function xte(t,e){let n=PC(t);return e&&e.forEach((r,a)=>{n.has(a)||e.getAll(a).forEach(s=>{n.append(a,s)})}),n}const yte=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],vte="6";try{window.__reactRouterVersion=vte}catch{}const bte="startTransition",s4=fm[bte];function wte(t){let{basename:e,children:n,future:r,window:a}=t,s=g.useRef();s.current==null&&(s.current=bee({window:a,v5Compat:!0}));let o=s.current,[l,c]=g.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=g.useCallback(f=>{u&&s4?s4(()=>c(f)):c(f)},[c,u]);return g.useLayoutEffect(()=>o.listen(d),[o,d]),g.useEffect(()=>dte(r),[r]),g.createElement(fte,{basename:e,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const kte=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",jte=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ef=g.forwardRef(function(e,n){let{onClick:r,relative:a,reloadDocument:s,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=e,h=pte(e,yte),{basename:p}=g.useContext(Hu),m,x=!1;if(typeof u=="string"&&jte.test(u)&&(m=u,kte))try{let w=new URL(window.location.href),j=u.startsWith("//")?new URL(w.protocol+u):new URL(u),k=n3(j.pathname,p);j.origin===w.origin&&k!=null?u=k+j.search+j.hash:x=!0}catch{}let y=Kee(u,{relative:a}),b=Ste(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:a,viewTransition:f});function v(w){r&&r(w),w.defaultPrevented||b(w)}return g.createElement("a",TC({},h,{href:m||y,onClick:x||s?r:v,ref:n,target:c}))});var i4;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(i4||(i4={}));var o4;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(o4||(o4={}));function Ste(t,e){let{target:n,replace:r,state:a,preventScrollReset:s,relative:o,viewTransition:l}=e===void 0?{}:e,c=Kr(),u=_l(),d=h7(t,{relative:o});return g.useCallback(f=>{if(gte(f,n)){f.preventDefault();let h=r!==void 0?r:G1(u)===G1(d);c(t,{replace:h,state:a,preventScrollReset:s,relative:o,viewTransition:l})}},[u,c,d,r,a,n,t,s,o,l])}function Nl(t){let e=g.useRef(PC(t)),n=g.useRef(!1),r=_l(),a=g.useMemo(()=>xte(r.search,n.current?null:e.current),[r.search]),s=Kr(),o=g.useCallback((l,c)=>{const u=PC(typeof l=="function"?l(a):l);n.current=!0,s("?"+u,c)},[s,a]);return[a,o]}var y7={exports:{}},v7={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yp=g;function _te(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Nte=typeof Object.is=="function"?Object.is:_te,Cte=yp.useState,Ete=yp.useEffect,Ate=yp.useLayoutEffect,Ote=yp.useDebugValue;function Tte(t,e){var n=e(),r=Cte({inst:{value:n,getSnapshot:e}}),a=r[0].inst,s=r[1];return Ate(function(){a.value=n,a.getSnapshot=e,lS(a)&&s({inst:a})},[t,n,e]),Ete(function(){return lS(a)&&s({inst:a}),t(function(){lS(a)&&s({inst:a})})},[t]),Ote(n),n}function lS(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Nte(t,n)}catch{return!0}}function Pte(t,e){return e()}var Mte=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Pte:Tte;v7.useSyncExternalStore=yp.useSyncExternalStore!==void 0?yp.useSyncExternalStore:Mte;y7.exports=v7;var MC=y7.exports;const b7=0,w7=1,k7=2,l4=3;var c4=Object.prototype.hasOwnProperty;function RC(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&RC(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(c4.call(t,n)&&++r&&!c4.call(e,n)||!(n in e)||!RC(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}const Kl=new WeakMap,Zl=()=>{},Xa=Zl(),DC=Object,Jt=t=>t===Xa,Qo=t=>typeof t=="function",Eu=(t,e)=>({...t,...e}),j7=t=>Qo(t.then),cS={},$v={},i3="undefined",_y=typeof window!=i3,IC=typeof document!=i3,Rte=_y&&"Deno"in window,Dte=()=>_y&&typeof window.requestAnimationFrame!=i3,S7=(t,e)=>{const n=Kl.get(t);return[()=>!Jt(e)&&t.get(e)||cS,r=>{if(!Jt(e)){const a=t.get(e);e in $v||($v[e]=a),n[5](e,Eu(a,r),a||cS)}},n[6],()=>!Jt(e)&&e in $v?$v[e]:!Jt(e)&&t.get(e)||cS]};let $C=!0;const Ite=()=>$C,[LC,FC]=_y&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Zl,Zl],$te=()=>{const t=IC&&document.visibilityState;return Jt(t)||t!=="hidden"},Lte=t=>(IC&&document.addEventListener("visibilitychange",t),LC("focus",t),()=>{IC&&document.removeEventListener("visibilitychange",t),FC("focus",t)}),Fte=t=>{const e=()=>{$C=!0,t()},n=()=>{$C=!1};return LC("online",e),LC("offline",n),()=>{FC("online",e),FC("offline",n)}},Bte={isOnline:Ite,isVisible:$te},zte={initFocus:Lte,initReconnect:Fte},u4=!J.useId,Hh=!_y||Rte,Ute=t=>Dte()?window.requestAnimationFrame(t):setTimeout(t,1),uS=Hh?g.useEffect:g.useLayoutEffect,dS=typeof navigator<"u"&&navigator.connection,d4=!Hh&&dS&&(["slow-2g","2g"].includes(dS.effectiveType)||dS.saveData),Lv=new WeakMap,Vte=t=>DC.prototype.toString.call(t),fS=(t,e)=>t===`[object ${e}]`;let Wte=0;const BC=t=>{const e=typeof t,n=Vte(t),r=fS(n,"Date"),a=fS(n,"RegExp"),s=fS(n,"Object");let o,l;if(DC(t)===t&&!r&&!a){if(o=Lv.get(t),o)return o;if(o=++Wte+"~",Lv.set(t,o),Array.isArray(t)){for(o="@",l=0;l{if(Qo(t))try{t=t()}catch{t=""}const e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?BC(t):"",[t,e]};let Hte=0;const zC=()=>++Hte;async function _7(...t){const[e,n,r,a]=t,s=Eu({populateCache:!0,throwOnError:!0},typeof a=="boolean"?{revalidate:a}:a||{});let o=s.populateCache;const l=s.rollbackOnError;let c=s.optimisticData;const u=h=>typeof l=="function"?l(h):l!==!1,d=s.throwOnError;if(Qo(n)){const h=n,p=[],m=e.keys();for(const x of m)!/^\$(inf|sub)\$/.test(x)&&h(e.get(x)._k)&&p.push(x);return Promise.all(p.map(f))}return f(n);async function f(h){const[p]=o3(h);if(!p)return;const[m,x]=S7(e,p),[y,b,v,w]=Kl.get(e),j=()=>{const D=y[p];return(Qo(s.revalidate)?s.revalidate(m().data,h):s.revalidate!==!1)&&(delete v[p],delete w[p],D&&D[0])?D[0](k7).then(()=>m().data):m().data};if(t.length<3)return j();let k=r,_,S=!1;const N=zC();b[p]=[N,0];const E=!Jt(c),P=m(),M=P.data,A=P._c,O=Jt(A)?M:A;if(E&&(c=Qo(c)?c(O,M):c,x({data:c,_c:O})),Qo(k))try{k=k(O)}catch(D){_=D,S=!0}if(k&&j7(k))if(k=await k.catch(D=>{_=D,S=!0}),N!==b[p][0]){if(S)throw _;return k}else S&&E&&u(_)&&(o=!0,x({data:O,_c:Xa}));if(o&&!S)if(Qo(o)){const D=o(k,O);x({data:D,error:Xa,_c:Xa})}else x({data:k,error:Xa,_c:Xa});if(b[p][1]=zC(),Promise.resolve(j()).then(()=>{x({_c:Xa})}),S){if(d)throw _;return}return k}}const f4=(t,e)=>{for(const n in t)t[n][0]&&t[n][0](e)},Gte=(t,e)=>{if(!Kl.has(t)){const n=Eu(zte,e),r=Object.create(null),a=_7.bind(Xa,t);let s=Zl;const o=Object.create(null),l=(d,f)=>{const h=o[d]||[];return o[d]=h,h.push(f),()=>h.splice(h.indexOf(f),1)},c=(d,f,h)=>{t.set(d,f);const p=o[d];if(p)for(const m of p)m(f,h)},u=()=>{if(!Kl.has(t)&&(Kl.set(t,[r,Object.create(null),Object.create(null),Object.create(null),a,c,l]),!Hh)){const d=n.initFocus(setTimeout.bind(Xa,f4.bind(Xa,r,b7))),f=n.initReconnect(setTimeout.bind(Xa,f4.bind(Xa,r,w7)));s=()=>{d&&d(),f&&f(),Kl.delete(t)}}};return u(),[t,a,u,s]}return[t,Kl.get(t)[4]]},qte=(t,e,n,r,a)=>{const s=n.errorRetryCount,o=a.retryCount,l=~~((Math.random()+.5)*(1<<(o<8?o:8)))*n.errorRetryInterval;!Jt(s)&&o>s||setTimeout(r,l,a)},Kte=RC,[N7,C7]=Gte(new Map),Yte=Eu({onLoadingSlow:Zl,onSuccess:Zl,onError:Zl,onErrorRetry:qte,onDiscarded:Zl,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:d4?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:d4?5e3:3e3,compare:Kte,isPaused:()=>!1,cache:N7,mutate:C7,fallback:{}},Bte),Xte=(t,e)=>{const n=Eu(t,e);if(e){const{use:r,fallback:a}=t,{use:s,fallback:o}=e;r&&s&&(n.use=r.concat(s)),a&&o&&(n.fallback=Eu(a,o))}return n},Jte=g.createContext({}),Zte="$inf$",E7=_y&&window.__SWR_DEVTOOLS_USE__,Qte=E7?window.__SWR_DEVTOOLS_USE__:[],ene=()=>{E7&&(window.__SWR_DEVTOOLS_REACT__=J)},tne=t=>Qo(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],ej=()=>{const t=g.useContext(Jte);return g.useMemo(()=>Eu(Yte,t),[t])},nne=t=>(e,n,r)=>t(e,n&&((...s)=>{const[o]=o3(e),[,,,l]=Kl.get(N7);if(o.startsWith(Zte))return n(...s);const c=l[o];return Jt(c)?n(...s):(delete l[o],c)}),r),rne=Qte.concat(nne),ane=t=>function(...n){const r=ej(),[a,s,o]=tne(n),l=Xte(r,o);let c=t;const{use:u}=l,d=(u||[]).concat(rne);for(let f=d.length;f--;)c=d[f](c);return c(a,s||l.fetcher||null,l)},sne=(t,e,n)=>{const r=e[t]||(e[t]=[]);return r.push(n),()=>{const a=r.indexOf(n);a>=0&&(r[a]=r[r.length-1],r.pop())}};ene();const hS=J.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}}),pS={dedupe:!0},h4=Promise.resolve(Xa),ine=()=>Zl,one=(t,e,n)=>{const{cache:r,compare:a,suspense:s,fallbackData:o,revalidateOnMount:l,revalidateIfStale:c,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:h,strictServerPrefetchWarning:p}=n,[m,x,y,b]=Kl.get(r),[v,w]=o3(t),j=g.useRef(!1),k=g.useRef(!1),_=g.useRef(v),S=g.useRef(e),N=g.useRef(n),E=()=>N.current,P=()=>E().isVisible()&&E().isOnline(),[M,A,O,D]=S7(r,v),I=g.useRef({}).current,X=Jt(o)?Jt(n.fallback)?Xa:n.fallback[v]:o,Q=(ve,Ne)=>{for(const je in I){const Me=je;if(Me==="data"){if(!a(ve[Me],Ne[Me])&&(!Jt(ve[Me])||!a(U,Ne[Me])))return!1}else if(Ne[Me]!==ve[Me])return!1}return!0},V=!j.current,Y=g.useMemo(()=>{const ve=M(),Ne=D(),je=B=>{const se=Eu(B);return delete se._k,(()=>{if(!v||!e||E().isPaused())return!1;if(V&&!Jt(l))return l;const Ce=Jt(X)?se.data:X;return Jt(Ce)||c})()?{isValidating:!0,isLoading:!0,...se}:se},Me=je(ve),Be=ve===Ne?Me:je(Ne);let tt=Me;return[()=>{const B=je(M());return Q(B,tt)?(tt.data=B.data,tt.isLoading=B.isLoading,tt.isValidating=B.isValidating,tt.error=B.error,tt):(tt=B,B)},()=>Be]},[r,v]),H=MC.useSyncExternalStore(g.useCallback(ve=>O(v,(Ne,je)=>{Q(je,Ne)||ve()}),[r,v]),Y[0],Y[1]),G=m[v]&&m[v].length>0,$=H.data,F=Jt($)?X&&j7(X)?hS(X):X:$,R=H.error,z=g.useRef(F),U=h?Jt($)?Jt(z.current)?F:z.current:$:F,ee=v&&Jt(F),pe=g.useRef(null);!Hh&&MC.useSyncExternalStore(ine,()=>(pe.current=!1,pe),()=>(pe.current=!0,pe));const re=pe.current;p&&re&&!s&&ee&&console.warn(`Missing pre-initiated data for serialized key "${v}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const he=!v||!e||E().isPaused()||G&&!Jt(R)?!1:V&&!Jt(l)?l:s?Jt(F)?!1:c:Jt(F)||c,q=V&&he,W=Jt(H.isValidating)?q:H.isValidating,ue=Jt(H.isLoading)?q:H.isLoading,te=g.useCallback(async ve=>{const Ne=S.current;if(!v||!Ne||k.current||E().isPaused())return!1;let je,Me,Be=!0;const tt=ve||{},B=!y[v]||!tt.dedupe,se=()=>u4?!k.current&&v===_.current&&j.current:v===_.current,de={isValidating:!1,isLoading:!1},Ce=()=>{A(de)},fe=()=>{const we=y[v];we&&we[1]===Me&&delete y[v]},be={isValidating:!0};Jt(M().data)&&(be.isLoading=!0);try{if(B&&(A(be),n.loadingTimeout&&Jt(M().data)&&setTimeout(()=>{Be&&se()&&E().onLoadingSlow(v,n)},n.loadingTimeout),y[v]=[Ne(w),zC()]),[je,Me]=y[v],je=await je,B&&setTimeout(fe,n.dedupingInterval),!y[v]||y[v][1]!==Me)return B&&se()&&E().onDiscarded(v),!1;de.error=Xa;const we=x[v];if(!Jt(we)&&(Me<=we[0]||Me<=we[1]||we[1]===0))return Ce(),B&&se()&&E().onDiscarded(v),!1;const Le=M().data;de.data=a(Le,je)?Le:je,B&&se()&&E().onSuccess(je,v,n)}catch(we){fe();const Le=E(),{shouldRetryOnError:Oe}=Le;Le.isPaused()||(de.error=we,B&&se()&&(Le.onError(we,v,Le),(Oe===!0||Qo(Oe)&&Oe(we))&&(!E().revalidateOnFocus||!E().revalidateOnReconnect||P())&&Le.onErrorRetry(we,v,Le,He=>{const vt=m[v];vt&&vt[0]&&vt[0](l4,He)},{retryCount:(tt.retryCount||0)+1,dedupe:!0})))}return Be=!1,Ce(),!0},[v,r]),ie=g.useCallback((...ve)=>_7(r,_.current,...ve),[]);if(uS(()=>{S.current=e,N.current=n,Jt($)||(z.current=$)}),uS(()=>{if(!v)return;const ve=te.bind(Xa,pS);let Ne=0;E().revalidateOnFocus&&(Ne=Date.now()+E().focusThrottleInterval);const Me=sne(v,m,(Be,tt={})=>{if(Be==b7){const B=Date.now();E().revalidateOnFocus&&B>Ne&&P()&&(Ne=B+E().focusThrottleInterval,ve())}else if(Be==w7)E().revalidateOnReconnect&&P()&&ve();else{if(Be==k7)return te();if(Be==l4)return te(tt)}});return k.current=!1,_.current=v,j.current=!0,A({_k:w}),he&&(y[v]||(Jt(F)||Hh?ve():Ute(ve))),()=>{k.current=!0,Me()}},[v]),uS(()=>{let ve;function Ne(){const Me=Qo(u)?u(M().data):u;Me&&ve!==-1&&(ve=setTimeout(je,Me))}function je(){!M().error&&(d||E().isVisible())&&(f||E().isOnline())?te(pS).then(Ne):Ne()}return Ne(),()=>{ve&&(clearTimeout(ve),ve=-1)}},[u,d,f,v]),g.useDebugValue(U),s){if(!u4&&Hh&&ee)throw new Error("Fallback data is required when using Suspense in SSR.");ee&&(S.current=e,N.current=n,k.current=!1);const ve=b[v],Ne=!Jt(ve)&&ee?ie(ve):h4;if(hS(Ne),!Jt(R)&&ee)throw R;const je=ee?te(pS):h4;!Jt(U)&&ee&&(je.status="fulfilled",je.value=!0),hS(je)}return{mutate:ie,get data(){return I.data=!0,U},get error(){return I.error=!0,R},get isValidating(){return I.isValidating=!0,W},get isLoading(){return I.isLoading=!0,ue}}},ut=ane(one);function A7(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e-1}var iae=sae,oae=nj;function lae(t,e){var n=this.__data__,r=oae(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var cae=lae,uae=Gre,dae=eae,fae=rae,hae=iae,pae=cae;function bm(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e0?1:-1},Sd=function(e){return tf(e)&&e.indexOf("%")===e.length-1},Ue=function(e){return Rse(e)&&!km(e)},Lse=function(e){return Pt(e)},sa=function(e){return Ue(e)||tf(e)},Fse=0,Sf=function(e){var n=++Fse;return"".concat(e||"").concat(n)},nf=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ue(e)&&!tf(e))return r;var s;if(Sd(e)){var o=e.indexOf("%");s=n*parseFloat(e.slice(0,o))/100}else s=+e;return km(s)&&(s=r),a&&s>n&&(s=n),s},Yc=function(e){if(!e)return null;var n=Object.keys(e);return n&&n.length?e[n[0]]:null},Bse=function(e){if(!Array.isArray(e))return!1;for(var n=e.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Kse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function VC(t){"@babel/helpers - typeof";return VC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},VC(t)}var _4={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ac=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},N4=null,xS=null,v3=function t(e){if(e===N4&&Array.isArray(xS))return xS;var n=[];return g.Children.forEach(e,function(r){Pt(r)||(Ase.isFragment(r)?n=n.concat(t(r.props.children)):n.push(r))}),xS=n,N4=e,n};function Gs(t,e){var n=[],r=[];return Array.isArray(e)?r=e.map(function(a){return ac(a)}):r=[ac(e)],v3(t).forEach(function(a){var s=Wi(a,"type.displayName")||Wi(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function oi(t,e){var n=Gs(t,e);return n&&n[0]}var C4=function(e){if(!e||!e.props)return!1;var n=e.props,r=n.width,a=n.height;return!(!Ue(r)||r<=0||!Ue(a)||a<=0)},Yse=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],Xse=function(e){return e&&e.type&&tf(e.type)&&Yse.indexOf(e.type)>=0},U7=function(e){return e&&VC(e)==="object"&&"clipDot"in e},Jse=function(e,n,r,a){var s,o=(s=gS==null?void 0:gS[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Rt(e)&&(a&&o.includes(n)||Wse.includes(n))||r&&y3.includes(n)},It=function(e,n,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(g.isValidElement(e)&&(a=e.props),!ym(a))return null;var s={};return Object.keys(a).forEach(function(o){var l;Jse((l=a)===null||l===void 0?void 0:l[o],o,n,r)&&(s[o]=a[o])}),s},WC=function t(e,n){if(e===n)return!0;var r=g.Children.count(e);if(r!==g.Children.count(n))return!1;if(r===0)return!0;if(r===1)return E4(Array.isArray(e)?e[0]:e,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function nie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function GC(t){var e=t.children,n=t.width,r=t.height,a=t.viewBox,s=t.className,o=t.style,l=t.title,c=t.desc,u=tie(t,eie),d=a||{width:n,height:r,x:0,y:0},f=Zt("recharts-surface",s);return J.createElement("svg",HC({},It(u,!0,"svg"),{className:f,width:n,height:r,style:o,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height)}),J.createElement("title",null,l),J.createElement("desc",null,c),e)}var rie=["children","className"];function qC(){return qC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function sie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var pn=J.forwardRef(function(t,e){var n=t.children,r=t.className,a=aie(t,rie),s=Zt("recharts-layer",r);return J.createElement("g",qC({className:s},It(a,!0),{ref:e}),n)}),pl=function(e,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;sa?0:a+e),n=n>a?a:n,n<0&&(n+=a),a=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(a);++r=r?t:lie(t,e,n)}var uie=cie,die="\\ud800-\\udfff",fie="\\u0300-\\u036f",hie="\\ufe20-\\ufe2f",pie="\\u20d0-\\u20ff",mie=fie+hie+pie,gie="\\ufe0e\\ufe0f",xie="\\u200d",yie=RegExp("["+xie+die+mie+gie+"]");function vie(t){return yie.test(t)}var V7=vie;function bie(t){return t.split("")}var wie=bie,W7="\\ud800-\\udfff",kie="\\u0300-\\u036f",jie="\\ufe20-\\ufe2f",Sie="\\u20d0-\\u20ff",_ie=kie+jie+Sie,Nie="\\ufe0e\\ufe0f",Cie="["+W7+"]",KC="["+_ie+"]",YC="\\ud83c[\\udffb-\\udfff]",Eie="(?:"+KC+"|"+YC+")",H7="[^"+W7+"]",G7="(?:\\ud83c[\\udde6-\\uddff]){2}",q7="[\\ud800-\\udbff][\\udc00-\\udfff]",Aie="\\u200d",K7=Eie+"?",Y7="["+Nie+"]?",Oie="(?:"+Aie+"(?:"+[H7,G7,q7].join("|")+")"+Y7+K7+")*",Tie=Y7+K7+Oie,Pie="(?:"+[H7+KC+"?",KC,G7,q7,Cie].join("|")+")",Mie=RegExp(YC+"(?="+YC+")|"+Pie+Tie,"g");function Rie(t){return t.match(Mie)||[]}var Die=Rie,Iie=wie,$ie=V7,Lie=Die;function Fie(t){return $ie(t)?Lie(t):Iie(t)}var Bie=Fie,zie=uie,Uie=V7,Vie=Bie,Wie=I7;function Hie(t){return function(e){e=Wie(e);var n=Uie(e)?Vie(e):void 0,r=n?n[0]:e.charAt(0),a=n?zie(n,1).join(""):e.slice(1);return r[t]()+a}}var Gie=Hie,qie=Gie,Kie=qie("toUpperCase"),Yie=Kie;const gj=Rn(Yie);function Xn(t){return function(){return t}}const X7=Math.cos,Y1=Math.sin,Mo=Math.sqrt,X1=Math.PI,xj=2*X1,XC=Math.PI,JC=2*XC,hd=1e-6,Xie=JC-hd;function J7(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return J7;const n=10**e;return function(r){this._+=r[0];for(let a=1,s=r.length;ahd)if(!(Math.abs(f*c-u*d)>hd)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let p=r-o,m=a-l,x=c*c+u*u,y=p*p+m*m,b=Math.sqrt(x),v=Math.sqrt(h),w=s*Math.tan((XC-Math.acos((x+h-y)/(2*b*v)))/2),j=w/v,k=w/b;Math.abs(j-1)>hd&&this._append`L${e+j*d},${n+j*f}`,this._append`A${s},${s},0,0,${+(f*p>d*m)},${this._x1=e+k*c},${this._y1=n+k*u}`}}arc(e,n,r,a,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let l=r*Math.cos(a),c=r*Math.sin(a),u=e+l,d=n+c,f=1^o,h=o?a-s:s-a;this._x1===null?this._append`M${u},${d}`:(Math.abs(this._x1-u)>hd||Math.abs(this._y1-d)>hd)&&this._append`L${u},${d}`,r&&(h<0&&(h=h%JC+JC),h>Xie?this._append`A${r},${r},0,1,${f},${e-l},${n-c}A${r},${r},0,1,${f},${this._x1=u},${this._y1=d}`:h>hd&&this._append`A${r},${r},0,${+(h>=XC)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function b3(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new Zie(e)}function w3(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Z7(t){this._context=t}Z7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function yj(t){return new Z7(t)}function Q7(t){return t[0]}function eU(t){return t[1]}function tU(t,e){var n=Xn(!0),r=null,a=yj,s=null,o=b3(l);t=typeof t=="function"?t:t===void 0?Q7:Xn(t),e=typeof e=="function"?e:e===void 0?eU:Xn(e);function l(c){var u,d=(c=w3(c)).length,f,h=!1,p;for(r==null&&(s=a(p=o())),u=0;u<=d;++u)!(u=p;--m)l.point(w[m],j[m]);l.lineEnd(),l.areaEnd()}b&&(w[h]=+t(y,h,f),j[h]=+e(y,h,f),l.point(r?+r(y,h,f):w[h],n?+n(y,h,f):j[h]))}if(v)return l=null,v+""||null}function d(){return tU().defined(a).curve(o).context(s)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Xn(+f),r=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Xn(+f),u):t},u.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Xn(+f),u):r},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Xn(+f),n=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Xn(+f),u):e},u.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Xn(+f),u):n},u.lineX0=u.lineY0=function(){return d().x(t).y(e)},u.lineY1=function(){return d().x(t).y(n)},u.lineX1=function(){return d().x(r).y(e)},u.defined=function(f){return arguments.length?(a=typeof f=="function"?f:Xn(!!f),u):a},u.curve=function(f){return arguments.length?(o=f,s!=null&&(l=o(s)),u):o},u.context=function(f){return arguments.length?(f==null?s=l=null:l=o(s=f),u):s},u}class nU{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function Qie(t){return new nU(t,!0)}function eoe(t){return new nU(t,!1)}const k3={draw(t,e){const n=Mo(e/X1);t.moveTo(n,0),t.arc(0,0,n,0,xj)}},toe={draw(t,e){const n=Mo(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},rU=Mo(1/3),noe=rU*2,roe={draw(t,e){const n=Mo(e/noe),r=n*rU;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},aoe={draw(t,e){const n=Mo(e),r=-n/2;t.rect(r,r,n,n)}},soe=.8908130915292852,aU=Y1(X1/10)/Y1(7*X1/10),ioe=Y1(xj/10)*aU,ooe=-X7(xj/10)*aU,loe={draw(t,e){const n=Mo(e*soe),r=ioe*n,a=ooe*n;t.moveTo(0,-n),t.lineTo(r,a);for(let s=1;s<5;++s){const o=xj*s/5,l=X7(o),c=Y1(o);t.lineTo(c*n,-l*n),t.lineTo(l*r-c*a,c*r+l*a)}t.closePath()}},yS=Mo(3),coe={draw(t,e){const n=-Mo(e/(yS*3));t.moveTo(0,n*2),t.lineTo(-yS*n,-n),t.lineTo(yS*n,-n),t.closePath()}},Ni=-.5,Ci=Mo(3)/2,ZC=1/Mo(12),uoe=(ZC/2+1)*3,doe={draw(t,e){const n=Mo(e/uoe),r=n/2,a=n*ZC,s=r,o=n*ZC+n,l=-s,c=o;t.moveTo(r,a),t.lineTo(s,o),t.lineTo(l,c),t.lineTo(Ni*r-Ci*a,Ci*r+Ni*a),t.lineTo(Ni*s-Ci*o,Ci*s+Ni*o),t.lineTo(Ni*l-Ci*c,Ci*l+Ni*c),t.lineTo(Ni*r+Ci*a,Ni*a-Ci*r),t.lineTo(Ni*s+Ci*o,Ni*o-Ci*s),t.lineTo(Ni*l+Ci*c,Ni*c-Ci*l),t.closePath()}};function foe(t,e){let n=null,r=b3(a);t=typeof t=="function"?t:Xn(t||k3),e=typeof e=="function"?e:Xn(e===void 0?64:+e);function a(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(t=typeof s=="function"?s:Xn(s),a):t},a.size=function(s){return arguments.length?(e=typeof s=="function"?s:Xn(+s),a):e},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function J1(){}function Z1(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function sU(t){this._context=t}sU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Z1(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function hoe(t){return new sU(t)}function iU(t){this._context=t}iU.prototype={areaStart:J1,areaEnd:J1,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function poe(t){return new iU(t)}function oU(t){this._context=t}oU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Z1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function moe(t){return new oU(t)}function lU(t){this._context=t}lU.prototype={areaStart:J1,areaEnd:J1,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function goe(t){return new lU(t)}function O4(t){return t<0?-1:1}function T4(t,e,n){var r=t._x1-t._x0,a=e-t._x1,s=(t._y1-t._y0)/(r||a<0&&-0),o=(n-t._y1)/(a||r<0&&-0),l=(s*a+o*r)/(r+a);return(O4(s)+O4(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function P4(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function vS(t,e,n){var r=t._x0,a=t._y0,s=t._x1,o=t._y1,l=(s-r)/3;t._context.bezierCurveTo(r+l,a+l*e,s-l,o-l*n,s,o)}function Q1(t){this._context=t}Q1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:vS(this,this._t0,P4(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,vS(this,P4(this,n=T4(this,t,e)),n);break;default:vS(this,this._t0,n=T4(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function cU(t){this._context=new uU(t)}(cU.prototype=Object.create(Q1.prototype)).point=function(t,e){Q1.prototype.point.call(this,e,t)};function uU(t){this._context=t}uU.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,a,s){this._context.bezierCurveTo(e,t,r,n,s,a)}};function xoe(t){return new Q1(t)}function yoe(t){return new cU(t)}function dU(t){this._context=t}dU.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=M4(t),a=M4(e),s=0,o=1;o=0;--e)a[e]=(o[e]-a[e+1])/s[e];for(s[n-1]=(t[n]+a[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function boe(t){return new vj(t,.5)}function woe(t){return new vj(t,0)}function koe(t){return new vj(t,1)}function vp(t,e){if((o=t.length)>1)for(var n=1,r,a,s=t[e[0]],o,l=s.length;n=0;)n[e]=e;return n}function joe(t,e){return t[e]}function Soe(t){const e=[];return e.key=t,e}function _oe(){var t=Xn([]),e=QC,n=vp,r=joe;function a(s){var o=Array.from(t.apply(this,arguments),Soe),l,c=o.length,u=-1,d;for(const f of s)for(l=0,++u;l0){for(var n,r,a=0,s=t[0].length,o;a0){for(var n=0,r=t[e[0]],a,s=r.length;n0)||!((s=(a=t[e[0]]).length)>0))){for(var n=0,r=1,a,s,o;r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Roe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var fU={symbolCircle:k3,symbolCross:toe,symbolDiamond:roe,symbolSquare:aoe,symbolStar:loe,symbolTriangle:coe,symbolWye:doe},Doe=Math.PI/180,Ioe=function(e){var n="symbol".concat(gj(e));return fU[n]||k3},$oe=function(e,n,r){if(n==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Doe;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Loe=function(e,n){fU["symbol".concat(gj(e))]=n},bj=function(e){var n=e.type,r=n===void 0?"circle":n,a=e.size,s=a===void 0?64:a,o=e.sizeType,l=o===void 0?"area":o,c=Moe(e,Aoe),u=D4(D4({},c),{},{type:r,size:s,sizeType:l}),d=function(){var y=Ioe(r),b=foe().type(y).size($oe(s,l,r));return b()},f=u.className,h=u.cx,p=u.cy,m=It(u,!0);return h===+h&&p===+p&&s===+s?J.createElement("path",eE({},m,{className:Zt("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(p,")"),d:d()})):null};bj.registerSymbol=Loe;function bp(t){"@babel/helpers - typeof";return bp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bp(t)}function tE(){return tE=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var v=p.inactive?u:p.color;return J.createElement("li",tE({className:y,style:f,key:"legend-item-".concat(m)},i0(r.props,p,m)),J.createElement(GC,{width:o,height:o,viewBox:d,style:h},r.renderIcon(p)),J.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},x?x(b,p,m):b))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,o=r.align;if(!a||!a.length)return null;var l={padding:0,margin:0,textAlign:s==="horizontal"?o:"left"};return J.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])}(g.PureComponent);l0(j3,"displayName","Legend");l0(j3,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Koe=rj;function Yoe(){this.__data__=new Koe,this.size=0}var Xoe=Yoe;function Joe(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}var Zoe=Joe;function Qoe(t){return this.__data__.get(t)}var ele=Qoe;function tle(t){return this.__data__.has(t)}var nle=tle,rle=rj,ale=d3,sle=f3,ile=200;function ole(t,e){var n=this.__data__;if(n instanceof rle){var r=n.__data__;if(!ale||r.lengthl))return!1;var u=s.get(t),d=s.get(e);if(u&&d)return u==e&&d==t;var f=-1,h=!0,p=n&Ale?new _le:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=Mce}var C3=Rce,Dce=jc,Ice=C3,$ce=Sc,Lce="[object Arguments]",Fce="[object Array]",Bce="[object Boolean]",zce="[object Date]",Uce="[object Error]",Vce="[object Function]",Wce="[object Map]",Hce="[object Number]",Gce="[object Object]",qce="[object RegExp]",Kce="[object Set]",Yce="[object String]",Xce="[object WeakMap]",Jce="[object ArrayBuffer]",Zce="[object DataView]",Qce="[object Float32Array]",eue="[object Float64Array]",tue="[object Int8Array]",nue="[object Int16Array]",rue="[object Int32Array]",aue="[object Uint8Array]",sue="[object Uint8ClampedArray]",iue="[object Uint16Array]",oue="[object Uint32Array]",ar={};ar[Qce]=ar[eue]=ar[tue]=ar[nue]=ar[rue]=ar[aue]=ar[sue]=ar[iue]=ar[oue]=!0;ar[Lce]=ar[Fce]=ar[Jce]=ar[Bce]=ar[Zce]=ar[zce]=ar[Uce]=ar[Vce]=ar[Wce]=ar[Hce]=ar[Gce]=ar[qce]=ar[Kce]=ar[Yce]=ar[Xce]=!1;function lue(t){return $ce(t)&&Ice(t.length)&&!!ar[Dce(t)]}var cue=lue;function uue(t){return function(e){return t(e)}}var jU=uue,rw={exports:{}};rw.exports;(function(t,e){var n=O7,r=e&&!e.nodeType&&e,a=r&&!0&&t&&!t.nodeType&&t,s=a&&a.exports===r,o=s&&n.process,l=function(){try{var c=a&&a.require&&a.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}}();t.exports=l})(rw,rw.exports);var due=rw.exports,fue=cue,hue=jU,U4=due,V4=U4&&U4.isTypedArray,pue=V4?hue(V4):fue,SU=pue,mue=yce,gue=_3,xue=Xs,yue=kU,vue=N3,bue=SU,wue=Object.prototype,kue=wue.hasOwnProperty;function jue(t,e){var n=xue(t),r=!n&&gue(t),a=!n&&!r&&yue(t),s=!n&&!r&&!a&&bue(t),o=n||r||a||s,l=o?mue(t.length,String):[],c=l.length;for(var u in t)(e||kue.call(t,u))&&!(o&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||vue(u,c)))&&l.push(u);return l}var Sue=jue,_ue=Object.prototype;function Nue(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||_ue;return t===n}var Cue=Nue;function Eue(t,e){return function(n){return t(e(n))}}var _U=Eue,Aue=_U,Oue=Aue(Object.keys,Object),Tue=Oue,Pue=Cue,Mue=Tue,Rue=Object.prototype,Due=Rue.hasOwnProperty;function Iue(t){if(!Pue(t))return Mue(t);var e=[];for(var n in Object(t))Due.call(t,n)&&n!="constructor"&&e.push(n);return e}var $ue=Iue,Lue=c3,Fue=C3;function Bue(t){return t!=null&&Fue(t.length)&&!Lue(t)}var Cy=Bue,zue=Sue,Uue=$ue,Vue=Cy;function Wue(t){return Vue(t)?zue(t):Uue(t)}var wj=Wue,Hue=ice,Gue=gce,que=wj;function Kue(t){return Hue(t,que,Gue)}var Yue=Kue,W4=Yue,Xue=1,Jue=Object.prototype,Zue=Jue.hasOwnProperty;function Que(t,e,n,r,a,s){var o=n&Xue,l=W4(t),c=l.length,u=W4(e),d=u.length;if(c!=d&&!o)return!1;for(var f=c;f--;){var h=l[f];if(!(o?h in e:Zue.call(e,h)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var x=!0;s.set(t,e),s.set(e,t);for(var y=o;++f-1}var Jfe=Xfe;function Zfe(t,e,n){for(var r=-1,a=t==null?0:t.length;++r=hhe){var u=e?null:dhe(t);if(u)return fhe(u);o=!1,a=uhe,c=new ohe}else c=e?[]:l;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ahe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ohe(t){return t.value}function The(t,e){if(J.isValidElement(t))return J.cloneElement(t,e);if(typeof t=="function")return J.createElement(t,e);e.ref;var n=Ehe(e,bhe);return J.createElement(j3,n)}var iD=1,ml=function(t){function e(){var n;whe(this,e);for(var r=arguments.length,a=new Array(r),s=0;siD||Math.abs(a.height-this.lastBoundingBox.height)>iD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Bl({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,o=a.align,l=a.verticalAlign,c=a.margin,u=a.chartWidth,d=a.chartHeight,f,h;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(o==="center"&&s==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(l==="middle"){var m=this.getBBoxSnapshot();h={top:((d||0)-m.height)/2}}else h=l==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return Bl(Bl({},f),h)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,o=a.width,l=a.height,c=a.wrapperStyle,u=a.payloadUniqBy,d=a.payload,f=Bl(Bl({position:"absolute",width:o||"auto",height:l||"auto"},this.getDefaultPosition(c)),c);return J.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){r.wrapperNode=p}},The(s,Bl(Bl({},this.props),{},{payload:PU(d,u,Ohe)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Bl(Bl({},this.defaultProps),r.props),o=s.layout;return o==="vertical"&&Ue(r.props.height)?{height:r.props.height}:o==="horizontal"?{width:r.props.width||a}:null}}])}(g.PureComponent);kj(ml,"displayName","Legend");kj(ml,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var oD=Ny,Phe=_3,Mhe=Xs,lD=oD?oD.isConcatSpreadable:void 0;function Rhe(t){return Mhe(t)||Phe(t)||!!(lD&&t&&t[lD])}var Dhe=Rhe,Ihe=bU,$he=Dhe;function DU(t,e,n,r,a){var s=-1,o=t.length;for(n||(n=$he),a||(a=[]);++s0&&n(l)?e>1?DU(l,e-1,n,r,a):Ihe(a,l):r||(a[a.length]=l)}return a}var IU=DU;function Lhe(t){return function(e,n,r){for(var a=-1,s=Object(e),o=r(e),l=o.length;l--;){var c=o[t?l:++a];if(n(s[c],c,s)===!1)break}return e}}var Fhe=Lhe,Bhe=Fhe,zhe=Bhe(),Uhe=zhe,Vhe=Uhe,Whe=wj;function Hhe(t,e){return t&&Vhe(t,e,Whe)}var $U=Hhe,Ghe=Cy;function qhe(t,e){return function(n,r){if(n==null)return n;if(!Ghe(n))return t(n,r);for(var a=n.length,s=e?a:-1,o=Object(n);(e?s--:++se||s&&o&&c&&!l&&!u||r&&o&&c||!n&&c||!a)return 1;if(!r&&!s&&!u&&t=l)return c;var u=n[r];return c*(u=="desc"?-1:1)}}return t.index-e.index}var ope=ipe,jS=p3,lpe=m3,cpe=qu,upe=LU,dpe=npe,fpe=jU,hpe=ope,ppe=_m,mpe=Xs;function gpe(t,e,n){e.length?e=jS(e,function(s){return mpe(s)?function(o){return lpe(o,s.length===1?s[0]:s)}:s}):e=[ppe];var r=-1;e=jS(e,fpe(cpe));var a=upe(t,function(s,o,l){var c=jS(e,function(u){return u(s)});return{criteria:c,index:++r,value:s}});return dpe(a,function(s,o){return hpe(s,o,n)})}var xpe=gpe;function ype(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}var vpe=ype,bpe=vpe,uD=Math.max;function wpe(t,e,n){return e=uD(e===void 0?t.length-1:e,0),function(){for(var r=arguments,a=-1,s=uD(r.length-e,0),o=Array(s);++a0){if(++e>=Tpe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Dpe=Rpe,Ipe=Ope,$pe=Dpe,Lpe=$pe(Ipe),Fpe=Lpe,Bpe=_m,zpe=kpe,Upe=Fpe;function Vpe(t,e){return Upe(zpe(t,e,Bpe),t+"")}var Wpe=Vpe,Hpe=u3,Gpe=Cy,qpe=N3,Kpe=Gu;function Ype(t,e,n){if(!Kpe(n))return!1;var r=typeof e;return(r=="number"?Gpe(n)&&qpe(e,n.length):r=="string"&&e in n)?Hpe(n[e],t):!1}var jj=Ype,Xpe=IU,Jpe=xpe,Zpe=Wpe,fD=jj,Qpe=Zpe(function(t,e){if(t==null)return[];var n=e.length;return n>1&&fD(t,e[0],e[1])?e=[]:n>2&&fD(e[0],e[1],e[2])&&(e=[e[0]]),Jpe(t,Xpe(e,1),[])}),eme=Qpe;const O3=Rn(eme);function c0(t){"@babel/helpers - typeof";return c0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c0(t)}function cE(){return cE=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.x),"".concat(fg,"-left"),Ue(n)&&e&&Ue(e.x)&&n=e.y),"".concat(fg,"-top"),Ue(r)&&e&&Ue(e.y)&&rx?Math.max(d,c[r]):Math.max(f,c[r])}function mme(t){var e=t.translateX,n=t.translateY,r=t.useTranslate3d;return{transform:r?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function gme(t){var e=t.allowEscapeViewBox,n=t.coordinate,r=t.offsetTopLeft,a=t.position,s=t.reverseDirection,o=t.tooltipBox,l=t.useTranslate3d,c=t.viewBox,u,d,f;return o.height>0&&o.width>0&&n?(d=mD({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),f=mD({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),u=mme({translateX:d,translateY:f,useTranslate3d:l})):u=hme,{cssProperties:u,cssClasses:pme({translateX:d,translateY:f,coordinate:n})}}function kp(t){"@babel/helpers - typeof";return kp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kp(t)}function gD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function xD(t){for(var e=1;eyD||Math.abs(r.height-this.state.lastBoundingBox.height)>yD)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,o=a.allowEscapeViewBox,l=a.animationDuration,c=a.animationEasing,u=a.children,d=a.coordinate,f=a.hasPayload,h=a.isAnimationActive,p=a.offset,m=a.position,x=a.reverseDirection,y=a.useTranslate3d,b=a.viewBox,v=a.wrapperStyle,w=gme({allowEscapeViewBox:o,coordinate:d,offsetTopLeft:p,position:m,reverseDirection:x,tooltipBox:this.state.lastBoundingBox,useTranslate3d:y,viewBox:b}),j=w.cssClasses,k=w.cssProperties,_=xD(xD({transition:h&&s?"transform ".concat(l,"ms ").concat(c):void 0},k),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&f?"visible":"hidden",position:"absolute",top:0,left:0},v);return J.createElement("div",{tabIndex:-1,className:j,style:_,ref:function(N){r.wrapperNode=N}},u)}}])}(g.PureComponent),Nme=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Ku={isSsr:Nme()};function jp(t){"@babel/helpers - typeof";return jp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jp(t)}function vD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function bD(t){for(var e=1;e0;return J.createElement(_me,{allowEscapeViewBox:o,animationDuration:l,animationEasing:c,isAnimationActive:h,active:s,coordinate:d,hasPayload:_,offset:p,position:y,reverseDirection:b,useTranslate3d:v,viewBox:w,wrapperStyle:j},Ime(u,bD(bD({},this.props),{},{payload:k})))}}])}(g.PureComponent);T3(Vr,"displayName","Tooltip");T3(Vr,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Ku.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var $me=Cl,Lme=function(){return $me.Date.now()},Fme=Lme,Bme=/\s/;function zme(t){for(var e=t.length;e--&&Bme.test(t.charAt(e)););return e}var Ume=zme,Vme=Ume,Wme=/^\s+/;function Hme(t){return t&&t.slice(0,Vme(t)+1).replace(Wme,"")}var Gme=Hme,qme=Gme,wD=Gu,Kme=xm,kD=NaN,Yme=/^[-+]0x[0-9a-f]+$/i,Xme=/^0b[01]+$/i,Jme=/^0o[0-7]+$/i,Zme=parseInt;function Qme(t){if(typeof t=="number")return t;if(Kme(t))return kD;if(wD(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=wD(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=qme(t);var n=Xme.test(t);return n||Jme.test(t)?Zme(t.slice(2),n?2:8):Yme.test(t)?kD:+t}var WU=Qme,ege=Gu,_S=Fme,jD=WU,tge="Expected a function",nge=Math.max,rge=Math.min;function age(t,e,n){var r,a,s,o,l,c,u=0,d=!1,f=!1,h=!0;if(typeof t!="function")throw new TypeError(tge);e=jD(e)||0,ege(n)&&(d=!!n.leading,f="maxWait"in n,s=f?nge(jD(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h);function p(_){var S=r,N=a;return r=a=void 0,u=_,o=t.apply(N,S),o}function m(_){return u=_,l=setTimeout(b,e),d?p(_):o}function x(_){var S=_-c,N=_-u,E=e-S;return f?rge(E,s-N):E}function y(_){var S=_-c,N=_-u;return c===void 0||S>=e||S<0||f&&N>=s}function b(){var _=_S();if(y(_))return v(_);l=setTimeout(b,x(_))}function v(_){return l=void 0,h&&r?p(_):(r=a=void 0,o)}function w(){l!==void 0&&clearTimeout(l),u=0,r=c=a=l=void 0}function j(){return l===void 0?o:v(_S())}function k(){var _=_S(),S=y(_);if(r=arguments,a=this,c=_,S){if(l===void 0)return m(c);if(f)return clearTimeout(l),l=setTimeout(b,e),p(c)}return l===void 0&&(l=setTimeout(b,e)),o}return k.cancel=w,k.flush=j,k}var sge=age,ige=sge,oge=Gu,lge="Expected a function";function cge(t,e,n){var r=!0,a=!0;if(typeof t!="function")throw new TypeError(lge);return oge(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),ige(t,e,{leading:r,maxWait:e,trailing:a})}var uge=cge;const HU=Rn(uge);function d0(t){"@babel/helpers - typeof";return d0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d0(t)}function SD(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Uv(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(O=HU(O,x,{trailing:!0,leading:!1}));var D=new ResizeObserver(O),I=k.current.getBoundingClientRect(),X=I.width,Q=I.height;return M(X,Q),D.observe(k.current),function(){D.disconnect()}},[M,x]);var A=g.useMemo(function(){var O=E.containerWidth,D=E.containerHeight;if(O<0||D<0)return null;pl(Sd(o)||Sd(c),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,c),pl(!n||n>0,"The aspect(%s) must be greater than zero.",n);var I=Sd(o)?O:o,X=Sd(c)?D:c;n&&n>0&&(I?X=I/n:X&&(I=X*n),h&&X>h&&(X=h)),pl(I>0||X>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,I,X,o,c,d,f,n);var Q=!Array.isArray(p)&&ac(p.type).endsWith("Chart");return J.Children.map(p,function(V){return J.isValidElement(V)?g.cloneElement(V,Uv({width:I,height:X},Q?{style:Uv({height:"100%",width:"100%",maxHeight:X,maxWidth:I},V.props.style)}:{})):V})},[n,p,c,h,f,d,E,o]);return J.createElement("div",{id:y?"".concat(y):void 0,className:Zt("recharts-responsive-container",b),style:Uv(Uv({},j),{},{width:o,height:c,minWidth:d,minHeight:f,maxHeight:h}),ref:k},A)}),Ey=function(e){return null};Ey.displayName="Cell";function f0(t){"@babel/helpers - typeof";return f0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f0(t)}function ND(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function hE(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Ku.isSsr)return{width:0,height:0};var r=Sge(n),a=JSON.stringify({text:e,copyStyle:r});if(Wf.widthCache[a])return Wf.widthCache[a];try{var s=document.getElementById(CD);s||(s=document.createElement("span"),s.setAttribute("id",CD),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var o=hE(hE({},jge),r);Object.assign(s.style,o),s.textContent="".concat(e);var l=s.getBoundingClientRect(),c={width:l.width,height:l.height};return Wf.widthCache[a]=c,++Wf.cacheCount>kge&&(Wf.cacheCount=0,Wf.widthCache={}),c}catch{return{width:0,height:0}}},_ge=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function h0(t){"@babel/helpers - typeof";return h0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h0(t)}function ow(t,e){return Age(t)||Ege(t,e)||Cge(t,e)||Nge()}function Nge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cge(t,e){if(t){if(typeof t=="string")return ED(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ED(t,e)}}function ED(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Vge(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function RD(t,e){return qge(t)||Gge(t,e)||Hge(t,e)||Wge()}function Wge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hge(t,e){if(t){if(typeof t=="string")return DD(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DD(t,e)}}function DD(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[];return I.reduce(function(X,Q){var V=Q.word,Y=Q.width,H=X[X.length-1];if(H&&(a==null||s||H.width+Y+rQ.width?X:Q})};if(!d)return p;for(var x="…",y=function(I){var X=f.slice(0,I),Q=YU({breakAll:u,style:c,children:X+x}).wordsWithComputedWidth,V=h(Q),Y=V.length>o||m(V).width>Number(a);return[Y,V]},b=0,v=f.length-1,w=0,j;b<=v&&w<=f.length-1;){var k=Math.floor((b+v)/2),_=k-1,S=y(_),N=RD(S,2),E=N[0],P=N[1],M=y(k),A=RD(M,1),O=A[0];if(!E&&!O&&(b=k+1),E&&O&&(v=k-1),!E&&O){j=P;break}w++}return j||p},ID=function(e){var n=Pt(e)?[]:e.toString().split(KU);return[{words:n}]},Yge=function(e){var n=e.width,r=e.scaleToFit,a=e.children,s=e.style,o=e.breakAll,l=e.maxLines;if((n||r)&&!Ku.isSsr){var c,u,d=YU({breakAll:o,children:a,style:s});if(d){var f=d.wordsWithComputedWidth,h=d.spaceWidth;c=f,u=h}else return ID(a);return Kge({breakAll:o,children:a,maxLines:l,style:s},c,u,n,r)}return ID(a)},$D="#808080",lw=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.lineHeight,l=o===void 0?"1em":o,c=e.capHeight,u=c===void 0?"0.71em":c,d=e.scaleToFit,f=d===void 0?!1:d,h=e.textAnchor,p=h===void 0?"start":h,m=e.verticalAnchor,x=m===void 0?"end":m,y=e.fill,b=y===void 0?$D:y,v=MD(e,zge),w=g.useMemo(function(){return Yge({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:f,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,f,v.style,v.width]),j=v.dx,k=v.dy,_=v.angle,S=v.className,N=v.breakAll,E=MD(v,Uge);if(!sa(r)||!sa(s))return null;var P=r+(Ue(j)?j:0),M=s+(Ue(k)?k:0),A;switch(x){case"start":A=NS("calc(".concat(u,")"));break;case"middle":A=NS("calc(".concat((w.length-1)/2," * -").concat(l," + (").concat(u," / 2))"));break;default:A=NS("calc(".concat(w.length-1," * -").concat(l,")"));break}var O=[];if(f){var D=w[0].width,I=v.width;O.push("scale(".concat((Ue(I)?I/D:1)/D,")"))}return _&&O.push("rotate(".concat(_,", ").concat(P,", ").concat(M,")")),O.length&&(E.transform=O.join(" ")),J.createElement("text",pE({},It(E,!0),{x:P,y:M,className:Zt("recharts-text",S),textAnchor:p,fill:b.includes("url")?$D:b}),w.map(function(X,Q){var V=X.words.join(N?"":" ");return J.createElement("tspan",{x:P,dy:Q===0?A:l,key:"".concat(V,"-").concat(Q)},V)}))};function bu(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Xge(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function P3(t){let e,n,r;t.length!==2?(e=bu,n=(l,c)=>bu(t(l),c),r=(l,c)=>t(l)-c):(e=t===bu||t===Xge?t:Jge,n=t,r=t);function a(l,c,u=0,d=l.length){if(u>>1;n(l[f],c)<0?u=f+1:d=f}while(u>>1;n(l[f],c)<=0?u=f+1:d=f}while(uu&&r(l[f-1],c)>-r(l[f],c)?f-1:f}return{left:a,center:o,right:s}}function Jge(){return 0}function XU(t){return t===null?NaN:+t}function*Zge(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const Qge=P3(bu),Ay=Qge.right;P3(XU).center;class LD extends Map{constructor(e,n=nxe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,a]of e)this.set(r,a)}get(e){return super.get(FD(this,e))}has(e){return super.has(FD(this,e))}set(e,n){return super.set(exe(this,e),n)}delete(e){return super.delete(txe(this,e))}}function FD({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function exe({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function txe({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function nxe(t){return t!==null&&typeof t=="object"?t.valueOf():t}function rxe(t=bu){if(t===bu)return JU;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function JU(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const axe=Math.sqrt(50),sxe=Math.sqrt(10),ixe=Math.sqrt(2);function cw(t,e,n){const r=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),o=s>=axe?10:s>=sxe?5:s>=ixe?2:1;let l,c,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(t*u),c=Math.round(e*u),l/ue&&--c,u=-u):(u=Math.pow(10,a)*o,l=Math.round(t/u),c=Math.round(e/u),l*ue&&--c),c0))return[];if(t===e)return[t];const r=e=a))return[];const l=s-a+1,c=new Array(l);if(r)if(o<0)for(let u=0;u=r)&&(n=r);return n}function zD(t,e){let n;for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function ZU(t,e,n=0,r=1/0,a){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(a=a===void 0?JU:rxe(a);r>n;){if(r-n>600){const c=r-n+1,u=e-n+1,d=Math.log(c),f=.5*Math.exp(2*d/3),h=.5*Math.sqrt(d*f*(c-f)/c)*(u-c/2<0?-1:1),p=Math.max(n,Math.floor(e-u*f/c+h)),m=Math.min(r,Math.floor(e+(c-u)*f/c+h));ZU(t,e,p,m,a)}const s=t[e];let o=n,l=r;for(hg(t,n,e),a(t[r],s)>0&&hg(t,n,r);o0;)--l}a(t[n],s)===0?hg(t,n,l):(++l,hg(t,l,r)),l<=e&&(n=l+1),e<=l&&(r=l-1)}return t}function hg(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function oxe(t,e,n){if(t=Float64Array.from(Zge(t)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return zD(t);if(e>=1)return BD(t);var r,a=(r-1)*e,s=Math.floor(a),o=BD(ZU(t,s).subarray(0,s+1)),l=zD(t.subarray(s+1));return o+(l-o)*(a-s)}}function lxe(t,e,n=XU){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,a=(r-1)*e,s=Math.floor(a),o=+n(t[s],s,t),l=+n(t[s+1],s+1,t);return o+(l-o)*(a-s)}}function cxe(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(a);++r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Wv(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Wv(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=dxe.exec(t))?new Ls(e[1],e[2],e[3],1):(e=fxe.exec(t))?new Ls(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=hxe.exec(t))?Wv(e[1],e[2],e[3],e[4]):(e=pxe.exec(t))?Wv(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=mxe.exec(t))?KD(e[1],e[2]/100,e[3]/100,1):(e=gxe.exec(t))?KD(e[1],e[2]/100,e[3]/100,e[4]):UD.hasOwnProperty(t)?HD(UD[t]):t==="transparent"?new Ls(NaN,NaN,NaN,0):null}function HD(t){return new Ls(t>>16&255,t>>8&255,t&255,1)}function Wv(t,e,n,r){return r<=0&&(t=e=n=NaN),new Ls(t,e,n,r)}function vxe(t){return t instanceof Oy||(t=x0(t)),t?(t=t.rgb(),new Ls(t.r,t.g,t.b,t.opacity)):new Ls}function vE(t,e,n,r){return arguments.length===1?vxe(t):new Ls(t,e,n,r??1)}function Ls(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}R3(Ls,vE,eV(Oy,{brighter(t){return t=t==null?uw:Math.pow(uw,t),new Ls(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?m0:Math.pow(m0,t),new Ls(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ls(Bd(this.r),Bd(this.g),Bd(this.b),dw(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:GD,formatHex:GD,formatHex8:bxe,formatRgb:qD,toString:qD}));function GD(){return`#${_d(this.r)}${_d(this.g)}${_d(this.b)}`}function bxe(){return`#${_d(this.r)}${_d(this.g)}${_d(this.b)}${_d((isNaN(this.opacity)?1:this.opacity)*255)}`}function qD(){const t=dw(this.opacity);return`${t===1?"rgb(":"rgba("}${Bd(this.r)}, ${Bd(this.g)}, ${Bd(this.b)}${t===1?")":`, ${t})`}`}function dw(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Bd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function _d(t){return t=Bd(t),(t<16?"0":"")+t.toString(16)}function KD(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new yo(t,e,n,r)}function tV(t){if(t instanceof yo)return new yo(t.h,t.s,t.l,t.opacity);if(t instanceof Oy||(t=x0(t)),!t)return new yo;if(t instanceof yo)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,l=s-a,c=(s+a)/2;return l?(e===s?o=(n-r)/l+(n0&&c<1?0:o,new yo(o,l,c,t.opacity)}function wxe(t,e,n,r){return arguments.length===1?tV(t):new yo(t,e,n,r??1)}function yo(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}R3(yo,wxe,eV(Oy,{brighter(t){return t=t==null?uw:Math.pow(uw,t),new yo(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?m0:Math.pow(m0,t),new yo(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new Ls(CS(t>=240?t-240:t+120,a,r),CS(t,a,r),CS(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new yo(YD(this.h),Hv(this.s),Hv(this.l),dw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=dw(this.opacity);return`${t===1?"hsl(":"hsla("}${YD(this.h)}, ${Hv(this.s)*100}%, ${Hv(this.l)*100}%${t===1?")":`, ${t})`}`}}));function YD(t){return t=(t||0)%360,t<0?t+360:t}function Hv(t){return Math.max(0,Math.min(1,t||0))}function CS(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const D3=t=>()=>t;function kxe(t,e){return function(n){return t+n*e}}function jxe(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Sxe(t){return(t=+t)==1?nV:function(e,n){return n-e?jxe(e,n,t):D3(isNaN(e)?n:e)}}function nV(t,e){var n=e-t;return n?kxe(t,n):D3(isNaN(t)?e:t)}const XD=function t(e){var n=Sxe(e);function r(a,s){var o=n((a=vE(a)).r,(s=vE(s)).r),l=n(a.g,s.g),c=n(a.b,s.b),u=nV(a.opacity,s.opacity);return function(d){return a.r=o(d),a.g=l(d),a.b=c(d),a.opacity=u(d),a+""}}return r.gamma=t,r}(1);function _xe(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;an&&(s=e.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(r=r[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,c.push({i:o,x:fw(r,a)})),n=ES.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Ixe(t,e,n){var r=t[0],a=t[1],s=e[0],o=e[1];return a2?$xe:Ixe,c=u=null,f}function f(h){return h==null||isNaN(h=+h)?s:(c||(c=l(t.map(r),e,n)))(r(o(h)))}return f.invert=function(h){return o(a((u||(u=l(e,t.map(r),fw)))(h)))},f.domain=function(h){return arguments.length?(t=Array.from(h,hw),d()):t.slice()},f.range=function(h){return arguments.length?(e=Array.from(h),d()):e.slice()},f.rangeRound=function(h){return e=Array.from(h),n=I3,d()},f.clamp=function(h){return arguments.length?(o=h?!0:hs,d()):o!==hs},f.interpolate=function(h){return arguments.length?(n=h,d()):n},f.unknown=function(h){return arguments.length?(s=h,f):s},function(h,p){return r=h,a=p,d()}}function $3(){return Sj()(hs,hs)}function Lxe(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pw(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Sp(t){return t=pw(Math.abs(t)),t?t[1]:NaN}function Fxe(t,e){return function(n,r){for(var a=n.length,s=[],o=0,l=t[0],c=0;a>0&&l>0&&(c+l+1>r&&(l=Math.max(1,r-c)),s.push(n.substring(a-=l,a+l)),!((c+=l+1)>r));)l=t[o=(o+1)%t.length];return s.reverse().join(e)}}function Bxe(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var zxe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function y0(t){if(!(e=zxe.exec(t)))throw new Error("invalid format: "+t);var e;return new L3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}y0.prototype=L3.prototype;function L3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}L3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Uxe(t){e:for(var e=t.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var mw;function Vxe(t,e){var n=pw(t,e);if(!n)return mw=void 0,t.toPrecision(e);var r=n[0],a=n[1],s=a-(mw=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+pw(t,Math.max(0,e+s-1))[0]}function ZD(t,e){var n=pw(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const QD={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Lxe,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>ZD(t*100,e),r:ZD,s:Vxe,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function eI(t){return t}var tI=Array.prototype.map,nI=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Wxe(t){var e=t.grouping===void 0||t.thousands===void 0?eI:Fxe(tI.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",a=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?eI:Bxe(tI.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(f,h){f=y0(f);var p=f.fill,m=f.align,x=f.sign,y=f.symbol,b=f.zero,v=f.width,w=f.comma,j=f.precision,k=f.trim,_=f.type;_==="n"?(w=!0,_="g"):QD[_]||(j===void 0&&(j=12),k=!0,_="g"),(b||p==="0"&&m==="=")&&(b=!0,p="0",m="=");var S=(h&&h.prefix!==void 0?h.prefix:"")+(y==="$"?n:y==="#"&&/[boxX]/.test(_)?"0"+_.toLowerCase():""),N=(y==="$"?r:/[%p]/.test(_)?o:"")+(h&&h.suffix!==void 0?h.suffix:""),E=QD[_],P=/[defgprs%]/.test(_);j=j===void 0?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function M(A){var O=S,D=N,I,X,Q;if(_==="c")D=E(A)+D,A="";else{A=+A;var V=A<0||1/A<0;if(A=isNaN(A)?c:E(Math.abs(A),j),k&&(A=Uxe(A)),V&&+A==0&&x!=="+"&&(V=!1),O=(V?x==="("?x:l:x==="-"||x==="("?"":x)+O,D=(_==="s"&&!isNaN(A)&&mw!==void 0?nI[8+mw/3]:"")+D+(V&&x==="("?")":""),P){for(I=-1,X=A.length;++IQ||Q>57){D=(Q===46?a+A.slice(I+1):A.slice(I))+D,A=A.slice(0,I);break}}}w&&!b&&(A=e(A,1/0));var Y=O.length+A.length+D.length,H=Y>1)+O+A+D+H.slice(Y);break;default:A=H+O+A+D;break}return s(A)}return M.toString=function(){return f+""},M}function d(f,h){var p=Math.max(-8,Math.min(8,Math.floor(Sp(h)/3)))*3,m=Math.pow(10,-p),x=u((f=y0(f),f.type="f",f),{suffix:nI[8+p/3]});return function(y){return x(m*y)}}return{format:u,formatPrefix:d}}var Gv,F3,rV;Hxe({thousands:",",grouping:[3],currency:["$",""]});function Hxe(t){return Gv=Wxe(t),F3=Gv.format,rV=Gv.formatPrefix,Gv}function Gxe(t){return Math.max(0,-Sp(Math.abs(t)))}function qxe(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Sp(e)/3)))*3-Sp(Math.abs(t)))}function Kxe(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Sp(e)-Sp(t))+1}function aV(t,e,n,r){var a=xE(t,e,n),s;switch(r=y0(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=qxe(a,o))&&(r.precision=s),rV(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Kxe(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Gxe(a))&&(r.precision=s-(r.type==="%")*2);break}}return F3(r)}function Yu(t){var e=t.domain;return t.ticks=function(n){var r=e();return mE(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return aV(a[0],a[a.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),a=0,s=r.length-1,o=r[a],l=r[s],c,u,d=10;for(l0;){if(u=gE(o,l,n),u===c)return r[a]=o,r[s]=l,e(r);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return t},t}function gw(){var t=$3();return t.copy=function(){return Ty(t,gw())},Zi.apply(t,arguments),Yu(t)}function sV(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,hw),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return sV(t).unknown(e)},t=arguments.length?Array.from(t,hw):[0,1],Yu(n)}function iV(t,e){t=t.slice();var n=0,r=t.length-1,a=t[n],s=t[r],o;return sMath.pow(t,e)}function Qxe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function sI(t){return(e,n)=>-t(-e,n)}function B3(t){const e=t(rI,aI),n=e.domain;let r=10,a,s;function o(){return a=Qxe(r),s=Zxe(r),n()[0]<0?(a=sI(a),s=sI(s),t(Yxe,Xxe)):t(rI,aI),e}return e.base=function(l){return arguments.length?(r=+l,o()):r},e.domain=function(l){return arguments.length?(n(l),o()):n()},e.ticks=l=>{const c=n();let u=c[0],d=c[c.length-1];const f=d0){for(;h<=p;++h)for(m=1;md)break;b.push(x)}}else for(;h<=p;++h)for(m=r-1;m>=1;--m)if(x=h>0?m/s(-h):m*s(h),!(xd)break;b.push(x)}b.length*2{if(l==null&&(l=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=y0(c)).precision==null&&(c.trim=!0),c=F3(c)),l===1/0)return c;const u=Math.max(1,r*l/e.ticks().length);return d=>{let f=d/s(Math.round(a(d)));return f*rn(iV(n(),{floor:l=>s(Math.floor(a(l))),ceil:l=>s(Math.ceil(a(l)))})),e}function oV(){const t=B3(Sj()).domain([1,10]);return t.copy=()=>Ty(t,oV()).base(t.base()),Zi.apply(t,arguments),t}function iI(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function oI(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function z3(t){var e=1,n=t(iI(e),oI(e));return n.constant=function(r){return arguments.length?t(iI(e=+r),oI(e)):e},Yu(n)}function lV(){var t=z3(Sj());return t.copy=function(){return Ty(t,lV()).constant(t.constant())},Zi.apply(t,arguments)}function lI(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function e0e(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function t0e(t){return t<0?-t*t:t*t}function U3(t){var e=t(hs,hs),n=1;function r(){return n===1?t(hs,hs):n===.5?t(e0e,t0e):t(lI(n),lI(1/n))}return e.exponent=function(a){return arguments.length?(n=+a,r()):n},Yu(e)}function V3(){var t=U3(Sj());return t.copy=function(){return Ty(t,V3()).exponent(t.exponent())},Zi.apply(t,arguments),t}function n0e(){return V3.apply(null,arguments).exponent(.5)}function cI(t){return Math.sign(t)*t*t}function r0e(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function cV(){var t=$3(),e=[0,1],n=!1,r;function a(s){var o=r0e(t(s));return isNaN(o)?r:n?Math.round(o):o}return a.invert=function(s){return t.invert(cI(s))},a.domain=function(s){return arguments.length?(t.domain(s),a):t.domain()},a.range=function(s){return arguments.length?(t.range((e=Array.from(s,hw)).map(cI)),a):e.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(t.clamp(s),a):t.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return cV(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Zi.apply(a,arguments),Yu(a)}function uV(){var t=[],e=[],n=[],r;function a(){var o=0,l=Math.max(1,e.length);for(n=new Array(l-1);++o0?n[l-1]:t[0],l=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(c){return arguments.length&&(s=c),o},o.thresholds=function(){return r.slice()},o.copy=function(){return dV().domain([t,e]).range(a).unknown(s)},Zi.apply(Yu(o),arguments)}function fV(){var t=[.5],e=[0,1],n,r=1;function a(s){return s!=null&&s<=s?e[Ay(t,s,0,r)]:n}return a.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),a):t.slice()},a.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),a):e.slice()},a.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return fV().domain(t).range(e).unknown(n)},Zi.apply(a,arguments)}const AS=new Date,OS=new Date;function ca(t,e,n,r){function a(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(t(s=new Date(+s)),s),a.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),a.round=s=>{const o=a(s),l=a.ceil(s);return s-o(e(s=new Date(+s),o==null?1:Math.floor(o)),s),a.range=(s,o,l)=>{const c=[];if(s=a.ceil(s),l=l==null?1:Math.floor(l),!(s0))return c;let u;do c.push(u=new Date(+s)),e(s,l),t(s);while(uca(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;e(o,-1),!s(o););else for(;--l>=0;)for(;e(o,1),!s(o););}),n&&(a.count=(s,o)=>(AS.setTime(+s),OS.setTime(+o),t(AS),t(OS),Math.floor(n(AS,OS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?o=>r(o)%s===0:o=>a.count(0,o)%s===0):a)),a}const xw=ca(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);xw.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ca(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):xw);xw.range;const Ql=1e3,Fi=Ql*60,ec=Fi*60,hc=ec*24,W3=hc*7,uI=hc*30,TS=hc*365,Nd=ca(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Ql)},(t,e)=>(e-t)/Ql,t=>t.getUTCSeconds());Nd.range;const H3=ca(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ql)},(t,e)=>{t.setTime(+t+e*Fi)},(t,e)=>(e-t)/Fi,t=>t.getMinutes());H3.range;const G3=ca(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Fi)},(t,e)=>(e-t)/Fi,t=>t.getUTCMinutes());G3.range;const q3=ca(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ql-t.getMinutes()*Fi)},(t,e)=>{t.setTime(+t+e*ec)},(t,e)=>(e-t)/ec,t=>t.getHours());q3.range;const K3=ca(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ec)},(t,e)=>(e-t)/ec,t=>t.getUTCHours());K3.range;const Py=ca(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Fi)/hc,t=>t.getDate()-1);Py.range;const _j=ca(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/hc,t=>t.getUTCDate()-1);_j.range;const hV=ca(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/hc,t=>Math.floor(t/hc));hV.range;function _f(t){return ca(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Fi)/W3)}const Nj=_f(0),yw=_f(1),a0e=_f(2),s0e=_f(3),_p=_f(4),i0e=_f(5),o0e=_f(6);Nj.range;yw.range;a0e.range;s0e.range;_p.range;i0e.range;o0e.range;function Nf(t){return ca(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/W3)}const Cj=Nf(0),vw=Nf(1),l0e=Nf(2),c0e=Nf(3),Np=Nf(4),u0e=Nf(5),d0e=Nf(6);Cj.range;vw.range;l0e.range;c0e.range;Np.range;u0e.range;d0e.range;const Y3=ca(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Y3.range;const X3=ca(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());X3.range;const pc=ca(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());pc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ca(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});pc.range;const mc=ca(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());mc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ca(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});mc.range;function pV(t,e,n,r,a,s){const o=[[Nd,1,Ql],[Nd,5,5*Ql],[Nd,15,15*Ql],[Nd,30,30*Ql],[s,1,Fi],[s,5,5*Fi],[s,15,15*Fi],[s,30,30*Fi],[a,1,ec],[a,3,3*ec],[a,6,6*ec],[a,12,12*ec],[r,1,hc],[r,2,2*hc],[n,1,W3],[e,1,uI],[e,3,3*uI],[t,1,TS]];function l(u,d,f){const h=dy).right(o,h);if(p===o.length)return t.every(xE(u/TS,d/TS,f));if(p===0)return xw.every(Math.max(xE(u,d,f),1));const[m,x]=o[h/o[p-1][2]53)return null;"w"in W||(W.w=1),"Z"in W?(te=MS(pg(W.y,0,1)),ie=te.getUTCDay(),te=ie>4||ie===0?vw.ceil(te):vw(te),te=_j.offset(te,(W.V-1)*7),W.y=te.getUTCFullYear(),W.m=te.getUTCMonth(),W.d=te.getUTCDate()+(W.w+6)%7):(te=PS(pg(W.y,0,1)),ie=te.getDay(),te=ie>4||ie===0?yw.ceil(te):yw(te),te=Py.offset(te,(W.V-1)*7),W.y=te.getFullYear(),W.m=te.getMonth(),W.d=te.getDate()+(W.w+6)%7)}else("W"in W||"U"in W)&&("w"in W||(W.w="u"in W?W.u%7:"W"in W?1:0),ie="Z"in W?MS(pg(W.y,0,1)).getUTCDay():PS(pg(W.y,0,1)).getDay(),W.m=0,W.d="W"in W?(W.w+6)%7+W.W*7-(ie+5)%7:W.w+W.U*7-(ie+6)%7);return"Z"in W?(W.H+=W.Z/100|0,W.M+=W.Z%100,MS(W)):PS(W)}}function N(re,he,q,W){for(var ue=0,te=he.length,ie=q.length,me,ve;ue=ie)return-1;if(me=he.charCodeAt(ue++),me===37){if(me=he.charAt(ue++),ve=k[me in dI?he.charAt(ue++):me],!ve||(W=ve(re,q,W))<0)return-1}else if(me!=q.charCodeAt(W++))return-1}return W}function E(re,he,q){var W=u.exec(he.slice(q));return W?(re.p=d.get(W[0].toLowerCase()),q+W[0].length):-1}function P(re,he,q){var W=p.exec(he.slice(q));return W?(re.w=m.get(W[0].toLowerCase()),q+W[0].length):-1}function M(re,he,q){var W=f.exec(he.slice(q));return W?(re.w=h.get(W[0].toLowerCase()),q+W[0].length):-1}function A(re,he,q){var W=b.exec(he.slice(q));return W?(re.m=v.get(W[0].toLowerCase()),q+W[0].length):-1}function O(re,he,q){var W=x.exec(he.slice(q));return W?(re.m=y.get(W[0].toLowerCase()),q+W[0].length):-1}function D(re,he,q){return N(re,e,he,q)}function I(re,he,q){return N(re,n,he,q)}function X(re,he,q){return N(re,r,he,q)}function Q(re){return o[re.getDay()]}function V(re){return s[re.getDay()]}function Y(re){return c[re.getMonth()]}function H(re){return l[re.getMonth()]}function G(re){return a[+(re.getHours()>=12)]}function $(re){return 1+~~(re.getMonth()/3)}function F(re){return o[re.getUTCDay()]}function R(re){return s[re.getUTCDay()]}function z(re){return c[re.getUTCMonth()]}function U(re){return l[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function pe(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var he=_(re+="",w);return he.toString=function(){return re},he},parse:function(re){var he=S(re+="",!1);return he.toString=function(){return re},he},utcFormat:function(re){var he=_(re+="",j);return he.toString=function(){return re},he},utcParse:function(re){var he=S(re+="",!0);return he.toString=function(){return re},he}}}var dI={"-":"",_:" ",0:"0"},Sa=/^\s*\d+/,x0e=/^%/,y0e=/[\\^$*+?|[\]().{}]/g;function mn(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",s=a.length;return r+(s[e.toLowerCase(),n]))}function b0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function w0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function k0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function j0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function S0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function fI(t,e,n){var r=Sa.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function hI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function _0e(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function N0e(t,e,n){var r=Sa.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function C0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function pI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function E0e(t,e,n){var r=Sa.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function mI(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function A0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function O0e(t,e,n){var r=Sa.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function T0e(t,e,n){var r=Sa.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function P0e(t,e,n){var r=Sa.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function M0e(t,e,n){var r=x0e.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function R0e(t,e,n){var r=Sa.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function D0e(t,e,n){var r=Sa.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function gI(t,e){return mn(t.getDate(),e,2)}function I0e(t,e){return mn(t.getHours(),e,2)}function $0e(t,e){return mn(t.getHours()%12||12,e,2)}function L0e(t,e){return mn(1+Py.count(pc(t),t),e,3)}function mV(t,e){return mn(t.getMilliseconds(),e,3)}function F0e(t,e){return mV(t,e)+"000"}function B0e(t,e){return mn(t.getMonth()+1,e,2)}function z0e(t,e){return mn(t.getMinutes(),e,2)}function U0e(t,e){return mn(t.getSeconds(),e,2)}function V0e(t){var e=t.getDay();return e===0?7:e}function W0e(t,e){return mn(Nj.count(pc(t)-1,t),e,2)}function gV(t){var e=t.getDay();return e>=4||e===0?_p(t):_p.ceil(t)}function H0e(t,e){return t=gV(t),mn(_p.count(pc(t),t)+(pc(t).getDay()===4),e,2)}function G0e(t){return t.getDay()}function q0e(t,e){return mn(yw.count(pc(t)-1,t),e,2)}function K0e(t,e){return mn(t.getFullYear()%100,e,2)}function Y0e(t,e){return t=gV(t),mn(t.getFullYear()%100,e,2)}function X0e(t,e){return mn(t.getFullYear()%1e4,e,4)}function J0e(t,e){var n=t.getDay();return t=n>=4||n===0?_p(t):_p.ceil(t),mn(t.getFullYear()%1e4,e,4)}function Z0e(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+mn(e/60|0,"0",2)+mn(e%60,"0",2)}function xI(t,e){return mn(t.getUTCDate(),e,2)}function Q0e(t,e){return mn(t.getUTCHours(),e,2)}function eye(t,e){return mn(t.getUTCHours()%12||12,e,2)}function tye(t,e){return mn(1+_j.count(mc(t),t),e,3)}function xV(t,e){return mn(t.getUTCMilliseconds(),e,3)}function nye(t,e){return xV(t,e)+"000"}function rye(t,e){return mn(t.getUTCMonth()+1,e,2)}function aye(t,e){return mn(t.getUTCMinutes(),e,2)}function sye(t,e){return mn(t.getUTCSeconds(),e,2)}function iye(t){var e=t.getUTCDay();return e===0?7:e}function oye(t,e){return mn(Cj.count(mc(t)-1,t),e,2)}function yV(t){var e=t.getUTCDay();return e>=4||e===0?Np(t):Np.ceil(t)}function lye(t,e){return t=yV(t),mn(Np.count(mc(t),t)+(mc(t).getUTCDay()===4),e,2)}function cye(t){return t.getUTCDay()}function uye(t,e){return mn(vw.count(mc(t)-1,t),e,2)}function dye(t,e){return mn(t.getUTCFullYear()%100,e,2)}function fye(t,e){return t=yV(t),mn(t.getUTCFullYear()%100,e,2)}function hye(t,e){return mn(t.getUTCFullYear()%1e4,e,4)}function pye(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Np(t):Np.ceil(t),mn(t.getUTCFullYear()%1e4,e,4)}function mye(){return"+0000"}function yI(){return"%"}function vI(t){return+t}function bI(t){return Math.floor(+t/1e3)}var Hf,vV,bV;gye({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function gye(t){return Hf=g0e(t),vV=Hf.format,Hf.parse,bV=Hf.utcFormat,Hf.utcParse,Hf}function xye(t){return new Date(t)}function yye(t){return t instanceof Date?+t:+new Date(+t)}function J3(t,e,n,r,a,s,o,l,c,u){var d=$3(),f=d.invert,h=d.domain,p=u(".%L"),m=u(":%S"),x=u("%I:%M"),y=u("%I %p"),b=u("%a %d"),v=u("%b %d"),w=u("%B"),j=u("%Y");function k(_){return(c(_)<_?p:l(_)<_?m:o(_)<_?x:s(_)<_?y:r(_)<_?a(_)<_?b:v:n(_)<_?w:j)(_)}return d.invert=function(_){return new Date(f(_))},d.domain=function(_){return arguments.length?h(Array.from(_,yye)):h().map(xye)},d.ticks=function(_){var S=h();return t(S[0],S[S.length-1],_??10)},d.tickFormat=function(_,S){return S==null?k:u(S)},d.nice=function(_){var S=h();return(!_||typeof _.range!="function")&&(_=e(S[0],S[S.length-1],_??10)),_?h(iV(S,_)):d},d.copy=function(){return Ty(d,J3(t,e,n,r,a,s,o,l,c,u))},d}function vye(){return Zi.apply(J3(p0e,m0e,pc,Y3,Nj,Py,q3,H3,Nd,vV).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function bye(){return Zi.apply(J3(f0e,h0e,mc,X3,Cj,_j,K3,G3,Nd,bV).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Ej(){var t=0,e=1,n,r,a,s,o=hs,l=!1,c;function u(f){return f==null||isNaN(f=+f)?c:o(a===0?.5:(f=(s(f)-n)*a,l?Math.max(0,Math.min(1,f)):f))}u.domain=function(f){return arguments.length?([t,e]=f,n=s(t=+t),r=s(e=+e),a=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(f){return arguments.length?(l=!!f,u):l},u.interpolator=function(f){return arguments.length?(o=f,u):o};function d(f){return function(h){var p,m;return arguments.length?([p,m]=h,o=f(p,m),u):[o(0),o(1)]}}return u.range=d(Nm),u.rangeRound=d(I3),u.unknown=function(f){return arguments.length?(c=f,u):c},function(f){return s=f,n=f(t),r=f(e),a=n===r?0:1/(r-n),u}}function Xu(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function wV(){var t=Yu(Ej()(hs));return t.copy=function(){return Xu(t,wV())},_c.apply(t,arguments)}function kV(){var t=B3(Ej()).domain([1,10]);return t.copy=function(){return Xu(t,kV()).base(t.base())},_c.apply(t,arguments)}function jV(){var t=z3(Ej());return t.copy=function(){return Xu(t,jV()).constant(t.constant())},_c.apply(t,arguments)}function Z3(){var t=U3(Ej());return t.copy=function(){return Xu(t,Z3()).exponent(t.exponent())},_c.apply(t,arguments)}function wye(){return Z3.apply(null,arguments).exponent(.5)}function SV(){var t=[],e=hs;function n(r){if(r!=null&&!isNaN(r=+r))return e((Ay(t,r,1)-1)/(t.length-1))}return n.domain=function(r){if(!arguments.length)return t.slice();t=[];for(let a of r)a!=null&&!isNaN(a=+a)&&t.push(a);return t.sort(bu),n},n.interpolator=function(r){return arguments.length?(e=r,n):e},n.range=function(){return t.map((r,a)=>e(a/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>oxe(t,s/r))},n.copy=function(){return SV(e).domain(t)},_c.apply(n,arguments)}function Aj(){var t=0,e=.5,n=1,r=1,a,s,o,l,c,u=hs,d,f=!1,h;function p(x){return isNaN(x=+x)?h:(x=.5+((x=+d(x))-s)*(r*xe}var Nye=_ye,Cye=EV,Eye=Nye,Aye=_m;function Oye(t){return t&&t.length?Cye(t,Aye,Eye):void 0}var Tye=Oye;const tu=Rn(Tye);function Pye(t,e){return tt.e^s.s<0?1:-1;for(r=s.d.length,a=t.d.length,e=0,n=rt.d[e]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};lt.decimalPlaces=lt.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*sr;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};lt.dividedBy=lt.div=function(t){return sc(this,new this.constructor(t))};lt.dividedToIntegerBy=lt.idiv=function(t){var e=this,n=e.constructor;return Bn(sc(e,new n(t),0,1),n.precision)};lt.equals=lt.eq=function(t){return!this.cmp(t)};lt.exponent=function(){return Gr(this)};lt.greaterThan=lt.gt=function(t){return this.cmp(t)>0};lt.greaterThanOrEqualTo=lt.gte=function(t){return this.cmp(t)>=0};lt.isInteger=lt.isint=function(){return this.e>this.d.length-2};lt.isNegative=lt.isneg=function(){return this.s<0};lt.isPositive=lt.ispos=function(){return this.s>0};lt.isZero=function(){return this.s===0};lt.lessThan=lt.lt=function(t){return this.cmp(t)<0};lt.lessThanOrEqualTo=lt.lte=function(t){return this.cmp(t)<1};lt.logarithm=lt.log=function(t){var e,n=this,r=n.constructor,a=r.precision,s=a+5;if(t===void 0)t=new r(10);else if(t=new r(t),t.s<1||t.eq(ui))throw Error(Yi+"NaN");if(n.s<1)throw Error(Yi+(n.s?"NaN":"-Infinity"));return n.eq(ui)?new r(0):(hr=!1,e=sc(v0(n,s),v0(t,s),s),hr=!0,Bn(e,a))};lt.minus=lt.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?PV(e,t):OV(e,(t.s=-t.s,t))};lt.modulo=lt.mod=function(t){var e,n=this,r=n.constructor,a=r.precision;if(t=new r(t),!t.s)throw Error(Yi+"NaN");return n.s?(hr=!1,e=sc(n,t,0,1).times(t),hr=!0,n.minus(e)):Bn(new r(n),a)};lt.naturalExponential=lt.exp=function(){return TV(this)};lt.naturalLogarithm=lt.ln=function(){return v0(this)};lt.negated=lt.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};lt.plus=lt.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?OV(e,t):PV(e,(t.s=-t.s,t))};lt.precision=lt.sd=function(t){var e,n,r,a=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(zd+t);if(e=Gr(a)+1,r=a.d.length-1,n=r*sr+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return t&&e>n?e:n};lt.squareRoot=lt.sqrt=function(){var t,e,n,r,a,s,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(Yi+"NaN")}for(t=Gr(l),hr=!1,a=Math.sqrt(+l),a==0||a==1/0?(e=al(l.d),(e.length+t)%2==0&&(e+="0"),a=Math.sqrt(e),t=Em((t+1)/2)-(t<0||t%2),a==1/0?e="5e"+t:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new c(e)):r=new c(a.toString()),n=c.precision,a=o=n+3;;)if(s=r,r=s.plus(sc(l,s,o+2)).times(.5),al(s.d).slice(0,o)===(e=al(r.d)).slice(0,o)){if(e=e.slice(o-3,o+1),a==o&&e=="4999"){if(Bn(s,n+1,0),s.times(s).eq(l)){r=s;break}}else if(e!="9999")break;o+=4}return hr=!0,Bn(r,n)};lt.times=lt.mul=function(t){var e,n,r,a,s,o,l,c,u,d=this,f=d.constructor,h=d.d,p=(t=new f(t)).d;if(!d.s||!t.s)return new f(0);for(t.s*=d.s,n=d.e+t.e,c=h.length,u=p.length,c=0;){for(e=0,a=c+r;a>r;)l=s[a]+p[r]*h[a-r-1]+e,s[a--]=l%ga|0,e=l/ga|0;s[a]=(s[a]+e)%ga|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=n,hr?Bn(t,f.precision):t};lt.toDecimalPlaces=lt.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(kl(t,0,Cm),e===void 0?e=r.rounding:kl(e,0,8),Bn(n,t+Gr(n)+1,e))};lt.toExponential=function(t,e){var n,r=this,a=r.constructor;return t===void 0?n=af(r,!0):(kl(t,0,Cm),e===void 0?e=a.rounding:kl(e,0,8),r=Bn(new a(r),t+1,e),n=af(r,!0,t+1)),n};lt.toFixed=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?af(a):(kl(t,0,Cm),e===void 0?e=s.rounding:kl(e,0,8),r=Bn(new s(a),t+Gr(a)+1,e),n=af(r.abs(),!1,t+Gr(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};lt.toInteger=lt.toint=function(){var t=this,e=t.constructor;return Bn(new e(t),Gr(t)+1,e.rounding)};lt.toNumber=function(){return+this};lt.toPower=lt.pow=function(t){var e,n,r,a,s,o,l=this,c=l.constructor,u=12,d=+(t=new c(t));if(!t.s)return new c(ui);if(l=new c(l),!l.s){if(t.s<1)throw Error(Yi+"Infinity");return l}if(l.eq(ui))return l;if(r=c.precision,t.eq(ui))return Bn(l,r);if(e=t.e,n=t.d.length-1,o=e>=n,s=l.s,o){if((n=d<0?-d:d)<=AV){for(a=new c(ui),e=Math.ceil(r/sr+4),hr=!1;n%2&&(a=a.times(l),jI(a.d,e)),n=Em(n/2),n!==0;)l=l.times(l),jI(l.d,e);return hr=!0,t.s<0?new c(ui).div(a):Bn(a,r)}}else if(s<0)throw Error(Yi+"NaN");return s=s<0&&t.d[Math.max(e,n)]&1?-1:1,l.s=1,hr=!1,a=t.times(v0(l,r+u)),hr=!0,a=TV(a),a.s=s,a};lt.toPrecision=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?(n=Gr(a),r=af(a,n<=s.toExpNeg||n>=s.toExpPos)):(kl(t,1,Cm),e===void 0?e=s.rounding:kl(e,0,8),a=Bn(new s(a),t,e),n=Gr(a),r=af(a,t<=n||n<=s.toExpNeg,t)),r};lt.toSignificantDigits=lt.tosd=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(kl(t,1,Cm),e===void 0?e=r.rounding:kl(e,0,8)),Bn(new r(n),t,e)};lt.toString=lt.valueOf=lt.val=lt.toJSON=lt[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Gr(t),n=t.constructor;return af(t,e<=n.toExpNeg||e>=n.toExpPos)};function OV(t,e){var n,r,a,s,o,l,c,u,d=t.constructor,f=d.precision;if(!t.s||!e.s)return e.s||(e=new d(t)),hr?Bn(e,f):e;if(c=t.d,u=e.d,o=t.e,a=e.e,c=c.slice(),s=o-a,s){for(s<0?(r=c,s=-s,l=u.length):(r=u,a=o,l=c.length),o=Math.ceil(f/sr),l=o>l?o+1:l+1,s>l&&(s=l,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(l=c.length,s=u.length,l-s<0&&(s=l,r=u,u=c,c=r),n=0;s;)n=(c[--s]=c[s]+u[s]+n)/ga|0,c[s]%=ga;for(n&&(c.unshift(n),++a),l=c.length;c[--l]==0;)c.pop();return e.d=c,e.e=a,hr?Bn(e,f):e}function kl(t,e,n){if(t!==~~t||tn)throw Error(zd+t)}function al(t){var e,n,r,a=t.length-1,s="",o=t[0];if(a>0){for(s+=o,e=1;eo?1:-1;else for(l=c=0;la[l]?1:-1;break}return c}function n(r,a,s){for(var o=0;s--;)r[s]-=o,o=r[s]1;)r.shift()}return function(r,a,s,o){var l,c,u,d,f,h,p,m,x,y,b,v,w,j,k,_,S,N,E=r.constructor,P=r.s==a.s?1:-1,M=r.d,A=a.d;if(!r.s)return new E(r);if(!a.s)throw Error(Yi+"Division by zero");for(c=r.e-a.e,S=A.length,k=M.length,p=new E(P),m=p.d=[],u=0;A[u]==(M[u]||0);)++u;if(A[u]>(M[u]||0)&&--c,s==null?v=s=E.precision:o?v=s+(Gr(r)-Gr(a))+1:v=s,v<0)return new E(0);if(v=v/sr+2|0,u=0,S==1)for(d=0,A=A[0],v++;(u1&&(A=t(A,d),M=t(M,d),S=A.length,k=M.length),j=S,x=M.slice(0,S),y=x.length;y=ga/2&&++_;do d=0,l=e(A,x,S,y),l<0?(b=x[0],S!=y&&(b=b*ga+(x[1]||0)),d=b/_|0,d>1?(d>=ga&&(d=ga-1),f=t(A,d),h=f.length,y=x.length,l=e(f,x,h,y),l==1&&(d--,n(f,S16)throw Error(eT+Gr(t));if(!t.s)return new d(ui);for(hr=!1,l=f,o=new d(.03125);t.abs().gte(.1);)t=t.times(o),u+=5;for(r=Math.log(md(2,u))/Math.LN10*2+5|0,l+=r,n=a=s=new d(ui),d.precision=l;;){if(a=Bn(a.times(t),l),n=n.times(++c),o=s.plus(sc(a,n,l)),al(o.d).slice(0,l)===al(s.d).slice(0,l)){for(;u--;)s=Bn(s.times(s),l);return d.precision=f,e==null?(hr=!0,Bn(s,f)):s}s=o}}function Gr(t){for(var e=t.e*sr,n=t.d[0];n>=10;n/=10)e++;return e}function RS(t,e,n){if(e>t.LN10.sd())throw hr=!0,n&&(t.precision=n),Error(Yi+"LN10 precision limit exceeded");return Bn(new t(t.LN10),e)}function zc(t){for(var e="";t--;)e+="0";return e}function v0(t,e){var n,r,a,s,o,l,c,u,d,f=1,h=10,p=t,m=p.d,x=p.constructor,y=x.precision;if(p.s<1)throw Error(Yi+(p.s?"NaN":"-Infinity"));if(p.eq(ui))return new x(0);if(e==null?(hr=!1,u=y):u=e,p.eq(10))return e==null&&(hr=!0),RS(x,u);if(u+=h,x.precision=u,n=al(m),r=n.charAt(0),s=Gr(p),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(t),n=al(p.d),r=n.charAt(0),f++;s=Gr(p),r>1?(p=new x("0."+n),s++):p=new x(r+"."+n.slice(1))}else return c=RS(x,u+2,y).times(s+""),p=v0(new x(r+"."+n.slice(1)),u-h).plus(c),x.precision=y,e==null?(hr=!0,Bn(p,y)):p;for(l=o=p=sc(p.minus(ui),p.plus(ui),u),d=Bn(p.times(p),u),a=3;;){if(o=Bn(o.times(d),u),c=l.plus(sc(o,new x(a),u)),al(c.d).slice(0,u)===al(l.d).slice(0,u))return l=l.times(2),s!==0&&(l=l.plus(RS(x,u+2,y).times(s+""))),l=sc(l,new x(f),u),x.precision=y,e==null?(hr=!0,Bn(l,y)):l;l=c,a+=2}}function kI(t,e){var n,r,a;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;)++r;for(a=e.length;e.charCodeAt(a-1)===48;)--a;if(e=e.slice(r,a),e){if(a-=r,n=n-r-1,t.e=Em(n/sr),t.d=[],r=(n+1)%sr,n<0&&(r+=sr),rbw||t.e<-bw))throw Error(eT+n)}else t.s=0,t.e=0,t.d=[0];return t}function Bn(t,e,n){var r,a,s,o,l,c,u,d,f=t.d;for(o=1,s=f[0];s>=10;s/=10)o++;if(r=e-o,r<0)r+=sr,a=e,u=f[d=0];else{if(d=Math.ceil((r+1)/sr),s=f.length,d>=s)return t;for(u=s=f[d],o=1;s>=10;s/=10)o++;r%=sr,a=r-sr+o}if(n!==void 0&&(s=md(10,o-a-1),l=u/s%10|0,c=e<0||f[d+1]!==void 0||u%s,c=n<4?(l||c)&&(n==0||n==(t.s<0?3:2)):l>5||l==5&&(n==4||c||n==6&&(r>0?a>0?u/md(10,o-a):0:f[d-1])%10&1||n==(t.s<0?8:7))),e<1||!f[0])return c?(s=Gr(t),f.length=1,e=e-s-1,f[0]=md(10,(sr-e%sr)%sr),t.e=Em(-e/sr)||0):(f.length=1,f[0]=t.e=t.s=0),t;if(r==0?(f.length=d,s=1,d--):(f.length=d+1,s=md(10,sr-r),f[d]=a>0?(u/md(10,o-a)%md(10,a)|0)*s:0),c)for(;;)if(d==0){(f[0]+=s)==ga&&(f[0]=1,++t.e);break}else{if(f[d]+=s,f[d]!=ga)break;f[d--]=0,s=1}for(r=f.length;f[--r]===0;)f.pop();if(hr&&(t.e>bw||t.e<-bw))throw Error(eT+Gr(t));return t}function PV(t,e){var n,r,a,s,o,l,c,u,d,f,h=t.constructor,p=h.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new h(t),hr?Bn(e,p):e;if(c=t.d,f=e.d,r=e.e,u=t.e,c=c.slice(),o=u-r,o){for(d=o<0,d?(n=c,o=-o,l=f.length):(n=f,r=u,l=c.length),a=Math.max(Math.ceil(p/sr),l)+2,o>a&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for(a=c.length,l=f.length,d=a0;--a)c[l++]=0;for(a=f.length;a>o;){if(c[--a]0?s=s.charAt(0)+"."+s.slice(1)+zc(r):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+zc(-a-1)+s,n&&(r=n-o)>0&&(s+=zc(r))):a>=o?(s+=zc(a+1-o),n&&(r=n-a-1)>0&&(s=s+"."+zc(r))):((r=a+1)0&&(a+1===o&&(s+="."),s+=zc(r))),t.s<0?"-"+s:s}function jI(t,e){if(t.length>e)return t.length=e,!0}function MV(t){var e,n,r;function a(s){var o=this;if(!(o instanceof a))return new a(s);if(o.constructor=a,s instanceof a){o.s=s.s,o.e=s.e,o.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(zd+s);if(s>0)o.s=1;else if(s<0)s=-s,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(s===~~s&&s<1e7){o.e=0,o.d=[s];return}return kI(o,s.toString())}else if(typeof s!="string")throw Error(zd+s);if(s.charCodeAt(0)===45?(s=s.slice(1),o.s=-1):o.s=1,eve.test(s))kI(o,s);else throw Error(zd+s)}if(a.prototype=lt,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=MV,a.config=a.set=tve,t===void 0&&(t={}),t)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=a[e+1]&&r<=a[e+2])this[n]=r;else throw Error(zd+n+": "+r);if((r=t[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(zd+n+": "+r);return this}var tT=MV(Qye);ui=new tT(1);const Mn=tT;function nve(t){return ive(t)||sve(t)||ave(t)||rve()}function rve(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ave(t,e){if(t){if(typeof t=="string")return kE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return kE(t,e)}}function sve(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function ive(t){if(Array.isArray(t))return kE(t)}function kE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,a):t(e-o,SI(function(){for(var l=arguments.length,c=new Array(l),u=0;ut.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,a=!1,s=void 0;try{for(var o=t[Symbol.iterator](),l;!(r=(l=o.next()).done)&&(n.push(l.value),!(e&&n.length===e));r=!0);}catch(c){a=!0,s=c}finally{try{!r&&o.return!=null&&o.return()}finally{if(a)throw s}}return n}}function wve(t){if(Array.isArray(t))return t}function LV(t){var e=b0(t,2),n=e[0],r=e[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function FV(t,e,n){if(t.lte(0))return new Mn(0);var r=Pj.getDigitCount(t.toNumber()),a=new Mn(10).pow(r),s=t.div(a),o=r!==1?.05:.1,l=new Mn(Math.ceil(s.div(o).toNumber())).add(n).mul(o),c=l.mul(a);return e?c:new Mn(Math.ceil(c))}function kve(t,e,n){var r=1,a=new Mn(t);if(!a.isint()&&n){var s=Math.abs(t);s<1?(r=new Mn(10).pow(Pj.getDigitCount(t)-1),a=new Mn(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Mn(Math.floor(t)))}else t===0?a=new Mn(Math.floor((e-1)/2)):n||(a=new Mn(Math.floor(t)));var o=Math.floor((e-1)/2),l=uve(cve(function(c){return a.add(new Mn(c-o).mul(r)).toNumber()}),jE);return l(0,e)}function BV(t,e,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new Mn(0),tickMin:new Mn(0),tickMax:new Mn(0)};var s=FV(new Mn(e).sub(t).div(n-1),r,a),o;t<=0&&e>=0?o=new Mn(0):(o=new Mn(t).add(e).div(2),o=o.sub(new Mn(o).mod(s)));var l=Math.ceil(o.sub(t).div(s).toNumber()),c=Math.ceil(new Mn(e).sub(o).div(s).toNumber()),u=l+c+1;return u>n?BV(t,e,n,r,a+1):(u0?c+(n-u):c,l=e>0?l:l+(n-u)),{step:s,tickMin:o.sub(new Mn(l).mul(s)),tickMax:o.add(new Mn(c).mul(s))})}function jve(t){var e=b0(t,2),n=e[0],r=e[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(a,2),l=LV([n,r]),c=b0(l,2),u=c[0],d=c[1];if(u===-1/0||d===1/0){var f=d===1/0?[u].concat(_E(jE(0,a-1).map(function(){return 1/0}))):[].concat(_E(jE(0,a-1).map(function(){return-1/0})),[d]);return n>r?SE(f):f}if(u===d)return kve(u,a,s);var h=BV(u,d,o,s),p=h.step,m=h.tickMin,x=h.tickMax,y=Pj.rangeStep(m,x.add(new Mn(.1).mul(p)),p);return n>r?SE(y):y}function Sve(t,e){var n=b0(t,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=LV([r,a]),l=b0(o,2),c=l[0],u=l[1];if(c===-1/0||u===1/0)return[r,a];if(c===u)return[c];var d=Math.max(e,2),f=FV(new Mn(u).sub(c).div(d-1),s,0),h=[].concat(_E(Pj.rangeStep(new Mn(c),new Mn(u).sub(new Mn(.99).mul(f)),f)),[u]);return r>a?SE(h):h}var _ve=IV(jve),Nve=IV(Sve),Cve="Invariant failed";function sf(t,e){throw new Error(Cve)}var Eve=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Cp(t){"@babel/helpers - typeof";return Cp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Cp(t)}function ww(){return ww=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Dve(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ive(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function $ve(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,o=-1,l=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(l<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var c=s.range,u=0;u0?a[u-1].coordinate:a[l-1].coordinate,f=a[u].coordinate,h=u>=l-1?a[0].coordinate:a[u+1].coordinate,p=void 0;if(wo(f-d)!==wo(h-f)){var m=[];if(wo(h-f)===wo(c[1]-c[0])){p=h;var x=f+c[1]-c[0];m[0]=Math.min(x,(x+d)/2),m[1]=Math.max(x,(x+d)/2)}else{p=d;var y=h+c[1]-c[0];m[0]=Math.min(f,(y+f)/2),m[1]=Math.max(f,(y+f)/2)}var b=[Math.min(f,(p+f)/2),Math.max(f,(p+f)/2)];if(e>b[0]&&e<=b[1]||e>=m[0]&&e<=m[1]){o=a[u].index;break}}else{var v=Math.min(d,h),w=Math.max(d,h);if(e>(v+f)/2&&e<=(w+f)/2){o=a[u].index;break}}}else for(var j=0;j0&&j(r[j].coordinate+r[j-1].coordinate)/2&&e<=(r[j].coordinate+r[j+1].coordinate)/2||j===l-1&&e>(r[j].coordinate+r[j-1].coordinate)/2){o=r[j].index;break}return o},nT=function(e){var n,r=e,a=r.type.displayName,s=(n=e.type)!==null&&n!==void 0&&n.defaultProps?Nr(Nr({},e.type.defaultProps),e.props):e.props,o=s.stroke,l=s.fill,c;switch(a){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:l;break;default:c=l;break}return c},ebe=function(e){var n=e.barSize,r=e.totalSize,a=e.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var o={},l=Object.keys(s),c=0,u=l.length;c=0});if(b&&b.length){var v=b[0].type.defaultProps,w=v!==void 0?Nr(Nr({},v),b[0].props):b[0].props,j=w.barSize,k=w[y];o[k]||(o[k]=[]);var _=Pt(j)?n:j;o[k].push({item:b[0],stackList:b.slice(1),barSize:Pt(_)?void 0:nf(_,r,0)})}}return o},tbe=function(e){var n=e.barGap,r=e.barCategoryGap,a=e.bandSize,s=e.sizeList,o=s===void 0?[]:s,l=e.maxBarSize,c=o.length;if(c<1)return null;var u=nf(n,a,0,!0),d,f=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=a/c,m=o.reduce(function(j,k){return j+k.barSize||0},0);m+=(c-1)*u,m>=a&&(m-=(c-1)*u,u=0),m>=a&&p>0&&(h=!0,p*=.9,m=c*p);var x=(a-m)/2>>0,y={offset:x-u,size:0};d=o.reduce(function(j,k){var _={item:k.item,position:{offset:y.offset+y.size+u,size:h?p:k.barSize}},S=[].concat(CI(j),[_]);return y=S[S.length-1].position,k.stackList&&k.stackList.length&&k.stackList.forEach(function(N){S.push({item:N,position:y})}),S},f)}else{var b=nf(r,a,0,!0);a-2*b-(c-1)*u<=0&&(u=0);var v=(a-2*b-(c-1)*u)/c;v>1&&(v>>=0);var w=l===+l?Math.min(v,l):v;d=o.reduce(function(j,k,_){var S=[].concat(CI(j),[{item:k.item,position:{offset:b+(v+u)*_+(v-w)/2,size:w}}]);return k.stackList&&k.stackList.length&&k.stackList.forEach(function(N){S.push({item:N,position:S[S.length-1].position})}),S},f)}return d},nbe=function(e,n,r,a){var s=r.children,o=r.width,l=r.margin,c=o-(l.left||0)-(l.right||0),u=WV({children:s,legendWidth:c});if(u){var d=a||{},f=d.width,h=d.height,p=u.align,m=u.verticalAlign,x=u.layout;if((x==="vertical"||x==="horizontal"&&m==="middle")&&p!=="center"&&Ue(e[p]))return Nr(Nr({},e),{},Kh({},p,e[p]+(f||0)));if((x==="horizontal"||x==="vertical"&&p==="center")&&m!=="middle"&&Ue(e[m]))return Nr(Nr({},e),{},Kh({},m,e[m]+(h||0)))}return e},rbe=function(e,n,r){return Pt(n)?!0:e==="horizontal"?n==="yAxis":e==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},HV=function(e,n,r,a,s){var o=n.props.children,l=Gs(o,Am).filter(function(u){return rbe(a,s,u.props.direction)});if(l&&l.length){var c=l.map(function(u){return u.props.dataKey});return e.reduce(function(u,d){var f=oa(d,r);if(Pt(f))return u;var h=Array.isArray(f)?[Oj(f),tu(f)]:[f,f],p=c.reduce(function(m,x){var y=oa(d,x,0),b=h[0]-Math.abs(Array.isArray(y)?y[0]:y),v=h[1]+Math.abs(Array.isArray(y)?y[1]:y);return[Math.min(b,m[0]),Math.max(v,m[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},abe=function(e,n,r,a,s){var o=n.map(function(l){return HV(e,l,r,s,a)}).filter(function(l){return!Pt(l)});return o&&o.length?o.reduce(function(l,c){return[Math.min(l[0],c[0]),Math.max(l[1],c[1])]},[1/0,-1/0]):null},GV=function(e,n,r,a,s){var o=n.map(function(c){var u=c.props.dataKey;return r==="number"&&u&&HV(e,c,u,a)||kx(e,u,r,s)});if(r==="number")return o.reduce(function(c,u){return[Math.min(c[0],u[0]),Math.max(c[1],u[1])]},[1/0,-1/0]);var l={};return o.reduce(function(c,u){for(var d=0,f=u.length;d=2?wo(l[0]-l[1])*2*u:u,n&&(e.ticks||e.niceTicks)){var d=(e.ticks||e.niceTicks).map(function(f){var h=s?s.indexOf(f):f;return{coordinate:a(h)+u,value:f,offset:u}});return d.filter(function(f){return!km(f.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(f,h){return{coordinate:a(f)+u,value:f,index:h,offset:u}}):a.ticks&&!r?a.ticks(e.tickCount).map(function(f){return{coordinate:a(f)+u,value:f,offset:u}}):a.domain().map(function(f,h){return{coordinate:a(f)+u,value:s?s[f]:f,index:h,offset:u}})},DS=new WeakMap,qv=function(e,n){if(typeof n!="function")return e;DS.has(e)||DS.set(e,new WeakMap);var r=DS.get(e);if(r.has(n))return r.get(n);var a=function(){e.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},sbe=function(e,n,r){var a=e.scale,s=e.type,o=e.layout,l=e.axisType;if(a==="auto")return o==="radial"&&l==="radiusAxis"?{scale:p0(),realScaleType:"band"}:o==="radial"&&l==="angleAxis"?{scale:gw(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:wx(),realScaleType:"point"}:s==="category"?{scale:p0(),realScaleType:"band"}:{scale:gw(),realScaleType:"linear"};if(tf(a)){var c="scale".concat(gj(a));return{scale:(wI[c]||wx)(),realScaleType:wI[c]?c:"point"}}return Rt(a)?{scale:a}:{scale:wx(),realScaleType:"point"}},AI=1e-4,ibe=function(e){var n=e.domain();if(!(!n||n.length<=2)){var r=n.length,a=e.range(),s=Math.min(a[0],a[1])-AI,o=Math.max(a[0],a[1])+AI,l=e(n[0]),c=e(n[r-1]);(lo||co)&&e.domain([n[0],n[r-1]])}},obe=function(e,n){if(!e)return null;for(var r=0,a=e.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(e[l][r][0]=s,e[l][r][1]=s+c,s=e[l][r][1]):(e[l][r][0]=o,e[l][r][1]=o+c,o=e[l][r][1])}},ube=function(e){var n=e.length;if(!(n<=0))for(var r=0,a=e[0].length;r=0?(e[o][r][0]=s,e[o][r][1]=s+l,s=e[o][r][1]):(e[o][r][0]=0,e[o][r][1]=0)}},dbe={sign:cbe,expand:Noe,none:vp,silhouette:Coe,wiggle:Eoe,positive:ube},fbe=function(e,n,r){var a=n.map(function(l){return l.props.dataKey}),s=dbe[r],o=_oe().keys(a).value(function(l,c){return+oa(l,c,0)}).order(QC).offset(s);return o(e)},hbe=function(e,n,r,a,s,o){if(!e)return null;var l=o?n.reverse():n,c={},u=l.reduce(function(f,h){var p,m=(p=h.type)!==null&&p!==void 0&&p.defaultProps?Nr(Nr({},h.type.defaultProps),h.props):h.props,x=m.stackId,y=m.hide;if(y)return f;var b=m[r],v=f[b]||{hasStack:!1,stackGroups:{}};if(sa(x)){var w=v.stackGroups[x]||{numericAxisId:r,cateAxisId:a,items:[]};w.items.push(h),v.hasStack=!0,v.stackGroups[x]=w}else v.stackGroups[Sf("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[h]};return Nr(Nr({},f),{},Kh({},b,v))},c),d={};return Object.keys(u).reduce(function(f,h){var p=u[h];if(p.hasStack){var m={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(x,y){var b=p.stackGroups[y];return Nr(Nr({},x),{},Kh({},y,{numericAxisId:r,cateAxisId:a,items:b.items,stackedData:fbe(e,b.items,s)}))},m)}return Nr(Nr({},f),{},Kh({},h,p))},d)},pbe=function(e,n){var r=n.realScaleType,a=n.type,s=n.tickCount,o=n.originalDomain,l=n.allowDecimals,c=r||n.scale;if(c!=="auto"&&c!=="linear")return null;if(s&&a==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=e.domain();if(!u.length)return null;var d=_ve(u,s,l);return e.domain([Oj(d),tu(d)]),{niceTicks:d}}if(s&&a==="number"){var f=e.domain(),h=Nve(f,s,l);return{niceTicks:h}}return null};function Ep(t){var e=t.axis,n=t.ticks,r=t.bandSize,a=t.entry,s=t.index,o=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!Pt(a[e.dataKey])){var l=q1(n,"value",a[e.dataKey]);if(l)return l.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var c=oa(a,Pt(o)?e.dataKey:o);return Pt(c)?null:e.scale(c)}var OI=function(e){var n=e.axis,r=e.ticks,a=e.offset,s=e.bandSize,o=e.entry,l=e.index;if(n.type==="category")return r[l]?r[l].coordinate+a:null;var c=oa(o,n.dataKey,n.domain[l]);return Pt(c)?null:n.scale(c)-s/2+a},mbe=function(e){var n=e.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},gbe=function(e,n){var r,a=(r=e.type)!==null&&r!==void 0&&r.defaultProps?Nr(Nr({},e.type.defaultProps),e.props):e.props,s=a.stackId;if(sa(s)){var o=n[s];if(o){var l=o.items.indexOf(e);return l>=0?o.stackedData[l]:null}}return null},xbe=function(e){return e.reduce(function(n,r){return[Oj(r.concat([n[0]]).filter(Ue)),tu(r.concat([n[1]]).filter(Ue))]},[1/0,-1/0])},YV=function(e,n,r){return Object.keys(e).reduce(function(a,s){var o=e[s],l=o.stackedData,c=l.reduce(function(u,d){var f=xbe(d.slice(n,r+1));return[Math.min(u[0],f[0]),Math.max(u[1],f[1])]},[1/0,-1/0]);return[Math.min(c[0],a[0]),Math.max(c[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},TI=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,PI=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,AE=function(e,n,r){if(Rt(e))return e(n,r);if(!Array.isArray(e))return n;var a=[];if(Ue(e[0]))a[0]=r?e[0]:Math.min(e[0],n[0]);else if(TI.test(e[0])){var s=+TI.exec(e[0])[1];a[0]=n[0]-s}else Rt(e[0])?a[0]=e[0](n[0]):a[0]=n[0];if(Ue(e[1]))a[1]=r?e[1]:Math.max(e[1],n[1]);else if(PI.test(e[1])){var o=+PI.exec(e[1])[1];a[1]=n[1]+o}else Rt(e[1])?a[1]=e[1](n[1]):a[1]=n[1];return a},jw=function(e,n,r){if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!r||a>0)return a}if(e&&n&&n.length>=2){for(var s=O3(n,function(f){return f.coordinate}),o=1/0,l=1,c=s.length;lo&&(u=2*Math.PI-u),{radius:l,angle:wbe(u),angleInRadian:u}},Sbe=function(e){var n=e.startAngle,r=e.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),o=Math.min(a,s);return{startAngle:n-o*360,endAngle:r-o*360}},_be=function(e,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),o=Math.floor(a/360),l=Math.min(s,o);return e+l*360},II=function(e,n){var r=e.x,a=e.y,s=jbe({x:r,y:a},n),o=s.radius,l=s.angle,c=n.innerRadius,u=n.outerRadius;if(ou)return!1;if(o===0)return!0;var d=Sbe(n),f=d.startAngle,h=d.endAngle,p=l,m;if(f<=h){for(;p>h;)p-=360;for(;p=f&&p<=h}else{for(;p>f;)p-=360;for(;p=h&&p<=f}return m?DI(DI({},n),{},{radius:o,angle:_be(p,n)}):null};function S0(t){"@babel/helpers - typeof";return S0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S0(t)}var Nbe=["offset"];function Cbe(t){return Tbe(t)||Obe(t)||Abe(t)||Ebe()}function Ebe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Abe(t,e){if(t){if(typeof t=="string")return OE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return OE(t,e)}}function Obe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Tbe(t){if(Array.isArray(t))return OE(t)}function OE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Mbe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function $I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function ea(t){for(var e=1;e=0?1:-1,w,j;a==="insideStart"?(w=p+v*o,j=x):a==="insideEnd"?(w=m-v*o,j=!x):a==="end"&&(w=m+v*o,j=x),j=b<=0?j:!j;var k=Da(u,d,y,w),_=Da(u,d,y,w+(j?1:-1)*359),S="M".concat(k.x,",").concat(k.y,` + A`).concat(y,",").concat(y,",0,1,").concat(j?0:1,`, + `).concat(_.x,",").concat(_.y),N=Pt(e.id)?Sf("recharts-radial-line-"):e.id;return J.createElement("text",_0({},r,{dominantBaseline:"central",className:Zt("recharts-radial-bar-label",l)}),J.createElement("defs",null,J.createElement("path",{id:N,d:S})),J.createElement("textPath",{xlinkHref:"#".concat(N)},n))},Bbe=function(e){var n=e.viewBox,r=e.offset,a=e.position,s=n,o=s.cx,l=s.cy,c=s.innerRadius,u=s.outerRadius,d=s.startAngle,f=s.endAngle,h=(d+f)/2;if(a==="outside"){var p=Da(o,l,u+r,h),m=p.x,x=p.y;return{x:m,y:x,textAnchor:m>=o?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"end"};var y=(c+u)/2,b=Da(o,l,y,h),v=b.x,w=b.y;return{x:v,y:w,textAnchor:"middle",verticalAnchor:"middle"}},zbe=function(e){var n=e.viewBox,r=e.parentViewBox,a=e.offset,s=e.position,o=n,l=o.x,c=o.y,u=o.width,d=o.height,f=d>=0?1:-1,h=f*a,p=f>0?"end":"start",m=f>0?"start":"end",x=u>=0?1:-1,y=x*a,b=x>0?"end":"start",v=x>0?"start":"end";if(s==="top"){var w={x:l+u/2,y:c-f*a,textAnchor:"middle",verticalAnchor:p};return ea(ea({},w),r?{height:Math.max(c-r.y,0),width:u}:{})}if(s==="bottom"){var j={x:l+u/2,y:c+d+h,textAnchor:"middle",verticalAnchor:m};return ea(ea({},j),r?{height:Math.max(r.y+r.height-(c+d),0),width:u}:{})}if(s==="left"){var k={x:l-y,y:c+d/2,textAnchor:b,verticalAnchor:"middle"};return ea(ea({},k),r?{width:Math.max(k.x-r.x,0),height:d}:{})}if(s==="right"){var _={x:l+u+y,y:c+d/2,textAnchor:v,verticalAnchor:"middle"};return ea(ea({},_),r?{width:Math.max(r.x+r.width-_.x,0),height:d}:{})}var S=r?{width:u,height:d}:{};return s==="insideLeft"?ea({x:l+y,y:c+d/2,textAnchor:v,verticalAnchor:"middle"},S):s==="insideRight"?ea({x:l+u-y,y:c+d/2,textAnchor:b,verticalAnchor:"middle"},S):s==="insideTop"?ea({x:l+u/2,y:c+h,textAnchor:"middle",verticalAnchor:m},S):s==="insideBottom"?ea({x:l+u/2,y:c+d-h,textAnchor:"middle",verticalAnchor:p},S):s==="insideTopLeft"?ea({x:l+y,y:c+h,textAnchor:v,verticalAnchor:m},S):s==="insideTopRight"?ea({x:l+u-y,y:c+h,textAnchor:b,verticalAnchor:m},S):s==="insideBottomLeft"?ea({x:l+y,y:c+d-h,textAnchor:v,verticalAnchor:p},S):s==="insideBottomRight"?ea({x:l+u-y,y:c+d-h,textAnchor:b,verticalAnchor:p},S):ym(s)&&(Ue(s.x)||Sd(s.x))&&(Ue(s.y)||Sd(s.y))?ea({x:l+nf(s.x,u),y:c+nf(s.y,d),textAnchor:"end",verticalAnchor:"end"},S):ea({x:l+u/2,y:c+d/2,textAnchor:"middle",verticalAnchor:"middle"},S)},Ube=function(e){return"cx"in e&&Ue(e.cx)};function Ja(t){var e=t.offset,n=e===void 0?5:e,r=Pbe(t,Nbe),a=ea({offset:n},r),s=a.viewBox,o=a.position,l=a.value,c=a.children,u=a.content,d=a.className,f=d===void 0?"":d,h=a.textBreakAll;if(!s||Pt(l)&&Pt(c)&&!g.isValidElement(u)&&!Rt(u))return null;if(g.isValidElement(u))return g.cloneElement(u,a);var p;if(Rt(u)){if(p=g.createElement(u,a),g.isValidElement(p))return p}else p=$be(a);var m=Ube(s),x=It(a,!0);if(m&&(o==="insideStart"||o==="insideEnd"||o==="end"))return Fbe(a,p,x);var y=m?Bbe(a):zbe(a);return J.createElement(lw,_0({className:Zt("recharts-label",f)},x,y,{breakAll:h}),p)}Ja.displayName="Label";var JV=function(e){var n=e.cx,r=e.cy,a=e.angle,s=e.startAngle,o=e.endAngle,l=e.r,c=e.radius,u=e.innerRadius,d=e.outerRadius,f=e.x,h=e.y,p=e.top,m=e.left,x=e.width,y=e.height,b=e.clockWise,v=e.labelViewBox;if(v)return v;if(Ue(x)&&Ue(y)){if(Ue(f)&&Ue(h))return{x:f,y:h,width:x,height:y};if(Ue(p)&&Ue(m))return{x:p,y:m,width:x,height:y}}return Ue(f)&&Ue(h)?{x:f,y:h,width:0,height:0}:Ue(n)&&Ue(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:o||a||0,innerRadius:u||0,outerRadius:d||c||l||0,clockWise:b}:e.viewBox?e.viewBox:{}},Vbe=function(e,n){return e?e===!0?J.createElement(Ja,{key:"label-implicit",viewBox:n}):sa(e)?J.createElement(Ja,{key:"label-implicit",viewBox:n,value:e}):g.isValidElement(e)?e.type===Ja?g.cloneElement(e,{key:"label-implicit",viewBox:n}):J.createElement(Ja,{key:"label-implicit",content:e,viewBox:n}):Rt(e)?J.createElement(Ja,{key:"label-implicit",content:e,viewBox:n}):ym(e)?J.createElement(Ja,_0({viewBox:n},e,{key:"label-implicit"})):null:null},Wbe=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var a=e.children,s=JV(e),o=Gs(a,Ja).map(function(c,u){return g.cloneElement(c,{viewBox:n||s,key:"label-".concat(u)})});if(!r)return o;var l=Vbe(e.label,n||s);return[l].concat(Cbe(o))};Ja.parseViewBox=JV;Ja.renderCallByParent=Wbe;function Hbe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var Gbe=Hbe;const qbe=Rn(Gbe);function N0(t){"@babel/helpers - typeof";return N0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N0(t)}var Kbe=["valueAccessor"],Ybe=["data","dataKey","clockWise","id","textBreakAll"];function Xbe(t){return e1e(t)||Qbe(t)||Zbe(t)||Jbe()}function Jbe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zbe(t,e){if(t){if(typeof t=="string")return TE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return TE(t,e)}}function Qbe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function e1e(t){if(Array.isArray(t))return TE(t)}function TE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function a1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var s1e=function(e){return Array.isArray(e.value)?qbe(e.value):e.value};function xl(t){var e=t.valueAccessor,n=e===void 0?s1e:e,r=BI(t,Kbe),a=r.data,s=r.dataKey,o=r.clockWise,l=r.id,c=r.textBreakAll,u=BI(r,Ybe);return!a||!a.length?null:J.createElement(pn,{className:"recharts-label-list"},a.map(function(d,f){var h=Pt(s)?n(d,f):oa(d&&d.payload,s),p=Pt(l)?{}:{id:"".concat(l,"-").concat(f)};return J.createElement(Ja,_w({},It(d,!0),u,p,{parentViewBox:d.parentViewBox,value:h,textBreakAll:c,viewBox:Ja.parseViewBox(Pt(o)?d:FI(FI({},d),{},{clockWise:o})),key:"label-".concat(f),index:f}))}))}xl.displayName="LabelList";function i1e(t,e){return t?t===!0?J.createElement(xl,{key:"labelList-implicit",data:e}):J.isValidElement(t)||Rt(t)?J.createElement(xl,{key:"labelList-implicit",data:e,content:t}):ym(t)?J.createElement(xl,_w({data:e},t,{key:"labelList-implicit"})):null:null}function o1e(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var r=t.children,a=Gs(r,xl).map(function(o,l){return g.cloneElement(o,{data:e,key:"labelList-".concat(l)})});if(!n)return a;var s=i1e(t.label,e);return[s].concat(Xbe(a))}xl.renderCallByParent=o1e;var l1e=["component"];function PE(t){"@babel/helpers - typeof";return PE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},PE(t)}function c1e(t,e){if(t==null)return{};var n=u1e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function u1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Nw(t){var e=t.component,n=c1e(t,l1e),r;return g.isValidElement(e)?r=g.cloneElement(e,n):Rt(e)?r=g.createElement(e,n):pl(!1,"Customized's props `component` must be React.element or Function, but got %s.",PE(e)),J.createElement(pn,{className:"recharts-customized-wrapper"},r)}Nw.displayName="Customized";function C0(t){"@babel/helpers - typeof";return C0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C0(t)}function ME(){return ME=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(o>u),`, + `).concat(f.x,",").concat(f.y,` + `);if(a>0){var p=Da(n,r,a,o),m=Da(n,r,a,u);h+="L ".concat(m.x,",").concat(m.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(c)>180),",").concat(+(o<=u),`, + `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(n,",").concat(r," Z");return h},m1e=function(e){var n=e.cx,r=e.cy,a=e.innerRadius,s=e.outerRadius,o=e.cornerRadius,l=e.forceCornerRadius,c=e.cornerIsExternal,u=e.startAngle,d=e.endAngle,f=wo(d-u),h=Kv({cx:n,cy:r,radius:s,angle:u,sign:f,cornerRadius:o,cornerIsExternal:c}),p=h.circleTangency,m=h.lineTangency,x=h.theta,y=Kv({cx:n,cy:r,radius:s,angle:d,sign:-f,cornerRadius:o,cornerIsExternal:c}),b=y.circleTangency,v=y.lineTangency,w=y.theta,j=c?Math.abs(u-d):Math.abs(u-d)-x-w;if(j<0)return l?"M ".concat(m.x,",").concat(m.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):ZV({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:u,endAngle:d});var k="M ".concat(m.x,",").concat(m.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,` + A`).concat(s,",").concat(s,",0,").concat(+(j>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(v.x,",").concat(v.y,` + `);if(a>0){var _=Kv({cx:n,cy:r,radius:a,angle:u,sign:f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),S=_.circleTangency,N=_.lineTangency,E=_.theta,P=Kv({cx:n,cy:r,radius:a,angle:d,sign:-f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),M=P.circleTangency,A=P.lineTangency,O=P.theta,D=c?Math.abs(u-d):Math.abs(u-d)-E-O;if(D<0&&o===0)return"".concat(k,"L").concat(n,",").concat(r,"Z");k+="L".concat(A.x,",").concat(A.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(M.x,",").concat(M.y,` + A`).concat(a,",").concat(a,",0,").concat(+(D>180),",").concat(+(f>0),",").concat(S.x,",").concat(S.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(N.x,",").concat(N.y,"Z")}else k+="L".concat(n,",").concat(r,"Z");return k},g1e={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},QV=function(e){var n=UI(UI({},g1e),e),r=n.cx,a=n.cy,s=n.innerRadius,o=n.outerRadius,l=n.cornerRadius,c=n.forceCornerRadius,u=n.cornerIsExternal,d=n.startAngle,f=n.endAngle,h=n.className;if(o0&&Math.abs(d-f)<360?y=m1e({cx:r,cy:a,innerRadius:s,outerRadius:o,cornerRadius:Math.min(x,m/2),forceCornerRadius:c,cornerIsExternal:u,startAngle:d,endAngle:f}):y=ZV({cx:r,cy:a,innerRadius:s,outerRadius:o,startAngle:d,endAngle:f}),J.createElement("path",ME({},It(n,!0),{className:p,d:y,role:"img"}))};function E0(t){"@babel/helpers - typeof";return E0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E0(t)}function RE(){return RE=Object.assign?Object.assign.bind():function(t){for(var e=1;eA1e.call(t,e));function Cf(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const P1e="__v",M1e="__o",R1e="_owner",{getOwnPropertyDescriptor:qI,keys:KI}=Object;function D1e(t,e){return t.byteLength===e.byteLength&&Cw(new Uint8Array(t),new Uint8Array(e))}function I1e(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function $1e(t,e){return t.byteLength===e.byteLength&&Cw(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function L1e(t,e){return Cf(t.getTime(),e.getTime())}function F1e(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function B1e(t,e){return t===e}function YI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.entries();let o,l,c=0;for(;(o=s.next())&&!o.done;){const u=e.entries();let d=!1,f=0;for(;(l=u.next())&&!l.done;){if(a[f]){f++;continue}const h=o.value,p=l.value;if(n.equals(h[0],p[0],c,f,t,e,n)&&n.equals(h[1],p[1],h[0],p[0],t,e,n)){d=a[f]=!0;break}f++}if(!d)return!1;c++}return!0}const z1e=Cf;function U1e(t,e,n){const r=KI(t);let a=r.length;if(KI(e).length!==a)return!1;for(;a-- >0;)if(!rW(t,e,n,r[a]))return!1;return!0}function vg(t,e,n){const r=GI(t);let a=r.length;if(GI(e).length!==a)return!1;let s,o,l;for(;a-- >0;)if(s=r[a],!rW(t,e,n,s)||(o=qI(t,s),l=qI(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function V1e(t,e){return Cf(t.valueOf(),e.valueOf())}function W1e(t,e){return t.source===e.source&&t.flags===e.flags}function XI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const c=e.values();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(!a[d]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function Cw(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function H1e(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function rW(t,e,n,r){return(r===R1e||r===M1e||r===P1e)&&(t.$$typeof||e.$$typeof)?!0:T1e(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const G1e="[object ArrayBuffer]",q1e="[object Arguments]",K1e="[object Boolean]",Y1e="[object DataView]",X1e="[object Date]",J1e="[object Error]",Z1e="[object Map]",Q1e="[object Number]",ewe="[object Object]",twe="[object RegExp]",nwe="[object Set]",rwe="[object String]",awe={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},swe="[object URL]",iwe=Object.prototype.toString;function owe({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:a,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:c,arePrimitiveWrappersEqual:u,areRegExpsEqual:d,areSetsEqual:f,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:m}){return function(y,b,v){if(y===b)return!0;if(y==null||b==null)return!1;const w=typeof y;if(w!==typeof b)return!1;if(w!=="object")return w==="number"?l(y,b,v):w==="function"?s(y,b,v):!1;const j=y.constructor;if(j!==b.constructor)return!1;if(j===Object)return c(y,b,v);if(Array.isArray(y))return e(y,b,v);if(j===Date)return r(y,b,v);if(j===RegExp)return d(y,b,v);if(j===Map)return o(y,b,v);if(j===Set)return f(y,b,v);const k=iwe.call(y);if(k===X1e)return r(y,b,v);if(k===twe)return d(y,b,v);if(k===Z1e)return o(y,b,v);if(k===nwe)return f(y,b,v);if(k===ewe)return typeof y.then!="function"&&typeof b.then!="function"&&c(y,b,v);if(k===swe)return p(y,b,v);if(k===J1e)return a(y,b,v);if(k===q1e)return c(y,b,v);if(awe[k])return h(y,b,v);if(k===G1e)return t(y,b,v);if(k===Y1e)return n(y,b,v);if(k===K1e||k===Q1e||k===rwe)return u(y,b,v);if(m){let _=m[k];if(!_){const S=O1e(y);S&&(_=m[S])}if(_)return _(y,b,v)}return!1}}function lwe({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:D1e,areArraysEqual:n?vg:I1e,areDataViewsEqual:$1e,areDatesEqual:L1e,areErrorsEqual:F1e,areFunctionsEqual:B1e,areMapsEqual:n?IS(YI,vg):YI,areNumbersEqual:z1e,areObjectsEqual:n?vg:U1e,arePrimitiveWrappersEqual:V1e,areRegExpsEqual:W1e,areSetsEqual:n?IS(XI,vg):XI,areTypedArraysEqual:n?IS(Cw,vg):Cw,areUrlsEqual:H1e,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const a=Xv(r.areArraysEqual),s=Xv(r.areMapsEqual),o=Xv(r.areObjectsEqual),l=Xv(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:a,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function cwe(t){return function(e,n,r,a,s,o,l){return t(e,n,l)}}function uwe({circular:t,comparator:e,createState:n,equals:r,strict:a}){if(n)return function(l,c){const{cache:u=t?new WeakMap:void 0,meta:d}=n();return e(l,c,{cache:u,equals:r,meta:d,strict:a})};if(t)return function(l,c){return e(l,c,{cache:new WeakMap,equals:r,meta:void 0,strict:a})};const s={cache:void 0,equals:r,meta:void 0,strict:a};return function(l,c){return e(l,c,s)}}const dwe=Ju();Ju({strict:!0});Ju({circular:!0});Ju({circular:!0,strict:!0});Ju({createInternalComparator:()=>Cf});Ju({strict:!0,createInternalComparator:()=>Cf});Ju({circular:!0,createInternalComparator:()=>Cf});Ju({circular:!0,createInternalComparator:()=>Cf,strict:!0});function Ju(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:a=!1}=t,s=lwe(t),o=owe(s),l=n?n(o):cwe(o);return uwe({circular:e,comparator:o,createState:r,equals:l,strict:a})}function fwe(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function JI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>e?(t(s),n=-1):fwe(a)};requestAnimationFrame(r)}function DE(t){"@babel/helpers - typeof";return DE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},DE(t)}function hwe(t){return xwe(t)||gwe(t)||mwe(t)||pwe()}function pwe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mwe(t,e){if(t){if(typeof t=="string")return ZI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ZI(t,e)}}function ZI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?1:b<0?0:b},x=function(b){for(var v=b>1?1:b,w=v,j=0;j<8;++j){var k=f(w)-v,_=p(w);if(Math.abs(k-v)0&&arguments[0]!==void 0?arguments[0]:{},n=e.stiff,r=n===void 0?100:n,a=e.damping,s=a===void 0?8:a,o=e.dt,l=o===void 0?17:o,c=function(d,f,h){var p=-(d-f)*r,m=h*s,x=h+(p-m)*l/1e3,y=h*l/1e3+d;return Math.abs(y-f)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Kwe(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,s;for(s=0;s=0)&&(n[a]=t[a]);return n}function $S(t){return Zwe(t)||Jwe(t)||Xwe(t)||Ywe()}function Ywe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xwe(t,e){if(t){if(typeof t=="string")return BE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return BE(t,e)}}function Jwe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Zwe(t){if(Array.isArray(t))return BE(t)}function BE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ow(t){return Ow=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ow(t)}var Ao=function(t){rke(n,t);var e=ake(n);function n(r,a){var s;Qwe(this,n),s=e.call(this,r,a);var o=s.props,l=o.isActive,c=o.attributeName,u=o.from,d=o.to,f=o.steps,h=o.children,p=o.duration;if(s.handleStyleChange=s.handleStyleChange.bind(VE(s)),s.changeStyle=s.changeStyle.bind(VE(s)),!l||p<=0)return s.state={style:{}},typeof h=="function"&&(s.state={style:d}),UE(s);if(f&&f.length)s.state={style:f[0].style};else if(u){if(typeof h=="function")return s.state={style:u},UE(s);s.state={style:c?Hg({},c,u):u}}else s.state={style:{}};return s}return tke(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,o=a.canBegin;this.mounted=!0,!(!s||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,o=s.isActive,l=s.canBegin,c=s.attributeName,u=s.shouldReAnimate,d=s.to,f=s.from,h=this.state.style;if(l){if(!o){var p={style:c?Hg({},c,d):d};this.state&&h&&(c&&h[c]!==d||!c&&h!==d)&&this.setState(p);return}if(!(dwe(a.to,d)&&a.canBegin&&a.isActive)){var m=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var x=m||u?f:a.to;if(this.state&&h){var y={style:c?Hg({},c,x):x};(c&&h[c]!==x||!c&&h!==x)&&this.setState(y)}this.runAnimation(lo(lo({},this.props),{},{from:x,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,o=a.from,l=a.to,c=a.duration,u=a.easing,d=a.begin,f=a.onAnimationEnd,h=a.onAnimationStart,p=Hwe(o,l,Rwe(u),c,this.changeStyle),m=function(){s.stopJSAnimation=p()};this.manager.start([h,d,m,c,f])}},{key:"runStepAnimation",value:function(a){var s=this,o=a.steps,l=a.begin,c=a.onAnimationStart,u=o[0],d=u.style,f=u.duration,h=f===void 0?0:f,p=function(x,y,b){if(b===0)return x;var v=y.duration,w=y.easing,j=w===void 0?"ease":w,k=y.style,_=y.properties,S=y.onAnimationEnd,N=b>0?o[b-1]:y,E=_||Object.keys(k);if(typeof j=="function"||j==="spring")return[].concat($S(x),[s.runJSAnimation.bind(s,{from:N.style,to:k,duration:v,easing:j}),v]);var P=t$(E,v,j),M=lo(lo(lo({},N.style),k),{},{transition:P});return[].concat($S(x),[M,v,S]).filter(kwe)};return this.manager.start([c].concat($S(o.reduce(p,[d,Math.max(h,l)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=ywe());var s=a.begin,o=a.duration,l=a.attributeName,c=a.to,u=a.easing,d=a.onAnimationStart,f=a.onAnimationEnd,h=a.steps,p=a.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(a);return}if(h.length>1){this.runStepAnimation(a);return}var x=l?Hg({},l,c):c,y=t$(Object.keys(x),o,u);m.start([d,s,lo(lo({},x),{},{transition:y}),o,f])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var o=a.duration;a.attributeName,a.easing;var l=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var c=qwe(a,Gwe),u=g.Children.count(s),d=this.state.style;if(typeof s=="function")return s(d);if(!l||u===0||o<=0)return s;var f=function(p){var m=p.props,x=m.style,y=x===void 0?{}:x,b=m.className,v=g.cloneElement(p,lo(lo({},c),{},{style:lo(lo({},y),d),className:b}));return v};return u===1?f(g.Children.only(s)):J.createElement("div",null,g.Children.map(s,function(h){return f(h)}))}}]),n}(g.PureComponent);Ao.displayName="Animate";Ao.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Ao.propTypes={from:kn.oneOfType([kn.object,kn.string]),to:kn.oneOfType([kn.object,kn.string]),attributeName:kn.string,duration:kn.number,begin:kn.number,easing:kn.oneOfType([kn.string,kn.func]),steps:kn.arrayOf(kn.shape({duration:kn.number.isRequired,style:kn.object.isRequired,easing:kn.oneOfType([kn.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),kn.func]),properties:kn.arrayOf("string"),onAnimationEnd:kn.func})),children:kn.oneOfType([kn.node,kn.func]),isActive:kn.bool,canBegin:kn.bool,onAnimationEnd:kn.func,shouldReAnimate:kn.bool,onAnimationStart:kn.func,onAnimationReStart:kn.func};function T0(){return T0=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1,c=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,d;if(o>0&&s instanceof Array){for(var f=[0,0,0,0],h=0,p=4;ho?o:s[h];d="M".concat(e,",").concat(n+l*f[0]),f[0]>0&&(d+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(u,",").concat(e+c*f[0],",").concat(n)),d+="L ".concat(e+r-c*f[1],",").concat(n),f[1]>0&&(d+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(u,`, + `).concat(e+r,",").concat(n+l*f[1])),d+="L ".concat(e+r,",").concat(n+a-l*f[2]),f[2]>0&&(d+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(u,`, + `).concat(e+r-c*f[2],",").concat(n+a)),d+="L ".concat(e+c*f[3],",").concat(n+a),f[3]>0&&(d+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(u,`, + `).concat(e,",").concat(n+a-l*f[3])),d+="Z"}else if(o>0&&s===+s&&s>0){var m=Math.min(o,s);d="M ".concat(e,",").concat(n+l*m,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+c*m,",").concat(n,` + L `).concat(e+r-c*m,",").concat(n,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r,",").concat(n+l*m,` + L `).concat(e+r,",").concat(n+a-l*m,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r-c*m,",").concat(n+a,` + L `).concat(e+c*m,",").concat(n+a,` + A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e,",").concat(n+a-l*m," Z")}else d="M ".concat(e,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return d},mke=function(e,n){if(!e||!n)return!1;var r=e.x,a=e.y,s=n.x,o=n.y,l=n.width,c=n.height;if(Math.abs(l)>0&&Math.abs(c)>0){var u=Math.min(s,s+l),d=Math.max(s,s+l),f=Math.min(o,o+c),h=Math.max(o,o+c);return r>=u&&r<=d&&a>=f&&a<=h}return!1},gke={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},rT=function(e){var n=c$(c$({},gke),e),r=g.useRef(),a=g.useState(-1),s=oke(a,2),o=s[0],l=s[1];g.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var j=r.current.getTotalLength();j&&l(j)}catch{}},[]);var c=n.x,u=n.y,d=n.width,f=n.height,h=n.radius,p=n.className,m=n.animationEasing,x=n.animationDuration,y=n.animationBegin,b=n.isAnimationActive,v=n.isUpdateAnimationActive;if(c!==+c||u!==+u||d!==+d||f!==+f||d===0||f===0)return null;var w=Zt("recharts-rectangle",p);return v?J.createElement(Ao,{canBegin:o>0,from:{width:d,height:f,x:c,y:u},to:{width:d,height:f,x:c,y:u},duration:x,animationEasing:m,isActive:v},function(j){var k=j.width,_=j.height,S=j.x,N=j.y;return J.createElement(Ao,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:x,isActive:b,easing:m},J.createElement("path",Tw({},It(n,!0),{className:w,d:u$(S,N,k,_,h),ref:r})))}):J.createElement("path",Tw({},It(n,!0),{className:w,d:u$(c,u,d,f,h)}))};function WE(){return WE=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function jke(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var Ske=function(e,n,r,a,s,o){return"M".concat(e,",").concat(s,"v").concat(a,"M").concat(o,",").concat(n,"h").concat(r)},_ke=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.top,l=o===void 0?0:o,c=e.left,u=c===void 0?0:c,d=e.width,f=d===void 0?0:d,h=e.height,p=h===void 0?0:h,m=e.className,x=kke(e,xke),y=yke({x:r,y:s,top:l,left:u,width:f,height:p},x);return!Ue(r)||!Ue(s)||!Ue(f)||!Ue(p)||!Ue(l)||!Ue(u)?null:J.createElement("path",HE({},It(y,!0),{className:Zt("recharts-cross",m),d:Ske(r,s,f,p,l,u)}))},Nke=_U,Cke=Nke(Object.getPrototypeOf,Object),Eke=Cke,Ake=jc,Oke=Eke,Tke=Sc,Pke="[object Object]",Mke=Function.prototype,Rke=Object.prototype,uW=Mke.toString,Dke=Rke.hasOwnProperty,Ike=uW.call(Object);function $ke(t){if(!Tke(t)||Ake(t)!=Pke)return!1;var e=Oke(t);if(e===null)return!0;var n=Dke.call(e,"constructor")&&e.constructor;return typeof n=="function"&&n instanceof n&&uW.call(n)==Ike}var Lke=$ke;const Fke=Rn(Lke);var Bke=jc,zke=Sc,Uke="[object Boolean]";function Vke(t){return t===!0||t===!1||zke(t)&&Bke(t)==Uke}var Wke=Vke;const Hke=Rn(Wke);function R0(t){"@babel/helpers - typeof";return R0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R0(t)}function Pw(){return Pw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0,from:{upperWidth:0,lowerWidth:0,height:h,x:c,y:u},to:{upperWidth:d,lowerWidth:f,height:h,x:c,y:u},duration:x,animationEasing:m,isActive:b},function(w){var j=w.upperWidth,k=w.lowerWidth,_=w.height,S=w.x,N=w.y;return J.createElement(Ao,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:x,easing:m},J.createElement("path",Pw({},It(n,!0),{className:v,d:m$(S,N,j,k,_),ref:r})))}):J.createElement("g",null,J.createElement("path",Pw({},It(n,!0),{className:v,d:m$(c,u,d,f,h)})))},nje=["option","shapeType","propTransformer","activeClassName","isActive"];function D0(t){"@babel/helpers - typeof";return D0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D0(t)}function rje(t,e){if(t==null)return{};var n=aje(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function aje(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function g$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Mw(t){for(var e=1;e0&&r.handleDrag(a.changedTouches[0])}),si(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,o=a.onDragEnd,l=a.startIndex;o==null||o({endIndex:s,startIndex:l})}),r.detachDragEndListener()}),si(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),si(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),si(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),si(r,"handleSlideDragStart",function(a){var s=j$(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return zje(e,t),$je(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,o=this.state.scaleValues,l=this.props,c=l.gap,u=l.data,d=u.length-1,f=Math.min(a,s),h=Math.max(a,s),p=e.getIndexInRange(o,f),m=e.getIndexInRange(o,h);return{startIndex:p-p%c,endIndex:m===d?d:m-m%c}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,o=a.tickFormatter,l=a.dataKey,c=oa(s[r],l,r);return Rt(o)?o(c,r):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,o=a.startX,l=a.endX,c=this.props,u=c.x,d=c.width,f=c.travellerWidth,h=c.startIndex,p=c.endIndex,m=c.onChange,x=r.pageX-s;x>0?x=Math.min(x,u+d-f-l,u+d-f-o):x<0&&(x=Math.max(x,u-o,u-l));var y=this.getIndex({startX:o+x,endX:l+x});(y.startIndex!==h||y.endIndex!==p)&&m&&m(y),this.setState({startX:o+x,endX:l+x,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=j$(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,o=a.movingTravellerId,l=a.endX,c=a.startX,u=this.state[o],d=this.props,f=d.x,h=d.width,p=d.travellerWidth,m=d.onChange,x=d.gap,y=d.data,b={startX:this.state.startX,endX:this.state.endX},v=r.pageX-s;v>0?v=Math.min(v,f+h-p-u):v<0&&(v=Math.max(v,f-u)),b[o]=u+v;var w=this.getIndex(b),j=w.startIndex,k=w.endIndex,_=function(){var N=y.length-1;return o==="startX"&&(l>c?j%x===0:k%x===0)||lc?k%x===0:j%x===0)||l>c&&k===N};this.setState(si(si({},o,u+v),"brushMoveStartX",r.pageX),function(){m&&_()&&m(w)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,o=this.state,l=o.scaleValues,c=o.startX,u=o.endX,d=this.state[a],f=l.indexOf(d);if(f!==-1){var h=f+r;if(!(h===-1||h>=l.length)){var p=l[h];a==="startX"&&p>=u||a==="endX"&&p<=c||this.setState(si({},a,p),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.fill,u=r.stroke;return J.createElement("rect",{stroke:u,fill:c,x:a,y:s,width:o,height:l})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.data,u=r.children,d=r.padding,f=g.Children.only(u);return f?J.cloneElement(f,{x:a,y:s,width:o,height:l,margin:d,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,o,l=this,c=this.props,u=c.y,d=c.travellerWidth,f=c.height,h=c.traveller,p=c.ariaLabel,m=c.data,x=c.startIndex,y=c.endIndex,b=Math.max(r,this.props.x),v=FS(FS({},It(this.props,!1)),{},{x:b,y:u,width:d,height:f}),w=p||"Min value: ".concat((s=m[x])===null||s===void 0?void 0:s.name,", Max value: ").concat((o=m[y])===null||o===void 0?void 0:o.name);return J.createElement(pn,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(k){["ArrowLeft","ArrowRight"].includes(k.key)&&(k.preventDefault(),k.stopPropagation(),l.handleTravellerMoveKeyboard(k.key==="ArrowRight"?1:-1,a))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(h,v))}},{key:"renderSlide",value:function(r,a){var s=this.props,o=s.y,l=s.height,c=s.stroke,u=s.travellerWidth,d=Math.min(r,a)+u,f=Math.max(Math.abs(a-r)-u,0);return J.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:d,y:o,width:f,height:l})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,o=r.y,l=r.height,c=r.travellerWidth,u=r.stroke,d=this.state,f=d.startX,h=d.endX,p=5,m={pointerEvents:"none",fill:u};return J.createElement(pn,{className:"recharts-brush-texts"},J.createElement(lw,Dw({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,h)-p,y:o+l/2},m),this.getTextOfTick(a)),J.createElement(lw,Dw({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,h)+c+p,y:o+l/2},m),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,o=r.children,l=r.x,c=r.y,u=r.width,d=r.height,f=r.alwaysShowText,h=this.state,p=h.startX,m=h.endX,x=h.isTextActive,y=h.isSlideMoving,b=h.isTravellerMoving,v=h.isTravellerFocused;if(!a||!a.length||!Ue(l)||!Ue(c)||!Ue(u)||!Ue(d)||u<=0||d<=0)return null;var w=Zt("recharts-brush",s),j=J.Children.count(o)===1,k=Dje("userSelect","none");return J.createElement(pn,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:k},this.renderBackground(),j&&this.renderPanorama(),this.renderSlide(p,m),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(m,"endX"),(x||y||b||v||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,o=r.width,l=r.height,c=r.stroke,u=Math.floor(s+l/2)-1;return J.createElement(J.Fragment,null,J.createElement("rect",{x:a,y:s,width:o,height:l,fill:c,stroke:"none"}),J.createElement("line",{x1:a+1,y1:u,x2:a+o-1,y2:u,fill:"none",stroke:"#fff"}),J.createElement("line",{x1:a+1,y1:u+2,x2:a+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return J.isValidElement(r)?s=J.cloneElement(r,a):Rt(r)?s=r(a):s=e.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,o=r.width,l=r.x,c=r.travellerWidth,u=r.updateId,d=r.startIndex,f=r.endIndex;if(s!==a.prevData||u!==a.prevUpdateId)return FS({prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o},s&&s.length?Vje({data:s,width:o,x:l,travellerWidth:c,startIndex:d,endIndex:f}):{scale:null,scaleValues:null});if(a.scale&&(o!==a.prevWidth||l!==a.prevX||c!==a.prevTravellerWidth)){a.scale.range([l,l+o-c]);var h=a.scale.domain().map(function(p){return a.scale(p)});return{prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,o=0,l=s-1;l-o>1;){var c=Math.floor((o+l)/2);r[c]>a?l=c:o=c}return a>=r[l]?l:o}}])}(g.PureComponent);si(Tp,"displayName","Brush");si(Tp,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Wje=A3;function Hje(t,e){var n;return Wje(t,function(r,a,s){return n=e(r,a,s),!n}),!!n}var Gje=Hje,qje=xU,Kje=qu,Yje=Gje,Xje=Xs,Jje=jj;function Zje(t,e,n){var r=Xje(t)?qje:Yje;return n&&Jje(t,e,n)&&(e=void 0),r(t,Kje(e))}var Qje=Zje;const e2e=Rn(Qje);var yl=function(e,n){var r=e.alwaysShow,a=e.ifOverflow;return r&&(a="extendDomain"),a===n},S$=FU;function t2e(t,e,n){e=="__proto__"&&S$?S$(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var n2e=t2e,r2e=n2e,a2e=$U,s2e=qu;function i2e(t,e){var n={};return e=s2e(e),a2e(t,function(r,a,s){r2e(n,a,e(r,a,s))}),n}var o2e=i2e;const l2e=Rn(o2e);function c2e(t,e){for(var n=-1,r=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function N2e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function C2e(t,e){var n=t.x,r=t.y,a=_2e(t,w2e),s="".concat(n),o=parseInt(s,10),l="".concat(r),c=parseInt(l,10),u="".concat(e.height||a.height),d=parseInt(u,10),f="".concat(e.width||a.width),h=parseInt(f,10);return bg(bg(bg(bg(bg({},e),a),o?{x:o}:{}),c?{y:c}:{}),{},{height:d,width:h,name:e.name,radius:e.radius})}function N$(t){return J.createElement(GE,KE({shapeType:"rectangle",propTransformer:C2e,activeClassName:"recharts-active-bar"},t))}var E2e=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof e=="number")return e;var s=Ue(r)||Lse(r);return s?e(r,a):(s||sf(),n)}},A2e=["value","background"],gW;function Pp(t){"@babel/helpers - typeof";return Pp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pp(t)}function O2e(t,e){if(t==null)return{};var n=T2e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function T2e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function $w(){return $w=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(I)0&&Math.abs(D)0&&(O=Math.min((R||0)-(D[z-1]||0),O))}),Number.isFinite(O)){var I=O/A,X=x.layout==="vertical"?r.height:r.width;if(x.padding==="gap"&&(S=I*X/2),x.padding==="no-gap"){var Q=nf(e.barCategoryGap,I*X),V=I*X/2;S=V-Q-(V-Q)/X*Q}}}a==="xAxis"?N=[r.left+(w.left||0)+(S||0),r.left+r.width-(w.right||0)-(S||0)]:a==="yAxis"?N=c==="horizontal"?[r.top+r.height-(w.bottom||0),r.top+(w.top||0)]:[r.top+(w.top||0)+(S||0),r.top+r.height-(w.bottom||0)-(S||0)]:N=x.range,k&&(N=[N[1],N[0]]);var Y=sbe(x,s,h),H=Y.scale,G=Y.realScaleType;H.domain(b).range(N),ibe(H);var $=pbe(H,mo(mo({},x),{},{realScaleType:G}));a==="xAxis"?(M=y==="top"&&!j||y==="bottom"&&j,E=r.left,P=f[_]-M*x.height):a==="yAxis"&&(M=y==="left"&&!j||y==="right"&&j,E=f[_]-M*x.width,P=r.top);var F=mo(mo(mo({},x),$),{},{realScaleType:G,x:E,y:P,scale:H,width:a==="xAxis"?r.width:x.width,height:a==="yAxis"?r.height:x.height});return F.bandSize=jw(F,$),!x.hide&&a==="xAxis"?f[_]+=(M?-1:1)*F.height:x.hide||(f[_]+=(M?-1:1)*F.width),mo(mo({},p),{},Ij({},m,F))},{})},bW=function(e,n){var r=e.x,a=e.y,s=n.x,o=n.y;return{x:Math.min(r,s),y:Math.min(a,o),width:Math.abs(s-r),height:Math.abs(o-a)}},U2e=function(e){var n=e.x1,r=e.y1,a=e.x2,s=e.y2;return bW({x:n,y:r},{x:a,y:s})},wW=function(){function t(e){F2e(this,t),this.scale=e}return B2e(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+o}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(n)+l}default:return this.scale(n)}if(a){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+c}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new t(n)}}])}();Ij(wW,"EPS",1e-4);var sT=function(e){var n=Object.keys(e).reduce(function(r,a){return mo(mo({},r),{},Ij({},a,wW.create(e[a])))},{});return mo(mo({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=s.bandAware,l=s.position;return l2e(a,function(c,u){return n[u].apply(c,{bandAware:o,position:l})})},isInRange:function(a){return mW(a,function(s,o){return n[o].isInRange(s)})}})};function V2e(t){return(t%180+180)%180}var W2e=function(e){var n=e.width,r=e.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=V2e(a),o=s*Math.PI/180,l=Math.atan(r/n),c=o>l&&o-1?a[s?e[o]:o]:void 0}}var Y2e=K2e,X2e=dW;function J2e(t){var e=X2e(t),n=e%1;return e===e?n?e-n:e:0}var Z2e=J2e,Q2e=TU,eSe=qu,tSe=Z2e,nSe=Math.max;function rSe(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var a=n==null?0:tSe(n);return a<0&&(a=nSe(r+a,0)),Q2e(t,eSe(e),a)}var aSe=rSe,sSe=Y2e,iSe=aSe,oSe=sSe(iSe),lSe=oSe;const cSe=Rn(lSe);var uSe=Wae(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),iT=g.createContext(void 0),oT=g.createContext(void 0),kW=g.createContext(void 0),jW=g.createContext({}),SW=g.createContext(void 0),_W=g.createContext(0),NW=g.createContext(0),T$=function(e){var n=e.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,o=e.clipPathId,l=e.children,c=e.width,u=e.height,d=uSe(s);return J.createElement(iT.Provider,{value:r},J.createElement(oT.Provider,{value:a},J.createElement(jW.Provider,{value:s},J.createElement(kW.Provider,{value:d},J.createElement(SW.Provider,{value:o},J.createElement(_W.Provider,{value:u},J.createElement(NW.Provider,{value:c},l)))))))},dSe=function(){return g.useContext(SW)},CW=function(e){var n=g.useContext(iT);n==null&&sf();var r=n[e];return r==null&&sf(),r},fSe=function(){var e=g.useContext(iT);return Yc(e)},hSe=function(){var e=g.useContext(oT),n=cSe(e,function(r){return mW(r.domain,Number.isFinite)});return n||Yc(e)},EW=function(e){var n=g.useContext(oT);n==null&&sf();var r=n[e];return r==null&&sf(),r},pSe=function(){var e=g.useContext(kW);return e},mSe=function(){return g.useContext(jW)},lT=function(){return g.useContext(NW)},cT=function(){return g.useContext(_W)};function Mp(t){"@babel/helpers - typeof";return Mp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mp(t)}function gSe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function xSe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt*a)return!1;var s=n();return t*(e-t*s/2-r)>=0&&t*(e+t*s/2-a)<=0}function ZSe(t,e){return DW(t,e+1)}function QSe(t,e,n,r,a){for(var s=(r||[]).slice(),o=e.start,l=e.end,c=0,u=1,d=o,f=function(){var m=r==null?void 0:r[c];if(m===void 0)return{v:DW(r,u)};var x=c,y,b=function(){return y===void 0&&(y=n(m,x)),y},v=m.coordinate,w=c===0||Uw(t,v,b,d,l);w||(c=0,d=o,u+=1),w&&(d=v+t*(b()/2+a),c+=u)},h;u<=s.length;)if(h=f(),h)return h.v;return[]}function B0(t){"@babel/helpers - typeof";return B0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B0(t)}function F$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function qa(t){for(var e=1;e0?p.coordinate-y*t:p.coordinate})}else s[h]=p=qa(qa({},p),{},{tickCoord:p.coordinate});var b=Uw(t,p.tickCoord,x,l,c);b&&(c=p.tickCoord-t*(x()/2+a),s[h]=qa(qa({},p),{},{isShow:!0}))},d=o-1;d>=0;d--)u(d);return s}function a_e(t,e,n,r,a,s){var o=(r||[]).slice(),l=o.length,c=e.start,u=e.end;if(s){var d=r[l-1],f=n(d,l-1),h=t*(d.coordinate+t*f/2-u);o[l-1]=d=qa(qa({},d),{},{tickCoord:h>0?d.coordinate-h*t:d.coordinate});var p=Uw(t,d.tickCoord,function(){return f},c,u);p&&(u=d.tickCoord-t*(f/2+a),o[l-1]=qa(qa({},d),{},{isShow:!0}))}for(var m=s?l-1:l,x=function(v){var w=o[v],j,k=function(){return j===void 0&&(j=n(w,v)),j};if(v===0){var _=t*(w.coordinate-t*k()/2-c);o[v]=w=qa(qa({},w),{},{tickCoord:_<0?w.coordinate-_*t:w.coordinate})}else o[v]=w=qa(qa({},w),{},{tickCoord:w.coordinate});var S=Uw(t,w.tickCoord,k,c,u);S&&(c=w.tickCoord+t*(k()/2+a),o[v]=qa(qa({},w),{},{isShow:!0}))},y=0;y=2?wo(a[1].coordinate-a[0].coordinate):1,b=JSe(s,y,p);return c==="equidistantPreserveStart"?QSe(y,b,x,a,o):(c==="preserveStart"||c==="preserveStartEnd"?h=a_e(y,b,x,a,o,c==="preserveStartEnd"):h=r_e(y,b,x,a,o),h.filter(function(v){return v.isShow}))}var s_e=["viewBox"],i_e=["viewBox"],o_e=["ticks"];function Ip(t){"@babel/helpers - typeof";return Ip=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ip(t)}function Eh(){return Eh=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function l_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function c_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function z$(t,e){for(var n=0;n0?c(this.props):c(p)),o<=0||l<=0||!m||!m.length?null:J.createElement(pn,{className:Zt("recharts-cartesian-axis",u),ref:function(y){r.layerReference=y}},s&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),Ja.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var o,l=Zt(a.className,"recharts-cartesian-axis-tick-value");return J.isValidElement(r)?o=J.cloneElement(r,Qr(Qr({},a),{},{className:l})):Rt(r)?o=r(Qr(Qr({},a),{},{className:l})):o=J.createElement(lw,Eh({},a,{className:"recharts-cartesian-axis-tick-value"}),s),o}}])}(g.Component);fT(Om,"displayName","CartesianAxis");fT(Om,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var g_e=["x1","y1","x2","y2","key"],x_e=["offset"];function of(t){"@babel/helpers - typeof";return of=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},of(t)}function U$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Za(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function w_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var k_e=function(e){var n=e.fill;if(!n||n==="none")return null;var r=e.fillOpacity,a=e.x,s=e.y,o=e.width,l=e.height,c=e.ry;return J.createElement("rect",{x:a,y:s,ry:c,width:o,height:l,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function LW(t,e){var n;if(J.isValidElement(t))n=J.cloneElement(t,e);else if(Rt(t))n=t(e);else{var r=e.x1,a=e.y1,s=e.x2,o=e.y2,l=e.key,c=V$(e,g_e),u=It(c,!1);u.offset;var d=V$(u,x_e);n=J.createElement("line",Cd({},d,{x1:r,y1:a,x2:s,y2:o,fill:"none",key:l}))}return n}function j_e(t){var e=t.x,n=t.width,r=t.horizontal,a=r===void 0?!0:r,s=t.horizontalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Za(Za({},t),{},{x1:e,y1:l,x2:e+n,y2:l,key:"line-".concat(c),index:c});return LW(a,u)});return J.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function S_e(t){var e=t.y,n=t.height,r=t.vertical,a=r===void 0?!0:r,s=t.verticalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Za(Za({},t),{},{x1:l,y1:e,x2:l,y2:e+n,key:"line-".concat(c),index:c});return LW(a,u)});return J.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function __e(t){var e=t.horizontalFill,n=t.fillOpacity,r=t.x,a=t.y,s=t.width,o=t.height,l=t.horizontalPoints,c=t.horizontal,u=c===void 0?!0:c;if(!u||!e||!e.length)return null;var d=l.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?a+o-h:d[p+1]-h;if(x<=0)return null;var y=p%e.length;return J.createElement("rect",{key:"react-".concat(p),y:h,x:r,height:x,width:s,stroke:"none",fill:e[y],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return J.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function N_e(t){var e=t.vertical,n=e===void 0?!0:e,r=t.verticalFill,a=t.fillOpacity,s=t.x,o=t.y,l=t.width,c=t.height,u=t.verticalPoints;if(!n||!r||!r.length)return null;var d=u.map(function(h){return Math.round(h+s-s)}).sort(function(h,p){return h-p});s!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?s+l-h:d[p+1]-h;if(x<=0)return null;var y=p%r.length;return J.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:x,height:c,stroke:"none",fill:r[y],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return J.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var C_e=function(e,n){var r=e.xAxis,a=e.width,s=e.height,o=e.offset;return KV(dT(Za(Za(Za({},Om.defaultProps),r),{},{ticks:tc(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.left,o.left+o.width,n)},E_e=function(e,n){var r=e.yAxis,a=e.width,s=e.height,o=e.offset;return KV(dT(Za(Za(Za({},Om.defaultProps),r),{},{ticks:tc(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.top,o.top+o.height,n)},Gf={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function ko(t){var e,n,r,a,s,o,l=lT(),c=cT(),u=mSe(),d=Za(Za({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:Gf.stroke,fill:(n=t.fill)!==null&&n!==void 0?n:Gf.fill,horizontal:(r=t.horizontal)!==null&&r!==void 0?r:Gf.horizontal,horizontalFill:(a=t.horizontalFill)!==null&&a!==void 0?a:Gf.horizontalFill,vertical:(s=t.vertical)!==null&&s!==void 0?s:Gf.vertical,verticalFill:(o=t.verticalFill)!==null&&o!==void 0?o:Gf.verticalFill,x:Ue(t.x)?t.x:u.left,y:Ue(t.y)?t.y:u.top,width:Ue(t.width)?t.width:u.width,height:Ue(t.height)?t.height:u.height}),f=d.x,h=d.y,p=d.width,m=d.height,x=d.syncWithTicks,y=d.horizontalValues,b=d.verticalValues,v=fSe(),w=hSe();if(!Ue(p)||p<=0||!Ue(m)||m<=0||!Ue(f)||f!==+f||!Ue(h)||h!==+h)return null;var j=d.verticalCoordinatesGenerator||C_e,k=d.horizontalCoordinatesGenerator||E_e,_=d.horizontalPoints,S=d.verticalPoints;if((!_||!_.length)&&Rt(k)){var N=y&&y.length,E=k({yAxis:w?Za(Za({},w),{},{ticks:N?y:w.ticks}):void 0,width:l,height:c,offset:u},N?!0:x);pl(Array.isArray(E),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(of(E),"]")),Array.isArray(E)&&(_=E)}if((!S||!S.length)&&Rt(j)){var P=b&&b.length,M=j({xAxis:v?Za(Za({},v),{},{ticks:P?b:v.ticks}):void 0,width:l,height:c,offset:u},P?!0:x);pl(Array.isArray(M),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(of(M),"]")),Array.isArray(M)&&(S=M)}return J.createElement("g",{className:"recharts-cartesian-grid"},J.createElement(k_e,{fill:d.fill,fillOpacity:d.fillOpacity,x:d.x,y:d.y,width:d.width,height:d.height,ry:d.ry}),J.createElement(j_e,Cd({},d,{offset:u,horizontalPoints:_,xAxis:v,yAxis:w})),J.createElement(S_e,Cd({},d,{offset:u,verticalPoints:S,xAxis:v,yAxis:w})),J.createElement(__e,Cd({},d,{horizontalPoints:_})),J.createElement(N_e,Cd({},d,{verticalPoints:S})))}ko.displayName="CartesianGrid";var A_e=["type","layout","connectNulls","ref"],O_e=["key"];function $p(t){"@babel/helpers - typeof";return $p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$p(t)}function W$(t,e){if(t==null)return{};var n=T_e(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function T_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Sx(){return Sx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nf){p=[].concat(qf(c.slice(0,m)),[f-x]);break}var y=p.length%2===0?[0,h]:[h];return[].concat(qf(e.repeat(c,d)),qf(p),y).map(function(b){return"".concat(b,"px")}).join(", ")}),go(n,"id",Sf("recharts-line-")),go(n,"pathRef",function(o){n.mainCurve=o}),go(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),go(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return z_e(e,t),$_e(e,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,o=s.points,l=s.xAxis,c=s.yAxis,u=s.layout,d=s.children,f=Gs(d,Am);if(!f)return null;var h=function(x,y){return{x:x.x,y:x.y,value:x.value,errorVal:oa(x.payload,y)}},p={clipPath:r?"url(#clipPath-".concat(a,")"):null};return J.createElement(pn,p,f.map(function(m){return J.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:o,xAxis:l,yAxis:c,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(r,a,s){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var l=this.props,c=l.dot,u=l.points,d=l.dataKey,f=It(this.props,!1),h=It(c,!0),p=u.map(function(x,y){var b=ai(ai(ai({key:"dot-".concat(y),r:3},f),h),{},{index:y,cx:x.x,cy:x.y,value:x.value,dataKey:d,payload:x.payload,points:u});return e.renderDotItem(c,b)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return J.createElement(pn,Sx({className:"recharts-line-dots",key:"dots"},m),p)}},{key:"renderCurveStatically",value:function(r,a,s,o){var l=this.props,c=l.type,u=l.layout,d=l.connectNulls;l.ref;var f=W$(l,A_e),h=ai(ai(ai({},It(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},o),{},{type:c,layout:u,connectNulls:d});return J.createElement(Ud,Sx({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,o=this.props,l=o.points,c=o.strokeDasharray,u=o.isAnimationActive,d=o.animationBegin,f=o.animationDuration,h=o.animationEasing,p=o.animationId,m=o.animateNewValues,x=o.width,y=o.height,b=this.state,v=b.prevPoints,w=b.totalLength;return J.createElement(Ao,{begin:d,duration:f,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var k=j.t;if(v){var _=v.length/l.length,S=l.map(function(A,O){var D=Math.floor(O*_);if(v[D]){var I=v[D],X=Ir(I.x,A.x),Q=Ir(I.y,A.y);return ai(ai({},A),{},{x:X(k),y:Q(k)})}if(m){var V=Ir(x*2,A.x),Y=Ir(y/2,A.y);return ai(ai({},A),{},{x:V(k),y:Y(k)})}return ai(ai({},A),{},{x:A.x,y:A.y})});return s.renderCurveStatically(S,r,a)}var N=Ir(0,w),E=N(k),P;if(c){var M="".concat(c).split(/[,\s]+/gim).map(function(A){return parseFloat(A)});P=s.getStrokeDasharray(E,w,M)}else P=s.generateSimpleStrokeDasharray(w,E);return s.renderCurveStatically(l,r,a,{strokeDasharray:P})})}},{key:"renderCurve",value:function(r,a){var s=this.props,o=s.points,l=s.isAnimationActive,c=this.state,u=c.prevPoints,d=c.totalLength;return l&&o&&o.length&&(!u&&d>0||!rf(u,o))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(o,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.xAxis,d=a.yAxis,f=a.top,h=a.left,p=a.width,m=a.height,x=a.isAnimationActive,y=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,v=l.length===1,w=Zt("recharts-line",c),j=u&&u.allowDataOverflow,k=d&&d.allowDataOverflow,_=j||k,S=Pt(y)?this.id:y,N=(r=It(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=N.r,P=E===void 0?3:E,M=N.strokeWidth,A=M===void 0?2:M,O=U7(o)?o:{},D=O.clipDot,I=D===void 0?!0:D,X=P*2+A;return J.createElement(pn,{className:w},j||k?J.createElement("defs",null,J.createElement("clipPath",{id:"clipPath-".concat(S)},J.createElement("rect",{x:j?h:h-p/2,y:k?f:f-m/2,width:j?p:p*2,height:k?m:m*2})),!I&&J.createElement("clipPath",{id:"clipPath-dots-".concat(S)},J.createElement("rect",{x:h-X/2,y:f-X/2,width:p+X,height:m+X}))):null,!v&&this.renderCurve(_,S),this.renderErrorBar(_,S),(v||o)&&this.renderDots(_,I,S),(!x||b)&&xl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(qf(r),[0]):r,o=[],l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function H_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Ed(){return Ed=Object.assign?Object.assign.bind():function(t){for(var e=1;e0||!rf(d,o)||!rf(f,l))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(o,l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.top,d=a.left,f=a.xAxis,h=a.yAxis,p=a.width,m=a.height,x=a.isAnimationActive,y=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,v=l.length===1,w=Zt("recharts-area",c),j=f&&f.allowDataOverflow,k=h&&h.allowDataOverflow,_=j||k,S=Pt(y)?this.id:y,N=(r=It(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=N.r,P=E===void 0?3:E,M=N.strokeWidth,A=M===void 0?2:M,O=U7(o)?o:{},D=O.clipDot,I=D===void 0?!0:D,X=P*2+A;return J.createElement(pn,{className:w},j||k?J.createElement("defs",null,J.createElement("clipPath",{id:"clipPath-".concat(S)},J.createElement("rect",{x:j?d:d-p/2,y:k?u:u-m/2,width:j?p:p*2,height:k?m:m*2})),!I&&J.createElement("clipPath",{id:"clipPath-dots-".concat(S)},J.createElement("rect",{x:d-X/2,y:u-X/2,width:p+X,height:m+X}))):null,v?null:this.renderArea(_,S),(o||v)&&this.renderDots(_,I,S),(!x||b)&&xl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(g.PureComponent);zW=Zu;sl(Zu,"displayName","Area");sl(Zu,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Ku.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});sl(Zu,"getBaseValue",function(t,e,n,r){var a=t.layout,s=t.baseValue,o=e.props.baseValue,l=o??s;if(Ue(l)&&typeof l=="number")return l;var c=a==="horizontal"?r:n,u=c.scale.domain();if(c.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return l==="dataMin"?f:l==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return l==="dataMin"?u[0]:l==="dataMax"?u[1]:u[0]});sl(Zu,"getComposedData",function(t){var e=t.props,n=t.item,r=t.xAxis,a=t.yAxis,s=t.xAxisTicks,o=t.yAxisTicks,l=t.bandSize,c=t.dataKey,u=t.stackedData,d=t.dataStartIndex,f=t.displayedData,h=t.offset,p=e.layout,m=u&&u.length,x=zW.getBaseValue(e,n,r,a),y=p==="horizontal",b=!1,v=f.map(function(j,k){var _;m?_=u[d+k]:(_=oa(j,c),Array.isArray(_)?b=!0:_=[x,_]);var S=_[1]==null||m&&oa(j,c)==null;return y?{x:Ep({axis:r,ticks:s,bandSize:l,entry:j,index:k}),y:S?null:a.scale(_[1]),value:_,payload:j}:{x:S?null:r.scale(_[1]),y:Ep({axis:a,ticks:o,bandSize:l,entry:j,index:k}),value:_,payload:j}}),w;return m||b?w=v.map(function(j){var k=Array.isArray(j.value)?j.value[0]:null;return y?{x:j.x,y:k!=null&&j.y!=null?a.scale(k):null}:{x:k!=null?r.scale(k):null,y:j.y}}):w=y?a.scale(x):r.scale(x),Lc({points:v,baseLine:w,layout:p,isRange:b},h)});sl(Zu,"renderDotItem",function(t,e){var n;if(J.isValidElement(t))n=J.cloneElement(t,e);else if(Rt(t))n=t(e);else{var r=Zt("recharts-area-dot",typeof t!="boolean"?t.className:""),a=e.key,s=UW(e,W_e);n=J.createElement(Mj,Ed({},s,{key:a,className:r}))}return n});function Fp(t){"@babel/helpers - typeof";return Fp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fp(t)}function Q_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function eNe(t,e){for(var n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function cNe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function uNe(t){var e=t.option,n=t.isActive,r=lNe(t,oNe);return typeof e=="string"?g.createElement(GE,_x({option:g.createElement(bj,_x({type:e},r)),isActive:n,shapeType:"symbols"},r)):g.createElement(GE,_x({option:e,isActive:n,shapeType:"symbols"},r))}function Bp(t){"@babel/helpers - typeof";return Bp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bp(t)}function Nx(){return Nx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function sCe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function iCe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function oCe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?o:e&&e.length&&Ue(a)&&Ue(s)?e.slice(a,s+1):[]};function cH(t){return t==="number"?[0,"auto"]:void 0}var gA=function(e,n,r,a){var s=e.graphicalItems,o=e.tooltipAxis,l=Vj(n,e);return r<0||!s||!s.length||r>=l.length?null:s.reduce(function(c,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:n;f&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=r&&(f=f.slice(e.dataStartIndex,e.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=f===void 0?l:f;h=q1(p,o.dataKey,a)}else h=f&&f[r]||l[r];return h?[].concat(Wp(c),[XV(u,h)]):c},[])},nL=function(e,n,r,a){var s=a||{x:e.chartX,y:e.chartY},o=vCe(s,r),l=e.orderedTooltipTicks,c=e.tooltipAxis,u=e.tooltipTicks,d=Qve(o,l,u,c);if(d>=0&&u){var f=u[d]&&u[d].value,h=gA(e,n,d,f),p=bCe(r,l,d,s);return{activeTooltipIndex:d,activeLabel:f,activePayload:h,activeCoordinate:p}}return null},wCe=function(e,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=e.stackOffset,p=qV(d,s);return r.reduce(function(m,x){var y,b=x.type.defaultProps!==void 0?_e(_e({},x.type.defaultProps),x.props):x.props,v=b.type,w=b.dataKey,j=b.allowDataOverflow,k=b.allowDuplicatedCategory,_=b.scale,S=b.ticks,N=b.includeHidden,E=b[o];if(m[E])return m;var P=Vj(e.data,{graphicalItems:a.filter(function($){var F,R=o in $.props?$.props[o]:(F=$.type.defaultProps)===null||F===void 0?void 0:F[o];return R===E}),dataStartIndex:c,dataEndIndex:u}),M=P.length,A,O,D;qNe(b.domain,j,v)&&(A=AE(b.domain,null,j),p&&(v==="number"||_!=="auto")&&(D=kx(P,w,"category")));var I=cH(v);if(!A||A.length===0){var X,Q=(X=b.domain)!==null&&X!==void 0?X:I;if(w){if(A=kx(P,w,v),v==="category"&&p){var V=Bse(A);k&&V?(O=A,A=Rw(0,M)):k||(A=MI(Q,A,x).reduce(function($,F){return $.indexOf(F)>=0?$:[].concat(Wp($),[F])},[]))}else if(v==="category")k?A=A.filter(function($){return $!==""&&!Pt($)}):A=MI(Q,A,x).reduce(function($,F){return $.indexOf(F)>=0||F===""||Pt(F)?$:[].concat(Wp($),[F])},[]);else if(v==="number"){var Y=abe(P,a.filter(function($){var F,R,z=o in $.props?$.props[o]:(F=$.type.defaultProps)===null||F===void 0?void 0:F[o],U="hide"in $.props?$.props.hide:(R=$.type.defaultProps)===null||R===void 0?void 0:R.hide;return z===E&&(N||!U)}),w,s,d);Y&&(A=Y)}p&&(v==="number"||_!=="auto")&&(D=kx(P,w,"category"))}else p?A=Rw(0,M):l&&l[E]&&l[E].hasStack&&v==="number"?A=h==="expand"?[0,1]:YV(l[E].stackGroups,c,u):A=GV(P,a.filter(function($){var F=o in $.props?$.props[o]:$.type.defaultProps[o],R="hide"in $.props?$.props.hide:$.type.defaultProps.hide;return F===E&&(N||!R)}),v,d,!0);if(v==="number")A=hA(f,A,E,s,S),Q&&(A=AE(Q,A,j));else if(v==="category"&&Q){var H=Q,G=A.every(function($){return H.indexOf($)>=0});G&&(A=H)}}return _e(_e({},m),{},Ct({},E,_e(_e({},b),{},{axisType:s,domain:A,categoricalDomain:D,duplicateDomain:O,originalDomain:(y=b.domain)!==null&&y!==void 0?y:I,isCategorical:p,layout:d})))},{})},kCe=function(e,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=Vj(e.data,{graphicalItems:r,dataStartIndex:c,dataEndIndex:u}),p=h.length,m=qV(d,s),x=-1;return r.reduce(function(y,b){var v=b.type.defaultProps!==void 0?_e(_e({},b.type.defaultProps),b.props):b.props,w=v[o],j=cH("number");if(!y[w]){x++;var k;return m?k=Rw(0,p):l&&l[w]&&l[w].hasStack?(k=YV(l[w].stackGroups,c,u),k=hA(f,k,w,s)):(k=AE(j,GV(h,r.filter(function(_){var S,N,E=o in _.props?_.props[o]:(S=_.type.defaultProps)===null||S===void 0?void 0:S[o],P="hide"in _.props?_.props.hide:(N=_.type.defaultProps)===null||N===void 0?void 0:N.hide;return E===w&&!P}),"number",d),a.defaultProps.allowDataOverflow),k=hA(f,k,w,s)),_e(_e({},y),{},Ct({},w,_e(_e({axisType:s},a.defaultProps),{},{hide:!0,orientation:Wi(xCe,"".concat(s,".").concat(x%2),null),domain:k,originalDomain:j,isCategorical:m,layout:d})))}return y},{})},jCe=function(e,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.children,f="".concat(a,"Id"),h=Gs(d,s),p={};return h&&h.length?p=wCe(e,{axes:h,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u}):o&&o.length&&(p=kCe(e,{Axis:s,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u})),p},SCe=function(e){var n=Yc(e),r=tc(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:O3(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:jw(n,r)}},rL=function(e){var n=e.children,r=e.defaultShowTooltip,a=oi(n,Tp),s=0,o=0;return e.data&&e.data.length!==0&&(o=e.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(o=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},_Ce=function(e){return!e||!e.length?!1:e.some(function(n){var r=ac(n&&n.type);return r&&r.indexOf("Bar")>=0})},aL=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},NCe=function(e,n){var r=e.props,a=e.graphicalItems,s=e.xAxisMap,o=s===void 0?{}:s,l=e.yAxisMap,c=l===void 0?{}:l,u=r.width,d=r.height,f=r.children,h=r.margin||{},p=oi(f,Tp),m=oi(f,ml),x=Object.keys(c).reduce(function(k,_){var S=c[_],N=S.orientation;return!S.mirror&&!S.hide?_e(_e({},k),{},Ct({},N,k[N]+S.width)):k},{left:h.left||0,right:h.right||0}),y=Object.keys(o).reduce(function(k,_){var S=o[_],N=S.orientation;return!S.mirror&&!S.hide?_e(_e({},k),{},Ct({},N,Wi(k,"".concat(N))+S.height)):k},{top:h.top||0,bottom:h.bottom||0}),b=_e(_e({},y),x),v=b.bottom;p&&(b.bottom+=p.props.height||Tp.defaultProps.height),m&&n&&(b=nbe(b,a,r,n));var w=u-b.left-b.right,j=d-b.top-b.bottom;return _e(_e({brushBottom:v},b),{},{width:Math.max(w,0),height:Math.max(j,0)})},CCe=function(e,n){if(n==="xAxis")return e[n].width;if(n==="yAxis")return e[n].height},hT=function(e){var n=e.chartName,r=e.GraphicalChild,a=e.defaultTooltipEventType,s=a===void 0?"axis":a,o=e.validateTooltipEventTypes,l=o===void 0?["axis"]:o,c=e.axisComponents,u=e.legendContent,d=e.formatAxisMap,f=e.defaultProps,h=function(b,v){var w=v.graphicalItems,j=v.stackGroups,k=v.offset,_=v.updateId,S=v.dataStartIndex,N=v.dataEndIndex,E=b.barSize,P=b.layout,M=b.barGap,A=b.barCategoryGap,O=b.maxBarSize,D=aL(P),I=D.numericAxisName,X=D.cateAxisName,Q=_Ce(w),V=[];return w.forEach(function(Y,H){var G=Vj(b.data,{graphicalItems:[Y],dataStartIndex:S,dataEndIndex:N}),$=Y.type.defaultProps!==void 0?_e(_e({},Y.type.defaultProps),Y.props):Y.props,F=$.dataKey,R=$.maxBarSize,z=$["".concat(I,"Id")],U=$["".concat(X,"Id")],ee={},pe=c.reduce(function(Be,tt){var B=v["".concat(tt.axisType,"Map")],se=$["".concat(tt.axisType,"Id")];B&&B[se]||tt.axisType==="zAxis"||sf();var de=B[se];return _e(_e({},Be),{},Ct(Ct({},tt.axisType,de),"".concat(tt.axisType,"Ticks"),tc(de)))},ee),re=pe[X],he=pe["".concat(X,"Ticks")],q=j&&j[z]&&j[z].hasStack&&gbe(Y,j[z].stackGroups),W=ac(Y.type).indexOf("Bar")>=0,ue=jw(re,he),te=[],ie=Q&&ebe({barSize:E,stackGroups:j,totalSize:CCe(pe,X)});if(W){var me,ve,Ne=Pt(R)?O:R,je=(me=(ve=jw(re,he,!0))!==null&&ve!==void 0?ve:Ne)!==null&&me!==void 0?me:0;te=tbe({barGap:M,barCategoryGap:A,bandSize:je!==ue?je:ue,sizeList:ie[U],maxBarSize:Ne}),je!==ue&&(te=te.map(function(Be){return _e(_e({},Be),{},{position:_e(_e({},Be.position),{},{offset:Be.position.offset-je/2})})}))}var Me=Y&&Y.type&&Y.type.getComposedData;Me&&V.push({props:_e(_e({},Me(_e(_e({},pe),{},{displayedData:G,props:b,dataKey:F,item:Y,bandSize:ue,barPosition:te,offset:k,stackedData:q,layout:P,dataStartIndex:S,dataEndIndex:N}))),{},Ct(Ct(Ct({key:Y.key||"item-".concat(H)},I,pe[I]),X,pe[X]),"animationId",_)),childIndex:Qse(Y,b.children),item:Y})}),V},p=function(b,v){var w=b.props,j=b.dataStartIndex,k=b.dataEndIndex,_=b.updateId;if(!C4({props:w}))return null;var S=w.children,N=w.layout,E=w.stackOffset,P=w.data,M=w.reverseStackOrder,A=aL(N),O=A.numericAxisName,D=A.cateAxisName,I=Gs(S,r),X=hbe(P,I,"".concat(O,"Id"),"".concat(D,"Id"),E,M),Q=c.reduce(function($,F){var R="".concat(F.axisType,"Map");return _e(_e({},$),{},Ct({},R,jCe(w,_e(_e({},F),{},{graphicalItems:I,stackGroups:F.axisType===O&&X,dataStartIndex:j,dataEndIndex:k}))))},{}),V=NCe(_e(_e({},Q),{},{props:w,graphicalItems:I}),v==null?void 0:v.legendBBox);Object.keys(Q).forEach(function($){Q[$]=d(w,Q[$],V,$.replace("Map",""),n)});var Y=Q["".concat(D,"Map")],H=SCe(Y),G=h(w,_e(_e({},Q),{},{dataStartIndex:j,dataEndIndex:k,updateId:_,graphicalItems:I,stackGroups:X,offset:V}));return _e(_e({formattedGraphicalItems:G,graphicalItems:I,offset:V,stackGroups:X},H),Q)},m=function(y){function b(v){var w,j,k;return iCe(this,b),k=cCe(this,b,[v]),Ct(k,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Ct(k,"accessibilityManager",new GNe),Ct(k,"handleLegendBBoxUpdate",function(_){if(_){var S=k.state,N=S.dataStartIndex,E=S.dataEndIndex,P=S.updateId;k.setState(_e({legendBBox:_},p({props:k.props,dataStartIndex:N,dataEndIndex:E,updateId:P},_e(_e({},k.state),{},{legendBBox:_}))))}}),Ct(k,"handleReceiveSyncEvent",function(_,S,N){if(k.props.syncId===_){if(N===k.eventEmitterSymbol&&typeof k.props.syncMethod!="function")return;k.applySyncEvent(S)}}),Ct(k,"handleBrushChange",function(_){var S=_.startIndex,N=_.endIndex;if(S!==k.state.dataStartIndex||N!==k.state.dataEndIndex){var E=k.state.updateId;k.setState(function(){return _e({dataStartIndex:S,dataEndIndex:N},p({props:k.props,dataStartIndex:S,dataEndIndex:N,updateId:E},k.state))}),k.triggerSyncEvent({dataStartIndex:S,dataEndIndex:N})}}),Ct(k,"handleMouseEnter",function(_){var S=k.getMouseInfo(_);if(S){var N=_e(_e({},S),{},{isTooltipActive:!0});k.setState(N),k.triggerSyncEvent(N);var E=k.props.onMouseEnter;Rt(E)&&E(N,_)}}),Ct(k,"triggeredAfterMouseMove",function(_){var S=k.getMouseInfo(_),N=S?_e(_e({},S),{},{isTooltipActive:!0}):{isTooltipActive:!1};k.setState(N),k.triggerSyncEvent(N);var E=k.props.onMouseMove;Rt(E)&&E(N,_)}),Ct(k,"handleItemMouseEnter",function(_){k.setState(function(){return{isTooltipActive:!0,activeItem:_,activePayload:_.tooltipPayload,activeCoordinate:_.tooltipPosition||{x:_.cx,y:_.cy}}})}),Ct(k,"handleItemMouseLeave",function(){k.setState(function(){return{isTooltipActive:!1}})}),Ct(k,"handleMouseMove",function(_){_.persist(),k.throttleTriggeredAfterMouseMove(_)}),Ct(k,"handleMouseLeave",function(_){k.throttleTriggeredAfterMouseMove.cancel();var S={isTooltipActive:!1};k.setState(S),k.triggerSyncEvent(S);var N=k.props.onMouseLeave;Rt(N)&&N(S,_)}),Ct(k,"handleOuterEvent",function(_){var S=Zse(_),N=Wi(k.props,"".concat(S));if(S&&Rt(N)){var E,P;/.*touch.*/i.test(S)?P=k.getMouseInfo(_.changedTouches[0]):P=k.getMouseInfo(_),N((E=P)!==null&&E!==void 0?E:{},_)}}),Ct(k,"handleClick",function(_){var S=k.getMouseInfo(_);if(S){var N=_e(_e({},S),{},{isTooltipActive:!0});k.setState(N),k.triggerSyncEvent(N);var E=k.props.onClick;Rt(E)&&E(N,_)}}),Ct(k,"handleMouseDown",function(_){var S=k.props.onMouseDown;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleMouseUp",function(_){var S=k.props.onMouseUp;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleTouchMove",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.throttleTriggeredAfterMouseMove(_.changedTouches[0])}),Ct(k,"handleTouchStart",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.handleMouseDown(_.changedTouches[0])}),Ct(k,"handleTouchEnd",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&k.handleMouseUp(_.changedTouches[0])}),Ct(k,"handleDoubleClick",function(_){var S=k.props.onDoubleClick;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"handleContextMenu",function(_){var S=k.props.onContextMenu;if(Rt(S)){var N=k.getMouseInfo(_);S(N,_)}}),Ct(k,"triggerSyncEvent",function(_){k.props.syncId!==void 0&&zS.emit(US,k.props.syncId,_,k.eventEmitterSymbol)}),Ct(k,"applySyncEvent",function(_){var S=k.props,N=S.layout,E=S.syncMethod,P=k.state.updateId,M=_.dataStartIndex,A=_.dataEndIndex;if(_.dataStartIndex!==void 0||_.dataEndIndex!==void 0)k.setState(_e({dataStartIndex:M,dataEndIndex:A},p({props:k.props,dataStartIndex:M,dataEndIndex:A,updateId:P},k.state)));else if(_.activeTooltipIndex!==void 0){var O=_.chartX,D=_.chartY,I=_.activeTooltipIndex,X=k.state,Q=X.offset,V=X.tooltipTicks;if(!Q)return;if(typeof E=="function")I=E(V,_);else if(E==="value"){I=-1;for(var Y=0;Y=0){var q,W;if(O.dataKey&&!O.allowDuplicatedCategory){var ue=typeof O.dataKey=="function"?he:"payload.".concat(O.dataKey.toString());q=q1(Y,ue,I),W=H&&G&&q1(G,ue,I)}else q=Y==null?void 0:Y[D],W=H&&G&&G[D];if(U||z){var te=_.props.activeIndex!==void 0?_.props.activeIndex:D;return[g.cloneElement(_,_e(_e(_e({},E.props),pe),{},{activeIndex:te})),null,null]}if(!Pt(q))return[re].concat(Wp(k.renderActivePoints({item:E,activePoint:q,basePoint:W,childIndex:D,isRange:H})))}else{var ie,me=(ie=k.getItemByXY(k.state.activeCoordinate))!==null&&ie!==void 0?ie:{graphicalItem:re},ve=me.graphicalItem,Ne=ve.item,je=Ne===void 0?_:Ne,Me=ve.childIndex,Be=_e(_e(_e({},E.props),pe),{},{activeIndex:Me});return[g.cloneElement(je,Be),null,null]}return H?[re,null,null]:[re,null]}),Ct(k,"renderCustomized",function(_,S,N){return g.cloneElement(_,_e(_e({key:"recharts-customized-".concat(N)},k.props),k.state))}),Ct(k,"renderMap",{CartesianGrid:{handler:Zv,once:!0},ReferenceArea:{handler:k.renderReferenceElement},ReferenceLine:{handler:Zv},ReferenceDot:{handler:k.renderReferenceElement},XAxis:{handler:Zv},YAxis:{handler:Zv},Brush:{handler:k.renderBrush,once:!0},Bar:{handler:k.renderGraphicChild},Line:{handler:k.renderGraphicChild},Area:{handler:k.renderGraphicChild},Radar:{handler:k.renderGraphicChild},RadialBar:{handler:k.renderGraphicChild},Scatter:{handler:k.renderGraphicChild},Pie:{handler:k.renderGraphicChild},Funnel:{handler:k.renderGraphicChild},Tooltip:{handler:k.renderCursor,once:!0},PolarGrid:{handler:k.renderPolarGrid,once:!0},PolarAngleAxis:{handler:k.renderPolarAxis},PolarRadiusAxis:{handler:k.renderPolarAxis},Customized:{handler:k.renderCustomized}}),k.clipPathId="".concat((w=v.id)!==null&&w!==void 0?w:Sf("recharts"),"-clip"),k.throttleTriggeredAfterMouseMove=HU(k.triggeredAfterMouseMove,(j=v.throttleDelay)!==null&&j!==void 0?j:1e3/60),k.state={},k}return fCe(b,y),lCe(b,[{key:"componentDidMount",value:function(){var w,j;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,j=w.children,k=w.data,_=w.height,S=w.layout,N=oi(j,Vr);if(N){var E=N.props.defaultIndex;if(!(typeof E!="number"||E<0||E>this.state.tooltipTicks.length-1)){var P=this.state.tooltipTicks[E]&&this.state.tooltipTicks[E].value,M=gA(this.state,k,E,P),A=this.state.tooltipTicks[E].coordinate,O=(this.state.offset.top+_)/2,D=S==="horizontal",I=D?{x:A,y:O}:{y:A,x:O},X=this.state.formattedGraphicalItems.find(function(V){var Y=V.item;return Y.type.name==="Scatter"});X&&(I=_e(_e({},I),X.props.points[E].tooltipPosition),M=X.props.points[E].tooltipPayload);var Q={activeTooltipIndex:E,isTooltipActive:!0,activeLabel:P,activePayload:M,activeCoordinate:I};this.setState(Q),this.renderCursor(N),this.accessibilityManager.setIndex(E)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,j){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==j.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var k,_;this.accessibilityManager.setDetails({offset:{left:(k=this.props.margin.left)!==null&&k!==void 0?k:0,top:(_=this.props.margin.top)!==null&&_!==void 0?_:0}})}return null}},{key:"componentDidUpdate",value:function(w){WC([oi(w.children,Vr)],[oi(this.props.children,Vr)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=oi(this.props.children,Vr);if(w&&typeof w.props.shared=="boolean"){var j=w.props.shared?"axis":"item";return l.indexOf(j)>=0?j:s}return s}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var j=this.container,k=j.getBoundingClientRect(),_=_ge(k),S={chartX:Math.round(w.pageX-_.left),chartY:Math.round(w.pageY-_.top)},N=k.width/j.offsetWidth||1,E=this.inRange(S.chartX,S.chartY,N);if(!E)return null;var P=this.state,M=P.xAxisMap,A=P.yAxisMap,O=this.getTooltipEventType(),D=nL(this.state,this.props.data,this.props.layout,E);if(O!=="axis"&&M&&A){var I=Yc(M).scale,X=Yc(A).scale,Q=I&&I.invert?I.invert(S.chartX):null,V=X&&X.invert?X.invert(S.chartY):null;return _e(_e({},S),{},{xValue:Q,yValue:V},D)}return D?_e(_e({},S),D):null}},{key:"inRange",value:function(w,j){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,_=this.props.layout,S=w/k,N=j/k;if(_==="horizontal"||_==="vertical"){var E=this.state.offset,P=S>=E.left&&S<=E.left+E.width&&N>=E.top&&N<=E.top+E.height;return P?{x:S,y:N}:null}var M=this.state,A=M.angleAxisMap,O=M.radiusAxisMap;if(A&&O){var D=Yc(A);return II({x:S,y:N},D)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,j=this.getTooltipEventType(),k=oi(w,Vr),_={};k&&j==="axis"&&(k.props.trigger==="click"?_={onClick:this.handleClick}:_={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var S=K1(this.props,this.handleOuterEvent);return _e(_e({},S),_)}},{key:"addListener",value:function(){zS.on(US,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){zS.removeListener(US,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,j,k){for(var _=this.state.formattedGraphicalItems,S=0,N=_.length;St.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xe=(t,e)=>{const n=g.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:c,...u},d)=>g.createElement("svg",{ref:d,...ECe,width:a,height:a,stroke:r,strokeWidth:o?Number(s)*24/Number(a):s,className:["lucide",`lucide-${ACe(t)}`,l].join(" "),...u},[...e.map(([f,h])=>g.createElement(f,h)),...Array.isArray(c)?c:[c]]));return n.displayName=`${t}`,n};/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xh=Xe("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hp=Xe("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const V0=Xe("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Au=Xe("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dH=Xe("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const a1=Xe("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zw=Xe("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const OCe=Xe("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wj=Xe("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Oh=Xe("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gi=Xe("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wn=Xe("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const TCe=Xe("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xi=Xe("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ds=Xe("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const PCe=Xe("CircleAlert",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fH=Xe("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gp=Xe("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hj=Xe("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hH=Xe("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vd=Xe("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pH=Xe("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lf=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sL=Xe("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const MCe=Xe("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xA=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const RCe=Xe("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gj=Xe("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ef=Xe("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mH=Xe("FileText",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const DCe=Xe("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qp=Xe("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ICe=Xe("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qj=Xe("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $Ce=Xe("GitCompare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const LCe=Xe("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pT=Xe("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const FCe=Xe("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qu=Xe("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mT=Xe("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gT=Xe("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xT=Xe("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gH=Xe("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xH=Xe("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ou=Xe("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yA=Xe("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yH=Xe("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vH=Xe("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ry=Xe("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Oo=Xe("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const BCe=Xe("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const El=Xe("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cf=Xe("PieChart",[["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}],["path",{d:"M22 12A10 10 0 0 0 12 2v10z",key:"1rfc4y"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ts=Xe("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qn=Xe("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Tm=Xe("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const As=Xe("RefreshCw",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bH=Xe("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Kp=Xe("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wH=Xe("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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zCe=Xe("ShieldAlert",[["path",{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",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yT=Xe("ShieldCheck",[["path",{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",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hi=Xe("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kH=Xe("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WS=Xe("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7",key:"jon5kx"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Dy=Xe("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jH=Xe("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UCe=Xe("ToggleRight",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Cn=Xe("Trash2",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const SH=Xe("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Kj=Xe("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pm=Xe("TriangleAlert",[["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"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _H=Xe("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iL=Xe("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vT=Xe("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hr=Xe("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** + * @license lucide-react v0.363.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bT=Xe("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"}]]),VCe="modulepreload",WCe=function(t){return"/decision-engine/"+t},oL={},HCe=function(e,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(n.map(c=>{if(c=WCe(c),c in oL)return;oL[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":VCe,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&s(l.reason);return e().catch(s)})};let lL=null;const Ad={get:()=>lL,set:t=>{lL=t}},NH="public",GCe="/decision-engine/api",HS=GCe.replace(/\/$/,""),CH="decision-engine";function wT(t){if(/^https?:\/\//.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return e.startsWith(`${HS}/`)||e===HS?e:`${HS}${e}`}function qCe(t){return`${window.location.origin}${wT(t)}`}function cL(t){return typeof t=="string"&&t.trim()?t.trim():typeof t=="number"||typeof t=="boolean"?String(t):null}function EH(t){if(!t||typeof t!="object")return cL(t);const e=t,n=["message","error_message","user_message","developer_message","error","detail","details"];for(const r of n){const a=cL(e[r]);if(a)return a}for(const r of["data","error_info","context"]){const a=EH(e[r]);if(a)return a}return null}const KCe=200,vA="Something went wrong. Please try again.";function AH(t,e,n){const r=n.trim();r&&console.error(`[api] ${t} ${e||""}`.trim(),r.slice(0,2e3));const a=/^\s*({const{useAuthStore:c}=await Promise.resolve().then(()=>_Ae);return{useAuthStore:c}},void 0).then(({useAuthStore:c})=>{c.getState().clearAuth()}),window.location.href="/decision-engine/login",new Error("Session expired")}if(!s.ok){const l=new Error(AH(s.status,s.statusText,o));throw l.status=s.status,l.responseText=o,l}if(!o.trim())return;try{return JSON.parse(o)}catch(l){const c=new Error(vA);throw c.status=s.status,c.responseText=o,c.cause=l,console.error(`[api] ${s.status} non-JSON response`,o.slice(0,2e3)),c}}catch(r){throw r}}async function Ve(t,e){return la(t,{method:"POST",body:e!==void 0?JSON.stringify(e):void 0})}async function Yj(t,e){return la(t,{method:"PUT",body:e!==void 0?JSON.stringify(e):void 0})}async function Mm(t){return la(t,{method:"DELETE"})}function kT(t,e,n){const r=wT(t),a=Ad.get();return new Promise((s,o)=>{const l=new XMLHttpRequest;l.open("POST",r),l.setRequestHeader("Content-Type","application/octet-stream"),l.setRequestHeader("x-tenant-id",NH),l.setRequestHeader("x-feature",CH),a&&l.setRequestHeader("Authorization",`Bearer ${a}`),l.upload.onprogress=c=>{c.lengthComputable&&(n==null||n({loaded:c.loaded,total:c.total,phase:"uploading"}))},l.upload.onload=()=>{n==null||n({loaded:e.size,total:e.size,phase:"processing"})},l.onload=()=>{const c=l.responseText??"";if(l.status>=200&&l.status<300){if(!c.trim()){s(void 0);return}try{s(JSON.parse(c))}catch{o(new Error("Invalid JSON in upload response"))}return}const u=new Error(AH(l.status,l.statusText,c));u.status=l.status,u.responseText=c,o(u)},l.timeout=30*60*1e3,l.onerror=()=>o(new Error("Could not reach the server. Check your connection and try again.")),l.ontimeout=()=>o(new Error("Upload timed out. Please try again.")),l.onabort=()=>o(new Error("Upload cancelled.")),l.send(e)})}async function Lt(t){return la(t)}const Th={GSM_RETRY_IN_SIMULATION:!1,SMART_RETRY_IN_ANALYTICS:!1,SMART_RETRY_IN_SIMULATION:!1},il={backgroundColor:"var(--chart-tooltip-bg)",border:"1px solid var(--chart-tooltip-border)",borderRadius:"14px",color:"var(--chart-tooltip-text)",boxShadow:"var(--chart-tooltip-shadow)",padding:"10px 12px"},ol={color:"var(--chart-tooltip-label)",fontWeight:600,marginBottom:8},Ph={color:"var(--chart-tooltip-text)"},YCe={primary:"bg-brand-600 text-white hover:bg-brand-700 disabled:opacity-50 shadow-sm border border-transparent dark:bg-white dark:text-black dark:hover:bg-slate-200",secondary:"bg-white text-slate-700 border border-slate-200 hover:bg-slate-50 hover:text-slate-900 disabled:opacity-40 shadow-sm dark:bg-[#121214] dark:text-[#a1a1aa] dark:border-[#27272a] dark:hover:bg-[#18181b] dark:hover:text-white",ghost:"text-slate-500 hover:text-slate-900 hover:bg-slate-100 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:text-white dark:hover:bg-[#121214]",danger:"bg-red-50 text-red-600 hover:bg-red-100 border border-red-200 disabled:opacity-40 dark:bg-[#2a0505] dark:text-red-500 dark:hover:bg-[#380808] dark:border-[#5c1c1c]"},XCe={sm:"px-4 py-1.5 text-xs font-semibold",md:"px-5 py-2.5 text-sm font-semibold"};function ke({variant:t="primary",size:e="md",className:n="",...r}){return i.jsx("button",{className:`relative inline-flex items-center justify-center gap-2 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-brand-500/50 focus:ring-offset-1 focus:ring-offset-transparent focus:border-transparent ${YCe[t]} ${XCe[e]} ${n}`,...r,children:r.children})}function Te({children:t,className:e="",onClick:n}){const r=`relative min-w-0 overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-[0_18px_60px_-42px_rgba(15,23,42,0.15)] dark:border-[#2a303a] dark:bg-[#11151d] dark:shadow-[0_18px_60px_-42px_rgba(0,0,0,0.7)] ${n?"cursor-pointer text-left transition duration-300 hover:-translate-y-0.5 hover:border-[#3b82f6]/35 hover:bg-slate-50 dark:hover:bg-[#141923]":""} ${e}`,a=i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-[#3b82f6]/25 to-transparent dark:via-[#3b82f6]/30"}),i.jsx("div",{className:"absolute inset-0 bg-[linear-gradient(180deg,rgba(255,255,255,0.55),transparent_26%)] dark:bg-[linear-gradient(180deg,rgba(255,255,255,0.02),transparent_26%)]"}),i.jsx("div",{className:"relative min-w-0 flex flex-col h-full",children:t})]});return n?i.jsx("button",{type:"button",onClick:n,className:r,children:a}):i.jsx("div",{className:r,children:a})}function jt({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 border-b border-slate-200 px-6 py-5 dark:border-[#2a303a] ${e}`,children:t})}function ze({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 px-6 py-5 ${e}`,children:t})}function an({children:t,className:e=""}){return i.jsx("p",{className:`block max-w-full truncate text-[12px] font-medium leading-4 text-slate-500 dark:text-[#8d96aa] ${e}`,children:t})}function bA({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 overflow-hidden rounded-[22px] border border-slate-200 bg-white/80 px-4 py-4 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none ${e}`,children:t})}const JCe={green:"bg-emerald-500/10 text-emerald-600 ring-1 ring-inset ring-emerald-500/20 dark:text-emerald-300",gray:"bg-slate-900/[0.04] text-slate-700 ring-1 ring-inset ring-slate-900/8 dark:bg-white/[0.05] dark:text-slate-300 dark:ring-white/8",blue:"bg-sky-500/12 text-sky-700 ring-1 ring-inset ring-sky-500/22 dark:bg-sky-400/14 dark:text-sky-200 dark:ring-sky-400/28",red:"bg-red-500/10 text-red-600 ring-1 ring-inset ring-red-500/20 dark:text-red-300",orange:"bg-orange-500/10 text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300",purple:"bg-purple-500/10 text-purple-600 ring-1 ring-inset ring-purple-500/20 dark:text-purple-300"};function Pe({variant:t="gray",children:e}){return i.jsx("span",{className:`inline-flex max-w-full min-w-0 items-center gap-1 overflow-hidden rounded-md px-2 py-0.5 text-xs font-medium tracking-wide ${JCe[t]}`,children:i.jsx("span",{className:"min-w-0 truncate",children:e})})}function mt({size:t=20}){return i.jsxs("svg",{className:"animate-spin text-brand-600",width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:[i.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),i.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]})}function _t({error:t}){return t?i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-4 py-3 text-sm text-red-400 font-mono",children:t}):null}const ZCe={},uL=t=>{let e;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(e):d;if(!Object.is(h,e)){const p=e;e=f??(typeof h!="object"||h===null)?h:Object.assign({},e,h),n.forEach(m=>m(e,p))}},a=()=>e,c={setState:r,getState:a,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(ZCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=e=t(r,a,c);return c},QCe=t=>t?uL(t):uL;var TH={exports:{}},PH={};/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xj=g,eEe=MC;function tEe(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var nEe=typeof Object.is=="function"?Object.is:tEe,rEe=eEe.useSyncExternalStore,aEe=Xj.useRef,sEe=Xj.useEffect,iEe=Xj.useMemo,oEe=Xj.useDebugValue;PH.useSyncExternalStoreWithSelector=function(t,e,n,r,a){var s=aEe(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=iEe(function(){function c(p){if(!u){if(u=!0,d=p,p=r(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return f=m}return f=p}if(m=f,nEe(d,p))return m;var x=r(p);return a!==void 0&&a(m,x)?(d=p,m):(d=p,f=x)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return c(e())},h===null?void 0:function(){return c(h())}]},[e,n,r,a]);var l=rEe(t,s[0],s[1]);return sEe(function(){o.hasValue=!0,o.value=l},[l]),oEe(l),l};TH.exports=PH;var lEe=TH.exports;const cEe=Rn(lEe),MH={},{useDebugValue:uEe}=J,{useSyncExternalStoreWithSelector:dEe}=cEe;let dL=!1;const fEe=t=>t;function hEe(t,e=fEe,n){(MH?"production":void 0)!=="production"&&n&&!dL&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),dL=!0);const r=dEe(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return uEe(r),r}const pEe=t=>{(MH?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?QCe(t):t,n=(r,a)=>hEe(e,r,a);return Object.assign(n,e),n},RH=t=>pEe,mEe={};function gEe(t,e){let n;try{n=t()}catch{return}return{getItem:a=>{var s;const o=c=>c===null?null:JSON.parse(c,void 0),l=(s=n.getItem(a))!=null?s:null;return l instanceof Promise?l.then(o):o(l)},setItem:(a,s)=>n.setItem(a,JSON.stringify(s,void 0)),removeItem:a=>n.removeItem(a)}}const W0=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return W0(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return W0(r)(n)}}}},xEe=(t,e)=>(n,r,a)=>{let s={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:y=>y,version:0,merge:(y,b)=>({...b,...y}),...e},o=!1;const l=new Set,c=new Set;let u;try{u=s.getStorage()}catch{}if(!u)return t((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...y)},r,a);const d=W0(s.serialize),f=()=>{const y=s.partialize({...r()});let b;const v=d({state:y,version:s.version}).then(w=>u.setItem(s.name,w)).catch(w=>{b=w});if(b)throw b;return v},h=a.setState;a.setState=(y,b)=>{h(y,b),f()};const p=t((...y)=>{n(...y),f()},r,a);let m;const x=()=>{var y;if(!u)return;o=!1,l.forEach(v=>v(r()));const b=((y=s.onRehydrateStorage)==null?void 0:y.call(s,r()))||void 0;return W0(u.getItem.bind(u))(s.name).then(v=>{if(v)return s.deserialize(v)}).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==s.version){if(s.migrate)return s.migrate(v.state,v.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return v.state}).then(v=>{var w;return m=s.merge(v,(w=r())!=null?w:p),n(m,!0),f()}).then(()=>{b==null||b(m,void 0),o=!0,c.forEach(v=>v(m))}).catch(v=>{b==null||b(void 0,v)})};return a.persist={setOptions:y=>{s={...s,...y},y.getStorage&&(u=y.getStorage())},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>x(),hasHydrated:()=>o,onHydrate:y=>(l.add(y),()=>{l.delete(y)}),onFinishHydration:y=>(c.add(y),()=>{c.delete(y)})},x(),m||p},yEe=(t,e)=>(n,r,a)=>{let s={storage:gEe(()=>localStorage),partialize:x=>x,version:0,merge:(x,y)=>({...y,...x}),...e},o=!1;const l=new Set,c=new Set;let u=s.storage;if(!u)return t((...x)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...x)},r,a);const d=()=>{const x=s.partialize({...r()});return u.setItem(s.name,{state:x,version:s.version})},f=a.setState;a.setState=(x,y)=>{f(x,y),d()};const h=t((...x)=>{n(...x),d()},r,a);a.getInitialState=()=>h;let p;const m=()=>{var x,y;if(!u)return;o=!1,l.forEach(v=>{var w;return v((w=r())!=null?w:h)});const b=((y=s.onRehydrateStorage)==null?void 0:y.call(s,(x=r())!=null?x:h))||void 0;return W0(u.getItem.bind(u))(s.name).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==s.version){if(s.migrate)return[!0,s.migrate(v.state,v.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,v.state];return[!1,void 0]}).then(v=>{var w;const[j,k]=v;if(p=s.merge(k,(w=r())!=null?w:h),n(p,!0),j)return d()}).then(()=>{b==null||b(p,void 0),p=r(),o=!0,c.forEach(v=>v(p))}).catch(v=>{b==null||b(void 0,v)})};return a.persist={setOptions:x=>{s={...s,...x},x.storage&&(u=x.storage)},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:x=>(l.add(x),()=>{l.delete(x)}),onFinishHydration:x=>(c.add(x),()=>{c.delete(x)})},s.skipHydration||m(),p||h},vEe=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((mEe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),xEe(t,e)):yEe(t,e),DH=vEe,Er=RH()(DH(t=>({merchantId:"",setMerchantId:e=>{console.log(` +[STORE] Merchant ID changed: "${e}"`),t({merchantId:e})}}),{name:"merchant-store"})),IH=15e3,$H=1e4;function Jj(t,e="",n={}){if(!t)return null;const r=new URLSearchParams;for(const[s,o]of Object.entries(n))o&&r.set(s,o);const a=r.toString();return`/merchant-account/${t}/volume-commitment${e}${a?`?${a}`:""}`}function jT(t,e=IH){const{data:n,error:r,isLoading:a,mutate:s}=ut(Jj(t),Lt,{revalidateOnFocus:!1,refreshInterval:e});return{data:n,error:r,isLoading:a,isActive:!!(n!=null&&n.active),mutate:s}}function ST(t,e,n={}){const r=Jj(t,"/series",{run_id:e,per_day:n.perDay&&n.perDay>1?String(n.perDay):void 0}),{data:a,error:s,isLoading:o,mutate:l}=ut(r,Lt,{revalidateOnFocus:!1,refreshInterval:n.refreshInterval??IH,keepPreviousData:!0});return{data:a,error:s,isLoading:o,mutate:l}}function LH(t,e){const n=Jj(t,"/audit",{run_id:e}),{data:r,error:a,isLoading:s}=ut(n,Lt,{revalidateOnFocus:!1,refreshInterval:$H});return{events:(r==null?void 0:r.events)??[],runs:(r==null?void 0:r.runs)??[],error:a,isLoading:s}}function bEe(t,e){const n=Jj(t,"/impact",{run_id:e}),{data:r,error:a,isLoading:s,mutate:o}=ut(n,Lt,{revalidateOnFocus:!1,refreshInterval:$H,shouldRetryOnError:!1,keepPreviousData:!0});return{data:r,error:a,isLoading:s,mutate:o}}const wA=["#0069ED","#0d9488","#ea580c","#8b5cf6"],wEe="#94a3b8",H0=86400;function FH(t){return(t??H0)0))return"0";if(t>=e)return"100";const n=Math.max(0,t/e*100);return Math.round(n)>=100?Math.min(99.9,Math.floor(n*10)/10).toFixed(1):Math.round(n).toString()}function zH(t,e,n){const r=es(t,n);if(t>=e||r!==es(e,n))return r;if(!n)return t.toLocaleString();const a=CT(t,n);try{return new Intl.NumberFormat("en",{style:"currency",currency:n,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(a)}catch{return`${n} ${a.toLocaleString()}`}}function wu(t){return Number.isFinite(t)?Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(0)}k`:t.toFixed(0):"0"}function UH(t,e){return`vc-hatch-${t}-${e.replace(/[^a-zA-Z0-9_-]/g,"_")}`}function kEe({entries:t}){return i.jsx("defs",{children:t.map(({id:e,color:n})=>i.jsxs("pattern",{id:e,patternUnits:"userSpaceOnUse",width:6,height:6,patternTransform:"rotate(45)",children:[i.jsx("rect",{width:6,height:6,fill:n,opacity:.22}),i.jsx("line",{x1:0,y1:0,x2:0,y2:6,stroke:n,strokeWidth:2})]},e))})}function jA({color:t}){return i.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-[3px]",style:{backgroundColor:t}})}function jEe({color:t}){return i.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-[3px]",style:{backgroundColor:`${t}38`,backgroundImage:`repeating-linear-gradient(45deg, ${t} 0 1.5px, transparent 1.5px 4px)`}})}function SEe(){return i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dashed border-slate-600 dark:border-slate-300"})}const _Ee=new Set(["JPY","KRW","VND","CLP","ISK","HUF","UGX","XAF","XOF"]);function CT(t,e){return _Ee.has(e)?t:t/100}function NEe(t){var e;try{return((e=new Intl.NumberFormat("en",{style:"currency",currency:t,currencyDisplay:"narrowSymbol"}).formatToParts(0).find(r=>r.type==="currency"))==null?void 0:e.value)??t}catch{return t}}function es(t,e){if(Number.isFinite(t)||(t=0),!e)return wu(t);const n=CT(t,e),r=Math.abs(n),a=NEe(e),s=n<0?"-":"";return r>=1e6?`${s}${a}${(r/1e6).toFixed(1)}M`:r>=1e4?`${s}${a}${(r/1e3).toFixed(0)}k`:r>=1e3?`${s}${a}${(r/1e3).toFixed(1)}k`:`${s}${a}${r.toFixed(0)}`}function VH(t,e){if(Number.isFinite(t)||(t=0),!e)return Math.round(t).toLocaleString();const n=CT(t,e);try{return new Intl.NumberFormat("en",{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:0}).format(n)}catch{return`${e} ${Math.round(n).toLocaleString()}`}}function s1(t,e,n){return t*Math.min(n,Math.floor(e+1e-9)+1)/n}const Jh="#dc2626",SA="#d97706",CEe="#059669";function EEe(t){const{metas:e,steers:n,drops:r,currency:a,daysTotal:s,dayLabel:o,xLo:l,xHi:c,xAxisMap:u,yAxisMap:d,offset:f}=t,h=u?Object.values(u)[0]:void 0,p=d?Object.values(d)[0]:void 0;if(!h||!p||!f)return null;const m=S=>h.scale(S),x=S=>p.scale(S),y=m(c);if(y==null)return null;const b=S=>S>=l-1e-9&&S<=c+1e-9,v=30,w=e.map(S=>({m:S,y:x(s1(S.goal,c,s))??f.top})).sort((S,N)=>S.y-N.y);for(let S=1;S=0;S-=1)w[S].y>j&&(w[S].y=j),SS&&S.amount>=N.amount?S:N,null),_=Math.max(1,Math.ceil(s/30));return i.jsxs("g",{style:{fontFamily:"inherit"},children:[e.map(S=>Array.from({length:s},(N,E)=>E+1).filter(N=>N%_===0&&N>=l-1e-9&&N<=c+1e-9).map(N=>{const E=m(N),P=x(S.goal*N/s);return E==null||P==null?null:i.jsx("circle",{cx:E,cy:P,r:2.5,fill:"none",stroke:S.color,strokeWidth:1.5,opacity:.8},`target-${S.name}-${N}`)})),r.map(S=>{if(!b(S.day))return null;const N=m(S.day);if(N==null)return null;const E=`${o} ${Math.round(S.day)} · ${S.names.join(", ")} dropped`,P=E.length*6+10,M=N+P>f.left+f.width;return i.jsxs("g",{children:[i.jsx("rect",{x:M?N-P-4:N+4,y:f.top-2,width:P,height:16,rx:3,fill:Jh,opacity:.1}),i.jsx("text",{x:M?N-8:N+9,y:f.top+10,fontSize:10.5,fontWeight:600,fill:Jh,textAnchor:M?"end":"start",children:E})]},`drop-${S.day}`)}),n.map((S,N)=>{if(!b(S.day))return null;const E=m(S.day),P=x(S.total);if(E==null||P==null)return null;const M=k===S;return i.jsxs("g",{children:[i.jsx("path",{d:`M${E},${P-11} l4.5,7 h-9 z`,fill:SA}),M&&i.jsxs("text",{x:E+7,y:P-6,fontSize:10.5,fontWeight:600,fill:SA,children:["steer +",es(S.amount,a)]})]},`steer-${S.name}-${N}`)}),e.filter(S=>S.status==="eliminated"||S.status==="missed").map(S=>{if(S.endDay(c-l)*.12&&i.jsx("text",{x:O,y:E-8,fontSize:10,fill:wEe,textAnchor:"middle",children:"dropped — natural traffic only"}),S.status==="missed"&&S.endDay<=c+1e-9&&i.jsx("text",{x:N,y:E-7,fontSize:10.5,fontWeight:600,fill:Jh,textAnchor:"end",children:"× missed"})]},`tail-${S.name}`)}),w.map(({m:S,y:N})=>{const E=S.color,P=S.status==="met"?"✓ ":S.status==="steering"?"↗ ":"";return i.jsxs("g",{children:[S.status==="met"&&i.jsx("text",{x:y+4,y:N+4,fontSize:11,fill:CEe,fontWeight:700,children:"✓"}),i.jsxs("text",{x:y+(S.status==="met"?16:8),y:N+4,fontSize:10.5,fontWeight:600,fill:E,children:[S.status==="met"?"":P,S.name," promise · ",es(S.goal,a)]}),i.jsxs("text",{x:y+(S.status==="met"?16:8),y:N+17,fontSize:10.5,fill:E,opacity:.85,children:["→ ",VH(S.reward,a),S.status==="steering"?" · steering":""]})]},`label-${S.name}`)})]})}function AEe({width:t,height:e,children:n}){return t?g.cloneElement(n,{width:t,height:e}):i.jsx(Li,{children:n})}function OEe({active:t,payload:e,label:n,metas:r,currency:a,dayLabel:s}){var l;if(!t||!(e!=null&&e.length))return null;const o=(l=e[0])==null?void 0:l.payload;return o?i.jsxs("div",{style:{...il,fontSize:12,lineHeight:1.5,minWidth:220},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:[s," ",typeof n=="number"?n.toFixed(n%1===0?0:1):n]}),r.map(c=>{const u=o[c.name]??o[`${c.name}__after`],d=u==null?o[`${c.name}__pending`]:void 0,f=u??d,h=o[`${c.name}__promise`];return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:c.color,flexShrink:0}}),i.jsx("span",{style:{fontWeight:600},children:c.name}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[f!=null?`${d!=null?"~":""}${es(f,a)}`:"—",i.jsxs("span",{style:{opacity:.6},children:[" ","/ ",h!=null?es(h,a):"—"," by ",s.toLowerCase(),"'s end"]})]})]},c.name)})]}):null}function WH({connectors:t,currency:e,daySecs:n,colorFor:r,statusFor:a,eliminatedAtMs:s,eliminationReasons:o,isPastRun:l,height:c=460,showLegend:u=!0,fixedWidth:d,perDay:f}){const h=Math.max(1,(n??H0)*1e3),p=1/Math.max(1,f??_T(n)),[,m]=g.useState(0);g.useEffect(()=>{if(l)return;const F=window.setInterval(()=>m(R=>R+1),500);return()=>window.clearInterval(F)},[l]);const x=kA().short,y=Math.max(1,...t.map(F=>F.daysTotal)),b=Math.min(...t.map(F=>Date.parse(F.cycleStart)||Number.POSITIVE_INFINITY)),v=Number.isFinite(b)?Math.min(y,Math.max(0,(Date.now()-b)/h)):y,{rows:w,metas:j,steers:k,drops:_,yMax:S,yTicks:N}=g.useMemo(()=>{var Ce;const F=fe=>Math.min(y,fe),R=fe=>F(Math.max(0,(fe-b)/h)),z=l?y:v,U=fe=>{const be=[...fe.points].sort((wt,zt)=>wt.day-zt.day),we=[];let Le=0,Oe=null;for(const wt of be){const zt=F(wt.day);Oe!=null&&zt-Oe>p*1.5&&we.push({at:Math.min(zt,z),total:Le,steered:0}),Le+=wt.total,we.push({at:Math.min(zt+p,z),total:Le,steered:wt.steered}),Oe=zt}const vt=be.filter(wt=>F(wt.day)+p<=z+1e-9).slice(-3),bt=vt.length?F(vt[vt.length-1].day)+p-F(vt[0].day):0,Bt=bt>0?vt.reduce((wt,zt)=>wt+zt.total,0)/bt:0;return{nodes:we,pace:Bt}},ee=new Map(t.map(fe=>[fe.connector,U(fe)])),pe=t.map((fe,be)=>{const we=a(fe.connector),Le=s==null?void 0:s.get(fe.connector),Oe=(we==="eliminated"||we==="missed")&&Le!=null&&Number.isFinite(b)?R(Le):void 0,{nodes:He,pace:vt}=ee.get(fe.connector)??{nodes:[],pace:0};return{name:fe.connector,color:r(fe.connector,be),goal:fe.goal,reward:fe.reward,status:we,dropDay:Oe,endDay:l?y:He.length?He[He.length-1].at:0,endTotal:0,pace:vt}}),re=new Set([0,y,...l?[]:[v]]);for(const{nodes:fe}of ee.values())for(const be of fe)re.add(be.at);for(const fe of pe)fe.dropDay!=null&&re.add(fe.dropDay);for(let fe=1;fe<=y;fe+=1)re.add(fe);const he=[...re].sort((fe,be)=>fe-be),q=[],W={},ue={},te=[];for(const fe of he){const be={day:fe};for(const we of pe){const Le=((Ce=ee.get(we.name))==null?void 0:Ce.nodes)??[];let Oe=ue[we.name]??0;for(;Oe0&&te.push({name:we.name,day:Le[Oe].at,endDay:Le[Oe].at,amount:Le[Oe].steered,total:Le[Oe].total,startTotal:vt,color:we.color}),Oe+=1}ue[we.name]=Oe;const He=W[we.name]??0;fe<=we.endDay+1e-9&&(we.dropDay!=null&&fe>=we.dropDay?(be[`${we.name}__after`]=He,fe===we.dropDay&&(be[we.name]=He)):be[we.name]=He,we.endTotal=He),!l&&v>we.endDay+1e-9&&(fe===v||Math.abs(fe-we.endDay)<1e-9)&&(be[`${we.name}__pending`]=we.endTotal+we.pace*(fe-we.endDay)),be[`${we.name}__promise`]=s1(we.goal,F(fe),y)}q.push(be)}const ie=6,me=pe.flatMap(fe=>te.filter(be=>be.name===fe.name).sort((be,we)=>we.amount-be.amount).slice(0,ie)),ve=new Map;for(const fe of pe){if(fe.dropDay==null)continue;const be=Math.round(fe.dropDay*100)/100,we=ve.get(be)??{day:fe.dropDay,names:[],reason:o==null?void 0:o.get(fe.name)};we.names.push(fe.name),ve.set(be,we)}const Ne=[...ve.values()].sort((fe,be)=>fe.day-be.day),je=fe=>l?fe.endTotal:fe.endTotal+fe.pace*Math.max(0,v-fe.endDay),Me=Math.max(1,...pe.map(fe=>Math.max(fe.goal,fe.endTotal,je(fe))))*1.05,Be=10**Math.floor(Math.log10(Me)),tt=Me/Be,B=(tt<=2?.5:tt<=5?1:2.5)*Be,se=Math.ceil(Me/B)*B,de=[];for(let fe=0;fe<=se+1e-9;fe+=B)de.push(fe);return{rows:q,metas:pe,steers:me,drops:Ne,yMax:se,yTicks:de}},[t,r,a,s,o,l,y,v,b,h,p]),E=g.useMemo(()=>(y<=8?[1,2]:[7,14]).filter(F=>F{const F=D-I,R=[.25,.5,1,2,5,10,15,30],z=A!=null?[...R].reverse().find(pe=>pe<=F/4)??.25:y<=8?1:y<=16?2:y<=40?6:Math.ceil(y/6),U=[],ee=A!=null?Math.ceil(I/z)*z:I;for(let pe=ee;pe{if(A==null)return{yLo:0,yHi:S,yTicksInView:N};const F=[];for(const ue of j)F.push(s1(ue.goal,I,y),s1(ue.goal,D,y));for(const ue of w){const te=Number(ue.day??0);if(!(teD+1e-9))for(const ie of j)for(const me of[ie.name,`${ie.name}__after`,`${ie.name}__pending`]){const ve=ue[me];typeof ve=="number"&&F.push(ve)}}const R=Math.max(0,Math.min(...F,Number.POSITIVE_INFINITY)),z=Math.max(...F,1),U=Math.max(z-R,z*.1,1),ee=10**Math.floor(Math.log10(U)),pe=U/ee,re=(pe<=2?.5:pe<=5?1:2.5)*ee,he=Math.max(0,Math.floor((R-U*.05)/re)*re),q=Math.ceil((z+U*.08)/re)*re,W=[];for(let ue=he;ue<=q+1e-9;ue+=re)W.push(ue);return{yLo:he,yHi:q,yTicksInView:W}},[A,w,j,I,D,y,S,N]),H=_.length>0,G=k.length>0,$=F=>`Last ${F} ${F===1?"day":"days"}`;return i.jsxs("div",{className:"w-full",children:[E.length>0&&i.jsx("div",{className:"mb-2 flex justify-end",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:[...E,"all"].map(F=>{const R=F==="all"?A==null:A===F;return i.jsx("button",{type:"button",onClick:()=>M(F),className:`rounded px-2.5 py-1 text-[11px] font-medium transition-colors ${R?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200"}`,children:F==="all"?"All":$(F)},String(F))})})}),i.jsx("div",{className:"w-full",style:{height:c},children:i.jsx(AEe,{width:d,height:c,children:i.jsxs(Jw,{data:w,margin:{top:20,right:196,bottom:4,left:8},children:[i.jsx(ko,{vertical:!1,stroke:"currentColor",opacity:.08}),i.jsx(Ia,{type:"number",dataKey:"day",domain:[I,D],allowDataOverflow:!0,ticks:X,tickFormatter:F=>`${x} ${Number.isInteger(F)?F:F.toFixed(2).replace(/0+$/,"")}`,tick:{fontSize:11},stroke:"currentColor",opacity:.5,tickLine:!1}),i.jsx(wa,{domain:[Q,V],allowDataOverflow:!0,ticks:Y,tickFormatter:F=>es(F,e),tick:{fontSize:11},stroke:"currentColor",opacity:.5,width:60,tickLine:!1}),i.jsx(Vr,{content:i.jsx(OEe,{metas:j,currency:e,dayLabel:x}),wrapperStyle:{zIndex:30,outline:"none"},cursor:{stroke:"currentColor",opacity:.2}}),_.filter(F=>F.day<=D).map(F=>i.jsx(My,{x1:Math.max(F.day,I),x2:D,fill:Jh,fillOpacity:.06,strokeOpacity:0},`area-${F.day}`)),_.filter(F=>F.day>=I&&F.day<=D).map(F=>i.jsx($j,{x:F.day,stroke:Jh,strokeDasharray:"2 3",strokeWidth:1.5},`line-${F.day}`)),j.map(F=>i.jsx(fi,{type:"stepAfter",dataKey:`${F.name}__promise`,stroke:F.color,strokeWidth:1.5,strokeDasharray:"6 4",opacity:.55,dot:!1,activeDot:!1,isAnimationActive:!1},`${F.name}-promise`)),!l&&j.map(F=>i.jsx(fi,{type:"linear",dataKey:`${F.name}__pending`,stroke:F.color,strokeWidth:2.25,strokeDasharray:"1 5",strokeLinecap:"round",opacity:.45,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!1},`${F.name}-pending`)),j.map(F=>i.jsx(fi,{type:"linear",dataKey:F.name,stroke:F.color,strokeWidth:2.25,dot:!1,activeDot:{r:3.5,strokeWidth:0},isAnimationActive:!1,connectNulls:!1},F.name)),j.filter(F=>F.dropDay!=null).map(F=>i.jsx(fi,{type:"linear",dataKey:`${F.name}__after`,stroke:F.color,strokeWidth:2,strokeDasharray:"2 3",opacity:.6,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!1},`${F.name}-after`)),i.jsx(Nw,{component:i.jsx(EEe,{metas:j,steers:k,drops:_,currency:e,daysTotal:y,dayLabel:x,xLo:I,xHi:D})})]})})}),u&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-5 gap-y-1.5 text-[11px] text-slate-600 dark:text-slate-300",children:[j.map(F=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"inline-block h-0.5 w-4 rounded",style:{backgroundColor:F.color}}),F.name," — running total"]},F.name)),i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dashed border-slate-500 dark:border-slate-400"}),"dashed steps = target to clear by each ",x.toLowerCase(),"'s end"]}),!l&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-2 border-dotted border-slate-400 dark:border-slate-500"}),"dotted = not yet measured, at recent pace"]}),G&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{style:{color:SA},children:"▲"})," steered chunk"]}),H&&i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"inline-block h-0 w-4 border-t-[1.5px] border-dotted",style:{borderColor:Jh}}),"commitment dropped"]})]})]})}function TEe({connectors:t,currency:e,colorFor:n,statusFor:r,achievedFor:a,reasonFor:s}){return i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:t.map((o,l)=>{const c=r(o.connector),u=n(o.connector,l),d=a(o.connector),f=es(o.goal,e),p=o.rewardNote.includes("%")?o.rewardNote.split(" ")[0]:null,m=c==="met"?{text:"Met",cls:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300"}:c==="steering"?{text:"Steering",cls:"bg-amber-500/10 text-amber-600 dark:text-amber-300"}:c==="eliminated"?{text:"Eliminated",cls:"bg-red-500/10 text-red-600 dark:text-red-300"}:c==="missed"?{text:"Missed",cls:"bg-slate-500/10 text-slate-600 dark:text-slate-300"}:c==="on_pace"?{text:"On pace",cls:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300"}:{text:"Pending",cls:"bg-slate-500/10 text-slate-600 dark:text-slate-300"};return i.jsxs("div",{title:s==null?void 0:s(o.connector),className:"rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm dark:border-[#2a303a] dark:bg-[#11151d]",style:{borderLeft:`4px solid ${u}`},children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("span",{className:"flex items-center gap-2 text-sm font-semibold text-slate-800 dark:text-white",children:[i.jsx("span",{className:"inline-block h-2 w-2 rounded-full",style:{backgroundColor:u}}),o.connector]}),i.jsx("span",{className:`rounded-md px-1.5 py-0.5 text-[10px] font-medium ${m.cls}`,children:m.text})]}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:["Promise ",i.jsx("strong",{className:"text-slate-700 dark:text-slate-200",children:f})," · ",o.rewardNote]}),i.jsx("p",{className:"mt-1.5 text-2xl font-semibold",style:{color:u},children:VH(o.reward,e)}),i.jsx("p",{className:"mt-0.5 text-[11px] text-slate-400 dark:text-slate-500",children:p?`${p} × ${f}`:`flat on hitting ${f}`}),i.jsxs("p",{className:"mt-1 text-[11px] tabular-nums text-slate-500 dark:text-slate-400",children:[zH(d,o.goal,e)," delivered · ",NT(d,o.goal),"%"]})]},o.connector)})})}const PEe=[],MEe=[];function fL(t){return wA[t%wA.length]}function hL(t){return`rounded-full border px-2.5 py-1 text-xs font-medium tabular-nums transition-colors ${t?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-slate-700 dark:text-slate-300 dark:hover:bg-white/5"}`}const REe={forecast:{label:"Forecast",variant:"blue"},steered:{label:"Steered",variant:"orange"},eliminated:{label:"Eliminated",variant:"red"}},DEe=10,IEe=200;function Dc(t){return new Date(t).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function _A(t){return t.toLocaleString()}function pL(t,e){return e>0?`${(t/e*100).toFixed(0)}%`:"—"}function HH(t){return t==="volume"?wu:_A}function $Ee(t){var u,d;const{rows:e,psps:n,xAxisMap:r,yAxisMap:a}=t,s=r?Object.values(r)[0]:void 0,o=a?Object.values(a)[0]:void 0;if(!s||!o)return null;const l=((d=(u=s.scale).bandwidth)==null?void 0:d.call(u))??0;if(l<=0)return null;const c=l*.08;return i.jsx("g",{children:e.flatMap(f=>n.map(h=>{const p=f[`${h.name}__pace`];if(typeof p!="number")return null;const m=s.scale(f.day),x=o.scale(p);return m==null||x==null?null:i.jsx("line",{x1:m+c,x2:m+l-c,y1:x,y2:x,stroke:h.color,strokeWidth:1.5,strokeDasharray:"5 3",opacity:.75},`${f.day}-${h.name}`)}))})}function mL({rows:t,psps:e,metric:n,yMax:r,hatchScope:a}){const s=HH(n),o=l=>UH(a,l);return i.jsx("div",{className:"h-72 w-full",children:i.jsx(Li,{children:i.jsxs(Yh,{data:t,margin:{top:12,right:12,bottom:4,left:4},barCategoryGap:"28%",barGap:3,children:[i.jsx(Nw,{component:i.jsx(kEe,{entries:e.map(l=>({id:o(l.name),color:l.color}))})}),i.jsx(ko,{vertical:!1,stroke:"currentColor",opacity:.08}),i.jsx(Ia,{dataKey:"day",tickFormatter:l=>`Day ${l}`,tick:{fontSize:11},stroke:"currentColor",opacity:.5,tickLine:!1,interval:t.length>16?Math.ceil(t.length/8)-1:0}),i.jsx(wa,{domain:[0,r],tickFormatter:s,tick:{fontSize:11},stroke:"currentColor",opacity:.5,width:56,tickLine:!1}),i.jsx(Vr,{cursor:{fill:"currentColor",opacity:.04},wrapperStyle:{zIndex:30,outline:"none"},content:({active:l,payload:c,label:u})=>{var f;if(!l||!(c!=null&&c.length))return null;const d=(f=c[0])==null?void 0:f.payload;return d?i.jsxs("div",{style:{...il,fontSize:12,lineHeight:1.5,minWidth:230},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Day ",u]}),e.map(h=>{const p=Number(d[`${h.name}__unaided`]??0),m=Number(d[`${h.name}__steered`]??0),x=d[`${h.name}__pace`];return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:h.color,flexShrink:0}}),i.jsx("span",{style:{fontWeight:600},children:h.name}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[s(p+m),m>0&&i.jsxs("span",{style:{opacity:.7},children:[" · ",s(m)," steered"]}),typeof x=="number"&&i.jsxs("span",{style:{opacity:.7},children:[" · needed ",s(x)]})]})]},h.name)})]}):null}}),e.map(l=>i.jsx(xs,{dataKey:`${l.name}__unaided`,stackId:l.name,fill:l.color,barSize:26,isAnimationActive:!1},`${l.name}-unaided`)),e.map(l=>i.jsx(xs,{dataKey:`${l.name}__steered`,stackId:l.name,fill:`url(#${o(l.name)})`,barSize:26,radius:[4,4,0,0],isAnimationActive:!1},`${l.name}-steered`)),n==="volume"&&i.jsx(Nw,{component:i.jsx($Ee,{rows:t,psps:e})})]})})})}function Qv({label:t,value:e,hint:n}){return i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsx(an,{children:t}),i.jsx("p",{className:"mt-2 text-2xl font-semibold text-slate-900 dark:text-white",children:e}),n&&i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:n})]})})}function LEe(){var Y,H,G,$,F,R,z,U,ee,pe,re,he;const{merchantId:t}=Er(),[e,n]=g.useState(void 0),[r,a]=g.useState("volume"),s=jT(t),o=_T((Y=s.data)==null?void 0:Y.daySecs),l=ST(t,e,{perDay:o}),c=LH(t,e),u=bEe(t,e),d=((H=l.data)==null?void 0:H.connectors)??PEe,f=(G=l.data)==null?void 0:G.currency,h=g.useMemo(()=>new Map(d.map((q,W)=>[q.connector,W])),[d]),p=g.useMemo(()=>{var q;return new Map((((q=s.data)==null?void 0:q.psps)??[]).map(W=>[W.connector,W]))},[s.data]),m=g.useMemo(()=>{var q;return new Map((((q=s.data)==null?void 0:q.eliminated)??[]).map(W=>[W.connector,W.reason]))},[s.data]),x=e!==void 0&&!(($=c.runs.find(q=>q.runId===e))!=null&&$.isCurrent),y=g.useMemo(()=>new Set(c.events.filter(q=>q.kind==="eliminated"&&q.connector&&(!e||q.runId===e)).map(q=>q.connector)),[c.events,e]),b=e??((F=c.runs.find(q=>q.isCurrent))==null?void 0:F.runId),v=g.useMemo(()=>BH(c.events,b),[c.events,b]),w=g.useMemo(()=>{const q=new Map;for(const W of d)q.set(W.connector,W.points.reduce((ue,te)=>ue+te.total,0));return q},[d]),j=g.useCallback(q=>{var W;return x?w.get(q)??0:((W=p.get(q))==null?void 0:W.achieved)??w.get(q)??0},[x,w,p]),k=g.useCallback(q=>{const W=d.find(ve=>ve.connector===q),ue=j(q);if(((W==null?void 0:W.goal)??0)>0&&ue>=((W==null?void 0:W.goal)??0))return"met";if(x?y.has(q):(W==null?void 0:W.eliminated)??!1)return x?"missed":"eliminated";if(x)return"missed";const me=p.get(q);return me?me.steering?"steering":"on_pace":"pending"},[d,j,x,y,p]),_=g.useCallback(q=>m.get(q),[m]),S=g.useCallback((q,W)=>fL(h.get(q)??W),[h]),N=((R=u.data)==null?void 0:R.connectors)??MEe,E=g.useMemo(()=>N.map((q,W)=>{const ue=h.get(q.connector)??W,te=x?y.has(q.connector):q.eliminated;return{name:q.connector,color:fL(ue),hatch:UH("analytics",q.connector),eliminated:te,goal:q.goal,before:q.before.volume,unaided:q.unaided.volume,steered:q.steered.volume,ceded:q.ceded.volume,beforePayments:q.before.payments,unaidedPayments:q.unaided.payments,steeredPayments:q.steered.payments,cededPayments:q.ceded.payments}}),[N,h,x,y]),P=kA((z=u.data)==null?void 0:z.daySecs).word,{beforeRows:M,withRows:A,beforeYMax:O,withYMax:D}=g.useMemo(()=>{var Ce,fe,be,we,Le;const q=Math.max(1,((Ce=u.data)==null?void 0:Ce.daysTotal)??1),W=Math.max(1,(((fe=u.data)==null?void 0:fe.daySecs)??H0)*1e3),ue=((be=u.data)==null?void 0:be.baselineDays)??[],te=((we=u.data)==null?void 0:we.cycleDays)??[],ie=u.data?Math.max(1,Math.round((u.data.baseline.endMs-u.data.baseline.startMs)/W)):q,me=Oe=>r==="volume"?{unaided:Math.max(0,Oe.total-Oe.steered),steered:Oe.steered}:{unaided:Math.max(0,Oe.payments-Oe.steeredPayments),steered:Oe.steeredPayments},ve=(Oe,He,vt,bt)=>{const Bt=new Map(Oe.map(Ut=>[`${Ut.connector}:${Ut.dayIndex}`,Ut])),wt=[],zt={};for(let Ut=0;Ut0&&Ie>0&&Ut<=vt&&(le==null||UtOe.dayIndex)),tt=ve(ue,Me,Be),B=new Map;if(Ne!=null)for(const[Oe,He]of v){const vt=E.find(Bt=>Bt.name===Oe);vt!=null&&vt.goal>0&&vt.unaided+vt.steered>=vt.goal||B.set(Oe,Math.max(0,Math.floor((He-Ne)/W)))}const se=ve(te,q,je,B),de=Oe=>{const He=Math.max(0,...Oe.flatMap(vt=>E.flatMap(bt=>[Number(vt[`${bt.name}__unaided`]??0)+Number(vt[`${bt.name}__steered`]??0),Number(vt[`${bt.name}__pace`]??0)])));return He>0?He*1.12:1};return{beforeRows:tt,withRows:se,beforeYMax:de(tt),withYMax:de(se)}},[u.data,E,r,x,v]),I=g.useMemo(()=>{const q=E.reduce((Ne,je)=>Ne+je.steeredPayments,0),W=E.reduce((Ne,je)=>Ne+je.unaidedPayments+je.steeredPayments,0),ue=E.reduce((Ne,je)=>Ne+je.steered,0),te=E.reduce((Ne,je)=>Ne+je.unaided+je.steered,0),ie=E.filter(Ne=>Ne.goal>0&&Ne.unaided+Ne.steered>=Ne.goal),me=N.filter(Ne=>Ne.goal>0&&Ne.withContract.volume>=Ne.goal).reduce((Ne,je)=>Ne+je.reward,0),ve=N.filter(Ne=>!(x?y.has(Ne.connector):Ne.eliminated)).reduce((Ne,je)=>Ne+je.reward,0);return{steeredPayments:q,cyclePayments:W,steeredVolume:ue,cycleVolume:te,met:ie.length,rewardSecured:me,rewardAtStake:ve}},[E,N,x,y]);if(!t)return i.jsx(_t,{error:"Set a merchant ID to view volume commitments."});if(s.error||l.error)return i.jsx(_t,{error:"Could not load volume-commitment analytics."});if(s.isLoading||l.isLoading)return i.jsx("div",{className:"flex justify-center py-10",children:i.jsx(mt,{})});if(d.length===0)return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pT,{size:16,className:"mt-0.5 text-brand-500"}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"No volume contracts are active for this merchant"}),i.jsx("p",{className:"mt-1 text-sm text-slate-500 dark:text-slate-400",children:"Configure commitments on the Multi Objective page's Volume Contracts tab and activate the document, then enable “Volume contracts (meet PSP commitments)” under its Feature Flags. Pick a short test cycle so a full period plays out in minutes, then drive traffic from the Decision Simulator and watch it land here."})]})]})})});const X=(U=u.data)==null?void 0:U.cycle,Q=(ee=u.data)==null?void 0:ee.baseline,V=(q,W)=>r==="volume"?q[W]:q[`${W}Payments`];return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"What the volume contract did"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:u.data?i.jsxs(i.Fragment,{children:["Contract live since ",i.jsx("strong",{children:Dc(u.data.contractSinceMs)}),X&&i.jsxs(i.Fragment,{children:[" ","· this cycle ",Dc(X.startMs)," → ",Dc(X.endMs)," (",u.data.daysTotal," ",kA(u.data.daySecs).short.toLowerCase()," cycle)"]}),Q&&i.jsxs(i.Fragment,{children:[" ","· compared with the previous cycle, ",Dc(Q.startMs)," →"," ",Dc(Q.endMs)]}),b&&i.jsxs(i.Fragment,{children:[" ","· run ",i.jsx("span",{className:"font-mono",children:b})]})]}):"Waiting for the first measurements of this contract."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-slate-700",children:["volume","payments"].map(q=>i.jsx("button",{type:"button",onClick:()=>a(q),className:`rounded px-2.5 py-1 text-[11px] font-medium transition-colors ${r===q?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200"}`,children:q==="volume"?"Volume":"Payments"},q))})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:c.runs.length>0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Run"}),i.jsx("button",{onClick:()=>n(void 0),className:hL(e===void 0),children:"Current"}),c.runs.slice(0,DEe).map(q=>i.jsxs("button",{onClick:()=>n(q.runId),title:`${q.runId} · ${q.forecasts} forecasts · ${q.steers} steers · ${q.eliminations} eliminations`,className:hL(e===q.runId),children:[q.isCurrent?"● ":"",Dc(q.startedAtEpochMs),i.jsx("span",{className:"ml-1.5 font-mono text-[10px] opacity-50",children:q.runId}),i.jsxs("span",{className:"ml-1.5 tabular-nums opacity-60",children:[q.steers,"↗"]})]},q.runId))]})})]})}),i.jsx(TEe,{connectors:d,currency:f,colorFor:S,statusFor:k,achievedFor:j,reasonFor:_}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Qv,{label:"Reward secured",value:es(I.rewardSecured,f),hint:`of ${es(I.rewardAtStake,f)} still reachable · ${I.met}/${E.length} commitments met`}),i.jsx(Qv,{label:"Payments steered",value:_A(I.steeredPayments),hint:`${pL(I.steeredPayments,I.cyclePayments)} of ${_A(I.cyclePayments)} payments this cycle`}),i.jsx(Qv,{label:"Volume steered",value:es(I.steeredVolume,f),hint:`${pL(I.steeredVolume,I.cycleVolume)} of ${es(I.cycleVolume,f)} delivered this cycle`}),i.jsx(Qv,{label:"Approval-rate tolerance",value:((pe=s.data)==null?void 0:pe.tolerance)!=null?`${(s.data.tolerance*100).toFixed(1)} pp`:"—",hint:"the most a steered payment may give up versus the best-approving PSP"})]}),i.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"1 · Previous cycle"}),i.jsxs("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:["What each PSP received per ",P," in the previous cycle"]}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:[Q?`${Dc(Q.startMs)} → ${Dc(Q.endMs)}`:"The cycle before this one",r==="volume"?" · dashed = what each promise needed that "+P+", after what had already landed":""]})]}),i.jsx(ze,{children:i.jsx(mL,{rows:M,psps:E,metric:r,yMax:O,hatchScope:"before"})})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"2 · This cycle"}),i.jsxs("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:["What each PSP received per ",P," in this cycle"]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"Solid is what approval-rate routing sent on its own; hatched is what the engine steered in."})]}),i.jsx(ze,{children:i.jsx(mL,{rows:A,psps:E,metric:r,yMax:D,hatchScope:"with"})})]})]}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-xs text-slate-600 dark:text-slate-300",children:[E.map(q=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(jA,{color:q.color}),q.name]},q.name)),i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(jEe,{color:((re=E[0])==null?void 0:re.color)??wA[0]}),"Steered in"]}),r==="volume"&&i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx(SEe,{}),"Pace each promise needs per ",P]})]}),i.jsx("div",{className:"mt-4 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-xs",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-slate-500 dark:text-slate-400",children:[i.jsx("th",{className:"py-1.5 pr-3 font-medium",children:"PSP"}),i.jsx("th",{className:"py-1.5 pr-3 font-medium",children:"Status"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Previous cycle"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Routed by approval"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Steered in"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Ceded"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"This cycle"}),i.jsx("th",{className:"py-1.5 pr-3 text-right font-medium",children:"Target"}),i.jsx("th",{className:"py-1.5 text-right font-medium",children:"Reward"})]})}),i.jsx("tbody",{className:"tabular-nums text-slate-700 dark:text-slate-200",children:E.map(q=>{const W=N.find(ve=>ve.connector===q.name),ue=q.unaided+q.steered,te=k(q.name),ie=p.get(q.name),me=HH(r);return i.jsxs("tr",{className:"border-t border-slate-100 dark:border-slate-800",children:[i.jsx("td",{className:"py-2 pr-3",children:i.jsxs("span",{className:"inline-flex items-center gap-2 font-medium",children:[i.jsx(jA,{color:q.color}),q.name]})}),i.jsx("td",{className:"py-2 pr-3",children:te==="met"?i.jsx(Pe,{variant:"green",children:"Met"}):te==="eliminated"?i.jsx("span",{title:m.get(q.name),children:i.jsx(Pe,{variant:"red",children:"Eliminated"})}):te==="missed"?i.jsx(Pe,{variant:"gray",children:"Missed"}):te==="steering"?i.jsxs(Pe,{variant:"orange",children:["Steering · ",(((ie==null?void 0:ie.steerRate)??0)*100).toFixed(0),"%"]}):te==="on_pace"?i.jsx(Pe,{variant:"green",children:"On pace"}):i.jsx(Pe,{variant:"gray",children:"Pending forecast"})}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"before"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"unaided"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(V(q,"steered"))}),i.jsx("td",{className:"py-2 pr-3 text-right",children:me(r==="volume"?q.ceded:q.cededPayments)}),i.jsxs("td",{className:"py-2 pr-3 text-right font-semibold",children:[me(r==="volume"?ue:q.unaidedPayments+q.steeredPayments),r==="volume"&&q.goal>0&&i.jsxs("span",{className:"ml-1 font-normal text-slate-400",children:["· ",NT(ue,q.goal),"%"]})]}),i.jsx("td",{className:"py-2 pr-3 text-right",children:wu(q.goal)}),i.jsx("td",{className:"py-2 text-right",children:wu((W==null?void 0:W.reward)??0)})]},q.name)})})]})}),i.jsx("p",{className:"mt-3 text-xs text-slate-500 dark:text-slate-400",children:"“Ceded” is what approval-rate routing would have sent a PSP but the engine moved to one behind on its commitment — the other side of every steered payment. Steering only happens inside the approval-rate tolerance, so approvals barely move."})]})}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"3 · Cumulative volume vs. each promise"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Solid lines are delivered volume; dashed steps are each PSP's per-day targets"}),x&&i.jsxs("p",{className:"mt-2 text-xs text-amber-600 dark:text-amber-500",children:["Showing the finished run ",e," — its own delivery across its own cycle, not the one currently in flight."]})]}),i.jsxs(ze,{children:[i.jsx(WH,{connectors:d,currency:f,daySecs:(he=l.data)==null?void 0:he.daySecs,colorFor:S,statusFor:k,eliminatedAtMs:v,eliminationReasons:m,isPastRun:x,height:480}),i.jsx("p",{className:"mt-3 text-xs text-slate-500 dark:text-slate-400",children:"Each dashed step is the volume a PSP must clear by that day's end (its promise split across the cycle). A solid line tracking below its ladder is behind pace — the engine steers a little extra volume there (▲), spread through the day. When not enough traffic remains to land a commitment the engine drops it (red marker): from there its line is dotted and carries natural traffic only, so the rest can still be met."})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx(an,{children:"4 · Audit trail"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Every forecast, steer and elimination — what happened, when, and why"})]}),i.jsx(ze,{children:c.events.length===0?i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Nothing yet. Entries appear when the scheduler runs a forecast or a payment is steered."}):i.jsx("div",{className:"max-h-96 space-y-2 overflow-y-auto pr-1",children:c.events.slice(0,IEe).map((q,W)=>{const ue=REe[q.kind];return i.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-slate-100 px-3 py-2 dark:border-slate-800",children:[i.jsx(Pe,{variant:ue.variant,children:ue.label}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-700 dark:text-slate-300",children:q.message}),i.jsxs("p",{className:"mt-0.5 text-xs tabular-nums text-slate-400 dark:text-slate-500",children:[new Date(q.atEpochMs).toLocaleString(),q.connector?` · ${q.connector}`:"",q.amount!=null?` · ${wu(q.amount)}`:"",e===void 0&&q.runId?` · ${q.runId}`:""]})]})]},`${q.atEpochMs}-${W}`)})})})]})]})}const FEe=["15m","1h","12h","1d","1w"],BEe=[{value:"15m",label:"Last 15 mins"},{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"},{value:"custom",label:"Custom window"}],zEe={"15m":15*60*1e3,"1h":60*60*1e3,"12h":12*60*60*1e3,"1d":24*60*60*1e3,"1w":7*24*60*60*1e3};function au(t){const e=Date.now();return{start_ms:e-zEe[t],end_ms:e}}function UEe(t){return t==="custom"||FEe.includes(t)?t:"1d"}function Fs(t){const e=new Date(t),n=r=>r.toString().padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`}function G0(t){const e=new Date(t).getTime();return Number.isFinite(e)?e:null}function Yp(t,e){const n=G0(t),r=G0(e),a=Date.now();if(!(n===null||r===null)&&!(r<=n||n>a||r>a))return{start_ms:n,end_ms:r}}function Qw(t){return new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}).format(new Date(t))}function VEe(t,e){return e?`${Qw(e.start_ms)} to ${Qw(e.end_ms)}`:"Custom window"}function GS(t){return t.toString().padStart(2,"0")}function ld(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function Gg(t){return new Date(t.getFullYear(),t.getMonth(),1)}function qg(t){const e=new Date;return t.getTime()>e.getTime()?e:t}function WEe(t){return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(t)}function HEe(t){return new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(t)}function GEe(t){const e=Gg(t),n=new Date(e);n.setDate(n.getDate()-e.getDay());const r=Array.from({length:42},(s,o)=>{const l=new Date(n);return l.setDate(n.getDate()+o),{key:`${l.getFullYear()}-${l.getMonth()}-${l.getDate()}`,date:l,inMonth:l.getMonth()===t.getMonth()}});return r.slice(35).every(s=>!s.inMonth)?r.slice(0,35):r}function qS(t,e){const n=new Date(t);return n.setHours(e.getHours(),e.getMinutes(),0,0),n}function gL(t,e){const n=G0(t);return n===null?e:qg(new Date(n))}function qEe({start:t,end:e,onApply:n,onCancel:r}){const a=new Date,s=g.useMemo(()=>gL(e,new Date),[e]),o=g.useMemo(()=>gL(t,new Date(s.getTime()-24*60*60*1e3)),[t,s]),[l,c]=g.useState({start:o,end:s}),[u,d]=g.useState(null),[f,h]=g.useState(Gg(s));g.useEffect(()=>{c({start:o,end:s}),h(Gg(s))},[o.getTime(),s.getTime()]);const p=g.useMemo(()=>GEe(f),[f]),m=Gg(f).getTime()>=Gg(a).getTime(),x=l.end??u,y=l.end!==null,b=l.end?{start:Fs(l.start.getTime()),end:Fs(l.end.getTime())}:null,v=b?Yp(b.start,b.end):void 0;function w(S){c(N=>N.end===null?ld(S).getTime(){const M=S==="start"?P.start:P.end;if(!M)return P;const A=new Date(M);return N==="hours"?A.setHours(Number(E)):A.setMinutes(Number(E)),{...P,[S]:qg(A)}})}function k(){b&&n(b.start,b.end)}function _(S){const N=ld(S).getTime(),E=ld(l.start).getTime(),P=x?ld(x).getTime():null;return N===E||P!==null&&N===P?"edge":P!==null&&N>E&&Nh(S=>new Date(S.getFullYear(),S.getMonth()-1,1)),"aria-label":"Previous month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white",children:i.jsx(TCe,{size:12})}),i.jsx("button",{type:"button",disabled:m,onClick:()=>h(S=>new Date(S.getFullYear(),S.getMonth()+1,1)),"aria-label":"Next month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-35 disabled:hover:border-slate-200 disabled:hover:text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white dark:disabled:hover:text-[#8a8a93]",children:i.jsx(Xi,{size:12})})]})]}),i.jsx("div",{className:"grid grid-cols-7 text-center text-[11px] font-semibold uppercase leading-4 tracking-[0.1em] text-slate-500 dark:text-[#78849a]",children:["S","M","T","W","T","F","S"].map((S,N)=>i.jsx("span",{className:"py-0.5",children:S},N))}),i.jsx("div",{className:"grid grid-cols-7",onMouseLeave:()=>d(null),children:p.map(S=>{const N=ld(S.date).getTime()>ld(a).getTime(),E=N?"idle":_(S.date);return i.jsx("div",{className:`py-px ${E==="idle"?"":"bg-brand-500/10 dark:bg-brand-500/15"}`,children:i.jsx("button",{type:"button",disabled:N,"aria-label":WEe(S.date),onClick:()=>w(S.date),onMouseEnter:()=>d(y?null:S.date),className:`flex h-7 w-full items-center justify-center rounded-md text-[12px] leading-4 transition ${N?"cursor-not-allowed text-slate-500 opacity-35 dark:text-[#78849a]":E==="edge"?"bg-brand-600 text-white shadow-[0_8px_20px_-14px_rgba(59,130,246,0.7)] dark:bg-brand-500":E==="inside"?"text-brand-700 dark:text-brand-200":S.inMonth?"text-slate-700 hover:bg-slate-100 dark:text-[#e5ecf7] dark:hover:bg-[#1a2130]":"text-slate-500 hover:bg-slate-100 dark:text-[#4b5565] dark:hover:bg-[#161b24]"}`,children:S.date.getDate()})},S.key)})}),i.jsx("div",{className:"mt-2 space-y-1.5 border-t border-slate-100 pt-2 dark:border-[#2a303a]",children:["start","end"].map(S=>{const N=S==="start"?l.start:l.end;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-9 text-[11px] font-medium leading-4 text-slate-500 dark:text-[#8a8a93]",children:S==="start"?"From":"To"}),i.jsx(xL,{unit:"hours",value:N,disabled:!N,onChange:E=>j(S,"hours",E)}),i.jsx("span",{className:"text-[11px] font-semibold leading-4 text-slate-500 dark:text-[#8a8a93]",children:":"}),i.jsx(xL,{unit:"minutes",value:N,disabled:!N,onChange:E=>j(S,"minutes",E)}),i.jsx("span",{className:"ml-auto truncate text-[11px] leading-4 text-slate-500 dark:text-[#8a8a93]",children:N?new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short"}).format(N):"Pick a day"})]},S)})}),b&&!v?i.jsx("p",{className:"mt-2 text-[11px] leading-4 text-red-600 dark:text-red-400",children:"The end must come after the start, and neither may be in the future."}):null,i.jsxs("div",{className:"mt-2.5 flex items-center justify-end gap-1.5",children:[r?i.jsx(ke,{size:"sm",variant:"secondary",onClick:r,children:"Cancel"}):null,i.jsx(ke,{size:"sm",onClick:k,disabled:!v,children:"Apply"})]})]})}function xL({unit:t,value:e,disabled:n,onChange:r}){const a=t==="hours"?24:60,s=e?t==="hours"?e.getHours():e.getMinutes():0;return i.jsx("select",{value:GS(s),disabled:n,onChange:o=>r(o.target.value),"aria-label":t==="hours"?"Hour":"Minute",className:"h-7 w-[52px] rounded-lg border border-slate-200 bg-white/90 px-1.5 text-[12px] leading-4 text-slate-700 disabled:opacity-40 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7]",children:Array.from({length:a},(o,l)=>i.jsx("option",{value:GS(l),children:GS(l)},l))})}function ET({range:t,customStart:e,customEnd:n,onRangeChange:r,onCustomChange:a,align:s="right",className:o=""}){const l=g.useRef(null),[c,u]=g.useState(!1);g.useEffect(()=>{if(!c)return;function h(m){var x;(x=l.current)!=null&&x.contains(m.target)||u(!1)}function p(m){m.key==="Escape"&&u(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[c]),g.useEffect(()=>{t!=="custom"&&u(!1)},[t]);const d=t==="custom"?Yp(e,n):void 0;function f(h){if(h==="custom"){u(p=>t==="custom"?!p:!0),t!=="custom"&&r("custom");return}u(!1),r(h)}return i.jsxs("div",{ref:l,className:`relative ${o}`,children:[i.jsx("div",{className:"flex flex-wrap items-center gap-1 rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d]",children:BEe.map(h=>i.jsx(ke,{size:"sm",variant:"secondary",title:h.label,className:KEe(t===h.value),onClick:()=>f(h.value),children:h.value==="custom"?"Custom":h.value},h.value))}),t==="custom"&&c?i.jsxs("div",{className:`absolute top-[calc(100%+10px)] z-[90] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-[0_24px_70px_-34px_rgba(15,23,42,0.48)] backdrop-blur dark:border-[#2a303a] dark:bg-[#11151d]/95 dark:shadow-[0_24px_70px_-34px_rgba(0,0,0,0.72)] ${s==="left"?"left-0":"right-0"}`,children:[i.jsxs("div",{className:"mb-3",children:[i.jsx("p",{className:"text-[13px] font-semibold leading-[18px] text-slate-900 dark:text-white",children:"Select time range"}),i.jsx("p",{className:"mt-1 text-[12px] leading-[18px] text-slate-500 dark:text-[#8a8a93]",children:d?VEe("custom",d):"Click a start day, then an end day"})]}),i.jsx(qEe,{start:e,end:n,onCancel:()=>u(!1),onApply:(h,p)=>{a(h,p),u(!1)}})]}):null]})}function KEe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}const yL="text-lg font-semibold text-slate-900 dark:text-white",YEe="mt-0.5 text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",La="text-[15px] leading-[22px] font-semibold text-slate-900 dark:text-white",gc="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ts="text-[13px] leading-[18px] font-medium text-slate-700 dark:text-[#c7cfdd]",ku="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96aa]";function qr({title:t,description:e,badge:n,className:r=""}){return i.jsxs("div",{className:r||void 0,children:[n?i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h1",{className:yL,children:t}),n]}):i.jsx("h1",{className:yL,children:t}),e?i.jsx("p",{className:YEe,children:e}):null]})}function vL(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function XEe(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,notation:"compact",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(0)} ${e}`}}const JEe=["transactions","rule_based","volume_commitments"],KS={transactions:"Multi-objective",rule_based:"Rule based / Volume based",volume_commitments:"Volume commitments"},co=["#0069ED","#14b8a6","#f97316","#e11d48","#8b5cf6","#22c55e"],YS={zIndex:30,outline:"none"},bL={dimensions:{},gateways:[]},wg=3,XS=50,ZEe=5,wL=10,QEe=[750,2e3,4e3],i1={share:{title:"Selected gateways over time",purpose:"Use this to see when traffic shifted from one connector to another for the selected merchant and routing slice.",calculation:"Decision events are grouped by time and chosen connector. The chart shows how many filtered decisions each gateway received over time.",source:"Reads ClickHouse-backed domain analytics rows from `analytics_domain_events`."},alignment:{title:"Routing alignment",purpose:"Use this to see whether the best-scoring connector is also leading traffic share.",calculation:"Compares the latest connector success-rate score with the gateways actually selected in the same time window.",source:"Reads the same ClickHouse-backed routing-stats response used by the gateway share and connector success-rate charts."},sr:{title:"Connector success rate over time",purpose:"Use this to explain why a connector won routing at a given time, based on the recorded historical score trail.",calculation:"Stored `score_snapshot` events are grouped over the selected window and averaged per connector. The line values are displayed as percentages.",source:"Reads ClickHouse-backed `score_snapshot` analytics rows from `analytics_domain_events`. The current score state still originates from Redis-backed scoring flows."},preview_activity:{title:"Connector selections over time",purpose:"Use this to see which connectors were selected over the chosen decision window.",calculation:"Returned decision traces are grouped by time using each trace's latest activity timestamp, then grouped by latest selected connector. The chart shows connector counts over time.",source:"Reads rule decision activity through `/analytics/preview-trace`."}};function GH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function eb(t,e,n,r){const a={range:e==="custom"?"1h":e,start_ms:n==null?void 0:n.start_ms,end_ms:n==null?void 0:n.end_ms,gateway:r!=null&&r.gateways.length?r.gateways.join(","):void 0};Object.entries((r==null?void 0:r.dimensions)||{}).forEach(([o,l])=>{l&&(a[o]=l)});const s=GH(a);return s?`${t}?${s}`:t}function NA(t,e,n,r){const a={range:t==="custom"?"1h":t,start_ms:r==null?void 0:r.start_ms,end_ms:r==null?void 0:r.end_ms,page:e,page_size:n},s=GH(a);return s?`/analytics/preview-trace?${s}`:"/analytics/preview-trace"}async function eAe(t,e){const n=await Lt(NA(t,1,XS,e)),r=Math.min(Math.ceil(n.total_results/XS),ZEe);if(r<=1)return n;const a=await Promise.all(Array.from({length:r-1},(s,o)=>Lt(NA(t,o+2,XS,e))));return{...n,results:[n.results,...a.map(s=>s.results)].flat()}}function ci(t,e=2){if(t==null||Number.isNaN(Number(t)))return"0";const n=Number(t);return Number.isInteger(n)?n.toString():n.toFixed(e)}function qH(t){return Number.isFinite(t)?t<=1?t*100:t:0}function Jo(t,e=1){return t==null||Number.isNaN(Number(t))?"0%":`${ci(qH(Number(t)),e)}%`}function tAe(t,e=1){return t===void 0||!Number.isFinite(t)?"No runner-up":`${t>0?"+":t<0?"-":""}${ci(Math.abs(t),e)} pp`}function JS(t,e){const n=t[e];return typeof n=="number"&&Number.isFinite(n)?n:0}function nAe(t,e){const n=Math.max(0,e.end_ms-e.start_ms);return n<=24*60*60*1e3?new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(t)):n<=7*24*60*60*1e3?new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short",hour:"2-digit"}).format(new Date(t)):new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short"}).format(new Date(t))}function Kf(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function rAe(t,e){const n=e?e.end_ms-e.start_ms:t==="15m"?9e5:t==="1h"?36e5:t==="12h"?432e5:t==="1d"?864e5:6048e5;return n<=15*60*1e3?60*1e3:n<=60*60*1e3?5*60*1e3:n<=12*60*60*1e3||n<=24*60*60*1e3?60*60*1e3:24*60*60*1e3}function CA(t,e){return t-t%Math.max(1,e)}function kL(t){return Array.from(new Set(t)).sort((e,n)=>e.localeCompare(n)).slice(0,6)}function ZS(t,e){const n=[],r=Math.max(1,e),a=CA(t.start_ms,r),s=CA(t.end_ms,r);for(let o=a;o<=s;o+=r)n.push(o);return n}function Wl({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-dashed border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function tb({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:20})}),i.jsx("p",{className:"mt-5 text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function aAe(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 shadow-sm outline-none transition focus:border-brand-500 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#e5e7eb]"}function QS(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function o1({content:t}){const[e,n]=g.useState(!1),r=g.useRef(null),[a,s]=g.useState({top:0,left:0,width:320});return g.useEffect(()=>{if(!e)return;function o(l){var c;(c=r.current)!=null&&c.contains(l.target)||n(!1)}return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[e]),g.useLayoutEffect(()=>{if(!e||!r.current)return;const o=320,l=280,c=16,u=12;function d(){if(!r.current)return;const f=r.current.getBoundingClientRect(),h=Math.min(o,window.innerWidth-c*2),p=Math.min(Math.max(f.right-h,c),window.innerWidth-h-c),x=f.bottom+u+l>window.innerHeight-c?Math.max(f.top-l-u,c):f.bottom+u;s({top:x,left:p,width:h})}return d(),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),()=>{window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0)}},[e]),i.jsxs("div",{ref:r,className:"relative shrink-0",children:[i.jsx("button",{type:"button","aria-label":`About ${t.title}`,onClick:()=>n(o=>!o),className:`flex h-7 w-7 items-center justify-center rounded-full border text-[13px] font-semibold transition ${e?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-500 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#8a8a93] dark:hover:text-white"} leading-[18px]`,children:"i"}),e?i.jsxs("div",{style:{position:"fixed",top:a.top,left:a.left,width:a.width},className:"z-[120] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-2xl backdrop-blur dark:border-[#1d1d23] dark:bg-[#09090d]/95",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.title}),i.jsxs("div",{className:"mt-3 space-y-3 text-[13px] leading-6 text-slate-600 dark:text-[#b3b3bd]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Why it matters"}),i.jsx("p",{className:"mt-2",children:t.purpose})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"How it is calculated"}),i.jsx("p",{className:"mt-2",children:t.calculation})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Data source"}),i.jsx("p",{className:"mt-2",children:t.source})]})]})]}):null]})}function sAe({summary:t,comparisonRows:e,expanded:n,onToggle:r}){var p,m,x,y;const a=t.srLeader&&t.srRunnerUp?t.srLeader.value-t.srRunnerUp.value:void 0,s=t.srLeaderVolume?`${ci(t.srLeaderVolume.count,0)} payments for ${t.srLeaderVolume.gateway}`:"No traffic share",o=t.comparableDecisionCount?`${ci(t.leaderDecisionCount,0)} of ${ci(t.comparableDecisionCount,0)} payments matched the best score`:s,l=t.alignmentPercent===null?"Not enough data":`${Jo(t.alignmentPercent)} traffic share`,c=((p=t.srLeader)==null?void 0:p.gateway)||"--",u=((m=t.volumeLeader)==null?void 0:m.gateway)||"--",d=!!(t.srLeader&&t.volumeLeader)&&((x=t.srLeader)==null?void 0:x.gateway)!==((y=t.volumeLeader)==null?void 0:y.gateway),f=t.volumeLeader?d?"orange":"green":"gray",h=[t.srLeader?`Best score: ${c}`:"No score",t.volumeLeader?`Traffic leader: ${u}`:"No traffic",l].join(" · ");return i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{className:n?"px-5 py-3":"px-5 py-3 !border-b-0",children:i.jsxs("div",{className:`flex flex-wrap justify-between gap-3 ${n?"items-start":"items-center"}`,children:[n?i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Routing alignment"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Traffic share: checks if the best-scoring connector is also getting the largest share."})]}):i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Gp,{size:18,className:"shrink-0 text-emerald-700"}),i.jsxs("span",{className:"min-w-0 text-[13px] text-slate-600 dark:text-[#9aa7bb] leading-[18px]",children:[i.jsx("span",{className:"font-semibold text-slate-800 dark:text-white",children:"Routing alignment"})," — ",h]})]}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:n?i.jsxs(i.Fragment,{children:[i.jsx(o1,{content:i1.alignment}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:r,children:"Hide details"})]}):i.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 text-[13px] font-semibold text-brand-600 transition hover:text-brand-700 dark:text-brand-300 dark:hover:text-brand-200 leading-[18px]",children:["Show details",i.jsx(Xi,{size:16})]})})]})}),n?i.jsxs(ze,{className:"space-y-5 px-5 py-3",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(Pe,{variant:"gray",children:["Best score: ",c]}),i.jsxs(Pe,{variant:f,children:["Traffic leader: ",u]})]}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.headline}),i.jsx("p",{className:"text-[13px] leading-[21px] text-slate-500 dark:text-[#8a8a93]",children:t.detail})]}),i.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-2 rounded-2xl border border-slate-200 bg-slate-50/80 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("span",{className:"text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:t.alignmentPercent===null?"Not enough data":Jo(t.alignmentPercent)}),i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:o})]}),e.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("div",{className:"min-w-[640px]",children:[i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] font-medium text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] leading-[18px]",children:[i.jsx("span",{children:"Connector"}),i.jsx("span",{children:"Success rate"}),i.jsx("span",{children:"Traffic"}),i.jsx("span",{children:"Share"}),i.jsx("span",{children:"Role"})]}),e.map(b=>i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] last:border-b-0 dark:border-[#2a303a] leading-[18px]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:b.color}}),i.jsx("span",{className:"truncate font-medium text-slate-900 dark:text-white",children:b.gateway})]}),i.jsxs("span",{className:"flex flex-wrap items-baseline gap-2 text-slate-600 dark:text-[#cbd5e1]",children:[b.srValue===null?"--":Jo(b.srValue),b.isSrLeader&&a!==void 0?i.jsxs("span",{className:"text-slate-500 dark:text-[#78849a]",children:[tAe(a)," vs next"]}):null]}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:ci(b.count,0)}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:Jo(b.share)}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[b.isSrLeader?i.jsx(Pe,{variant:"blue",children:"Best score"}):null,b.isVolumeLeader?i.jsx(Pe,{variant:"green",children:"Traffic leader"}):null,!b.isSrLeader&&!b.isVolumeLeader?i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Secondary"}):null]})]},b.gateway))]})}):i.jsx(Wl,{title:"No connector comparison yet",body:"This view needs both payment traffic and connector scores in the selected time window."})]}):null]})}function iAe(t){return t==="/decide_gateway"?"Decide Gateway":t==="/update_gateway"?"Update Gateway":t==="/rule_evaluate"?"Rule Evaluate":t}function jL(t){return t>=.85?"text-emerald-700 dark:text-emerald-400":t>=.7?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}function oAe(t){return t>=85?"green":t>=70?"orange":"red"}function lAe(){var xn,_a,Dn,ua,or,da,bi,is,fa,no,wr,Cc,Ua,kr,td,Pf,$o,Mt,nd,Ar,dn,In,Yr,Or,Ec;const t=_l(),[e,n]=g.useState("1d"),[r,a]=Nl(),s=r.get("view"),o=JEe.includes(s)?s:"transactions",l=ae=>{a(Se=>{const Ae=new URLSearchParams(Se);return ae==="transactions"?Ae.delete("view"):Ae.set("view",ae),Ae},{replace:!0})};g.useEffect(()=>{s!==(o==="transactions"?null:o)&&l(o)},[o,s]);const[c,u]=g.useState(bL),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),[y,b]=g.useState(1),[v,w]=g.useState(()=>Fs(Date.now()-24*60*60*1e3)),[j,k]=g.useState(()=>Fs(Date.now())),[_,S]=g.useState(()=>au("1d")),N=g.useMemo(()=>e==="custom"?Yp(v,j):void 0,[j,v,e]),E=e==="custom"?N:_,P="USD",M=E?eb("/analytics/overview",e,E):null,A=E?eb("/analytics/routing-stats",e,E):null,O=(()=>{if(!E)return null;const ae=eb("/analytics/cost-savings",e,E),Se=ae.includes("?")?"&":"?";return`${ae}${Se}currency=${encodeURIComponent(P)}`})(),D=E?eb("/analytics/routing-stats",e,E,c):null,I=E?["preview-trace-analytics",e,E.start_ms,E.end_ms]:null,X=E?NA(e,y,wL,E):null,Q={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},V={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},Y={...V,keepPreviousData:!0},H={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0,keepPreviousData:!0},G=ut(M,Lt,Q),$=ut(A,Lt,V),F=ut(O,Lt,V),R=ut(D,Lt,Y),z=ut(I,async ae=>{const[,Se,Ae,qe]=ae;return eAe(Se,Ae!==null&&qe!==null?{start_ms:Number(Ae),end_ms:Number(qe)}:void 0)},{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0}),U=ut(X,Lt,H);g.useEffect(()=>{const ae=()=>{if(G.mutate(),o==="transactions"){$.mutate(),R.mutate();return}z.mutate(),U.mutate()};ae();const Se=QEe.map(Ae=>window.setTimeout(ae,Ae));return()=>{Se.forEach(Ae=>window.clearTimeout(Ae))}},[t.key,o]);const ee=!G.data&&G.isLoading||!$.data&&$.isLoading||!R.data&&R.isLoading,pe=!G.data&&G.isLoading||!z.data&&z.isLoading,re=((xn=G.error)==null?void 0:xn.message)||((_a=$.error)==null?void 0:_a.message)||((Dn=R.error)==null?void 0:Dn.message)||null,he=((ua=G.error)==null?void 0:ua.message)||((or=z.error)==null?void 0:or.message)||((da=U.error)==null?void 0:da.message)||null,q=o==="transactions"?ee:pe,W=o==="transactions"?re:he,ue={dimensions:((is=(bi=$.data)==null?void 0:bi.available_filters)==null?void 0:is.dimensions)||((no=(fa=R.data)==null?void 0:fa.available_filters)==null?void 0:no.dimensions)||[],missing_dimensions:((Cc=(wr=$.data)==null?void 0:wr.available_filters)==null?void 0:Cc.missing_dimensions)||((kr=(Ua=R.data)==null?void 0:Ua.available_filters)==null?void 0:kr.missing_dimensions)||[],gateways:((Pf=(td=$.data)==null?void 0:td.available_filters)==null?void 0:Pf.gateways)||((Mt=($o=R.data)==null?void 0:$o.available_filters)==null?void 0:Mt.gateways)||[]},te=g.useMemo(()=>new Map(ue.dimensions.map(ae=>[ae.key,ae])),[ue.dimensions]);g.useEffect(()=>{u(ae=>{const Se=Object.fromEntries(Object.entries(ae.dimensions).filter(([qe,rt])=>{if(!rt)return!1;const at=te.get(qe);return at?at.values.includes(rt):!1})),Ae=ae.gateways.filter(qe=>ue.gateways.includes(qe));return Object.keys(Se).length===Object.keys(ae.dimensions).length&&Object.entries(Se).every(([qe,rt])=>ae.dimensions[qe]===rt)&&Ae.length===ae.gateways.length&&Ae.every((qe,rt)=>qe===ae.gateways[rt])?ae:{dimensions:Se,gateways:Ae}})},[te,ue.gateways]),g.useEffect(()=>{ue.dimensions.length<=wg&&m&&x(!1)},[ue.dimensions.length,m]),g.useEffect(()=>{b(1)},[e,E==null?void 0:E.start_ms,E==null?void 0:E.end_ms]);const ie=g.useMemo(()=>E||au(e),[E,e]),me=g.useMemo(()=>{var Se,Ae;const ae=[{route:"/decide_gateway",count:0},{route:"/update_gateway",count:0},{route:"/rule_evaluate",count:0}];return(Ae=(Se=G.data)==null?void 0:Se.route_hits)!=null&&Ae.length?ae.map(qe=>{var rt,at;return{...qe,count:((at=(rt=G.data)==null?void 0:rt.route_hits.find(Et=>Et.route===qe.route))==null?void 0:at.count)||0}}):ae},[G.data]),ve=g.useMemo(()=>me.filter(ae=>ae.route!=="/rule_evaluate"),[me]),Ne=g.useMemo(()=>{var qe;const ae=((qe=G.data)==null?void 0:qe.top_scores)??[],Se=ae.reduce((rt,at)=>rt+at.transaction_count,0);return Se?ae.reduce((rt,at)=>rt+at.score_value*at.transaction_count,0)/Se:null},[G.data]),je=g.useMemo(()=>{var ae;return((ae=me.find(Se=>Se.route==="/rule_evaluate"))==null?void 0:ae.count)||0},[me]),Me=((nd=z.data)==null?void 0:nd.results)||[],Be=((Ar=U.data)==null?void 0:Ar.results)||[],tt=g.useMemo(()=>{const ae=new Map;for(const Se of Me){const Ae=Se.latest_gateway||"No gateway selected";ae.set(Ae,(ae.get(Ae)||0)+1)}return Array.from(ae.entries()).map(([Se,Ae])=>({gateway:Se,count:Ae})).sort((Se,Ae)=>Ae.count-Se.count).slice(0,6)},[Me]),B=g.useMemo(()=>{const ae=new Map;for(const Se of Me){const Ae=Se.latest_status||"unknown";ae.set(Ae,(ae.get(Ae)||0)+1)}return Array.from(ae.entries()).map(([Se,Ae])=>({status:Se,count:Ae})).sort((Se,Ae)=>Ae.count-Se.count)},[Me]),se=g.useMemo(()=>B.reduce((ae,Se)=>ae+Se.count,0),[B]),de=g.useMemo(()=>{var Se;return se?(((Se=B.find(Ae=>Ae.status==="success"))==null?void 0:Se.count)??0)/se:null},[B,se]),Ce=g.useMemo(()=>rAe(e,E),[E,e]),fe=g.useMemo(()=>ae=>nAe(Number(ae),ie),[ie]),be=g.useMemo(()=>{const ae=tt.map(Ae=>Ae.gateway).slice(0,6),Se=new Map;for(const Ae of ZS(ie,Ce))Se.set(Ae,ae.reduce((qe,rt)=>(qe[rt]=0,qe),{bucket_ms:Ae}));for(const Ae of Me){const qe=Ae.latest_gateway||"No gateway selected";if(!ae.includes(qe))continue;const rt=CA(Ae.last_seen_ms,Ce),at=Se.get(rt)||ae.reduce((Et,yn)=>(Et[yn]=0,Et),{bucket_ms:rt});at[qe]=(at[qe]||0)+1,Se.set(rt,at)}return{gateways:ae,rows:Array.from(Se.values()).sort((Ae,qe)=>Ae.bucket_ms-qe.bucket_ms)}},[Ce,ie,Me,tt]),we=(dn=Me[0])==null?void 0:dn.last_seen_ms,Le=((In=U.data)==null?void 0:In.total_results)||0,Oe=Math.max(1,Math.ceil(Le/wL)),He=tt.filter(ae=>ae.gateway!=="No gateway selected").length,vt=((Yr=tt[0])==null?void 0:Yr.count)||1,bt=je>0&&!z.error&&!U.error&&Me.length===0&&Be.length===0;g.useEffect(()=>{if(!Le&&y!==1){b(1);return}y>Oe&&b(Oe)},[y,Oe,Le]);const Bt=g.useMemo(()=>{var qe;const ae=((qe=R.data)==null?void 0:qe.gateway_share)||[],Se=kL(ae.map(rt=>rt.gateway||"No gateway selected"));if(!Se.length)return{gateways:Se,rows:[]};const Ae=new Map;for(const rt of ZS(ie,Ce))Ae.set(rt,Se.reduce((at,Et)=>(at[Et]=0,at),{bucket_ms:rt}));for(const rt of ae){const at=rt.gateway||"No gateway selected";if(!Se.includes(at))continue;const Et=Ae.get(rt.bucket_ms)||Se.reduce((yn,$n)=>(yn[$n]=0,yn),{bucket_ms:rt.bucket_ms});Et[at]=rt.count,Ae.set(rt.bucket_ms,Et)}return{gateways:Se,rows:Array.from(Ae.values()).sort((rt,at)=>rt.bucket_ms-at.bucket_ms)}},[Ce,ie,R.data]),wt=g.useMemo(()=>{var qe,rt;const ae=kL((((qe=R.data)==null?void 0:qe.sr_trend)||[]).map(at=>at.gateway));if(!ae.length)return{gateways:ae,rows:[]};const Se=new Map;for(const at of ZS(ie,Ce))Se.set(at,ae.reduce((Et,yn)=>(Et[yn]=null,Et),{bucket_ms:at}));for(const at of((rt=R.data)==null?void 0:rt.sr_trend)||[]){if(!ae.includes(at.gateway))continue;const Et=Se.get(at.bucket_ms)||ae.reduce((yn,$n)=>(yn[$n]=null,yn),{bucket_ms:at.bucket_ms});Et[at.gateway]=qH(at.score_value),Se.set(at.bucket_ms,Et)}const Ae=Array.from(Se.values()).sort((at,Et)=>Number(at.bucket_ms)-Number(Et.bucket_ms));for(const at of ae){let Et=null,yn=!1;for(const $n of Ae){if(typeof $n[at]=="number"){Et=$n[at],yn=!0;continue}yn&&($n[at]=Et)}}return{gateways:ae,rows:Ae}},[Ce,ie,R.data]),zt=g.useMemo(()=>{if(!wt.rows.length)return[];const ae=[...wt.rows].reverse().find(Se=>wt.gateways.some(Ae=>typeof Se[Ae]=="number"));return ae?wt.gateways.map(Se=>({gateway:Se,value:typeof ae[Se]=="number"?ae[Se]:null})).filter(Se=>Se.value!==null):[]},[wt]),Ut=g.useMemo(()=>[...zt].sort((ae,Se)=>Se.value-ae.value),[zt]),Un=g.useMemo(()=>wt.gateways.reduce((ae,Se)=>(ae[Se]=wt.rows.filter(Ae=>typeof Ae[Se]=="number").length,ae),{}),[wt]),Vt=g.useMemo(()=>{const ae=wt.rows.flatMap(rt=>wt.gateways.map(at=>rt[at]).filter(at=>typeof at=="number"));if(!ae.length)return[0,100];const Se=Math.min(...ae),Ae=Math.max(...ae),qe=Se===Ae?5:Math.max(2,(Ae-Se)*.35);return[Math.max(0,Math.floor(Se-qe)),Math.min(100,Math.ceil(Ae+qe))]},[wt]),Kt=g.useMemo(()=>{const ae=new Map;for(const Ae of Bt.rows)for(const qe of Bt.gateways)ae.set(qe,(ae.get(qe)||0)+JS(Ae,qe));const Se=Array.from(ae.values()).reduce((Ae,qe)=>Ae+qe,0);return Bt.gateways.map(Ae=>{const qe=ae.get(Ae)||0;return{gateway:Ae,count:qe,share:Se?qe/Se*100:0}}).filter(Ae=>Ae.count>0).sort((Ae,qe)=>qe.count-Ae.count)},[Bt]),dt=g.useMemo(()=>{const ae=Ut[0]||null,Se=Ut[1]||null,Ae=Kt[0]||null,qe=ae?Kt.find(ha=>ha.gateway===ae.gateway)||{gateway:ae.gateway,count:0,share:0}:null,rt=new Map(wt.rows.map(ha=>[Number(ha.bucket_ms),ha]));let at=0,Et=0;for(const ha of Bt.rows){const lr=Bt.gateways.reduce((cr,Zs)=>cr+JS(ha,Zs),0);if(lr<=0)continue;const Na=rt.get(Number(ha.bucket_ms));if(!Na)continue;const ws=wt.gateways.map(cr=>{const Zs=Na[cr];return typeof Zs=="number"&&Number.isFinite(Zs)?{gateway:cr,value:Zs}:null}).filter(cr=>cr!==null).sort((cr,Zs)=>Zs.value-cr.value);if(!ws.length)continue;const Mf=ws[0].value,Lo=ws.filter(cr=>Math.abs(cr.value-Mf)<1e-4).reduce((cr,Zs)=>cr+JS(ha,Zs.gateway),0);Et+=lr,at+=Lo}const yn=Et?at/Et*100:null;let $n="Waiting for traffic share and connector scores.",Sn="Run payments and send score updates in this time window to compare routing traffic.";if(ae&&Ae){const ha=ae.gateway!==Ae.gateway,lr=Et>0?`${ae.gateway} handled ${ci((qe==null?void 0:qe.count)||0,0)} of ${ci(Et,0)} payments (${Jo((qe==null?void 0:qe.share)||0)} traffic share).`:"Traffic and score updates did not happen close enough together to compare.";ha?($n=`${ae.gateway} has the better success rate; ${Ae.gateway} still leads traffic share.`,Sn=`${lr} Traffic share is cumulative for this window, so earlier ${Ae.gateway} selections can keep it ahead even after failures reduce its score.`):($n=`${ae.gateway} has the better success rate and leads traffic share.`,Sn=lr)}else ae?($n=`${ae.gateway} has the better success rate, but no traffic share is available.`,Sn="Run decide-gateway traffic in this time window to compare scores against actual selections."):Ae&&($n=`${Ae.gateway} leads traffic share, but connector success rate is not available.`,Sn="Send update-gateway-score traffic in this time window to compare selections against success rates.");return{srLeader:ae,srRunnerUp:Se,volumeLeader:Ae,srLeaderVolume:qe,alignmentPercent:yn,leaderDecisionCount:at,comparableDecisionCount:Et,headline:$n,detail:Sn}},[wt,Bt,Kt,Ut]),le=g.useMemo(()=>{const ae=new Map(Ut.map(rt=>[rt.gateway,rt.value])),Se=new Map(Kt.map(rt=>[rt.gateway,rt])),Ae=Array.from(new Set([...wt.gateways,...Bt.gateways])),qe=new Map(Ae.map((rt,at)=>[rt,co[at%co.length]]));return Ae.map(rt=>{var Et,yn;const at=Se.get(rt);return{gateway:rt,srValue:ae.get(rt)??null,count:(at==null?void 0:at.count)||0,share:(at==null?void 0:at.share)||0,color:qe.get(rt)||co[0],isSrLeader:((Et=dt.srLeader)==null?void 0:Et.gateway)===rt,isVolumeLeader:((yn=dt.volumeLeader)==null?void 0:yn.gateway)===rt}}).filter(rt=>rt.srValue!==null||rt.count>0).sort((rt,at)=>{const Et=rt.srValue??-1,yn=at.srValue??-1;return yn!==Et?yn-Et:at.count-rt.count}).slice(0,6)},[wt.gateways,Bt.gateways,Kt,Ut,(Or=dt.srLeader)==null?void 0:Or.gateway,(Ec=dt.volumeLeader)==null?void 0:Ec.gateway]),Ie=g.useMemo(()=>m||ue.dimensions.length<=wg?ue.dimensions:ue.dimensions.slice(0,wg),[ue.dimensions,m]),Ge=ue.dimensions.length>wg,nt=Ge?ue.dimensions.length-wg:0,Nt=g.useMemo(()=>{const ae=ue.dimensions.flatMap(Ae=>{const qe=c.dimensions[Ae.key];return qe?[{key:`dimension:${Ae.key}`,label:`${Ae.label}: ${qe}`}]:[]}),Se=c.gateways.map(Ae=>({key:`gateway:${Ae}`,label:`Connector: ${Ae}`}));return[...ae,...Se]},[ue.dimensions,c]);function ge(ae){if(n(ae),ae==="custom")return;const Se=au(ae);S(Se),w(Fs(Se.start_ms)),k(Fs(Se.end_ms))}function st(){if(e!=="custom"){S(au(e));return}G.mutate(),$.mutate(),R.mutate(),z.mutate(),U.mutate()}function pt(ae){u(Se=>{const Ae=Se.gateways.includes(ae);return{...Se,gateways:Ae?Se.gateways.filter(qe=>qe!==ae):[...Se.gateways,ae]}})}function Ht(){u(bL)}function gn(ae){if(ae.startsWith("dimension:")){sn(ae.replace("dimension:",""),"");return}ae.startsWith("gateway:")&&pt(ae.replace("gateway:",""))}function sn(ae,Se){u(Ae=>{const qe={...Ae.dimensions};return Se?qe[ae]=Se:delete qe[ae],{...Ae,dimensions:qe}})}return i.jsxs("div",{className:"space-y-8 px-5 sm:px-5 lg:px-8 xl:px-8",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx("div",{className:"space-y-2",children:i.jsx(qr,{title:"Analytics",description:"Real-time multi-gateway routing performance overview."})}),i.jsxs("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:[i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="transactions"),onClick:()=>l("transactions"),children:KS.transactions}),i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="rule_based"),onClick:()=>l("rule_based"),children:KS.rule_based}),i.jsx(ke,{size:"sm",variant:"secondary",className:QS(o==="volume_commitments"),onClick:()=>l("volume_commitments"),children:KS.volume_commitments})]}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(ET,{range:e,customStart:v,customEnd:j,onRangeChange:ge,onCustomChange:(ae,Se)=>{w(ae),k(Se)}}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:st,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(As,{className:"h-4 w-4"})})]})]}),i.jsx(_t,{error:W}),q?i.jsxs("div",{className:"flex items-center gap-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[i.jsx(mt,{size:16}),"Loading analytics…"]}):null,i.jsx("div",{className:"relative",children:o==="transactions"?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Overall auth rate"}),Ne!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${jL(Ne)} leading-[42px]`,children:Jo(Ne)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Weighted across all gateways"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No score data yet"})]})]})}),ve.map(ae=>i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:iAe(ae.route)}),i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-slate-950 dark:text-white leading-[42px]",children:ci(ae.count,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.route==="/decide_gateway"?"routing decisions":"score feedback calls"})]})},ae.route)),i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(ze,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Total cost saved"}),F.data&&F.data.currency&&F.data.totals.saved_value>0?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-emerald-700 dark:text-emerald-400 leading-[42px]",children:vL(F.data.totals.saved_value,F.data.currency)}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:[ci(F.data.totals.cost_won_count,0)," of ",ci(F.data.totals.total_decisions,0)," cost decisions"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:F.data?"No multi-objective wins yet":"Loading…"})]})]})})]}),i.jsx(sAe,{summary:dt,comparisonRows:le,expanded:h,onToggle:()=>p(ae=>!ae)}),Th.SMART_RETRY_IN_ANALYTICS,i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Selected gateways over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector decision counts for the same active filters used by the success-rate chart."})]}),i.jsx(o1,{content:i1.share})]})}),i.jsx(ze,{children:Bt.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:Bt.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11}}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),Bt.gateways.map((ae,Se)=>i.jsx(xs,{dataKey:ae,fill:co[Se%co.length],name:ae,radius:[3,3,0,0]},ae))]})})}):i.jsx(Wl,{title:"No gateway share history yet",body:"Gateway traffic will appear here after payments are routed in this window."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsx("div",{className:"flex items-start justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Cost saved over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Savings from multi-objective routing promoting the higher-EV PSP within the derived auth band."})]})})}),i.jsx(ze,{children:F.data&&F.data.currency&&F.data.trend.length>0?i.jsx("div",{className:"h-72",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:F.data.trend,barCategoryGap:"35%",children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11},tickFormatter:ae=>XEe(ae,F.data.currency),width:70}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),formatter:ae=>[vL(ae,F.data.currency),"Saved"],contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"saved_value",fill:"#10b981",name:"Saved",radius:[3,3,0,0]})]})})}):i.jsx(Wl,{title:"No cost savings yet",body:"Cost savings appear once multi-objective routing promotes a higher-EV PSP within the derived auth band."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector success rate over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Historical connector success rate for the active filters; compare it with selected volume above."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>f(ae=>!ae),children:d?"Hide filters":"Show filters"}),i.jsx(o1,{content:i1.sr})]})]})}),i.jsxs(ze,{className:"space-y-5",children:[d?i.jsxs("div",{className:"space-y-3 border-b border-slate-200 pb-5 dark:border-[#1d1d23]",children:[ue.dimensions.length?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:Ie.map(ae=>i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.label}),i.jsxs("select",{value:c.dimensions[ae.key]||"",onChange:Se=>sn(ae.key,Se.target.value),className:aAe(),disabled:!ae.values.length,children:[i.jsxs("option",{value:"",children:["Any ",ae.label.toLowerCase()]}),ae.values.map(Se=>i.jsx("option",{value:Se,children:Se},Se))]})]},ae.key))}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connectors"}),ue.gateways.length?ue.gateways.map(ae=>{const Se=c.gateways.includes(ae);return i.jsx("button",{type:"button","aria-pressed":Se,onClick:()=>pt(ae),className:`rounded-full border px-3 py-2 text-[13px] font-medium transition ${Se?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#a1a1aa] dark:hover:text-white"} leading-[18px]`,children:ae},ae)}):i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No connector history yet for the selected window."})]})]}):ue.missing_dimensions.length?i.jsx(Wl,{title:"No routing dimension values in this window",body:"Score history exists, but no routing dimensions have values recorded in the selected time window yet."}):null,i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[Ge?i.jsx("button",{type:"button",onClick:()=>x(ae=>!ae),className:"text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:m?"Fewer dimensions":`${nt} more dimension${nt===1?"":"s"}`}):null,ue.missing_dimensions.length?i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["No values yet: ",ue.missing_dimensions.map(ae=>ae.label).join(", ")]}):null,Nt.map(ae=>i.jsxs("button",{type:"button",onClick:()=>gn(ae.key),className:"inline-flex items-center gap-2 rounded-full border border-brand-500/30 bg-brand-500/10 px-3 py-2 text-[13px] font-medium text-brand-700 transition hover:bg-brand-500/15 dark:text-brand-200 leading-[18px]",children:[i.jsx("span",{children:ae.label}),i.jsx("span",{"aria-hidden":"true",children:"×"})]},ae.key)),Nt.length?i.jsx("button",{type:"button",onClick:Ht,className:"ml-auto text-[13px] font-medium text-slate-500 transition hover:text-slate-900 dark:text-[#8a8a93] dark:hover:text-white leading-[18px]",children:"Clear filters"}):null]})]}):null,zt.length?i.jsx("div",{className:"flex flex-wrap gap-2",children:zt.map(ae=>i.jsxs(Pe,{variant:oAe(ae.value),children:[ae.gateway,": ",Jo(ae.value)]},ae.gateway))}):null,wt.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(uH,{data:wt.rows,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0"}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{domain:Vt,tick:{fontSize:11},tickFormatter:ae=>`${ci(Number(ae),0)}%`}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),formatter:(ae,Se)=>[Jo(ae),String(Se)],contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),wt.gateways.map((ae,Se)=>i.jsx(fi,{type:"monotone",dataKey:ae,stroke:co[Se%co.length],strokeWidth:3,dot:Un[ae]<=1?{r:4,strokeWidth:2}:!1,activeDot:{r:5},connectNulls:!0,name:ae},ae))]})})}):i.jsx(Wl,{title:"No connector score history yet",body:"Connector history will appear after decide-gateway and update-gateway-score activity in this window."})]})]})]}):o==="volume_commitments"?i.jsx(LEe,{}):i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsx(ze,{children:i.jsxs("div",{className:"grid gap-5 sm:grid-cols-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule match rate"}),de!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${jL(de)} leading-[42px]`,children:Jo(de)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Decisions matched to a configured rule"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No decision data yet"})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule Evaluate"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:ci(je,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"routing decisions"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Gateways active"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:He}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"unique connectors selected"})]})]})})}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector selections over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector counts over time for selected rule decisions."})]}),i.jsx(o1,{content:i1.preview_activity})]})}),i.jsx(ze,{children:be.gateways.length?i.jsx("div",{className:"h-80",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Yh,{data:be.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(Ia,{dataKey:"bucket_ms",tickFormatter:fe,tick:{fontSize:11}}),i.jsx(wa,{tick:{fontSize:11}}),i.jsx(Vr,{labelFormatter:ae=>Kf(Number(ae)),contentStyle:il,labelStyle:ol,itemStyle:Ph,wrapperStyle:YS}),i.jsx(ml,{}),be.gateways.map((ae,Se)=>i.jsx(xs,{dataKey:ae,fill:ae==="No gateway selected"?"#64748b":co[Se%co.length],radius:[6,6,0,0],name:ae},ae))]})})}):bt?i.jsx(tb,{title:"Processing recent rule decisions",body:"Rule evaluate calls were received. Recent decisions are still being processed, and this view will update automatically."}):i.jsx(Wl,{title:"No connector selections yet",body:"Rule decision traffic will appear here after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid items-stretch gap-5 xl:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Recent decisions"}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:["Latest decisions from ",i.jsx("code",{children:"/routing/evaluate"}),"."]})]}),i.jsx(Pe,{variant:"purple",children:we?`Latest ${Kf(we)}`:"No activity"})]})}),i.jsx(ze,{children:Me.length?i.jsx("div",{className:"space-y-2",children:Me.slice(0,10).map(ae=>{var Ae,qe;const Se=(qe=(Ae=ae.latest_status)==null?void 0:Ae.toLowerCase())!=null&&qe.includes("fail")?"red":ae.latest_status==="default_selection"?"orange":"green";return i.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-slate-100 bg-slate-50/60 px-3 py-2.5 dark:border-[#1d1d23] dark:bg-[#0c0c0e]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Pe,{variant:Se,children:ae.latest_status||"decision"}),ae.latest_gateway?i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-700 dark:text-[#c8d3e6] leading-[18px]",children:ae.latest_gateway}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:Kf(ae.last_seen_ms)})]},ae.lookup_key)})}):bt?i.jsx(tb,{title:"Processing recent decisions",body:"Rule evaluate calls were received. Decision rows will appear as soon as they are ready."}):i.jsx(Wl,{title:"No decisions yet",body:"Recent rule decisions will appear after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid h-full gap-5 xl:grid-rows-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Gateway activity"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Recent decisions grouped by latest chosen gateway."})]})}),i.jsx(ze,{children:tt.length?i.jsx("div",{className:"space-y-3",children:tt.map((ae,Se)=>i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:ae.gateway}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:ae.count})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${ae.count/vt*100}%`,backgroundColor:co[Se%co.length]}})})]},ae.gateway))}):bt?i.jsx(tb,{title:"Waiting for gateway activity",body:"Recent rule decisions are still being processed. Gateway activity will appear automatically once rows are available."}):i.jsx(Wl,{title:"No gateway activity yet",body:"Once rule decisions are captured, this panel will show which connectors are being selected."})})]}),i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Decision outcomes"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"How decisions resolved — rule match vs. default fallback."})]})}),i.jsx(ze,{children:B.length?i.jsx("div",{className:"space-y-5",children:B.map(ae=>{const Se=se?ae.count/se*100:0,Ae=ae.status.toLowerCase().includes("fail")?"red":ae.status==="default_selection"?"orange":"green",qe=Ae==="green"?"#22c55e":Ae==="orange"?"#f97316":"#ef4444";return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx(Pe,{variant:Ae,children:ae.status}),i.jsxs("span",{className:"text-[13px] font-semibold tabular-nums text-slate-900 dark:text-white leading-[18px]",children:[ae.count," ",i.jsxs("span",{className:"font-normal text-slate-500 dark:text-[#8a8a93]",children:["(",Jo(Se),")"]})]})]}),i.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${Se}%`,backgroundColor:qe}})})]},ae.status)})}):bt?i.jsx(tb,{title:"Waiting for decision outcomes",body:"Recent decision traffic is still being ingested. Outcome summaries will appear here automatically once the decision rows land."}):i.jsx(Wl,{title:"No decision outcomes yet",body:"Recent rule decision results will appear here once decision traffic is recorded."})})]})]})]})]})})]})}const cAe={info:{box:"border-slate-200 bg-slate-50 text-slate-700 dark:border-[#2a303a] dark:bg-[#111820] dark:text-[#c7cfdd]",icon:"text-slate-500 dark:text-[#8d96aa]",Glyph:Qu},success:{box:"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300",icon:"text-emerald-700 dark:text-emerald-400",Glyph:Gp},warning:{box:"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300",icon:"text-amber-700 dark:text-amber-400",Glyph:Pm},danger:{box:"border-red-200 bg-red-50 text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",icon:"text-red-700 dark:text-red-400",Glyph:Hj}};function Fa({tone:t="info",children:e,className:n=""}){const{box:r,icon:a,Glyph:s}=cAe[t];return i.jsxs("div",{role:"status",className:`flex items-start gap-2.5 rounded-lg border px-4 py-3 text-[13px] leading-[18px] ${r} ${n}`,children:[i.jsx(s,{size:16,"aria-hidden":!0,className:`mt-px shrink-0 ${a}`}),i.jsx("div",{className:"min-w-0 flex-1",children:e})]})}const e_=[{key:"payment_method",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],SL=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function _L(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function KH(t,e,n){for(const r of t.condition??[]){if(!r.lhs||e.has(r.lhs))continue;const a=r.value;if(!a)continue;let s="enum_variant",o="";a.type==="enum_variant"&&typeof a.value=="string"?(s="enum_variant",o=a.value):a.type==="enum_variant_array"&&Array.isArray(a.value)?(s="enum_variant",o=a.value[0]??""):a.type==="number"&&typeof a.value=="number"?(s="number",o=String(a.value)):a.type==="str_value"&&typeof a.value=="string"?(s="str_value",o=a.value):a.type==="number_array"&&Array.isArray(a.value)?(s="number",o=String(a.value[0]??0)):a.type==="metadata_variant"&&(s="metadata_variant",o=typeof a.value=="string"?a.value:"");const l=n[r.lhs];if((l==null?void 0:l.type)==="enum"){const c=l.values??[];c.length>0&&!c.includes(o)&&(o=c[0])}e.set(r.lhs,{key:r.lhs,type:s,value:o,metadataKey:""})}for(const r of t.nested??[])KH(r,e,n)}function t_(t,e){const n=t.algorithm_data||t.algorithm;if(!n||n.type!=="advanced")return[];const r=n.data;if(!(r!=null&&r.rules))return[];const a=new Map;for(const s of r.rules)for(const o of s.statements??[])KH(o,a,e);return Array.from(a.values())}function uAe(t){return t.toLowerCase().includes("no active routing algorithm")||t.toLowerCase().includes("active routing algorithm is not a volume split")}function YH({merchantId:t,routingKeysConfig:e,routingConfigUnavailable:n,routingKeysLoading:r,resetSignal:a,onRunComplete:s,onOpenTrace:o}){const l=Kr(),c=g.useMemo(()=>Object.keys(e).sort(),[e]),{data:u}=ut(t?["active-routing",t]:null,()=>Ve(`/routing/list/active/${t}`),{revalidateOnFocus:!1}),{data:d}=ut(t?["routing-list",t]:null,()=>Ve(`/routing/list/${t}`),{revalidateOnFocus:!1}),f=(u==null?void 0:u.find(G=>{var $;return(($=G.algorithm_data||G.algorithm)==null?void 0:$.type)==="ab_test"}))??null,[h,p]=g.useState(e_),[m,x]=g.useState(SL),[y,b]=g.useState(null),[v,w]=g.useState(null),[j,k]=g.useState(!1),[_,S]=g.useState(null),[N,E]=g.useState(!1),[P,M]=g.useState(!1);g.useEffect(()=>{if(a===0)return;const G=e_.map($=>{var F,R;return $.type==="enum_variant"&&$.value===""?{...$,value:((R=(F=e[$.key])==null?void 0:F.values)==null?void 0:R[0])??""}:$});p(G),x(SL),b(null),w(null),S(null),E(!1)},[a]),g.useEffect(()=>{var z;if(!u||!d||r||n)return;let $=u.find(U=>{var pe;const ee=(pe=U.algorithm_data||U.algorithm)==null?void 0:pe.type;return ee==="advanced"||ee==="priority"||ee==="single"}),F="";if(!$&&f){const U=(z=f.algorithm_data||f.algorithm)==null?void 0:z.data,ee=U!=null&&U.control_algorithm_id?d.find(re=>re.id===U.control_algorithm_id):void 0,pe=U!=null&&U.variant_algorithm_id?d.find(re=>re.id===U.variant_algorithm_id):void 0;ee&&t_(ee,e).length>0?($=ee,F=" (control arm)"):pe&&t_(pe,e).length>0&&($=pe,F=" (variant arm)")}if(!$)return;const R=t_($,e);R.length!==0&&(p(U=>U.every(pe=>pe.value===""||e_.some(re=>re.key===pe.key))?R:U),w($.name+F))},[u,d,r,n,e]);function A(){var z;const G=c[0]??"",$=e[G],F=_L($==null?void 0:$.type),R=F==="enum_variant"?((z=$==null?void 0:$.values)==null?void 0:z[0])??"":"";p(U=>[...U,{key:G,type:F,value:R,metadataKey:""}])}function O(G){w(null),p($=>$.filter((F,R)=>R!==G))}function D(G,$,F){w(null),p(R=>R.map((z,U)=>U===G?{...z,[$]:F}:z))}function I(G,$){var U;w(null);const F=e[$],R=_L(F==null?void 0:F.type),z=R==="enum_variant"?((U=F==null?void 0:F.values)==null?void 0:U[0])??"":"";p(ee=>ee.map((pe,re)=>re===G?{...pe,key:$,type:R,value:z,metadataKey:""}:pe))}function X(G,$){w(null),p(F=>F.map((R,z)=>z===G?{...R,metadataKey:$}:R))}function Q(){x(G=>[...G,{gateway_name:"",gateway_id:""}])}function V(G){x($=>$.filter((F,R)=>R!==G))}function Y(G,$,F){x(R=>R.map((z,U)=>U===G?{...z,[$]:F}:z))}async function H(){if(n){S("Routing key config unavailable. Fix /config/routing-keys and retry.");return}k(!0),S(null),E(!1),b(null);const G=`rule_decision_${Date.now()}`;try{const $={};h.forEach(R=>{R.key&&(R.type==="metadata_variant"?$[R.key]={type:R.type,value:{key:R.metadataKey||R.key,value:R.value}}:R.type==="number"?$[R.key]={type:R.type,value:parseFloat(R.value)||0}:R.value!==""&&($[R.key]={type:R.type,value:R.value}))});const F=await Ve("/routing/evaluate",{created_by:t||"test_user",payment_id:G,fallback_output:m.filter(R=>R.gateway_name),parameters:$});b(F),s()}catch($){const F=$ instanceof Error?$.message:"Request failed";uAe(F)?E(!0):S(F)}finally{k(!1)}}return i.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:"Rule Evaluation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:"Rule Evaluation Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!t&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),r&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),n&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),f&&i.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg bg-amber-50 border border-amber-200 dark:bg-amber-900/20 dark:border-amber-700/40",children:[i.jsx("span",{className:"text-amber-700 mt-0.5 shrink-0",children:"⚠"}),i.jsxs("p",{className:"text-xs text-amber-700 dark:text-amber-300 leading-relaxed",children:[i.jsxs("span",{className:"font-semibold",children:['A/B experiment "',f.name,'" is active.']})," ","Results reflect whichever arm is assigned to the simulated payment ID — this mirrors real traffic. Stop the experiment to see baseline routing."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"}),v&&i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300 leading-4",children:["⚗ Prefilled from: ",v]})]}),i.jsx("div",{className:"space-y-1.5",children:h.map((G,$)=>{var F;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:G.key,onChange:R=>I($,R.target.value),disabled:n||r,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:c.length===0?i.jsx("option",{value:"",children:"No keys available"}):c.map(R=>i.jsx("option",{value:R,children:R},R))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),G.type==="enum_variant"?i.jsx("select",{value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((F=e[G.key])==null?void 0:F.values)||[]).map(R=>i.jsx("option",{value:R,children:R},R))}):G.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):G.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>O($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),G.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:G.metadataKey||"",onChange:R=>X($,R.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:G.value,onChange:R=>D($,"value",R.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},$)})}),i.jsxs("button",{onClick:A,disabled:n||r||c.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:m.map((G,$)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:$+1}),i.jsx("input",{placeholder:"gateway name",value:G.gateway_name,onChange:F=>Y($,"gateway_name",F.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:G.gateway_id||"",onChange:F=>Y($,"gateway_id",F.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>V($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},$))}),i.jsxs("button",{onClick:Q,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:_}),N&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("p",{className:"font-semibold mb-1",children:"Configure rule-based routing first"}),i.jsx("p",{className:"mb-2 max-w-[57ch]",children:"Rule evaluation needs an active rule-based strategy before it can return a policy decision."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>l("/routing/rules"),children:"Configure routing"})]}),i.jsx(ke,{onClick:H,disabled:j||n||!t,className:"w-full justify-center",children:j?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})})]})]}),i.jsx("div",{className:"space-y-4",children:y?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:y.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",y.output.type]})]}),y.payment_id&&i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>o(y.payment_id,"Rule Evaluation Decision"),children:"View decision trace"})]}),y.output.type==="single"&&y.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:y.output.connector.gateway_name}),y.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",y.output.connector.gateway_id]})]}),y.output.type==="priority"&&y.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:y.output.connectors.map((G,$)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:$+1}),i.jsx("span",{className:"font-medium",children:G.gateway_name}),G.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",G.gateway_id,")"]})]},$))})]}),y.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>M(G=>!G),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),P?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),P&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(y,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})})})]})}function Cx({value:t,onChange:e,options:n,placeholder:r,className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(-1),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useMemo(()=>t?n.filter(b=>b.toLowerCase().includes(t.toLowerCase())):n,[n,t]),m=g.useCallback(()=>{o(!1),c(-1)},[]);function x(){var v;const b=(v=f.current)==null?void 0:v.getBoundingClientRect();b&&(d({position:"fixed",top:b.bottom+4,left:b.left,width:b.width,zIndex:9999}),c(-1),o(!0))}g.useEffect(()=>{if(!s)return;function b(v){var j,k;const w=v.target;!((j=f.current)!=null&&j.contains(w))&&!((k=h.current)!=null&&k.contains(w))&&m()}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s,m]),g.useEffect(()=>{c(-1)},[p.length]);function y(b){if(!s&&b.key!=="Escape"&&b.key!=="Tab"){x();return}switch(b.key){case"ArrowDown":b.preventDefault(),c(v=>vv>0?v-1:p.length-1);break;case"Enter":l>=0&&p[l]!==void 0&&(b.preventDefault(),e(p[l]),m());break;case"Escape":m();break}}return i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:f,type:"text",value:t,placeholder:r,className:a,onChange:b=>{e(b.target.value),x()},onFocus:x,onKeyDown:y,autoComplete:"off"}),s&&p.length>0&&fs.createPortal(i.jsx("div",{ref:h,style:u,className:"rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg overflow-hidden",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(p.length*32+8,240)}px`},children:p.map((b,v)=>i.jsx("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{e(b),m()},className:`w-full text-left px-3 py-2 text-xs transition-colors ${v===l?"bg-brand-500 text-white":b===t?"bg-brand-50/50 dark:bg-brand-900/10 text-brand-600 dark:text-brand-400 font-medium":"hover:bg-slate-50 dark:hover:bg-[#1c1c24] text-slate-700 dark:text-slate-200"}`,children:b},b))})}),document.body)]})}function l1({text:t,children:e}){const[n,r]=g.useState(!1),[a,s]=g.useState({}),o=g.useRef(null);function l(){var u;const c=(u=o.current)==null?void 0:u.getBoundingClientRect();c&&(s({position:"fixed",top:c.top-6,left:c.left+c.width/2,transform:"translate(-50%, -100%)",zIndex:9999}),r(!0))}return g.useEffect(()=>{if(!n)return;function c(){r(!1)}return document.addEventListener("scroll",c,!0),()=>document.removeEventListener("scroll",c,!0)},[n]),i.jsxs("span",{ref:o,onMouseEnter:l,onMouseLeave:()=>r(!1),className:"inline-flex",children:[e,n&&fs.createPortal(i.jsx("span",{style:a,className:"pointer-events-none rounded-md bg-slate-800 dark:bg-slate-700 px-2 py-1 text-[11px] text-white shadow-md whitespace-nowrap leading-4",children:t}),document.body)]})}const Tu={error_code:"",error_message:"",issuer_error_code:"",card_network:""},nb="w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs focus:outline-none focus:border-brand-500 text-slate-800 dark:text-slate-100 placeholder-slate-500",rb="block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1";function AT(t){switch(t){case"Issue with Payment Method details":return!1;case"Issue with Integration":case"Issue with Configurations":case"Technical issue with PSP":case"Something went wrong":return!0;default:return null}}function dAe(t){switch(t.toLowerCase()){case"decline":return"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400";case"retry":return"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400";case"step_up":case"challenge":return"bg-blue-50 text-blue-600 dark:bg-blue-950/40 dark:text-blue-400";case"success":case"force_2ds_pass":return"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300";default:return"bg-slate-100 text-slate-500 dark:bg-[#1a1a24] dark:text-slate-400"}}function EA({info:t,onChange:e,rules:n,connector:r,showClassification:a=!0}){const[s,o]=g.useState(!1),l=g.useMemo(()=>[...new Set(n.filter(f=>!r||f.connector===r).map(f=>f.errorCode).filter(Boolean))].sort(),[n,r]),c=g.useMemo(()=>[...new Set(n.filter(f=>(!r||f.connector===r)&&(!t.error_code||f.errorCode===t.error_code)).map(f=>f.errorMessage).filter(Boolean))].sort(),[n,r,t.error_code]),u=g.useMemo(()=>{if(!t.error_code)return null;const f=n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.subFlow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.flow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code);return f?{unifiedMessage:f.unifiedMessage??null,decision:f.decision||null,penalized:AT(f.unifiedMessage)}:null},[n,r,t.error_code]),d=Object.values(t).some(Boolean);return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("button",{type:"button",onClick:()=>o(f=>!f),className:"w-full flex items-center justify-between gap-2 px-2.5 py-2 bg-slate-50 dark:bg-[#0d0d13] hover:bg-slate-100 dark:hover:bg-[#111118] transition-colors",children:[i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 shrink-0 leading-4",children:"Decline Error"}),t.error_code?i.jsx("span",{className:"font-mono text-[11px] text-brand-600 dark:text-brand-400 bg-brand-50 dark:bg-brand-900/30 px-1.5 py-0.5 rounded shrink-0 leading-4",children:t.error_code}):i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:"not set"}),a&&(u==null?void 0:u.decision)&&i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${dAe(u.decision)} leading-4`,children:u.decision}),a&&(u==null?void 0:u.penalized)!=null&&i.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${u.penalized?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300"} leading-4`,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${u.penalized?"bg-red-500":"bg-emerald-500"}`}),u.penalized?"Penalized":"Penalty skipped"]})]}),i.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[d&&i.jsx(l1,{text:"Clear error info",children:i.jsx("span",{role:"button",onClick:f=>{f.stopPropagation(),e({error_code:"",error_message:"",issuer_error_code:"",card_network:""})},className:"rounded p-0.5 text-slate-500 hover:text-red-600 transition-colors",children:i.jsx(bH,{size:11})})}),i.jsx(wn,{size:13,className:`text-slate-500 transition-transform duration-200 ${s?"rotate-180":""}`})]})]}),s&&i.jsxs("div",{className:"px-2.5 py-2.5 space-y-2 border-t border-slate-200 dark:border-[#222226]",children:[(u==null?void 0:u.unifiedMessage)&&i.jsx("div",{className:`flex items-center gap-2 px-2.5 py-1.5 rounded-lg border-l-2 text-[11px] ${u.penalized===!0?"bg-red-50 border-red-400 text-red-700 dark:bg-red-950/20 dark:border-red-600 dark:text-red-400":u.penalized===!1?"bg-emerald-50 border-emerald-400 text-emerald-700 dark:bg-emerald-950/20 dark:border-emerald-600 dark:text-emerald-300":"bg-slate-50 border-slate-300 text-slate-500 dark:bg-[#111118] dark:border-slate-600 dark:text-slate-400"} leading-4`,children:i.jsx("span",{children:u.unifiedMessage})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Error Code"}),i.jsx(Cx,{value:t.error_code,onChange:f=>e({error_code:f,error_message:""}),options:l,placeholder:"e.g. declined",className:nb})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Issuer Code"}),i.jsx("input",{value:t.issuer_error_code,onChange:f=>e({issuer_error_code:f.target.value}),placeholder:"e.g. 51",className:nb})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Error Message"}),i.jsx(Cx,{value:t.error_message,onChange:f=>e({error_message:f}),options:c,placeholder:"e.g. Insufficient funds",className:nb})]}),i.jsxs("div",{children:[i.jsx("label",{className:rb,children:"Card Network"}),i.jsx("input",{value:t.card_network,onChange:f=>e({card_network:f.target.value}),placeholder:"e.g. Visa",className:nb})]})]})]})}function XH({merchantId:t,gsmRules:e,decideParams:n}){const[r,a]=g.useState(null),[s,o]=g.useState({}),[l,c]=g.useState({}),u=g.useMemo(()=>{const f=e.filter(p=>p.subFlow==="Authorize"||p.flow==="Authorize");return[...new Set(f.map(p=>p.unifiedMessage).filter(Boolean))].map(p=>{const m=AT(p)!==!1,x=f.filter(b=>b.unifiedMessage===p),y=[...new Set(x.map(b=>b.connector))];return{key:p,label:p,penalized:m,connectors:y,rulesForMsg:x}}).sort((p,m)=>Number(p.penalized)-Number(m.penalized))},[e]);async function d(f,h,p,m,x,y){var b,v;if(t){c(w=>({...w,[f]:{scoreBefore:null,scoreAfter:null,loading:!0,error:null}}));try{const k=n.eligibleGateways.split(",").map(I=>I.trim()).filter(Boolean).filter(I=>I!==h)[0]??(h==="stripe"?"adyen":"stripe"),_=[h,k],S={merchantId:t,paymentInfo:{paymentId:"",amount:parseFloat(n.amount)||1e3,currency:n.currency||"USD",paymentType:"ORDER_PAYMENT",paymentMethodType:n.paymentMethodType||"CARD",paymentMethod:n.paymentMethod||"CREDIT",authType:n.authType||"NO_THREE_DS",cardBrand:n.cardBrand||"VISA"},eligibleGatewayList:_,rankingAlgorithm:n.rankingAlgorithm,eliminationEnabled:!1},N=Date.now(),E=`scenario_test_${N}_0`,M=((b=(await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:E}})).gateway_priority_map)==null?void 0:b[h])??null;for(let I=1;I<=5;I++){const X=`scenario_test_${N}_${I}`;await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:X}}),await Ve("/update-gateway-score",{merchantId:t,gateway:h,gatewayReferenceId:null,status:"FAILURE",paymentId:X,errorInfo:{connector:h,flow:x,subFlow:y,errorCode:p,errorMessage:m}})}const A=`scenario_test_${N}_after`,D=((v=(await Ve("/decide-gateway",{...S,paymentInfo:{...S.paymentInfo,paymentId:A}})).gateway_priority_map)==null?void 0:v[h])??null;c(I=>({...I,[f]:{scoreBefore:M,scoreAfter:D,loading:!1,error:null}}))}catch(w){const j=w instanceof Error?w.message:"Test failed";c(k=>({...k,[f]:{scoreBefore:null,scoreAfter:null,loading:!1,error:j}}))}}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Penalty Classification Guide"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"How the routing engine decides whether a failed payment penalises the gateway score."})]})}),i.jsx(ze,{className:"space-y-4",children:e.length===0?i.jsx("p",{className:"text-xs text-slate-500",children:"Loading GSM rules…"}):i.jsxs(i.Fragment,{children:[["protected","penalized"].map(f=>{const h=u.filter(m=>(m.penalized?"penalized":"protected")===f);if(!h.length)return null;const p=f==="protected";return i.jsxs("div",{children:[i.jsx("p",{className:`text-[11px] font-semibold uppercase tracking-wider mb-2 ${p?"text-emerald-700 dark:text-emerald-400":"text-red-600 dark:text-red-400"} max-w-[68ch] leading-4`,children:p?"✓ Protected — gateway score unchanged":"✗ Penalised — gateway score decremented"}),i.jsx("div",{className:"space-y-2",children:h.map(m=>{var N,E;const x=m.rulesForMsg.slice(0,20),y=m.connectors,b=r===m.key,v=s[m.key]??y[0]??"",w=x.find(P=>P.connector===v&&P.subFlow==="Authorize")??x.find(P=>P.connector===v),j=l[m.key],k=(j==null?void 0:j.scoreBefore)!=null&&(j==null?void 0:j.scoreAfter)!=null?j.scoreAfter-j.scoreBefore:null,_=k!=null&&Math.abs(k)>.001,S=p?k!=null&&k<-.001:_;return i.jsxs("div",{className:`rounded-lg border overflow-hidden transition-all ${p?"border-emerald-200 dark:border-emerald-800/40":"border-red-200 dark:border-red-800/40"}`,children:[i.jsxs("button",{type:"button",onClick:()=>a(b?null:m.key),className:`w-full flex items-center justify-between px-3 py-2.5 text-left transition-colors ${p?"bg-emerald-50/50 dark:bg-emerald-900/10 hover:bg-emerald-50 dark:hover:bg-emerald-900/20":"bg-red-50/50 dark:bg-red-900/10 hover:bg-red-50 dark:hover:bg-red-900/20"}`,children:[i.jsx("div",{className:"flex items-center gap-2 min-w-0",children:i.jsx("span",{className:"text-xs font-semibold text-slate-800 dark:text-slate-100",children:m.label})}),i.jsxs("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[i.jsxs("span",{className:"text-[11px] text-slate-500 leading-4",children:[y.length," connector",y.length!==1?"s":""]}),i.jsx(wn,{size:12,className:`text-slate-500 transition-transform ${b?"rotate-180":""}`})]})]}),b&&i.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24] bg-white dark:bg-[#0d1117]",children:[i.jsxs("div",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:"Unified message: "}),i.jsx("span",{className:"font-mono",children:m.key})]}),y.length>0&&i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Select connector to test:"}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:y.map(P=>i.jsx("button",{type:"button",onClick:()=>o(M=>({...M,[m.key]:P})),className:`rounded-full px-2.5 py-1 text-[11px] font-medium ring-1 ring-inset transition-colors ${v===P?p?"bg-emerald-50 text-emerald-700 ring-emerald-300 dark:bg-emerald-900/30 dark:text-emerald-300 dark:ring-emerald-700":"bg-red-50 text-red-700 ring-red-300 dark:bg-red-900/30 dark:text-red-300 dark:ring-red-700":"bg-slate-50 text-slate-600 ring-slate-200 hover:bg-slate-100 dark:bg-[#1c1c24] dark:text-slate-400 dark:ring-[#2a2a35]"} leading-4`,children:P},P))})]}),w&&i.jsxs("div",{className:"rounded-lg bg-slate-50 dark:bg-[#10131c] px-3 py-2 text-[11px] space-y-0.5 leading-4",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Error code: "}),i.jsx("span",{className:"font-mono font-medium text-slate-700 dark:text-slate-200",children:w.errorCode})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Message: "}),i.jsx("span",{className:"text-slate-600 dark:text-slate-300",children:w.errorMessage})]})]}),v&&w&&i.jsx("button",{type:"button",disabled:!t||(j==null?void 0:j.loading),onClick:()=>d(m.key,v,w.errorCode,w.errorMessage,w.flow,w.subFlow),className:`flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${p?"bg-emerald-600 text-white hover:bg-emerald-700":"bg-red-500 text-white hover:bg-red-600"}`,children:j!=null&&j.loading?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:12})," Injecting 5 failures…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:12})," Test with ",v]})}),!t&&i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-400 leading-4",children:"Set a merchant ID in the top bar to run tests."}),j&&!j.loading&&i.jsx("div",{className:`rounded-lg border px-3 py-2.5 space-y-1.5 ${j.error||S?"border-amber-200 bg-amber-50 dark:border-amber-800/40 dark:bg-amber-900/10":p?"border-emerald-200 bg-emerald-50 dark:border-emerald-800/40 dark:bg-emerald-900/10":"border-red-200 bg-red-50 dark:border-red-800/40 dark:bg-red-900/10"}`,children:j.error?i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-300 leading-4",children:j.error}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 text-[11px] leading-4",children:[i.jsx("span",{className:"text-slate-500",children:"Score:"}),i.jsx("span",{className:"font-mono font-semibold text-slate-700 dark:text-slate-200",children:((N=j.scoreBefore)==null?void 0:N.toFixed(3))??"—"}),i.jsx("span",{className:"text-slate-500",children:"→"}),i.jsx("span",{className:`font-mono font-semibold ${_?"text-red-600 dark:text-red-400":"text-emerald-700 dark:text-emerald-400"}`,children:((E=j.scoreAfter)==null?void 0:E.toFixed(3))??"—"}),k!=null&&i.jsxs("span",{className:`text-[11px] font-medium ${_?"text-red-600":"text-emerald-700"} leading-4`,children:["(",k>0?"+":"",k.toFixed(3),")"]})]}),i.jsx("p",{className:`text-[11px] font-medium ${S?"text-amber-700 dark:text-amber-300":p?"text-emerald-700 dark:text-emerald-300":"text-red-600 dark:text-red-400"} leading-4`,children:p?S?`⚠ Score decreased — gateway was penalised (${k.toFixed(3)})`:k!=null&&k>.001?`✓ Score increased (+${k.toFixed(3)}) — no penalty applied (hedging)`:"✓ Score unchanged — gateway not penalised as expected":_?`✗ Gateway penalised (score dropped ${Math.abs(k).toFixed(3)})`:"⚠ Score unchanged — penalty may not have applied yet"})]})})]})]},m.key)})})]},f)}),i.jsxs("p",{className:"text-[11px] text-slate-500 dark:text-slate-400 pt-1 border-t border-slate-100 dark:border-[#1c1c24] leading-4",children:["Errors with no matching GSM rule, or calls made without ",i.jsx("span",{className:"font-mono",children:"error_info"}),", are always penalised. The GSM scoring filter must be enabled under SR Routing settings for skip-penalty logic to apply. Configure simulation parameters on the left and run to observe score changes live."]})]})})]})}function Al(t){const e=t?`/merchant-account/${t}/features`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:3e5});function o(c){var u;return((u=n==null?void 0:n.features.find(d=>d.feature===c))==null?void 0:u.enabled)??!1}async function l(c,u){if(!t)throw new Error("Set a merchant ID first");const d=await Ve(`/merchant-account/${t}/features/${c}`,{enabled:u});return await s(d,!1),d}return{data:n,error:r,isLoading:a,isEnabled:o,setFeatureEnabled:l}}const OT="hs-dashboard-handoff",fAe="connectors",hAe="rule_id",pAe=["/routing/rules","/routing/volume"];function JH(t){if(!Array.isArray(t))return null;const e=t.filter(n=>!!n&&typeof n=="object"&&typeof n.merchant_connector_id=="string"&&typeof n.connector_name=="string");return e.length>0?e:null}function mAe(t){try{return JH(JSON.parse(t))}catch{return null}}function gAe(){const t=window.location.hash.replace(/^#/,"");if(!t)return null;const e=new URLSearchParams(t),n=e.get(fAe),r=e.get(hAe);return!n&&!r?null:{connectors:n?mAe(n):null,ruleId:r||null}}function xAe(){const t="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/",e=window.location.pathname;return t&&e.startsWith(t)?e.slice(t.length)||"/":e}function yAe(t){return/^\/(?![/\\])/.test(t)}function vAe(t){if(!new URLSearchParams(window.location.search).has("code"))return null;const e=xAe().replace(/\/+$/,"")||"/";return yAe(e)?t&&pAe.includes(e)?`${e}/${encodeURIComponent(t)}/edit`:e:null}function TT(t){try{sessionStorage.setItem(OT,JSON.stringify(t))}catch{}}function bAe(){try{const t=sessionStorage.getItem(OT);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const{connectors:n,ruleId:r,route:a,merchantId:s}=e;return{connectors:JH(n),ruleId:typeof r=="string"&&r?r:null,route:typeof a=="string"&&a?a:null,merchantId:typeof s=="string"&&s?s:null}}catch{return null}}function wAe(){const t=bAe(),e=gAe(),n=(e==null?void 0:e.connectors)??(t==null?void 0:t.connectors)??null,r=(e==null?void 0:e.ruleId)??(t==null?void 0:t.ruleId)??null,a=vAe(r)??(t==null?void 0:t.route)??null;if(!n&&!r&&!a)return null;const s={connectors:n,ruleId:r,route:a,merchantId:(t==null?void 0:t.merchantId)??null};return TT(s),s}let Qa=wAe();function ZH(){return Qa?Qa.merchantId?Qa.merchantId===Er.getState().merchantId:!0:!1}function kAe(){return ZH()?(Qa==null?void 0:Qa.connectors)??null:null}function jAe(t){!Qa||!t||(Qa.merchantId=t,TT(Qa))}function SAe(){Qa=null;try{sessionStorage.removeItem(OT)}catch{}}function QH(){if(!ZH()||!(Qa!=null&&Qa.route))return null;const{route:t}=Qa;return Qa.route=null,TT(Qa),t}function PT(t,e){return t!=null&&t.permissions?t.permissions.includes(e):!0}function Ro(){return xr(t=>PT(t.user,"routing:write"))}const xr=RH()(DH(t=>({token:null,user:null,merchants:[],hasHydrated:!1,setAuth:(e,n,r=[])=>{Ad.set(e),t({token:e,user:n,merchants:r})},updateMerchant:(e,n,r)=>{Ad.set(e),t(a=>({token:e,merchants:r,user:a.user?{...a.user,merchantId:n}:null}))},clearAuth:()=>{Ad.set(null),t({token:null,user:null,merchants:[]}),SAe()},setHasHydrated:e=>t({hasHydrated:e})}),{name:"auth-store",onRehydrateStorage:()=>t=>{t!=null&&t.token&&Ad.set(t.token),t==null||t.setHasHydrated(!0)}})),_Ae=Object.freeze(Object.defineProperty({__proto__:null,sessionAllows:PT,useAuthStore:xr,useCanEditRouting:Ro},Symbol.toStringTag,{value:"Module"})),eG={SR_SELECTION_V3_ROUTING:"bg-blue-100 text-blue-800",SR_SELECTION_MULTI_OBJECTIVE:"bg-cyan-100 text-cyan-800",PRIORITY_LOGIC:"bg-purple-100 text-purple-800",NTW_BASED_ROUTING:"bg-green-100 text-green-800",SR_SELECTION_V3_ROUTING_WITH_HEDGING:"bg-orange-100 text-orange-800",HEDGING:"bg-orange-100 text-orange-800"},NAe=["card","card_redirect","pay_later","wallet","bank_redirect","bank_transfer","crypto","bank_debit","reward","real_time_payment","upi","voucher","gift_card","open_banking","mobile_payment","network_token"],CAe={card:["credit","debit","card"],bank_debit:["ach","sepa","bacs","becs","eft_debit_order","sepa_guarenteed_debit"],bank_transfer:["ach","sepa","sepa_bank_transfer","bacs","multibanco","pix","pse","permata_bank_transfer","bca_bank_transfer","bni_va","bri_va","cimb_va","danamon_va","mandiri_va","local_bank_transfer","instant_bank_transfer","pix_key","pix_emv","pix_qr","pix_automatico_push","pix_automatico_qr","payshap","payshap_proxy","instant_bank_transfer_finland","instant_bank_transfer_poland","indonesian_bank_transfer"],wallet:["amazon_pay","apple_pay","google_pay","paypal","ali_pay","ali_pay_hk","dana","mb_way","mobile_pay","samsung_pay","twint","vipps","touch_n_go","swish","we_chat_pay","go_pay","gcash","momo","kakao_pay","cashapp","mifinity","paze","bluecode","skrill","paysera","venmo","revolut_pay"],pay_later:["affirm","alma","afterpay_clearpay","klarna","pay_bright","atome","walley","flexiti","breadpay","payjustnow"],upi:["upi_collect","upi_intent","upi_qr"],voucher:["boleto","efecty","pago_efectivo","red_compra","red_pagos","indomaret","alfamart","oxxo","seven_eleven","lawson","mini_stop","family_mart","seicomart","pay_easy"],bank_redirect:["giropay","ideal","sofort","eft","eps","bancontact_card","blik","local_bank_redirect","online_banking_thailand","online_banking_czech_republic","online_banking_finland","online_banking_fpx","online_banking_poland","online_banking_slovakia","przelewy24","trustly","bizum","interac","open_banking_uk","open_banking_pis","open_banking"],gift_card:["givex","pay_safe_card","bhn_card_network"],card_redirect:["knet","benefit","momo_atm","card_redirect"],real_time_payment:["fps","duit_now","prompt_pay","viet_qr","qris"],crypto:["crypto_currency"],reward:["evoucher","classic_reward"],open_banking:["open_banking_pis"],mobile_payment:["direct_carrier_billing"]};function EAe(t){var r;if(!t)return[];const e=a=>{if(!a||typeof a!="object")return{};const s=a.keys;return s&&typeof s=="object"?s:a},n={...e(t.keys),...e((r=t.routing_config)==null?void 0:r.keys)};return Object.keys(n).length===0?[]:Object.entries(n).map(([a,s])=>{const o=(s.type||s.data_type||"str_value").toString().toLowerCase(),l={key:a,type:o};return s.values&&(l.values=Array.isArray(s.values)?s.values.map(c=>c.trim()):s.values.split(",").map(c=>c.trim())),s.min_value!==void 0&&(l.min_value=s.min_value),s.max_value!==void 0&&(l.max_value=s.max_value),s.min_length!==void 0&&(l.min_length=s.min_length),s.max_length!==void 0&&(l.max_length=s.max_length),s.exact_length!==void 0&&(l.exact_length=s.exact_length),s.regex&&(l.regex=s.regex),l})}function MT(){const{data:t,error:e,isLoading:n}=ut("/config/routing-keys",Lt,{refreshInterval:0,revalidateOnFocus:!1}),r=g.useMemo(()=>EAe(t||null),[t]),a=g.useMemo(()=>r.reduce((o,l)=>(o[l.key]=l,o),{}),[r]),s=g.useMemo(()=>{const o={};return r.forEach(l=>{o[l.key]={type:l.type,values:l.values||[]}}),o},[r]);return{config:t,keys:r,keysByName:a,routingKeysConfig:s,isLoading:n,error:e,getKeyValues:o=>{var l;return((l=a[o])==null?void 0:l.values)||[]},isIntegerKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="integer"},isEnumKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="enum"}}}function Iy(t){const e=t?`/merchant-account/${t}/debit-routing`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:3e5});async function o(l){if(!t||!e)throw new Error("Set a merchant ID first");const c=await Ve(e,{enabled:l});return await s(c,!1),c}return{data:n,error:r,isLoading:a,isEnabled:!!(n!=null&&n.debit_routing_enabled),mutate:s,setDebitRoutingEnabled:o}}const tG=["SR_BASED_ROUTING","SR_MULTI_OBJECTIVE"],AAe={SR_BASED_ROUTING:"Success Rate Based",SR_MULTI_OBJECTIVE:"Success Rate Based + Multi-Objective"},n_="USD",NL=["CREDIT"],CL=["STANDARD","PREMIUM"],EL=["VISA","MASTERCARD"],AL=[{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"PREMIUM"}],OL={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{...Tu}},OAe={stripe:94,adyen:93};function r_(t){return{...OL,successRate:OAe[t.trim().toLowerCase()]??OL.successRate,errorInfo:{...Tu}}}function nG(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function TAe(t,e,n){return nG(t/1e4*e,n)}function PAe(t){for(const[e,n]of Object.entries(eG))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Yf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],Xf=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],rG="decision-explorer-state-v2",aG=10*60*1e3,sG={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_BASED_ROUTING"},MAe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},RAe={totalPayments:"10"},DAe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],IAe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function iG(t){return t.map(e=>({...e}))}function oG(t){return t.map(e=>({...e}))}function $Ae(t){return tG.includes(t)?t:sG.ranking_algorithm}function lG(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function Mh(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...sG},simulationConfig:{...RAe},gatewaySimConfigs:{},errorInfo:{...Tu},debitForm:{...MAe},ruleParams:iG(DAe),fallbackConnectors:oG(IAe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1}}function LAe(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function RT(t){return`${rG}:${encodeURIComponent(t)}`}function FAe(t){return!!(t&&Date.now()-t>aG)}function AA(t){typeof window>"u"||window.localStorage.removeItem(RT(t))}function BAe(t,e){typeof window>"u"||window.localStorage.setItem(RT(t),JSON.stringify(e))}function TL(t){var e,n,r,a;if(typeof window>"u")return Mh();try{const s=window.localStorage.getItem(RT(t))||window.localStorage.getItem(rG);if(!s)return{...Mh(),scopeKey:t};const o=JSON.parse(s),l=Mh();return o.scopeKey!==t||FAe(o.resultDataUpdatedAtMs)?(AA(t),{...l,scopeKey:t}):{...l,...o,scopeKey:t,resultDataUpdatedAtMs:o.resultDataUpdatedAtMs||null,activeTab:o.activeTab&&o.activeTab!=="single"?o.activeTab:l.activeTab,form:{...l.form,...o.form||{},ranking_algorithm:$Ae((e=o.form)==null?void 0:e.ranking_algorithm)},simulationConfig:{...l.simulationConfig,...o.simulationConfig||{}},gatewaySimConfigs:o.gatewaySimConfigs||l.gatewaySimConfigs,errorInfo:{...l.errorInfo,...o.errorInfo||{}},debitForm:{...l.debitForm,...o.debitForm||{},card_type:lG((n=o.debitForm)==null?void 0:n.card_type)},ruleParams:(r=o.ruleParams)!=null&&r.length?iG(o.ruleParams):l.ruleParams,fallbackConnectors:(a=o.fallbackConnectors)!=null&&a.length?oG(o.fallbackConnectors):l.fallbackConnectors,volumeDistribution:o.volumeDistribution||l.volumeDistribution,volumeEvaluationLog:o.volumeEvaluationLog||l.volumeEvaluationLog,simulationResults:o.simulationResults||l.simulationResults}}catch{return{...Mh(),scopeKey:t}}}function Kg(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function a_(t=[]){return Array.from(new Set(Kg(t)))}function kg(t){return t.replace(/_/g," ").toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function zAe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function s_(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function cG(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Yg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Oi(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function Xg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Oi(t):"Unknown route"}function PL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Oi(t):"Unknown event"}function DT(t){return t.flow_type||""}function Jg(t){const e=DT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Oi(t.event_stage||e)}function OA(t){const e=DT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function ab(t){const e=DT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function ML(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function RL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function UAe(t){return OH(t)===404}function jg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function i_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function uG(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function VAe(t){return`/analytics/payment-audit?${cG({range:"1d",page:1,page_size:25,payment_id:t})}`}function WAe(t){return`/analytics/preview-trace?${cG({range:"1d",page:1,page_size:25,payment_id:t})}`}function DL(t){if(!t)return null;const e=jg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??i_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??i_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=jg(n)?n:null,o=jg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:OA(t)},{label:"Stage",value:Jg(t)},{label:"Route",value:Xg(t.route)},{label:"Timestamp",value:Yg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Oi(t.status)}]:[]],d=i_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:jg(r)&&!Object.keys(r).length?null:r,responsePayload:jg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function IL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function sb(t){return t?"border-slate-300 bg-white text-slate-950 shadow-sm dark:border-[#3b82f6]/45 dark:bg-[#182131] dark:text-white":"border-transparent text-slate-500 hover:border-slate-200 hover:bg-white/70 hover:text-slate-900 dark:text-[#8d9ab2] dark:hover:border-[#2a303a] dark:hover:bg-[#151b24] dark:hover:text-white"}function HAe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function GAe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Zg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function o_({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function $L({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function zl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:uG(e)}):i.jsx(Zg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function qAe(){var sd,lv,cv,uv,dv,Xm,Jm,fv,hv,pv,Zm,mv,gv;const t=Kr(),{merchantId:e}=Er(),n=xr(T=>T.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=LAe((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Al(a||void 0).isEnabled("gsm-scoring-filter"),c=Iy(a),{routingKeysConfig:u,isLoading:d,error:f}=MT(),h=Object.keys(u).length>0,p=!d&&(!h||!!f),m=g.useMemo(()=>TL(s),[s]),[x,y]=g.useState(m.activeTab),[b,v]=g.useState(m.scopeKey||s),[w,j]=g.useState(m.resultDataUpdatedAtMs),[k,_]=g.useState(m.form),[S,N]=g.useState(m.simulationConfig),[E,P]=g.useState(m.errorInfo),[M,A]=g.useState(m.gatewaySimConfigs),O=g.useRef(M);g.useEffect(()=>{O.current=M},[M]);const D=Object.values(M).some(T=>T.failureMode==="timeout"),I=g.useRef(!1);g.useEffect(()=>()=>{I.current=!0},[]);const[X,Q]=g.useState(m.debitForm),[V,Y]=g.useState(0),[H,G]=g.useState(m.ruleParams),[$,F]=g.useState(m.fallbackConnectors),[R,z]=g.useState(m.volumePayments),[U,ee]=g.useState(m.result),[pe,re]=g.useState(m.debitResult),[he,q]=g.useState(m.debitPaymentId),[W,ue]=g.useState(m.singleRunPaymentId),[te,ie]=g.useState(m.singleRunOutcome),[me,ve]=g.useState(m.ruleResult),[Ne,je]=g.useState(m.volumeDistribution),[Me,Be]=g.useState(m.volumeEvaluationLog),[tt,B]=g.useState(m.volumeProgress),[se,de]=g.useState(m.simulationResults),[Ce,fe]=g.useState(!1),[be,we]=g.useState(m.smartRetryEnabled),[Le,Oe]=g.useState(null),[He,vt]=g.useState(""),[bt,Bt]=g.useState(!1),[wt,zt]=g.useState(new Set),Ut=T=>zt(K=>{const ce=new Set(K);return ce.has(T)?ce.delete(T):ce.add(T),ce}),Un=g.useRef(null),Vt=g.useRef(null),[Kt,dt]=g.useState(null),[le,Ie]=g.useState(!1),[Ge,nt]=g.useState(!1),[Nt,ge]=g.useState(m.responseOpen),[st,pt]=g.useState(m.debitResponseOpen),[Ht,gn]=g.useState(m.volumeResponseOpen),[sn,xn]=g.useState(null),[_a,Dn]=g.useState(null),[ua,or]=g.useState("summary"),[da,bi]=g.useState(null),[is,fa]=g.useState(null),[no,wr]=g.useState("summary"),[Cc,Ua]=g.useState("Rule Evaluation Decision"),kr=g.useDeferredValue(se),[td,Pf]=g.useState(!1),$o=g.useMemo(()=>Object.keys(u).sort(),[u]),Mt=g.useMemo(()=>{var T;return Kg(((T=u.payment_method)==null?void 0:T.values)||[])},[u]),nd=g.useMemo(()=>{var K;const T=k.payment_method_type.toLowerCase();return Kg(((K=u[T])==null?void 0:K.values)||[])},[k.payment_method_type,u]),Ar=g.useMemo(()=>{var T;return a_(((T=u.currency)==null?void 0:T.values)||[])},[u]),dn=g.useMemo(()=>{var T;return a_(((T=u.card_network)==null?void 0:T.values)||[])},[u]),In=g.useMemo(()=>{var T;return a_(((T=u.authentication_type)==null?void 0:T.values)||[])},[u]),Yr=sn?VAe(sn):null,Or=ut(Yr,Lt,{revalidateOnFocus:!1}),Ec=da?WAe(da):null,ae=ut(Ec,Lt,{revalidateOnFocus:!1}),{data:Se}=ut("/gsm/options",Lt,{revalidateOnFocus:!1,dedupingInterval:3e5}),Ae=(Se==null?void 0:Se.rules)??[],{data:qe}=ut(a?["rule-elimination",a]:null,()=>Ve("/rule/get",{merchant_id:a,algorithm:"elimination"}).catch(()=>null),{revalidateOnFocus:!1,dedupingInterval:6e4}),rt=((lv=(sd=qe==null?void 0:qe.config)==null?void 0:sd.data)==null?void 0:lv.threshold)!=null;g.useEffect(()=>{p||d||(_(T=>{var Ke;const K={...T};let ce=!1;Ar.length>0&&!Ar.includes(K.currency)&&(K.currency=Ar[0],ce=!0),Mt.length>0&&!Mt.includes(K.payment_method_type)&&(K.payment_method_type=Mt[0],ce=!0);const ye=Kg(((Ke=u[K.payment_method_type.toLowerCase()])==null?void 0:Ke.values)||[]);return ye.length>0&&!ye.includes(K.payment_method)&&(K.payment_method=ye[0],ce=!0),In.length>0&&!In.includes(K.auth_type)&&(K.auth_type=In[0],ce=!0),dn.length>0&&!dn.includes(K.card_brand)&&(K.card_brand=dn[0],ce=!0),ce?K:T}),G(T=>{let K=!1;const ce=T.map(ye=>{if(!ye.key||!u[ye.key])return ye;const Ke=u[ye.key],yt=s_(Ke.type),De=Ke.values||[],At=yt==="enum_variant"?De.includes(ye.value)?ye.value:De[0]||"":ye.value;return ye.type!==yt||ye.value!==At?(K=!0,{...ye,type:yt,value:At}):ye});return K?ce:T}))},[p,d,u,Ar,Mt,In,dn]),g.useEffect(()=>{k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&_(T=>{if(T.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return T;const K={...T};let ce=!1;K.currency!==n_&&(K.currency=n_,ce=!0);const ye=Mt.find(Ke=>Ke==="CARD")||"CARD";if(K.payment_method_type!==ye&&(K.payment_method_type=ye,ce=!0),NL.includes(K.payment_method)||(K.payment_method="CREDIT",ce=!0),!EL.includes(K.card_brand)){const Ke=dn.find(yt=>yt==="VISA")||dn.find(yt=>yt==="MASTERCARD")||dn[0]||"VISA";K.card_brand=Ke,ce=!0}return CL.includes(K.card_program)||(K.card_program="STANDARD",ce=!0),ce?K:T})},[k.ranking_algorithm,Mt,dn]),g.useEffect(()=>{if(!sn&&!da&&!Kt)return;const T=document.body.style.overflow,K=ce=>{ce.key==="Escape"&&(xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),dt(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",K),()=>{document.body.style.overflow=T,window.removeEventListener("keydown",K)}},[sn,da,Kt]);function at(){const T=Mh();ee(T.result),re(T.debitResult),q(T.debitPaymentId),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),de(T.simulationResults),ge(T.responseOpen),pt(T.debitResponseOpen),gn(T.volumeResponseOpen),xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),Ua("Rule Evaluation Decision"),j(null),Oe(null),dt(null),Ie(!1),I.current=!0,fe(!1)}function Et(){j(Date.now())}function yn(T,K){y(T.activeTab),v(T.scopeKey||K),j(T.resultDataUpdatedAtMs),_(T.form),N(T.simulationConfig),A(T.gatewaySimConfigs),P(T.errorInfo),Q(T.debitForm),G(T.ruleParams),F(T.fallbackConnectors),z(T.volumePayments),ee(T.result),re(T.debitResult),q(T.debitPaymentId),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),de(T.simulationResults),ge(T.responseOpen),pt(T.debitResponseOpen),gn(T.volumeResponseOpen),xn(null),Dn(null),or("summary"),bi(null),fa(null),wr("summary"),Ua("Rule Evaluation Decision"),nt(!1),Oe(null),dt(null),Ie(!1),I.current=!0,fe(!1)}g.useEffect(()=>{b!==s&&yn(TL(s),s)},[s,b]),g.useEffect(()=>{if(!w)return;const T=b||s,K=aG-(Date.now()-w);if(K<=0){at(),AA(T);return}const ce=window.setTimeout(()=>{at(),AA(T)},K);return()=>window.clearTimeout(ce)},[s,w,b]),g.useEffect(()=>{if(b!==s||Ce||le)return;BAe(s,{scopeKey:s,resultDataUpdatedAtMs:w,activeTab:x,form:k,simulationConfig:S,gatewaySimConfigs:M,errorInfo:E,debitForm:X,ruleParams:H,fallbackConnectors:$,volumePayments:R,result:U,debitResult:pe,debitPaymentId:he,singleRunPaymentId:W,singleRunOutcome:te,ruleResult:me,volumeDistribution:Ne,volumeEvaluationLog:Me,volumeProgress:tt,simulationResults:se,responseOpen:Nt,debitResponseOpen:st,volumeResponseOpen:Ht,smartRetryEnabled:be})},[s,b,Ce,le,w,x,k,S,M,E,X,H,$,R,U,pe,he,W,te,me,Ne,Me,tt,se,Nt,st,Ht,be]);function $n(T,K){_(ce=>({...ce,[T]:K}))}function Sn(T,K){Q(ce=>({...ce,[T]:K}))}function ha(T){P(K=>({...K,...T}))}function lr(T){return O.current[T]??r_(T)}function Na(T){return lr(T).successRate}function ws(T){return lr(T).failureMode}function Mf(T,K){A(ce=>({...ce,[T]:{...lr(T),...ce[T],successRate:K}}))}function ks(T,K){A(ce=>({...ce,[T]:{...lr(T),...ce[T],failureMode:K}}))}function Lo(T,K,ce){const yt=ce?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return Ae.find(De=>De.connector===T&&(De.subFlow==="Authorize"||De.flow==="Authorize")&&De.decision===K&&De.unifiedMessage!=null&&yt.has(De.unifiedMessage)&&!!De.errorCode&&De.errorCode.toLowerCase()!=="no error code")}function cr(T,K,ce){const ye=Lo(T,K,ce);return ye?{error_code:ye.errorCode,error_message:ye.errorMessage,issuer_error_code:"",card_network:""}:{...Tu}}function Zs(T,K){A(ce=>{const ye=lr(T);return{...ce,[T]:{...ye,...ce[T],penalized:K,errorInfo:cr(T,(ce[T]??ye).gsmDecision,K)}}})}function Rf(T,K){A(ce=>{const ye=lr(T),Ke=ce[T]??ye,yt={...Ke.errorInfo,...K};let De=Ke.gsmDecision,At=Ke.penalized;if(K.error_code){const Tt=Ae.find(Yt=>Yt.connector===T&&Yt.errorCode===K.error_code&&(Yt.subFlow==="Authorize"||Yt.flow==="Authorize"))??Ae.find(Yt=>Yt.connector===T&&Yt.errorCode===K.error_code);((Tt==null?void 0:Tt.decision)==="retry"||(Tt==null?void 0:Tt.decision)==="do_default")&&(De=Tt.decision);const vn=AT(Tt==null?void 0:Tt.unifiedMessage);vn!==null&&(At=vn)}return{...ce,[T]:{...ye,...Ke,errorInfo:yt,gsmDecision:De,penalized:At}}})}function An(T,K){return Ae.find(ce=>ce.connector===T&&ce.errorCode===K&&ce.subFlow==="Authorize")??Ae.find(ce=>ce.connector===T&&ce.errorCode===K&&ce.flow==="Authorize")??Ae.find(ce=>ce.connector===T&&ce.errorCode===K)}function Fo(T){if(!T)return;const K=lr(T).errorInfo;if(!K.error_code)return;const ce=An(T,K.error_code);return{connector:T,...(ce==null?void 0:ce.flow)&&{flow:ce.flow},...(ce==null?void 0:ce.subFlow)&&{subFlow:ce.subFlow},errorCode:K.error_code,...K.error_message&&{errorMessage:K.error_message},...K.issuer_error_code&&{issuerErrorCode:K.issuer_error_code},...K.card_network&&{cardNetwork:K.card_network}}}function Df(T,K=E){if(!T||!K.error_code)return;const ce=An(T,K.error_code);return{connector:T,...(ce==null?void 0:ce.flow)&&{flow:ce.flow},...(ce==null?void 0:ce.subFlow)&&{subFlow:ce.subFlow},errorCode:K.error_code,...K.error_message&&{errorMessage:K.error_message},...K.issuer_error_code&&{issuerErrorCode:K.issuer_error_code},...K.card_network&&{cardNetwork:K.card_network}}}function Ml(T,K){Oe(null),dt(GAe(T,K))}function Rl(T,K,ce="Request failed"){const ye=T instanceof Error?T.message:ce;if(HAe(ye)){Ml(K,ye);return}Oe(ye)}function Ac(){const T=X.co_badged_networks.split(",").map(K=>K.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:X.merchant_category_code.trim(),acquirer_country:X.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:T,issuer_country:X.issuer_country.trim().toUpperCase(),is_regulated:X.is_regulated,regulated_name:X.is_regulated&&X.regulated_name.trim()?X.regulated_name.trim():null,card_type:lG(X.card_type)}})}function ev(){var Ke;if($o.length===0)return;const T=$o[0],K=u[T],ce=s_(K==null?void 0:K.type),ye=ce==="enum_variant"&&((Ke=K==null?void 0:K.values)==null?void 0:Ke[0])||"";G([...H,{key:T,type:ce,value:ye,metadataKey:""}])}function Vm(T){G(H.filter((K,ce)=>ce!==T))}function Oc(T,K,ce){G(H.map((ye,Ke)=>Ke===T?{...ye,[K]:ce}:ye))}function tv(T,K){G(H.map((ce,ye)=>ye===T?{...ce,metadataKey:K}:ce))}function Wm(T,K){var yt;const ce=u[K],ye=s_(ce==null?void 0:ce.type),Ke=ye==="enum_variant"&&((yt=ce==null?void 0:ce.values)==null?void 0:yt[0])||"";G(H.map((De,At)=>At===T?{...De,key:K,type:ye,value:Ke,metadataKey:""}:De))}function nv(){F([...$,{gateway_name:"",gateway_id:""}])}function rv(T){F($.filter((K,ce)=>ce!==T))}function av(T,K,ce){F($.map((ye,Ke)=>Ke===T?{...ye,[K]:ce}:ye))}async function Hm(){var ce;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");Ie(!0),Oe(null),dt(null),ue(null);const T=k.eligible_gateways.split(",").map(ye=>ye.trim()).filter(Boolean),K=`explorer_${Date.now()}`;try{const ye=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:K,amount:parseFloat(k.amount)||1e3,currency:k.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,cardSwitchProvider:k.card_brand,cardType:k.payment_method,...k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:k.card_program}},eligibleGatewayList:T,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:D}),Ke=await Ve("/update-gateway-score",{merchantId:a,gateway:ye.decided_gateway,gatewayReferenceId:null,status:te,paymentId:K,enforceDynamicRoutingFailure:null,...te==="FAILURE"&&{errorInfo:Df(ye.decided_gateway)}});if(be&&l&&te==="FAILURE"&&((ce=Ke.gsm_info)==null?void 0:ce.decision)==="retry"&&ye.fallback_gateways.length>0){const yt=ye.fallback_gateways[0];await Ve("/update-gateway-score",{merchantId:a,gateway:yt,gatewayReferenceId:null,status:"CHARGED",paymentId:K,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),ee({...ye,decided_gateway:yt}),ue(K)}else ee(ye),ue(K);Et()}catch(ye){Rl(ye,"single")}finally{Ie(!1)}}async function N2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");Ie(!0),Oe(null),dt(null);try{await c.setDebitRoutingEnabled(!0)}catch(T){Rl(T,"debit","Failed to enable debit routing")}finally{Ie(!1)}}async function Qs(){if(!a)return Oe("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ml("debit","Debit routing is disabled.");const T=X.eligible_gateways.split(",").map(ce=>ce.trim()).filter(Boolean);if(T.length===0)return Oe("Add at least one eligible gateway");Ie(!0),Oe(null),dt(null),re(null);const K=`debit_${Date.now()}`;try{const ce=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:K,amount:parseFloat(X.amount)||1e3,currency:X.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:X.auth_type,metadata:Ac()},eligibleGatewayList:T,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});re(ce),q(K),Et()}catch(ce){Rl(ce,"debit")}finally{Ie(!1)}}async function C2(){var At;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");const T=parseInt(S.totalPayments)||0;if(T<=0)return Oe("Total Payments must be greater than 0");fe(!0),Oe(null),dt(null),de([]),I.current=!1;const K=k.eligible_gateways.split(",").map(Tt=>Tt.trim()).filter(Boolean),ce=[],ye=3;let Ke=0,yt=0;const De=k.ranking_algorithm==="SR_MULTI_OBJECTIVE";try{for(let Tt=0;Tt0){_s=ur.fallback_gateways[0];const Ns=Na(_s),jr=Math.random()*100150||Tt===T-1)&&(de([...ce]),Et(),yt=fn)}catch(ur){if(Ke++,Ke>=ye){Rl(ur,"batch",`Simulation stopped after ${ye} consecutive backend errors. Check that the server is running.`);return}await new Promise(Ea=>setTimeout(Ea,1e3));continue}}}finally{de([...ce]),fe(!1)}}async function E2(){if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");Ie(!0),Oe(null),dt(null),ve(null),je([]),Be([]),B(0);const T=`rule_decision_${Date.now()}`;try{const K={};H.forEach(ye=>{ye.key&&(ye.type==="metadata_variant"?K[ye.key]={type:ye.type,value:{key:ye.metadataKey||ye.key,value:ye.value}}:ye.type==="number"?K[ye.key]={type:ye.type,value:parseFloat(ye.value)||0}:ye.value!==""&&(K[ye.key]={type:ye.type,value:ye.value}))});const ce=await Ve("/routing/evaluate",{created_by:a||"test_user",payment_id:T,fallback_output:$.filter(ye=>ye.gateway_name),parameters:K});if(ve(ce),Et(),ce.output.type==="volume_split"&&ce.output.splits){const ye=parseInt(R)||100,Ke=ce.output.splits.map(yt=>({name:yt.connector.gateway_name,count:Math.round(yt.split/100*ye),percentage:yt.split}));je(Ke)}}catch(K){Rl(K,"rule")}finally{Ie(!1)}}async function rd(){if(!a)return Oe("Sign in with a merchant-linked account to continue");Ie(!0),Oe(null),dt(null),ve(null),je([]),Be([]),B(0);const T=parseInt(R)||0;if(T<=0)return Ie(!1),Oe("Total Payments must be greater than 0");try{const ce=`volume_decision_${Date.now()}`,ye=[],Ke=new Map;let yt=null;const De=At=>Array.from(Ke.entries()).map(([Tt,vn])=>({name:Tt,count:vn,percentage:Number((vn/Math.max(1,At)*100).toFixed(1))})).sort((Tt,vn)=>vn.count-Tt.count);for(let At=0;At{const Xt=At+Xr,er=`${ce}_${Xt}`,Tn=await Ve("/routing/evaluate",{created_by:a,payment_id:er,fallback_output:$.filter(Hn=>Hn.gateway_name),parameters:{}});return{paymentId:er,response:Tn}}));for(const{paymentId:Yt,response:Xr}of vn){if(Xr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const Xt=zAe(Xr);if(!Xt)throw new Error("Volume split evaluation did not return a connector.");yt||(yt=Xr,ve(Xr)),Ke.set(Xt,(Ke.get(Xt)||0)+1),ye.push({paymentId:Yt,connector:Xt})}B(ye.length),Be([...ye]),je(De(ye.length)),Et()}}catch(K){Rl(K,"volume")}finally{Ie(!1)}}const js=U!=null&&U.gateway_priority_map?Object.entries(U.gateway_priority_map).sort(([,T],[,K])=>K-T).map(([T,K])=>({name:T,score:Math.round(K*1e3)/10})):[],wi=parseInt(S.totalPayments)||0,Ca=se.length,Dl=wi>0?Math.round(Ca/wi*100):0,A2=Ce||Ca>0,Vn=g.useMemo(()=>k.eligible_gateways.split(",").map(T=>T.trim().toLowerCase()).filter(Boolean),[k.eligible_gateways]),If=g.useMemo(()=>Object.fromEntries(Vn.map((T,K)=>[T,Xf[K%Xf.length]])),[Vn]);g.useEffect(()=>{Ae.length===0||Vn.length===0||A(T=>{var ye,Ke;let K=!1;const ce={...T};for(const yt of Vn){if((Ke=(ye=T[yt])==null?void 0:ye.errorInfo)!=null&&Ke.error_code)continue;const De=T[yt]??r_(yt),At=Lo(yt,De.gsmDecision,De.penalized);At&&(ce[yt]={...De,errorInfo:{error_code:At.errorCode,error_message:At.errorMessage,issuer_error_code:"",card_network:""}},K=!0)}return K?ce:T})},[Ae,Vn]);const Wn=g.useMemo(()=>kr.reduce((T,K)=>(T[K.decidedGateway]||(T[K.decidedGateway]={total:0,success:0,failure:0}),T[K.decidedGateway].total++,K.status==="CHARGED"?T[K.decidedGateway].success++:T[K.decidedGateway].failure++,T),{}),[kr]),ad=g.useMemo(()=>{var Xt;const T=kr,K={series:{},paymentNums:[],yMin:0,yMax:100};if(T.length<2)return K;const ye=Math.max(1,Math.floor(T.length/200)),Ke=Object.keys(Wn),yt={},De={};Ke.forEach(er=>{De[er]=[]});const At=[];for(let er=0;er0&&(Tnvn&&(vn=Tn));Tt>vn&&(Tt=0,vn=100);const Yt=Math.max(0,Tt-5),Xr=Math.min(100,vn+5);return{series:De,paymentNums:At,yMin:Yt,yMax:Xr}},[kr,Wn]),ro=g.useMemo(()=>kr.filter(T=>{var K;return(K=T.routingApproach)==null?void 0:K.includes("HEDGING")}).length,[kr]),Il=g.useMemo(()=>{const T=kr.filter(ce=>ce.retryGateway!==void 0).length,K=kr.filter(ce=>ce.retryStatus==="CHARGED").length;return{triggered:T,recovered:K}},[kr]),ao=g.useMemo(()=>{let T=0,K="";for(const ce of kr)ce.costWon&&ce.costSavedBps!=null&&ce.costSavedBps>0&&ce.status==="CHARGED"&&(T+=ce.costSavedBps/1e4*ce.amount,K=ce.currency);return{value:T,currency:K}},[kr]),O2=((cv=pe==null?void 0:pe.debit_routing_output)==null?void 0:cv.co_badged_card_networks_info)||[],Gm=g.useMemo(()=>new Map(Ne.map((T,K)=>[T.name,K])),[Ne]),sv=g.useMemo(()=>Object.entries(Wn).sort((T,K)=>K[1].total-T[1].total),[Wn]),ei=g.useMemo(()=>Object.values(Wn).reduce((T,K)=>T+K.total,0),[Wn]),$f=g.useMemo(()=>[...Ne].sort((T,K)=>K.count-T.count),[Ne]),$l=$f[0],Lf=Me.length,Tc=Number.parseInt(R,10)||0,qm=Tc>0?Math.min(100,Math.round(tt/Tc*100)):0,Va=g.useMemo(()=>{var K;const T=((K=Or.data)==null?void 0:K.results)||[];return T.find(ce=>ce.payment_id===sn)||T[0]||null},[(uv=Or.data)==null?void 0:uv.results,sn]),On=g.useMemo(()=>{var K;const T=((K=Or.data)==null?void 0:K.timeline)||[];return T.find(ce=>ce.id===_a)||T[0]||null},[(dv=Or.data)==null?void 0:dv.timeline,_a]);g.useEffect(()=>{var K,ce;if(On!=null&&On.id){Dn(On.id);return}const T=(ce=(K=Or.data)==null?void 0:K.timeline)==null?void 0:ce[0];T!=null&&T.id&&Dn(T.id)},[(Xm=Or.data)==null?void 0:Xm.timeline,On==null?void 0:On.id]);const Ff=g.useMemo(()=>{var K;const T=[];for(const ce of((K=Or.data)==null?void 0:K.timeline)||[]){const ye=OA(ce),Ke=T[T.length-1];!Ke||Ke.phase!==ye?T.push({phase:ye,events:[ce]}):Ke.events.push(ce)}return T},[(Jm=Or.data)==null?void 0:Jm.timeline]),ki=g.useMemo(()=>DL(On),[On]),Fr=g.useMemo(()=>{var K;const T=((K=ae.data)==null?void 0:K.results)||[];return T.find(ce=>ce.payment_id===da)||T[0]||null},[(fv=ae.data)==null?void 0:fv.results,da]),_n=g.useMemo(()=>{var K;const T=((K=ae.data)==null?void 0:K.timeline)||[];return T.find(ce=>ce.id===is)||T[0]||null},[(hv=ae.data)==null?void 0:hv.timeline,is]);g.useEffect(()=>{var K,ce;if(_n!=null&&_n.id){fa(_n.id);return}const T=(ce=(K=ae.data)==null?void 0:K.timeline)==null?void 0:ce[0];T!=null&&T.id&&fa(T.id)},[(pv=ae.data)==null?void 0:pv.timeline,_n==null?void 0:_n.id]);const iv=g.useMemo(()=>{var K;const T=[];for(const ce of((K=ae.data)==null?void 0:K.timeline)||[]){const ye=OA(ce),Ke=T[T.length-1];!Ke||Ke.phase!==ye?T.push({phase:ye,events:[ce]}):Ke.events.push(ce)}return T},[(Zm=ae.data)==null?void 0:Zm.timeline]),Ll=g.useMemo(()=>DL(_n),[_n]);g.useEffect(()=>{const T=Vt.current;T&&(T.scrollTop=T.scrollHeight)},[kr.length]);function Km(T){bi(null),fa(null),wr("summary"),xn(T),Dn(null),or("summary")}function Ym(){xn(null),Dn(null),or("summary")}function ji(T,K){xn(null),Dn(null),or("summary"),Ua(K),bi(T),fa(null),wr("summary")}function ov(){bi(null),fa(null),wr("summary")}function T2(){const T=Mh();function K(ce){var yt;const ye={...ce};Ar.length>0&&!Ar.includes(ye.currency)&&(ye.currency=Ar[0]),Mt.length>0&&!Mt.includes(ye.payment_method_type)&&(ye.payment_method_type=Mt[0]);const Ke=Kg(((yt=u[ye.payment_method_type.toLowerCase()])==null?void 0:yt.values)||[]);return Ke.length>0&&!Ke.includes(ye.payment_method)&&(ye.payment_method=Ke[0]),In.length>0&&!In.includes(ye.auth_type)&&(ye.auth_type=In[0]),dn.length>0&&!dn.includes(ye.card_brand)&&(ye.card_brand=dn[0]),ye}x==="single"?(_(K(T.form)),ee(T.result),ue(T.singleRunPaymentId),ie(T.singleRunOutcome),ge(T.responseOpen)):x==="batch"?(_(K(T.form)),N(T.simulationConfig),A({}),de(T.simulationResults),fe(!1)):x==="rule"?Y(ce=>ce+1):x==="volume"?(z(T.volumePayments),ve(T.ruleResult),je(T.volumeDistribution),Be(T.volumeEvaluationLog),B(T.volumeProgress),gn(T.volumeResponseOpen),bi(null),fa(null),wr("summary"),Ua("Volume Split Decision")):x==="debit"&&(Q(T.debitForm),re(T.debitResult),q(T.debitPaymentId),pt(T.debitResponseOpen),xn(null),Dn(null),or("summary")),Oe(null),dt(null),Ie(!1),nt(!1),xn(null),Dn(null),or("summary")}const P2=x==="batch"?"Reset Auth-Rate Based Routing":x==="rule"?"Reset Rule Based Routing":x==="volume"?"Reset Volume Based Routing":"Reset Debit Routing";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx(an,{children:"Simulation console"}),i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[i.jsx(qr,{title:"Decision Explorer"}),i.jsx(Pe,{variant:"blue",children:a||"No merchant"})]})]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:T2,children:[i.jsx(As,{size:14}),P2]})]}),i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50/80 p-1 dark:border-[#242b36] dark:bg-[#0c1118]",children:i.jsxs("div",{className:"grid gap-1 sm:grid-cols-2 xl:grid-cols-4",children:[i.jsxs("button",{onClick:()=>{I.current=!0,y("batch")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="batch")}`,children:[i.jsx("span",{className:"block",children:"Auth-rate"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Score simulation"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("rule")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="rule")}`,children:[i.jsx("span",{className:"block",children:"Rule based"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Policy evaluator"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("volume")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="volume")}`,children:[i.jsx("span",{className:"block",children:"Volume split"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Distribution run"})]}),i.jsxs("button",{onClick:()=>{I.current=!0,y("debit")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${sb(x==="debit")}`,children:[i.jsx("span",{className:"block",children:"Debit routing"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Network decision"})]})]})}),x==="rule"&&i.jsx(YH,{merchantId:a,routingKeysConfig:u,routingConfigUnavailable:p,routingKeysLoading:d,resetSignal:V,onRunComplete:Et,onOpenTrace:ji}),i.jsxs("div",{className:x==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:x==="rule"?{display:"none"}:void 0,children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:x==="rule"?"Rule Evaluation":x==="volume"?"Volume Split":x==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:x==="rule"?"Rule Evaluation Parameters":x==="volume"?"Volume Split Configuration":x==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),x!=="volume"&&x!=="debit"&&d&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),x!=="volume"&&x!=="debit"&&p&&i.jsx(_t,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),x==="rule"?i.jsxs(i.Fragment,{children:[d&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),p&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:H.map((T,K)=>{var ce;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:T.key,onChange:ye=>Wm(K,ye.target.value),disabled:p||d,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:$o.length===0?i.jsx("option",{value:"",children:"No keys available"}):$o.map(ye=>i.jsx("option",{value:ye,children:ye},ye))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),T.type==="enum_variant"?i.jsx("select",{value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((ce=u[T.key])==null?void 0:ce.values)||[]).map(ye=>i.jsx("option",{value:ye,children:ye},ye))}):T.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):T.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>Vm(K),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),T.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:T.metadataKey||"",onChange:ye=>tv(K,ye.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:T.value,onChange:ye=>Oc(K,"value",ye.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},K)})}),i.jsxs("button",{onClick:ev,disabled:p||d||$o.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:$.map((T,K)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:K+1}),i.jsx("input",{placeholder:"gateway name",value:T.gateway_name,onChange:ce=>av(K,"gateway_name",ce.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:T.gateway_id||"",onChange:ce=>av(K,"gateway_id",ce.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>rv(K),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},K))}),i.jsxs("button",{onClick:nv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):x==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(mt,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx(Fa,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx(Fa,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:N2,disabled:!a||le,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:X.amount,onChange:T=>Sn("amount",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:X.currency,onChange:T=>Sn("currency",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:X.auth_type,onChange:T=>Sn("auth_type",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:X.card_type,onChange:T=>Sn("card_type",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:X.eligible_gateways,onChange:T=>Sn("eligible_gateways",T.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:X.merchant_category_code,onChange:T=>Sn("merchant_category_code",T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:X.acquirer_country,onChange:T=>Sn("acquirer_country",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:X.co_badged_networks,onChange:T=>Sn("co_badged_networks",T.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:X.issuer_country,onChange:T=>Sn("issuer_country",T.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:X.is_regulated,onChange:T=>Sn("is_regulated",T.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),X.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:X.regulated_name,onChange:T=>Sn("regulated_name",T.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):x==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:R,onChange:T=>z(T.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(ke,{onClick:rd,disabled:le||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(cf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Tc||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:le?tt:Lf||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${le?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${le?qm:Lf&&Tc?Math.min(100,Math.round(Lf/Tc*100)):0}%`}})}),le&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[qm,"%"]})]})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"space-y-2",children:[(()=>{const T=k.ranking_algorithm==="SR_MULTI_OBJECTIVE",K=T?Mt.includes("CARD")?["CARD"]:["CARD",...Mt]:Mt,ce=T?[...NL]:nd,ye=T?[n_]:Ar,Ke=T?[...EL]:dn,yt=[{label:"Amount",content:i.jsx("input",{value:k.amount,onChange:De=>$n("amount",De.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500"})},{label:"Currency",content:i.jsx("select",{value:k.currency,onChange:De=>$n("currency",De.target.value),disabled:p||d||T,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:ye.map(De=>i.jsx("option",{value:De,children:De},De))})},{label:"Method Type",content:i.jsx("select",{value:k.payment_method_type,onChange:De=>$n("payment_method_type",De.target.value),disabled:p||d||T,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:K.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Payment Method",content:i.jsx("select",{value:k.payment_method,onChange:De=>$n("payment_method",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:ce.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Card Brand",content:i.jsx("select",{value:k.card_brand,onChange:De=>$n("card_brand",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Ke.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})},{label:"Auth Type",content:i.jsx("select",{value:k.auth_type,onChange:De=>$n("auth_type",De.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:In.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})}];return T&&yt.push({label:"Card Type",content:i.jsx("select",{value:k.card_program,onChange:De=>$n("card_program",De.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:CL.map(De=>i.jsx("option",{value:De,children:kg(De)},De))})}),i.jsx("div",{className:"grid grid-cols-3 gap-x-3 gap-y-2.5",children:yt.map(({label:De,content:At})=>i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:De}),At]},De))})})(),i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:"Algorithm"}),i.jsx("select",{value:k.ranking_algorithm,onChange:T=>$n("ranking_algorithm",T.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm font-medium text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 cursor-pointer",children:tG.map(T=>i.jsx("option",{value:T,children:AAe[T]},T))})]})]}),x==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:te,onChange:T=>ie(T.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),te==="FAILURE"&&i.jsx(EA,{info:E,onChange:ha,rules:Ae})]}),x==="batch"&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] pt-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Xh,{size:13,className:"text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400",children:"Simulation"})]}),i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("label",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Payments"}),i.jsx("input",{type:"number",min:1,max:5e3,value:S.totalPayments,onChange:T=>N({totalPayments:T.target.value}),onBlur:T=>{const K=Math.max(1,Math.min(5e3,parseInt(T.target.value)||1));N({totalPayments:String(K)})},className:"w-24 bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-2 text-sm font-semibold text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"})]})]}),i.jsxs("div",{className:"space-y-2",children:[Vn.map(T=>{var At,Tt,vn,Yt,Xr;const K=((At=M[T])==null?void 0:At.successRate)??r_(T).successRate,ce=((Tt=M[T])==null?void 0:Tt.failureMode)??"decline";(vn=M[T])==null||vn.gsmDecision;const ye=((Yt=M[T])==null?void 0:Yt.penalized)??!0,Ke=wt.has(T),yt=K>=80?"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300":K>=50?"bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300":"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300",De=K>=80?"#10b981":K>=50?"#f59e0b":"#ef4444";return i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0a0a10] overflow-hidden",children:[i.jsxs("div",{role:"button",tabIndex:0,onClick:()=>Ut(T),onKeyDown:Xt=>{(Xt.key==="Enter"||Xt.key===" ")&&(Xt.preventDefault(),Ut(T))},className:"flex items-center gap-2.5 px-3 pt-3 pb-5 cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f18] transition-colors select-none",children:[i.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-lg text-xs font-bold uppercase shrink-0",style:{backgroundColor:`${If[T]??Xf[0]}22`,color:If[T]??Xf[0]},children:T.charAt(0)}),i.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100 capitalize shrink-0 w-16 truncate",children:T}),i.jsxs("div",{className:"relative flex-1 min-w-0 mr-2",children:[i.jsx("input",{type:"range",min:0,max:100,value:K,onChange:Xt=>Mf(T,parseInt(Xt.target.value)),onClick:Xt=>Xt.stopPropagation(),onMouseDown:Xt=>Xt.stopPropagation(),style:{accentColor:De},className:"w-full h-2 cursor-pointer"}),i.jsxs("div",{className:"absolute top-full left-0 right-2 flex justify-between pointer-events-none",children:[i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"0"}),i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"100%"})]})]}),i.jsx(l1,{text:"Simulated success rate for this gateway",children:i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-bold tabular-nums shrink-0 ${yt}`,children:[K,"%"]})}),Th.GSM_RETRY_IN_SIMULATION,i.jsx("button",{type:"button",disabled:Ce,onClick:Xt=>{Xt.stopPropagation();const er=Vn.filter(Tn=>Tn!==T);$n("eligible_gateways",er.join(", ")),zt(Tn=>{const Hn=new Set(Tn);return Hn.delete(T),Hn})},className:"text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400 disabled:opacity-30 disabled:cursor-not-allowed transition-colors shrink-0",children:i.jsx(Hr,{size:13})}),i.jsx(wn,{size:13,className:`text-slate-500 dark:text-slate-400 transition-transform duration-200 shrink-0 ${Ke?"rotate-180":""}`})]}),i.jsx("div",{className:`grid transition-all duration-200 ease-in-out ${Ke?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:i.jsx("div",{className:"overflow-hidden min-h-0",children:i.jsxs("div",{className:"px-4 pb-4 pt-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24]",children:[i.jsxs("div",{className:`grid grid-cols-2 rounded-lg overflow-hidden border text-xs font-semibold ${Ce?"opacity-50 pointer-events-none border-slate-100 dark:border-[#1c1c24]":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsx("button",{type:"button",disabled:Ce,onClick:()=>ks(T,"decline"),className:`py-2 transition-colors ${ce==="decline"?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Decline"}),i.jsx("button",{type:"button",disabled:Ce,onClick:()=>ks(T,"timeout"),className:`py-2 border-l border-slate-200 dark:border-[#222226] transition-colors ${ce==="timeout"?"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Timeout"})]}),ce==="timeout"&&i.jsx("p",{className:`text-xs px-3 py-2 rounded-lg ${rt?"bg-amber-50 text-amber-700 dark:bg-amber-950/30 dark:text-amber-400":"bg-red-50 text-red-600 dark:bg-red-950/30 dark:text-red-400"} max-w-[68ch]`,children:rt?`Removed from routing below ${qe.config.data.threshold} threshold.`:"Elimination not configured. Set it up in SR Routing settings."}),ce==="decline"&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid gap-2 grid-cols-1",children:[Th.GSM_RETRY_IN_SIMULATION,i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Score Impact"}),i.jsxs("select",{value:ye?"penalized":"skipped",onChange:Xt=>Zs(T,Xt.target.value==="penalized"),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"penalized",children:"Penalized"}),i.jsx("option",{value:"skipped",children:"Penalty skipped"})]})]})]}),i.jsx(EA,{info:((Xr=M[T])==null?void 0:Xr.errorInfo)??Tu,onChange:Xt=>Rf(T,Xt),rules:Ae,connector:T,showClassification:!1})]})]})})})]},T)}),bt?i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:Un,type:"text",value:He,onChange:T=>vt(T.target.value),onKeyDown:T=>{if(T.key==="Enter"){const K=He.trim().toLowerCase();K&&!Vn.includes(K)&&($n("eligible_gateways",[...Vn,K].join(", ")),zt(ce=>new Set(ce).add(K))),vt(""),Bt(!1)}T.key==="Escape"&&(vt(""),Bt(!1))},onBlur:()=>{vt(""),Bt(!1)},placeholder:"e.g. stripe",autoFocus:!0,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-brand-300 dark:border-brand-700 rounded-lg px-3 py-2 pr-16 text-sm text-slate-800 dark:text-slate-100 placeholder-slate-500 focus:outline-none focus:border-brand-500"}),i.jsx("kbd",{className:"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-xs text-slate-500 dark:text-slate-500 bg-slate-100 dark:bg-[#1c1c24] border border-slate-200 dark:border-[#2a2a35] px-1.5 py-0.5 rounded font-mono",children:"Enter ↵"})]}),i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Press Enter to add · Esc to cancel"})]}):i.jsxs("button",{type:"button",disabled:Ce,onClick:()=>{Bt(!0),setTimeout(()=>{var T;return(T=Un.current)==null?void 0:T.focus()},0)},className:"w-full rounded-xl border border-dashed border-slate-200 dark:border-[#2a2a3a] flex items-center justify-center gap-2 h-11 text-slate-500 hover:text-brand-600 hover:border-brand-400 dark:hover:text-brand-400 dark:hover:border-brand-600 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",children:[i.jsx(Qn,{size:14}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider",children:"Add connector"})]})]})]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:Le}),x==="rule"?i.jsx(ke,{onClick:E2,disabled:le||p,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})}):x==="debit"?i.jsx(ke,{onClick:Qs,disabled:le||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Oo,{size:14})," Run Debit Routing"]})}):x==="volume"?null:x==="batch"?i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Ce?()=>{I.current=!0}:C2,disabled:!a||p,variant:Ce?"secondary":"primary",className:"w-full justify-center",children:Ce?i.jsxs(i.Fragment,{children:[i.jsx(Hr,{size:14}),"Stop (",se.length,"/",S.totalPayments||0,")"]}):i.jsxs(i.Fragment,{children:[i.jsx(Xh,{size:14})," Run Auth-Rate Simulation"]})})]}):i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Hm,disabled:le||!a||p,className:"w-full justify-center",children:le?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Run Single Transaction"]})})]})]})]}),i.jsx("div",{className:"min-w-0 flex flex-col gap-4",children:x==="debit"?pe?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),he?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Km(he),children:"View audit"}):null]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:pe.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:he})]})]}),pe.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(ze,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:O2.map((T,K)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",K+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:T.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[T.saving_percentage.toFixed(2),"%"]})]},`${T.network}-${K}`))})]})})]})]}):i.jsx(_t,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>pt(!st),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[st?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14}),"Raw response"]}),st&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(pe,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-12 text-center",children:[i.jsx(Oo,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):x==="volume"?Ne.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Lf})," evaluations"]}),$l&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:$l.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[$l.percentage,"%"]})]})]})]})]}),me!=null&&me.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>ji(me.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[$f.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:$f.map(T=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${T.percentage}%`,backgroundColor:Yf[(Gm.get(T.name)??0)%Yf.length]},title:`${T.name}: ${T.percentage}%`},T.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:$f.map(T=>{const K=Yf[(Gm.get(T.name)??0)%Yf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:K}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:T.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[T.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[T.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${T.percentage}%`,backgroundColor:K}})})]},T.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:Me.slice(-200).map((T,K)=>{const ce=Math.max(0,Me.length-200)+K;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>ji(T.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:ce+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:T.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Yf[(Gm.get(T.connector)??0)%Yf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:T.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ye=>{ye.stopPropagation(),ji(T.paymentId,"Volume Split Decision")},children:"Open"})})]},T.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>gn(T=>!T),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API response"]}),Ht?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]}),Ht&&me&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(me,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(cf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):x==="rule"?me?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:me.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",me.output.type]})]}),me.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>ji(me.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),me.output.type==="single"&&me.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:me.output.connector.gateway_name}),me.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",me.output.connector.gateway_id]})]}),me.output.type==="priority"&&me.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:me.output.connectors.map((T,K)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:K+1}),i.jsx("span",{className:"font-medium",children:T.gateway_name}),T.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",T.gateway_id,")"]})]},K))})]}),me.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>ge(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),Nt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Nt&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(me,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):x==="batch"?A2?i.jsxs(i.Fragment,{children:[i.jsxs(Te,{className:"shrink-0",children:[i.jsx(jt,{className:"!py-3",children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Gateway Selection Summary"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[wi>0&&(()=>{const K=2*Math.PI*6,ce=K*(1-Dl/100);return i.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",className:"-rotate-90",children:[i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",className:"stroke-slate-200 dark:stroke-slate-700"}),i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:K,strokeDashoffset:ce,className:"stroke-brand-500 transition-[stroke-dashoffset] duration-300"})]})})(),i.jsxs("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[Ca," / ",wi||0]}),Ca>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),ro>0?i.jsxs("span",{className:"text-[11px] font-medium text-brand-600 dark:text-sky-400 leading-4",children:[Math.round(ro/Ca*100),"% hedged"]}):i.jsx(l1,{text:"Enable ENABLE_EXPLORE_AND_EXPLOIT_ON_SRV3_{PMT} or ENABLE_MERCHANT_ON_VOLUME_DISTRIBUTION_FEATURE_SR_V3 in Redis",children:i.jsx("span",{className:"text-[11px] text-amber-700 dark:text-amber-400 cursor-help leading-4",children:"0 hedged"})}),be&&Il.triggered>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsx(l1,{text:`${Il.triggered} retries triggered · ${Il.recovered} recovered`,children:i.jsxs("span",{className:"text-[11px] font-medium text-orange-700 dark:text-orange-400 cursor-help leading-4",children:[Il.triggered," retried · ",Il.recovered," recovered"]})})]}),ao.value>0&&ao.currency&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-[11px] font-medium text-emerald-700 dark:text-emerald-400 leading-4",children:["saved ",nG(ao.value,ao.currency)]})]})]})]})]})}),i.jsxs(ze,{className:"!pt-3",children:[sv.length>0&&(()=>{const T=ei,K=sv,ce=K.some(([ye])=>{var Ke;return(((Ke=ad.series[ye])==null?void 0:Ke.length)??0)>=2});return i.jsxs("div",{className:"flex flex-wrap gap-3 items-start",children:[i.jsx("div",{className:"flex-1 space-y-2 min-w-[320px]",children:K.map(([ye,Ke])=>{const yt=T>0?Math.round(Ke.total/T*100):0,De=Ke.total>0?Math.round(Ke.success/Ke.total*100):0,At=If[ye]??Xf[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:At}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 w-20 truncate shrink-0",children:ye}),i.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-slate-100 dark:bg-[#1c1c24] overflow-hidden min-w-0",children:i.jsx("div",{className:"h-full rounded-full transition-[width] duration-300",style:{width:`${yt}%`,backgroundColor:At}})}),i.jsxs("div",{className:"flex items-center gap-2.5 text-[11px] shrink-0 leading-4",children:[i.jsxs("span",{className:`font-bold tabular-nums ${De>=80?"text-emerald-700 dark:text-emerald-400":De>=50?"text-amber-700":"text-red-600"}`,children:[De,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums",children:[yt,"% routed"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"tabular-nums text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ke.success}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 mx-0.5",children:"/"}),i.jsx("span",{className:"text-red-600",children:Ke.failure})]})]})]})},ye)})}),ce&&(()=>{const{series:ye,paymentNums:Ke}=ad,yt=Ke.length,De=7,At=Math.max(64,K.length*28),Tt=14,vn=28,Yt=Math.max(200,yt*De),Xr=At+Tt,Xt=6,er=Ot=>Ot/Math.max(yt-1,1)*Yt,{yMin:Tn,yMax:Hn}=ad,ur=Hn-Tn||1,Ea=Ot=>Xt+(Hn-Ot)/ur*(At-Xt*2),Pc=ur<=10?2:ur<=30?5:10,Bf=Math.ceil(Tn/Pc)*Pc,id=[];for(let Ot=Bf;Ot<=Hn;Ot+=Pc)id.push(Ot);const Ss=Ot=>{if(Ot.length<2)return"";const fn=Ot.map((jr,Cs)=>[er(Cs),Ea(jr)]);let Ns=`M ${fn[0][0]},${fn[0][1]}`;for(let jr=1;jr({n:Ot,i:fn})).filter(({i:Ot})=>Ot%Fl===0||Ot===yt-1),so=_s.filter((Ot,fn)=>fn===_s.length-2?_s[_s.length-1].i-_s[fn].i>=Math.ceil(Fl*.5):!0);return i.jsxs("div",{className:"relative self-start flex-1",style:{minWidth:200+vn},children:[i.jsx("div",{className:"overflow-x-auto",style:{width:`calc(100% - ${vn}px)`,scrollbarWidth:"none"},ref:Ot=>{Ot&&(Ot.scrollLeft=Ot.scrollWidth)},children:i.jsxs("svg",{width:Yt,height:Xr,viewBox:`0 0 ${Yt} ${Xr}`,style:{display:"block"},children:[id.map(Ot=>i.jsx("line",{x1:0,y1:Ea(Ot),x2:Yt,y2:Ea(Ot),stroke:"#e2e8f0",strokeWidth:"0.5",strokeDasharray:"2,2"},Ot)),K.map(([Ot])=>{const fn=ye[Ot];if(!fn||fn.length<2)return null;const Ns=If[Ot]??Xf[0],jr=Ss(fn),Cs=`${jr} L ${er(fn.length-1)},${At} L 0,${At} Z`;return i.jsxs("g",{children:[i.jsx("path",{d:Cs,fill:Ns,fillOpacity:.07}),i.jsx("path",{d:jr,fill:"none",stroke:Ns,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]},Ot)}),i.jsx("line",{x1:0,y1:At,x2:Yt,y2:At,stroke:"#e2e8f0",strokeWidth:"0.5"}),so.map(({n:Ot,i:fn},Ns)=>i.jsx("text",{x:er(fn),y:At+10,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",textAnchor:Ns===0?"start":Ns===so.length-1?"end":"middle",children:Ot},fn))]})}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:vn},children:i.jsxs("svg",{width:vn,height:At,viewBox:`0 0 ${vn} ${At}`,style:{display:"block"},children:[i.jsx("line",{x1:2,y1:Xt,x2:2,y2:At-Xt,stroke:"#cbd5e1",strokeWidth:"0.5"}),id.map(Ot=>i.jsxs("g",{children:[i.jsx("line",{x1:0,y1:Ea(Ot),x2:4,y2:Ea(Ot),stroke:"#cbd5e1",strokeWidth:"0.5"}),i.jsxs("text",{x:6,y:Ea(Ot)+3,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",children:[Ot,"%"]})]},Ot))]})})]})})(),!ce&&null]})})(),Object.keys(Wn).length===1&&Vn.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),kr.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[kr.length," transactions"]})]}),i.jsx(ze,{className:"p-0",children:kr.length>0?i.jsx("div",{ref:Vt,className:"max-h-[480px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-10",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Payment ID"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),be&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),be&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"}),i.jsx("th",{className:"w-8"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:kr.map((T,K)=>{var ye;const ce=K;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>Km(T.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:ce+1}),i.jsx("td",{className:"px-3 py-2 max-w-[180px]",children:i.jsx("span",{className:"block truncate font-mono text-xs text-slate-700 dark:text-slate-300 group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:T.paymentId})}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:T.decidedGateway}),i.jsx("td",{className:"px-3 py-2",children:(ye=T.routingApproach)!=null&&ye.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Hedging"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:T.routingApproach==="SR_SELECTION_V3_ROUTING"?"SR V3":T.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?"Multi-Obj":T.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(Pe,{variant:T.status==="CHARGED"?"green":T.status==="PENDING_VBV"?"orange":"red",children:T.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:T.costWon&&T.costSavedBps!=null&&T.costSavedBps>0&&T.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:TAe(T.costSavedBps,T.amount,T.currency)}):null}),be&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:T.retryGateway??"—"}),be&&i.jsx("td",{className:"px-3 py-2",children:T.retryStatus?i.jsx(Pe,{variant:T.retryStatus==="CHARGED"?"green":T.retryStatus==="PENDING_VBV"?"orange":"red",children:T.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})}),i.jsx("td",{className:"pr-3 py-2",children:i.jsx("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity text-slate-500 dark:text-slate-400",children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",className:"w-3.5 h-3.5",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})})})]},T.paymentId)})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Waiting for the first simulated payment result…"]})})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("button",{type:"button",onClick:()=>Pf(T=>!T),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${td?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),td&&i.jsx(XH,{merchantId:a,gsmRules:Ae,decideParams:{amount:k.amount,currency:k.currency,paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:k.eligible_gateways}})]}):U?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:U.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${PAe(U.routing_approach)}`,children:U.routing_approach})}),W?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Km(W),children:"View audit"}):null,U.is_scheduled_outage&&i.jsx(Pe,{variant:"red",children:"Scheduled Outage"}),W?i.jsx(Pe,{variant:te==="CHARGED"?"green":"red",children:te}):null,U.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[U.latency,"ms"]})]})]}),W?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:W}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",te,". Open audit to inspect the full decide and update flow."]})]}):null,U.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:U.routing_dimension})]}),U.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:U.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:U.reset_approach})]})]})]})}),U.multi_objective_info&&i.jsx(KAe,{info:U.multi_objective_info}),js.length>0&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Hm,className:"text-xs",children:[i.jsx(As,{size:12})," Refresh"]})]})}),i.jsx(ze,{children:i.jsx(Li,{width:"100%",height:js.length*40+20,children:i.jsxs(Yh,{data:js,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(Ia,{type:"number",domain:[0,100],tickFormatter:T=>`${T}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(wa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(Vr,{formatter:T=>`${T}%`,contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"score",radius:[0,4,4,0],children:js.map((T,K)=>i.jsx(Ey,{fill:T.name===U.decided_gateway?"#0069ED":T.score<30?"#ef4444":T.score<60?"#f59e0b":"#10b981"},K))})]})})})]}),U.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>nt(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Ge?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Ge&&i.jsx(ze,{className:"space-y-2",children:Object.entries(U.filter_wise_gateways).map(([T,K])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:T}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(K)?K.map(ce=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:ce},ce)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},T))})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>ge(T=>!T),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),Nt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Nt&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(U,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})})]}),Kt&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>dt(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(wH,{size:22})}),i.jsxs("div",{children:[i.jsx(an,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Kt.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>dt(null),children:i.jsx(Hr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Kt.body}),Kt.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Kt.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",onClick:()=>dt(null),children:"Dismiss"}),Kt.configurePath&&i.jsx(ke,{onClick:()=>{dt(null),t(Kt.configurePath)},children:"Configure"})]})]})]})]}),sn&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Ym}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:sn}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Va!=null&&Va.latest_gateway?i.jsx(Pe,{variant:"green",children:Va.latest_gateway}):null,Va!=null&&Va.latest_status?i.jsx(Pe,{variant:ML(Va.latest_status),children:Oi(Va.latest_status)}):null,Va!=null&&Va.event_count?i.jsxs(Pe,{variant:"gray",children:[Va.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Or.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Ym,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Or.isLoading&&!Or.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading payment audit…"]}):Or.error?i.jsx(_t,{error:Or.error.message}):Ff.length?i.jsx("div",{className:"space-y-4",children:Ff.map(T=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:RL(T.phase),children:T.phase})}),i.jsx("div",{className:"space-y-2",children:T.events.map(K=>i.jsxs("button",{type:"button",onClick:()=>{Dn(K.id),or("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(On==null?void 0:On.id)===K.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Jg(K)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Yg(K.created_at_ms)})]}),i.jsx(Pe,{variant:ab(K),children:Oi(K.status)||PL(K.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:Xg(K.route)}),K.gateway?i.jsx(Pe,{variant:"green",children:K.gateway}):null,K.request_id?i.jsx(Pe,{variant:"blue",children:"Request"}):null]})]},K.id))})]},T.phase))}):i.jsx(Zg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:On?Jg(On):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:On?`${Xg(On.route)} · ${Yg(On.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[On!=null&&On.gateway?i.jsx(Pe,{variant:"green",children:On.gateway}):null,On!=null&&On.status?i.jsx(Pe,{variant:ab(On),children:Oi(On.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(T=>i.jsx("button",{type:"button",onClick:()=>or(T),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${IL(ua===T)}`,children:T==="raw"?"Raw JSON":Oi(T)},T))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Or.isLoading&&!Or.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading inspector…"]}):ki?i.jsxs("div",{className:"space-y-5",children:[ua==="summary"?i.jsxs(i.Fragment,{children:[i.jsx($L,{rows:ki.summaryRows}),ki.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:uG(ki.selectionReason)})]}):null,i.jsx(zl,{title:"Score Context",value:ki.scoreContext,emptyMessage:"No scoring context was captured for this event."}),ki.signalRecord?i.jsx(zl,{title:"Additional Signals",value:ki.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ua==="input"?i.jsx(zl,{title:"Request Payload",value:ki.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ua==="response"?i.jsx(zl,{title:"Response Payload",value:ki.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ua==="raw"?i.jsx(zl,{title:"Raw Event JSON",value:ki.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Zg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),da&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:ov}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:da}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Cc,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Fr!=null&&Fr.latest_gateway?i.jsx(Pe,{variant:"green",children:Fr.latest_gateway}):null,Fr!=null&&Fr.latest_status?i.jsx(Pe,{variant:ML(Fr.latest_status),children:Oi(Fr.latest_status)}):null,Fr!=null&&Fr.event_count?i.jsxs(Pe,{variant:"gray",children:[Fr.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>ae.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:ov,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:ae.isLoading&&!ae.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision trace…"]}):ae.error&&UAe(ae.error)&&da?i.jsx(o_,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):ae.error?i.jsx(_t,{error:ae.error.message}):iv.length?i.jsx("div",{className:"space-y-4",children:iv.map(T=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:RL(T.phase),children:T.phase})}),i.jsx("div",{className:"space-y-2",children:T.events.map(K=>i.jsxs("button",{type:"button",onClick:()=>{fa(K.id),wr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(_n==null?void 0:_n.id)===K.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Jg(K)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Yg(K.created_at_ms)})]}),i.jsx(Pe,{variant:ab(K),children:Oi(K.status)||PL(K.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:Xg(K.route)}),K.gateway?i.jsx(Pe,{variant:"green",children:K.gateway}):null]})]},K.id))})]},T.phase))}):da?i.jsx(o_,{title:Fr?"Decision summary available":"Decision trace still arriving",body:Fr?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Zg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:_n?Jg(_n):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:_n?`${Xg(_n.route)} · ${Yg(_n.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[_n!=null&&_n.gateway?i.jsx(Pe,{variant:"green",children:_n.gateway}):null,_n!=null&&_n.status?i.jsx(Pe,{variant:ab(_n),children:Oi(_n.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(T=>i.jsx("button",{type:"button",onClick:()=>wr(T),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${IL(no===T)}`,children:T==="raw"?"Raw JSON":Oi(T)},T))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:ae.isLoading&&!ae.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision inspector…"]}):Ll?i.jsxs("div",{className:"space-y-5",children:[no==="summary"?i.jsxs(i.Fragment,{children:[i.jsx($L,{rows:Ll.summaryRows}),i.jsx(zl,{title:"Decision Signals",value:Ll.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,no==="input"?i.jsx(zl,{title:"Request Payload",value:Ll.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,no==="response"?i.jsx(zl,{title:"Response Payload",value:Ll.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,no==="raw"?i.jsx(zl,{title:"Raw Event JSON",value:Ll.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):da&&!((gv=(mv=ae.data)==null?void 0:mv.timeline)!=null&&gv.length)?i.jsx(o_,{title:Fr?"Waiting for detailed decision step":"Waiting for decision step",body:Fr?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Zg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function KAe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(YAe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function YAe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function qs({open:t,title:e,description:n,confirmLabel:r="Confirm",cancelLabel:a="Cancel",variant:s="primary",onConfirm:o,onCancel:l}){const c=g.useRef(null);return g.useEffect(()=>{var u;t&&((u=c.current)==null||u.focus())},[t]),g.useEffect(()=>{if(!t)return;function u(d){d.key==="Escape"&&l()}return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[t,l]),t?i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:l}),i.jsxs("div",{ref:c,tabIndex:-1,className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e}),i.jsx("p",{className:"mt-2 max-w-[57ch] text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:n}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:l,children:a}),i.jsx(ke,{variant:s==="danger"?"danger":"primary",size:"sm",onClick:o,children:r})]})]})]}):null}const XAe=3;function JAe({merchantId:t,isSimulating:e,tps:n,onContractGone:r,onCycleEnded:a,onLoad:s}){var P;const{data:o,mutate:l}=jT(t??void 0),c=ST(t??void 0),u=c.mutate,d=((P=c.data)==null?void 0:P.connectors)??[],f=!!(o!=null&&o.active)&&d.length>0,h=g.useRef({onContractGone:r,onCycleEnded:a});h.current={onContractGone:r,onCycleEnded:a};const[,p]=g.useState(Date.now());g.useEffect(()=>{const M=setInterval(()=>p(Date.now()),1e3);return()=>clearInterval(M)},[]),g.useEffect(()=>{f||h.current.onContractGone()},[f]);const m=d[0]?Date.parse(d[0].cycleEnd):0,x=m?Math.max(0,Math.round((m-Date.now())/1e3)):0,y=!!m&&x===0;if(g.useEffect(()=>{y&&e&&h.current.onCycleEnded()},[y,e]),g.useEffect(()=>{y&&(u(),l())},[y,u,l]),!f||!o)return null;const b=o.daySecs??H0,v=o.expectedDailyTraffic??0,w=FH(b),j=Math.max(...d.map(M=>M.daysTotal),1),k=Math.max(1,Math.round(n*b)),_=v>0?Math.max(1,Math.round(v/k)):1e3,S=Math.max(1,Math.round(b*1e3/k)),N=Math.max(1,Math.round(n*x*XAe));async function E(){!(o!=null&&o.ruleId)||!t||(await Ve("/routing/deactivate",{created_by:t,routing_algorithm_id:o.ruleId}),l())}return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(pT,{size:15,className:"text-brand-500"}),i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Active volume contract"}),y?i.jsx(Pe,{variant:"red",children:"Cycle over"}):o.psps.length===0&&o.eliminated.length===0?i.jsx(Pe,{variant:"gray",children:"Forecast pending"}):w?i.jsxs(Pe,{variant:"orange",children:["Test cycle · ",x,"s left of ",j," min"]}):i.jsxs(Pe,{variant:"blue",children:[j,"-day cycle"]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ke,{size:"sm",variant:"ghost",onClick:E,disabled:!o.ruleId,children:"Deactivate contract"}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>s({gateways:d.map(M=>M.connector),amount:_,totalPayments:N,paceMs:S}),disabled:e||y,children:"Load contract into simulator"})]})]}),i.jsx("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs text-slate-600 dark:text-slate-300",children:d.map(M=>{const A=o.psps.find(X=>X.connector===M.connector),O=o.eliminated.find(X=>X.connector===M.connector),D=(A==null?void 0:A.achieved)??(O==null?void 0:O.achieved)??0,I=M.eliminated;return i.jsxs("span",{className:"tabular-nums",children:[i.jsx("strong",{children:M.connector})," ",wu(D),"/",wu(M.goal),I?i.jsx("span",{className:"ml-1 text-red-500",children:"· eliminated"}):A!=null&&A.steering?i.jsx("span",{className:"ml-1 text-amber-600 dark:text-amber-500",children:"· steering"}):null]},M.connector)})}),y?i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"This cycle has closed — its goals are settled and a new one has begun, with delivery back at zero. Any run still going was stopped, because volume sent now counts toward the next period. Reload the contract to drive the fresh cycle, or deactivate it to stop."}):i.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Every payment ",i.jsx("strong",{className:"tabular-nums",children:_.toLocaleString()})," at ",n,"/sec — ",wu(v)," per day",w?" (a minute on this test cycle)":"",", the contract's rate — until the cycle closes. More TPS means smaller payments, not more volume; pausing is a real traffic drop."]})]})})}const LL=5e3;function ZAe({row:t}){switch(t.status){case"met":return i.jsx(Pe,{variant:"green",children:"Met"});case"eliminated":return i.jsx("span",{title:t.reason,children:i.jsx(Pe,{variant:"red",children:"Eliminated"})});case"steering":return i.jsxs(Pe,{variant:"orange",children:["Steering · ",(t.steerRate*100).toFixed(0),"% of eligible"]});case"on_pace":return i.jsx(Pe,{variant:"green",children:"On pace"});case"missed":return i.jsx(Pe,{variant:"gray",children:"Missed"});default:return i.jsx(Pe,{variant:"gray",children:"Pending forecast"})}}function QAe({merchantId:t,results:e,colorFor:n}){var b,v,w,j,k;const r=jT(t??void 0,LL),a=(b=r.data)==null?void 0:b.daySecs,s=ST(t??void 0,void 0,{perDay:_T(a),refreshInterval:LL}),o=LH(t??void 0),l=!!((v=r.data)!=null&&v.active),c=g.useMemo(()=>{var _;return((_=s.data)==null?void 0:_.connectors)??[]},[s.data]),u=(w=s.data)==null?void 0:w.currency,d=g.useMemo(()=>e.filter(_=>_.steerOutcome==="STEERED").length,[e]),f=(j=o.runs.find(_=>_.isCurrent))==null?void 0:j.runId,h=g.useMemo(()=>f?BH(o.events,f):new Map,[o.events,f]),p=g.useMemo(()=>{var E,P;const _=((E=r.data)==null?void 0:E.psps)??[],S=((P=r.data)==null?void 0:P.eliminated)??[];return[...new Set([...c.map(M=>M.connector),..._.map(M=>M.connector),...S.map(M=>M.connector)])].map(M=>{let A=0,O=0,D=0;for(const G of e){const $=G.steerOutcome==="STEERED";G.decidedGateway===M&&($?O+=1:A+=1),$&&G.steerSrHead===M&&(D+=1)}const I=_.find(G=>G.connector===M),X=S.find(G=>G.connector===M),Q=c.find(G=>G.connector===M),V=(I==null?void 0:I.goal)??(Q==null?void 0:Q.goal)??0,Y=(I==null?void 0:I.achieved)??(X==null?void 0:X.achieved)??(Q==null?void 0:Q.points.reduce((G,$)=>G+$.total,0))??0,H=V>0&&Y>=V?"met":X?"eliminated":I?I.steering?"steering":"on_pace":"pending";return{name:M,color:n(M),auth:A,steered:O,ceded:D,status:H,steerRate:(I==null?void 0:I.steerRate)??0,achieved:Y,goal:V,reason:X==null?void 0:X.reason}})},[r.data,c,e,n]),m=g.useCallback(_=>{var S;return((S=p.find(N=>N.name===_))==null?void 0:S.status)??"pending"},[p]),x=g.useMemo(()=>{var _;return new Map((((_=r.data)==null?void 0:_.eliminated)??[]).map(S=>[S.connector,S.reason]))},[r.data]);if(!l&&d===0||p.length===0)return null;const y=e.length;return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(pT,{size:15,className:"text-brand-500"}),i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Cumulative volume vs. each promise"})]}),i.jsxs("span",{className:"text-xs tabular-nums text-slate-500 dark:text-slate-400",children:[d.toLocaleString()," of ",y.toLocaleString()," payments steered",y>0?` · ${(d/y*100).toFixed(1)}%`:"",f&&i.jsx("span",{className:"ml-2 font-mono text-[10px] opacity-60",children:f})]})]}),c.length>0?i.jsx(WH,{connectors:c,currency:u,daySecs:((k=s.data)==null?void 0:k.daySecs)??a,colorFor:n,statusFor:m,eliminatedAtMs:h,eliminationReasons:x,height:460}):i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Waiting for the contract's first measurements."}),i.jsx("div",{className:"grid gap-x-6 gap-y-1.5 sm:grid-cols-2",children:p.map(_=>i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs",children:[i.jsx(jA,{color:_.color}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-800 dark:text-white",children:_.name}),i.jsx(ZAe,{row:_}),i.jsxs("span",{className:"ml-auto whitespace-nowrap tabular-nums text-slate-500 dark:text-slate-400",children:[_.goal>0&&i.jsxs(i.Fragment,{children:[zH(_.achieved,_.goal,u),"/",es(_.goal,u),_.status!=="eliminated"&&` · ${NT(_.achieved,_.goal)}%`," · "]}),_.auth," by approval · ",_.steered," steered in",_.ceded>0?` · ${_.ceded} ceded`:""]})]},_.name))})]})})}function Zj(t){const e=t?`/merchant-account/${t}/cost-coverage`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,dedupingInterval:6e4});return{coverage:n,error:r,isLoading:a,mutate:s}}function dG(t){const e=t?`/merchant-account/${t}/connector-fees`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{fees:n??[],error:r,isLoading:a,mutate:s}}async function e5e(t,e,n){return Yj(`/merchant-account/${t}/connectors/${e}/fee-override`,n)}async function t5e(t,e){return Mm(`/merchant-account/${t}/connectors/${e}/fee-override`)}function IT(t){var n;let e=(n=t.q)!=null&&n.trim()?1:0;for(const[r,a]of Object.entries(t))r!=="q"&&Array.isArray(a)&&(e+=a.length);return e}function $T(t,e={}){const{limit:n=10,order:r,connector:a,account:s,reportDate:o,ingestionId:l,filters:c}=e;let u=null;if(t){const m=new URLSearchParams({limit:String(n)});for(const[x,y]of Object.entries(c??{}))if(Array.isArray(y))for(const b of y)b!=null&&b.trim()&&m.append(x,b.trim());else typeof y=="string"&&y.trim()&&m.set(x,y.trim());a&&m.set("connector",a),s&&m.set("account",s),o&&m.set("report_date",o),l&&m.set("ingestion_id",l),r==="n"&&m.set("order","txns"),u=`/merchant-account/${t}/cost-clusters?${m.toString()}`}const{data:d,error:f,isLoading:h,mutate:p}=ut(u,Lt,{revalidateOnFocus:!1});return{clusters:d??[],error:f,isLoading:h,mutate:p}}function fG(t,e={}){const{connector:n,account:r,reportDate:a,ingestionId:s}=e;let o=null;if(t){const f=new URLSearchParams;n&&f.set("connector",n),r&&f.set("account",r),a&&f.set("report_date",a),s&&f.set("ingestion_id",s);const h=f.toString();o=`/merchant-account/${t}/cost-cluster-facets${h?`?${h}`:""}`}const{data:l,error:c,isLoading:u}=ut(o,Lt,{revalidateOnFocus:!1});return{facets:g.useMemo(()=>{var h;const f={};for(const p of l??[])(f[h=p.dim]??(f[h]=[])).push(p);return f},[l]),error:c,isLoading:u}}async function hG(t,e,n){return Yj(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`,n)}async function n5e(t,e){return Mm(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`)}function pG(t){const e=t?`/merchant-account/${t}/seed-costs`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{rows:n??[],error:r,isLoading:a,mutate:s}}async function r5e(t,e){return Yj(`/merchant-account/${t}/seed-costs`,{rows:e})}async function a5e(t){return Mm(`/merchant-account/${t}/seed-costs`)}function s5e(t){const e=t?`/merchant-account/${t}/connectors`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{sources:n??[],error:r,isLoading:a,mutate:s}}function LT(t){const e=t?`/merchant-account/${t}/cost-ingestions`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1,refreshInterval:o=>o!=null&&o.some(l=>l.status==="processing"||l.status==="pending")?2e3:0});return{ingestions:n??[],error:r,isLoading:a,mutate:s}}async function i5e(t,e,n){return Ve(`/merchant-account/${t}/connectors/${e}/credentials`,n)}async function o5e(t,e,n){return Mm(`/merchant-account/${t}/connectors/${e}/credentials/${encodeURIComponent(n)}`)}async function l5e(t,e,n,r,a){return kT(`/merchant-account/${t}/connectors/${e}/report?account=${encodeURIComponent(n)}`,r,a)}const FL=64*1024;async function c5e(t,e,n,r){const a=r?`?account=${encodeURIComponent(r)}`:"";return kT(`/merchant-account/${t}/connectors/${e}/report/validate-headers${a}`,n)}async function u5e(t,e,n,r,a){return Ve(`/merchant-account/${t}/connectors/${e}/report/preview`,{columns:n,sample:r,truncated:a})}function d5e(){const{data:t,error:e,isLoading:n}=ut("/cost-ingestion/connectors",Lt,{revalidateOnFocus:!1});return{connectors:t??[],error:e,isLoading:n}}async function f5e(t,e,n,r,a,s){return Yj(`/merchant-account/${t}/connectors/${e}/report/column-mapping?account=${encodeURIComponent(n)}`,{columns:r,sample:a,truncated:s})}async function h5e(t,e){return Ve(`/merchant-account/${t}/connectors/${e}/report/sample`)}async function p5e(t,e){return Mm(`/merchant-account/${t}/cost-ingestions/${e}`)}function m5e(t){const e=t?`/merchant-account/${t}/invoice-addons`:null,{data:n,error:r,isLoading:a,mutate:s}=ut(e,Lt,{revalidateOnFocus:!1});return{addons:n??[],error:r,isLoading:a,mutate:s}}async function g5e(t,e,n,r,a,s){const o=new URLSearchParams({account:n});return a&&o.set("invoice_ref",a),kT(`/merchant-account/${t}/connectors/${e}/invoice?${o.toString()}`,r,s)}async function x5e(t,e){return Mm(`/merchant-account/${t}/connectors/${e}/invoice-addon`)}const TA=1e3,y5e="routing_events_seen",v5e=500,PA="1h";function b5e(t){return t==="15m"||t==="1h"?"1s":"1m"}function mG(t,e){return t?`/analytics/routing-events?range=${e}&bucket=${b5e(e)}`:null}function gG(t){return`${y5e}:${t}`}function BL(t){try{const e=localStorage.getItem(gG(t));if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function w5e(t,e){try{localStorage.setItem(gG(t),JSON.stringify(Array.from(e).slice(-v5e)))}catch{}}const xG=g.createContext(null);function k5e({children:t}){const e=xr(k=>{var _;return(_=k.user)==null?void 0:_.merchantId})??"",[n,r]=g.useState(TA),a=g.useRef(0),[s,o]=g.useState(!1),l=g.useCallback(()=>(a.current+=1,o(!0),()=>{a.current-=1,a.current<=0&&(a.current=0,o(!1))}),[]),{data:c,error:u,isLoading:d,mutate:f}=ut(s?mG(e,PA):null,Lt,{refreshInterval:n,revalidateOnFocus:!1}),[h,p]=g.useState(()=>BL(e));g.useEffect(()=>{p(BL(e))},[e]);const m=g.useCallback(k=>h.has(k),[h]),x=g.useCallback(k=>{p(_=>{const S=new Set(_);for(const N of k)S.add(N.id);return w5e(e,S),S})},[e]),y=g.useCallback(()=>{f()},[f]),b=g.useCallback(k=>{r(k??TA)},[]),v=g.useRef([]);g.useEffect(()=>{c!=null&&c.events&&(v.current=c.events)},[c]);const w=g.useMemo(()=>u?[]:(c==null?void 0:c.events)??v.current,[u,c]),j=g.useMemo(()=>({liveEvents:w,isLoading:d,isUnavailable:!!u,isSeen:m,markSeen:x,refresh:y,requestPollInterval:b,subscribe:l}),[w,d,u,m,x,y,b,l]);return g.createElement(xG.Provider,{value:j},t)}function j5e(){const t=g.useContext(xG);if(!t)throw new Error("useRoutingEvents must be used within a ");return t}function FT(t=PA,e={}){const{refreshInterval:n,enabled:r=!0}=e,a=xr(N=>{var E;return(E=N.user)==null?void 0:E.merchantId})??"",{liveEvents:s,isLoading:o,isUnavailable:l,isSeen:c,markSeen:u,refresh:d,requestPollInterval:f,subscribe:h}=j5e(),p=t===PA;g.useEffect(()=>{if(!(!p||!r))return h()},[p,r,h]),g.useEffect(()=>{if(!(!p||n===void 0))return f(n),()=>f(null)},[p,n,f]);const{data:m,error:x,isLoading:y,mutate:b}=ut(!p&&r?mG(a,t):null,Lt,{refreshInterval:n??TA,revalidateOnFocus:!1}),v=p?s:x?[]:(m==null?void 0:m.events)??[],w=p?o:y,j=p?l:!!x,k=g.useMemo(()=>v.filter(N=>!c(N.id)),[v,c]),_=g.useCallback(()=>{u(v)},[v,u]),S=g.useCallback(()=>{p?d():b()},[p,d,b]);return{events:v,unseenEvents:k,unseenCount:k.length,markAllSeen:_,refresh:S,isLoading:w,isUnavailable:j}}function BT(t){switch(t.event_type){case"leader_changed":return`switching psp to ${t.gateway}`;case"gateway_entered_auth_band":return`${t.gateway} now good enough on success — routing it to save cost`;case"gateway_exited_auth_band":return`${t.gateway} slipped on success — not eligible for cost override anymore`;case"calibration_applied":return S5e(t)}}function S5e(t){const e=[t.payment_method_type,t.payment_method,t.card_network,t.currency,t.country,t.auth_type].filter(s=>!!s),n=e.length?e.join(" · "):"default",r=[];if(t.bucket_size!=null&&r.push(t.previous_bucket_size!=null&&t.previous_bucket_size!==t.bucket_size?`bucket ${t.previous_bucket_size} → ${t.bucket_size}`:`bucket ${t.bucket_size}`),t.hedging_percent!=null){const s=`${t.hedging_percent.toFixed(1)}%`;r.push(t.previous_hedging_percent!=null&&t.previous_hedging_percent!==t.hedging_percent?`hedging ${t.previous_hedging_percent.toFixed(1)}% → ${s}`:`hedging ${s}`)}const a=r.length?r.join(", "):"settings";return`autopilot tuned ${n} — ${a}`}const MA="USD",_5e=["USD","EUR","GBP","AUD","CAD"],N5e=["CREDIT"],C5e=["STANDARD","PREMIUM"],E5e=["VISA","MASTERCARD"],yG=[{label:"US debit",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US standard credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US premium credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"US corporate",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"COMMERCIAL",cardIssuerCountry:"US"},{label:"Amex US consumer",paymentMethod:"CREDIT",cardSwitchProvider:"AMEX",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"FR debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT debit (Mastercard)",paymentMethod:"DEBIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"FR credit (Visa)",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT credit (Mastercard)",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"AU debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"AU"}],A5e=Math.max(0,yG.findIndex(t=>t.label==="US debit"));function l_(t){const e=(t??"").trim().toLowerCase();return e==="mastercard"?"mc":e}function O5e(t,e,n,r){const a=e.toUpperCase(),s=l_(n),o=(r??"").trim().toLowerCase(),l=[c=>l_(c.card_network)===s&&(c.funding??"").toLowerCase()===o,c=>l_(c.card_network)===s,()=>!0];for(const c of l){const u=new Map;for(const h of t){if((h.currency??"").toUpperCase()!==a)continue;const p=(h.issuer_country??"").trim().toUpperCase();!p||!c(h)||u.set(p,(u.get(p)??0)+h.gross_sum)}let d,f=0;for(const[h,p]of u)p>f&&(d=h,f=p);if(d)return d}}function T5e(t,e,n){const r=(t.card_issuing_country??"").trim().toLowerCase();return r.length===2&&r!=="eu"?r.toUpperCase():O5e(n,e,t.card_network??"",t.payment_method_type??"")}function P5e(t,e,n){var o;const r=e.toUpperCase(),a=[],s=new Set;for(const l of t){if(l.is_default||(l.transaction_currency??"").toUpperCase()!==r)continue;const c=[(l.card_network??"").toLowerCase(),(l.payment_method_type??"").toLowerCase(),(l.card_type??"").toLowerCase(),(l.card_issuing_country??"").toLowerCase()].join("|");if(s.has(c))continue;s.add(c);const u=((o=l.label)==null?void 0:o.trim())||`${l.card_network??""} ${l.payment_method_type??""}`.trim()||"Scenario";a.push({label:u,paymentMethod:(l.payment_method_type??"").toUpperCase()==="DEBIT"?"DEBIT":"CREDIT",cardSwitchProvider:(l.card_network??"").toUpperCase()||"VISA",cardProgram:(l.card_type??"").toUpperCase()||"STANDARD",cardIssuerCountry:T5e(l,r,n),exampleAmount:l.example_amount??void 0})}return a}const RA={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{...Tu}},M5e={stripe:94,adyen:93,braintree:92,chase:92};function ib(t){return{...RA,successRate:M5e[t.trim().toLowerCase()]??RA.successRate,errorInfo:{...Tu}}}function Jf({label:t,abbr:e}){return i.jsxs("p",{className:"text-[14px] font-semibold leading-snug text-slate-500 dark:text-slate-400",children:[t,e&&i.jsx("span",{className:"ml-1 text-[11px] font-normal uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:e})]})}function ih(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function R5e(t,e,n){return ih(t/1e4*e,n)}function D5e(t){for(const[e,n]of Object.entries(eG))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Zf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],os=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],c_={stripe:"#8b5cf6",adyen:"#0abf53"},I5e=3e3,$5e={leader_changed:{icon:V0,iconClass:"text-sky-700"},gateway_entered_auth_band:{icon:jH,iconClass:"text-emerald-700"},gateway_exited_auth_band:{icon:SH,iconClass:"text-amber-700"},calibration_applied:{icon:Hi,iconClass:"text-violet-600"}};function ob(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}const vG="decision-explorer-state-v2",bG=10*60*1e3,Ul={current:!1},Sg={current:0},Ic={current:!1},u_={current:0},ma={running:!1,results:[],subscribers:new Set};function zL(){ma.subscribers.forEach(t=>t())}const wG={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_MULTI_OBJECTIVE"},L5e={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},UL=wG.eligible_gateways.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean);function VL(...t){const e=new Set,n=[];for(const r of t)for(const a of r){const s=a.trim().toLowerCase();s&&!e.has(s)&&(e.add(s),n.push(s))}return n}const zT="5000",F5e=1,_g=50,WL=1,HL=1e5,B5e=10,z5e=100,U5e=.5,V5e={totalPayments:zT,tps:F5e,minAmount:B5e,maxAmount:z5e},W5e=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],H5e=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function kG(t){return t.map(e=>({...e}))}function jG(t){return t.map(e=>({...e}))}function SG(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function su(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...wG},simulationConfig:{...V5e},gatewaySimConfigs:{},errorInfo:{...Tu},debitForm:{...L5e},ruleParams:kG(W5e),fallbackConnectors:jG(H5e),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1,multiObjScenario:A5e,moCurrency:MA,extraConnectors:[],removedConnectors:[],resumableRun:null}}function G5e(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function UT(t){return`${vG}:${encodeURIComponent(t)}`}function q5e(t){return!!(t&&Date.now()-t>bG)}function DA(t){typeof window>"u"||window.localStorage.removeItem(UT(t))}function K5e(t,e){typeof window>"u"||window.localStorage.setItem(UT(t),JSON.stringify(e))}function GL(t){var e,n,r;if(typeof window>"u")return su();try{const a=window.localStorage.getItem(UT(t))||window.localStorage.getItem(vG);if(!a)return{...su(),scopeKey:t};const s=JSON.parse(a),o=su();return s.scopeKey!==t||q5e(s.resultDataUpdatedAtMs)?(DA(t),{...o,scopeKey:t}):{...o,...s,scopeKey:t,resultDataUpdatedAtMs:s.resultDataUpdatedAtMs||null,activeTab:o.activeTab,form:{...o.form,...s.form||{},ranking_algorithm:"SR_MULTI_OBJECTIVE"},simulationConfig:{...o.simulationConfig,...s.simulationConfig||{},totalPayments:zT},gatewaySimConfigs:s.gatewaySimConfigs||o.gatewaySimConfigs,errorInfo:{...o.errorInfo,...s.errorInfo||{}},debitForm:{...o.debitForm,...s.debitForm||{},card_type:SG((e=s.debitForm)==null?void 0:e.card_type)},ruleParams:(n=s.ruleParams)!=null&&n.length?kG(s.ruleParams):o.ruleParams,fallbackConnectors:(r=s.fallbackConnectors)!=null&&r.length?jG(s.fallbackConnectors):o.fallbackConnectors,volumeDistribution:s.volumeDistribution||o.volumeDistribution,volumeEvaluationLog:s.volumeEvaluationLog||o.volumeEvaluationLog,simulationResults:s.simulationResults||o.simulationResults,extraConnectors:s.extraConnectors||o.extraConnectors,removedConnectors:s.removedConnectors||o.removedConnectors}}catch{return{...su(),scopeKey:t}}}function c1(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function d_(t=[]){return Array.from(new Set(c1(t)))}function Y5e(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function f_(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function _G(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Qg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ti(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function ex(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ti(t):"Unknown route"}function qL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ti(t):"Unknown event"}function VT(t){return t.flow_type||""}function tx(t){const e=VT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ti(t.event_stage||e)}function IA(t){const e=VT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function lb(t){const e=VT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function KL(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function YL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function X5e(t){return OH(t)===404}function Ng(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function h_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function NG(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function J5e(t){return`/analytics/payment-audit?${_G({range:"1d",page:1,page_size:25,payment_id:t})}`}function Z5e(t){return`/analytics/preview-trace?${_G({range:"1d",page:1,page_size:25,payment_id:t})}`}function XL(t){if(!t)return null;const e=Ng(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??h_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??h_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=Ng(n)?n:null,o=Ng(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:IA(t)},{label:"Stage",value:tx(t)},{label:"Route",value:ex(t.route)},{label:"Timestamp",value:Qg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ti(t.status)}]:[]],d=h_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:Ng(r)&&!Object.keys(r).length?null:r,responsePayload:Ng(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function JL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Q5e(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function eOe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function nx({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function p_({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(mt,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function ZL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Vl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:NG(e)}):i.jsx(nx,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function QL({value:t,min:e,max:n,ariaLabel:r,className:a,onCommit:s,onSettle:o}){const[l,c]=g.useState(null);return i.jsx("input",{type:"number",min:e,max:n,step:5,"aria-label":r,value:l??String(t),onChange:u=>{const d=u.target.value;c(d);const f=Number(d);d!==""&&Number.isFinite(f)&&s(Math.max(e,Math.min(n,f)))},onBlur:()=>{c(null),o()},className:a})}function tOe(){var SM,_M,NM,CM,EM,AM,OM,TM,PM,MM,RM;const t=Kr(),{merchantId:e}=Er(),n=xr(C=>C.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=G5e((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Al(a||void 0).isEnabled("gsm-scoring-filter"),c=Iy(a),{fees:u}=dG(a||void 0),{rows:d}=pG(a||void 0),{clusters:f}=$T(a||void 0,{limit:2e3}),h=g.useMemo(()=>u.filter(C=>C.model_pct_bps!=null).map(C=>C.connector.toLowerCase()),[u]),{routingKeysConfig:p,isLoading:m,error:x}=MT(),y=Object.keys(p).length>0,b=!m&&(!y||!!x),v=g.useMemo(()=>GL(s),[s]),[w,j]=g.useState(v.activeTab),[k,_]=g.useState(v.scopeKey||s),[S,N]=g.useState(v.resultDataUpdatedAtMs),[E,P]=g.useState(v.form),M=g.useRef(E);g.useEffect(()=>{M.current=E},[E]);const[A,O]=g.useState(v.simulationConfig),D=g.useRef({min:A.minAmount,max:A.maxAmount});g.useEffect(()=>{D.current={min:A.minAmount,max:A.maxAmount}},[A.minAmount,A.maxAmount]);const[I,X]=g.useState(v.errorInfo),[Q,V]=g.useState(0),[Y,H]=g.useState(v.gatewaySimConfigs),G=g.useRef(Y);g.useEffect(()=>{G.current=Y},[Y]);const $=Object.values(Y).some(C=>C.failureMode==="timeout"),[F,R]=g.useState(v.debitForm),[z,U]=g.useState(0),[ee,pe]=g.useState(v.ruleParams),[re,he]=g.useState(v.fallbackConnectors),[q,W]=g.useState(v.volumePayments),[ue,te]=g.useState(v.result),[ie,me]=g.useState(v.debitResult),[ve,Ne]=g.useState(v.debitPaymentId),[je,Me]=g.useState(v.singleRunPaymentId),[Be,tt]=g.useState(v.singleRunOutcome),[B,se]=g.useState(v.ruleResult),[de,Ce]=g.useState(v.volumeDistribution),[fe,be]=g.useState(v.volumeEvaluationLog),[we,Le]=g.useState(v.volumeProgress),[Oe,He]=g.useState(v.simulationResults),vt=g.useRef(Oe);g.useEffect(()=>{vt.current=Oe},[Oe]);const[bt,Bt]=g.useState(!1),[wt,zt]=g.useState(!1),[Ut,Un]=g.useState(v.resumableRun),[Vt,Kt]=g.useState({}),[dt,le]=g.useState(v.smartRetryEnabled),Ie=g.useRef(dt);g.useEffect(()=>{Ie.current=dt},[dt]);const[Ge,nt]=g.useState(!1),[Nt,ge]=g.useState(!1),[st,pt]=g.useState(v.extraConnectors),[Ht,gn]=g.useState(v.removedConnectors),[sn,xn]=g.useState(!1),[_a,Dn]=g.useState(""),[ua,or]=g.useState(null),[da,bi]=g.useState(!1),[is,fa]=g.useState(v.multiObjScenario),no=g.useRef(is);g.useEffect(()=>{no.current=is},[is]);const[wr,Cc]=g.useState(v.moCurrency),Ua=g.useMemo(()=>{const C=P5e(d,wr,f);return C.length?C:yG},[d,wr,f]),kr=g.useRef(Ua);g.useEffect(()=>{kr.current=Ua},[Ua]);const td=g.useMemo(()=>{const C=Array.from(new Set(d.filter(L=>!L.is_default).map(L=>(L.transaction_currency??"").toUpperCase()).filter(Boolean)));return Array.from(new Set([..._5e,...C]))},[d]);g.useEffect(()=>{fa(C=>C==="ALL"||C{var ne;if(is==="ALL")return;const C=(ne=Ua[is])==null?void 0:ne.exampleAmount;if(C==null||C<=0)return;const L=Math.max(WL,Math.round(C*.5)),Z=Math.min(HL,Math.round(C*1.5));O(xe=>xe.minAmount===L&&xe.maxAmount===Z?xe:{...xe,minAmount:L,maxAmount:Z})},[is,Ua]);const Pf="ecom",[$o,Mt]=g.useState(null),nd=g.useRef(null),[Ar,dn]=g.useState(null),[In,Yr]=g.useState(!1),[Or,Ec]=g.useState(!1),[ae,Se]=g.useState(v.responseOpen),[Ae,qe]=g.useState(v.debitResponseOpen),[rt,at]=g.useState(v.volumeResponseOpen),[Et,yn]=g.useState(null),[$n,Sn]=g.useState(null),[ha,lr]=g.useState("summary"),[Na,ws]=g.useState(null),[Mf,ks]=g.useState(null),[Lo,cr]=g.useState("summary"),[Zs,Rf]=g.useState("Rule Evaluation Decision"),An=g.useDeferredValue(Oe),[Fo,Df]=g.useState(null),Ml=FT("1h",{refreshInterval:bt&&!wt?500:15e3}),Rl=g.useMemo(()=>{if(Fo==null)return[];const C=Fo-I5e;return Ml.events.filter(L=>L.bucket_ms>=C)},[Ml.events,Fo]),[Ac,ev]=g.useState([]),Vm=g.useRef(new Set);g.useEffect(()=>{Vm.current=new Set,ev([])},[Fo]),g.useEffect(()=>{const C=Rl.filter(L=>!Vm.current.has(L.id));C.length!==0&&(C.forEach(L=>Vm.current.add(L.id)),ev(L=>L.concat(C).sort((Z,ne)=>ne.bucket_ms-Z.bucket_ms||ne.id.localeCompare(Z.id)).slice(0,200)))},[Rl]);const[Oc,tv]=g.useState(new Set),Wm=g.useRef(new Set),nv=g.useRef(!1),rv=g.useRef([]);g.useEffect(()=>{const C=Ac.map(ne=>ne.id);if(!nv.current){C.forEach(ne=>Wm.current.add(ne)),nv.current=!0;return}const L=C.filter(ne=>!Wm.current.has(ne));if(L.length===0)return;L.forEach(ne=>Wm.current.add(ne)),tv(ne=>{const xe=new Set(ne);return L.forEach(Re=>xe.add(Re)),xe});const Z=window.setTimeout(()=>{tv(ne=>{const xe=new Set(ne);return L.forEach(Re=>xe.delete(Re)),xe})},12e3);rv.current.push(Z)},[Ac]),g.useEffect(()=>()=>{rv.current.forEach(C=>window.clearTimeout(C))},[]);const av=g.useMemo(()=>{const C=xe=>xe==="gateway_entered_auth_band"||xe==="gateway_exited_auth_band",L=Ac.slice(0,50),Z=[];let ne=0;for(;ne1?Z.push({kind:"flap",gateway:xe.gateway,crossings:ct,latest:xe,inBand:xe.event_type==="gateway_entered_auth_band"}):Z.push({kind:"single",event:xe}),ne=Re}else if(xe.event_type==="leader_changed"){let Re=ne;for(;Re1){const gt=Array.from(new Set(L.slice(ne,Re).map(it=>it.gateway))).sort();Z.push({kind:"leaderFlap",gateways:gt,crossings:ct,latest:xe})}else Z.push({kind:"single",event:xe});ne=Re}else Z.push({kind:"single",event:xe}),ne++}return Z},[Ac]),[Hm,N2]=g.useState(!1),[Qs,C2]=g.useState(100),E2=[100,500,"all"],rd=g.useMemo(()=>Object.keys(p).sort(),[p]),js=g.useMemo(()=>{var C;return c1(((C=p.payment_method)==null?void 0:C.values)||[])},[p]),wi=g.useMemo(()=>{var C;return d_(((C=p.currency)==null?void 0:C.values)||[])},[p]),Ca=g.useMemo(()=>{var C;return d_(((C=p.card_network)==null?void 0:C.values)||[])},[p]),Dl=g.useMemo(()=>{var C;return d_(((C=p.authentication_type)==null?void 0:C.values)||[])},[p]),A2=Et?J5e(Et):null,Vn=ut(A2,Lt,{revalidateOnFocus:!1}),If=Na?Z5e(Na):null,Wn=ut(If,Lt,{revalidateOnFocus:!1}),{data:ad}=ut("/gsm/options",Lt,{revalidateOnFocus:!1,dedupingInterval:3e5}),ro=(ad==null?void 0:ad.rules)??[];g.useEffect(()=>{b||m||(P(C=>{var xe;const L={...C};let Z=!1;wi.length>0&&!wi.includes(L.currency)&&(L.currency=wi[0],Z=!0),js.length>0&&!js.includes(L.payment_method_type)&&(L.payment_method_type=js[0],Z=!0);const ne=c1(((xe=p[L.payment_method_type.toLowerCase()])==null?void 0:xe.values)||[]);return ne.length>0&&!ne.includes(L.payment_method)&&(L.payment_method=ne[0],Z=!0),Dl.length>0&&!Dl.includes(L.auth_type)&&(L.auth_type=Dl[0],Z=!0),Ca.length>0&&!Ca.includes(L.card_brand)&&(L.card_brand=Ca[0],Z=!0),Z?L:C}),pe(C=>{let L=!1;const Z=C.map(ne=>{if(!ne.key||!p[ne.key])return ne;const xe=p[ne.key],Re=f_(xe.type),ct=xe.values||[],gt=Re==="enum_variant"?ct.includes(ne.value)?ne.value:ct[0]||"":ne.value;return ne.type!==Re||ne.value!==gt?(L=!0,{...ne,type:Re,value:gt}):ne});return L?Z:C}))},[b,m,p,wi,js,Dl,Ca]),g.useEffect(()=>{E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&P(C=>{if(C.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return C;const L={...C};let Z=!1;L.currency!==wr&&(L.currency=wr,Z=!0);const ne=js.find(xe=>xe==="CARD")||"CARD";if(L.payment_method_type!==ne&&(L.payment_method_type=ne,Z=!0),N5e.includes(L.payment_method)||(L.payment_method="CREDIT",Z=!0),!E5e.includes(L.card_brand)){const xe=Ca.find(Re=>Re==="VISA")||Ca.find(Re=>Re==="MASTERCARD")||Ca[0]||"VISA";L.card_brand=xe,Z=!0}return C5e.includes(L.card_program)||(L.card_program="STANDARD",Z=!0),Z?L:C})},[E.ranking_algorithm,js,Ca,wr]),g.useEffect(()=>{if(bt)return;const C=E.ranking_algorithm==="SR_MULTI_OBJECTIVE"?VL(UL,h,st):VL(UL,st),L=new Set(Ht),Z=C.filter(ne=>!L.has(ne)).join(", ");P(ne=>ne.eligible_gateways===Z?ne:{...ne,eligible_gateways:Z})},[E.ranking_algorithm,h,st,Ht,bt]),g.useEffect(()=>{if(!Et&&!Na&&!Ar)return;const C=document.body.style.overflow,L=Z=>{Z.key==="Escape"&&(yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),dn(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",L),()=>{document.body.style.overflow=C,window.removeEventListener("keydown",L)}},[Et,Na,Ar]);function Il(){const C=su();te(C.result),me(C.debitResult),Ne(C.debitPaymentId),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),ma.results=C.simulationResults,He(C.simulationResults),Df(null),Se(C.responseOpen),qe(C.debitResponseOpen),at(C.volumeResponseOpen),yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),Rf("Rule Evaluation Decision"),N(null),Un(null),Mt(null),dn(null),Yr(!1),Ul.current=!0,Sg.current++,Bt(!1)}function ao(){N(Date.now())}function O2(C,L){j(C.activeTab),_(C.scopeKey||L),N(C.resultDataUpdatedAtMs),P(C.form),O(C.simulationConfig),H(C.gatewaySimConfigs),X(C.errorInfo),R(C.debitForm),pe(C.ruleParams),he(C.fallbackConnectors),W(C.volumePayments),te(C.result),me(C.debitResult),Ne(C.debitPaymentId),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),ma.results=C.simulationResults,ma.running=!1,V(0),He(C.simulationResults),Df(null),Se(C.responseOpen),qe(C.debitResponseOpen),at(C.volumeResponseOpen),fa(C.multiObjScenario),Cc(C.moCurrency),pt(C.extraConnectors),gn(C.removedConnectors),Un(C.resumableRun),yn(null),Sn(null),lr("summary"),ws(null),ks(null),cr("summary"),Rf("Rule Evaluation Decision"),Ec(!1),Mt(null),dn(null),Yr(!1),Ul.current=!0,Sg.current++,Bt(!1)}g.useEffect(()=>{const C=()=>{He(ma.results),Bt(ma.running),zt(ma.running&&Ic.current)};return ma.subscribers.add(C),(ma.running||ma.results.length>0)&&C(),()=>{ma.subscribers.delete(C)}},[]),g.useEffect(()=>{k!==s&&O2(GL(s),s)},[s,k]),g.useEffect(()=>{if(!S)return;const C=k||s,L=bG-(Date.now()-S);if(L<=0){Il(),DA(C);return}const Z=window.setTimeout(()=>{Il(),DA(C)},L);return()=>window.clearTimeout(Z)},[s,S,k]),g.useEffect(()=>{if(k!==s||In||bt&&!wt)return;const C=wt?{total:parseInt(A.totalPayments)||0,nextIndex:u_.current}:Ut;K5e(s,{scopeKey:s,resultDataUpdatedAtMs:S,activeTab:w,form:E,simulationConfig:A,gatewaySimConfigs:Y,errorInfo:I,debitForm:F,ruleParams:ee,fallbackConnectors:re,volumePayments:q,result:ue,debitResult:ie,debitPaymentId:ve,singleRunPaymentId:je,singleRunOutcome:Be,ruleResult:B,volumeDistribution:de,volumeEvaluationLog:fe,volumeProgress:we,simulationResults:Oe,responseOpen:ae,debitResponseOpen:Ae,volumeResponseOpen:rt,smartRetryEnabled:dt,multiObjScenario:is,moCurrency:wr,extraConnectors:st,removedConnectors:Ht,resumableRun:C})},[s,k,bt,wt,Ut,In,S,w,E,A,Y,I,F,ee,re,q,ue,ie,ve,je,Be,B,de,fe,we,Oe,ae,Ae,rt,dt,is,wr,st,Ht]);function Gm(){Ut&&Zm({resumeFrom:Ut.nextIndex})}function sv(){Un(null),Il()}function ei(C,L){R(Z=>({...Z,[C]:L}))}function $f(C){X(L=>({...L,...C}))}function $l(C){return G.current[C]??ib(C)}function Lf(C){return $l(C).successRate}function Tc(C){return $l(C).failureMode}function qm(C,L){H(Z=>({...Z,[C]:{...$l(C),...Z[C],successRate:L}}))}function Va(C){return Number.isFinite(C)?Math.round(Math.max(0,Math.min(100,C))):0}function On(){Dn(""),or(null),xn(!0)}function Ff(){const C=_a.trim().toLowerCase();if(!C){or("Enter a connector name.");return}if(!/^[a-z0-9_-]+$/.test(C)){or("Use only letters, numbers, hyphens or underscores.");return}if(De.includes(C)){or(`${C.charAt(0).toUpperCase()+C.slice(1)} is already in the comparison.`);return}pt(L=>L.includes(C)?L:[...L,C]),gn(L=>L.filter(Z=>Z!==C)),xn(!1)}function ki(C){const L=C.trim().toLowerCase();pt(Z=>Z.filter(ne=>ne!==L)),gn(Z=>Z.includes(L)?Z:[...Z,L])}function Fr(C,L,Z){const Re=Z?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return ro.find(ct=>ct.connector===C&&(ct.subFlow==="Authorize"||ct.flow==="Authorize")&&ct.decision===L&&ct.unifiedMessage!=null&&Re.has(ct.unifiedMessage)&&!!ct.errorCode&&ct.errorCode.toLowerCase()!=="no error code")}function _n(C,L){return ro.find(Z=>Z.connector===C&&Z.errorCode===L&&Z.subFlow==="Authorize")??ro.find(Z=>Z.connector===C&&Z.errorCode===L&&Z.flow==="Authorize")??ro.find(Z=>Z.connector===C&&Z.errorCode===L)}function iv(C){if(!C)return;const L=$l(C).errorInfo;if(!L.error_code)return;const Z=_n(C,L.error_code);return{connector:C,...(Z==null?void 0:Z.flow)&&{flow:Z.flow},...(Z==null?void 0:Z.subFlow)&&{subFlow:Z.subFlow},errorCode:L.error_code,...L.error_message&&{errorMessage:L.error_message},...L.issuer_error_code&&{issuerErrorCode:L.issuer_error_code},...L.card_network&&{cardNetwork:L.card_network}}}function Ll(C,L){if(!C)return;const Z=Fr(C,L?"retry":"do_default",$l(C).penalized);return Z!=null&&Z.errorCode?{connector:C,...Z.flow&&{flow:Z.flow},...Z.subFlow&&{subFlow:Z.subFlow},errorCode:Z.errorCode,...Z.errorMessage&&{errorMessage:Z.errorMessage}}:iv(C)}function Km(C,L=I){if(!C||!L.error_code)return;const Z=_n(C,L.error_code);return{connector:C,...(Z==null?void 0:Z.flow)&&{flow:Z.flow},...(Z==null?void 0:Z.subFlow)&&{subFlow:Z.subFlow},errorCode:L.error_code,...L.error_message&&{errorMessage:L.error_message},...L.issuer_error_code&&{issuerErrorCode:L.issuer_error_code},...L.card_network&&{cardNetwork:L.card_network}}}function Ym(C,L){Mt(null),dn(eOe(C,L))}function ji(C,L,Z="Request failed"){const ne=C instanceof Error?C.message:Z;if(Q5e(ne)){Ym(L,ne);return}Mt(ne)}function ov(){const C=F.co_badged_networks.split(",").map(L=>L.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:F.merchant_category_code.trim(),acquirer_country:F.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:C,issuer_country:F.issuer_country.trim().toUpperCase(),is_regulated:F.is_regulated,regulated_name:F.is_regulated&&F.regulated_name.trim()?F.regulated_name.trim():null,card_type:SG(F.card_type)}})}function T2(){var xe;if(rd.length===0)return;const C=rd[0],L=p[C],Z=f_(L==null?void 0:L.type),ne=Z==="enum_variant"&&((xe=L==null?void 0:L.values)==null?void 0:xe[0])||"";pe([...ee,{key:C,type:Z,value:ne,metadataKey:""}])}function P2(C){pe(ee.filter((L,Z)=>Z!==C))}function sd(C,L,Z){pe(ee.map((ne,xe)=>xe===C?{...ne,[L]:Z}:ne))}function lv(C,L){pe(ee.map((Z,ne)=>ne===C?{...Z,metadataKey:L}:Z))}function cv(C,L){var Re;const Z=p[L],ne=f_(Z==null?void 0:Z.type),xe=ne==="enum_variant"&&((Re=Z==null?void 0:Z.values)==null?void 0:Re[0])||"";pe(ee.map((ct,gt)=>gt===C?{...ct,key:L,type:ne,value:xe,metadataKey:""}:ct))}function uv(){he([...re,{gateway_name:"",gateway_id:""}])}function dv(C){he(re.filter((L,Z)=>Z!==C))}function Xm(C,L,Z){he(re.map((ne,xe)=>xe===C?{...ne,[L]:Z}:ne))}async function Jm(){var Z;if(!a)return Mt("Sign in with a merchant-linked account to continue");if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");Yr(!0),Mt(null),dn(null),Me(null);const C=E.eligible_gateways.split(",").map(ne=>ne.trim()).filter(Boolean),L=`explorer_${Date.now()}`;try{const ne=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:L,amount:parseFloat(E.amount)||1e3,currency:E.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,cardSwitchProvider:E.card_brand,cardType:E.payment_method,...E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:E.card_program}},eligibleGatewayList:C,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:$}),xe=await Ve("/update-gateway-score",{merchantId:a,gateway:ne.decided_gateway,gatewayReferenceId:null,status:Be,paymentId:L,enforceDynamicRoutingFailure:null,...Be==="FAILURE"&&{errorInfo:Km(ne.decided_gateway)}});if(dt&&l&&Be==="FAILURE"&&((Z=xe.gsm_info)==null?void 0:Z.decision)==="retry"&&ne.fallback_gateways.length>0){const Re=ne.fallback_gateways[0];await Ve("/update-gateway-score",{merchantId:a,gateway:Re,gatewayReferenceId:null,status:"CHARGED",paymentId:L,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),te({...ne,decided_gateway:Re}),Me(L)}else te(ne),Me(L);ao()}catch(ne){ji(ne,"single")}finally{Yr(!1)}}async function fv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");Yr(!0),Mt(null),dn(null);try{await c.setDebitRoutingEnabled(!0)}catch(C){ji(C,"debit","Failed to enable debit routing")}finally{Yr(!1)}}async function hv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ym("debit","Debit routing is disabled.");const C=F.eligible_gateways.split(",").map(Z=>Z.trim()).filter(Boolean);if(C.length===0)return Mt("Add at least one eligible gateway");Yr(!0),Mt(null),dn(null),me(null);const L=`debit_${Date.now()}`;try{const Z=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:L,amount:parseFloat(F.amount)||1e3,currency:F.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:F.auth_type,metadata:ov()},eligibleGatewayList:C,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});me(Z),Ne(L),ao()}catch(Z){ji(Z,"debit")}finally{Yr(!1)}}async function pv(){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(!bt){nt(!0),Mt(null);try{await Ve("/gateway-score/reset",{merchantId:a}),ma.results=[],He([]),Kt({}),Ml.refresh(),Mt(null)}catch(C){Mt(C instanceof Error?C.message:"Failed to flush gateway scores")}finally{nt(!1)}}}async function Zm(C={}){if(!a)return Mt("Sign in with a merchant-linked account to continue");if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");const L=parseInt(A.totalPayments)||0;if(L<=0)return Mt("Total Payments must be greater than 0");const Z=C.resumeFrom&&C.resumeFrom>0&&C.resumeFrom0;Bt(!0),ma.running=!0,zt(!1),Ic.current=!1,Un(null),Df(Date.now()),Mt(null),dn(null),ne||(ma.results=[],He([])),Ul.current=!1;const xe=++Sg.current,Re=()=>Sg.current===xe,ct=E.eligible_gateways.split(",").map(pa=>pa.trim()).filter(Boolean),gt=ne?[...vt.current]:[],it=3;let ft=0,Kn=0,Sr=0;const dr={},Yn=pa=>{const Es=Math.max(0,Math.min(1,Lf(pa)/100));return dr[pa]===void 0&&(dr[pa]=Math.random()),dr[pa]+=Es,dr[pa]>=1?(dr[pa]-=1,!0):!1},Br=E.ranking_algorithm==="SR_MULTI_OBJECTIVE",Jr=Math.max(1,Math.min(_g,Math.round(A.tps)||1)),io=Math.max(0,Math.round(Q)),zo=async pa=>{var $M,LM,FM,BM,zM,UM;const Es=`sim_${Date.now()}_${pa}`,en=no.current,tn=kr.current,St=Br?en==="ALL"?tn[pa%tn.length]:tn[en]??tn[0]:null,on=Br?"CARD":E.payment_method_type,Zr=St?St.paymentMethod:E.payment_method,Si=St?St.cardSwitchProvider:E.card_brand,Oa=St?St.cardProgram:E.card_program,_i=St?St.cardIssuerCountry:void 0,eg=Math.min(D.current.min,D.current.max),R2=Math.max(D.current.min,D.current.max),DM=Br?Math.floor(eg+Math.random()*(R2-eg+1)):parseFloat(E.amount)||1e3,Mc=await Ve("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:Es,amount:DM,currency:M.current.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:on,paymentMethod:Zr,authType:E.auth_type,cardBrand:Si,cardSwitchProvider:Si,cardType:Zr,cardProgram:Oa,..._i&&{cardIssuerCountry:_i},channel:Pf},eligibleGatewayList:ct,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:$}),tg=Mc.decided_gateway,VJ=Yn(tg),WJ=Tc(tg),xv=VJ?"CHARGED":WJ==="timeout"?"PENDING_VBV":"FAILURE",IM=Ie.current&&xv==="FAILURE"&&Mc.fallback_gateways.length>0&&Math.random()ng.isSrHead))==null?void 0:LM.authRate)??null,chosenAuthRate:((BM=(FM=Tr==null?void 0:Tr.ranked)==null?void 0:FM.find(ng=>ng.isChosen))==null?void 0:BM.authRate)??null,margin:(Tr==null?void 0:Tr.margin)??null,evGapTop2:(Tr==null?void 0:Tr.evGapTop2)??null,amount:DM,currency:M.current.currency,cardNetwork:Si,cardProgram:Oa,cardIssuerRegion:_i,cardScenario:St==null?void 0:St.label,steerOutcome:((zM=Mc.volume_steer_info)==null?void 0:zM.outcome)??null,steerSrHead:((UM=Mc.volume_steer_info)==null?void 0:UM.srHead)??null}};try{let pa=Z,Es=null;const en=St=>{if(!Re())return;const on=Date.now();(St||on-Kn>150)&&(ma.results=[...gt],zL(),ao(),Kn=on),(St||on-Sr>250)&&(Ml.refresh(),Sr=on)},tn=async()=>{for(;;){if(Ul.current||!Re())return;if(Ic.current){for(u_.current=gt.length,en(!0);Ic.current&&!Ul.current&&Re();)await new Promise(on=>setTimeout(on,120));continue}const St=pa;if(St>=L)return;pa++;try{const on=await zo(St);gt.push(on),ft=0}catch(on){if(Es=on,ft++,ft>=it){Ul.current=!0;return}await new Promise(Zr=>setTimeout(Zr,300))}if(!Re())return;u_.current=gt.length,en(!1),io>0&&await new Promise(on=>setTimeout(on,io*Jr))}};if(await Promise.all(Array.from({length:Jr},()=>tn())),ft>=it&&Re()){ji(Es,"batch",`Simulation stopped after ${it} consecutive errors. Check that the server is running.`);return}}finally{Re()&&(ma.running=!1,ma.results=[...gt],Ic.current=!1,zL()),Ml.refresh()}}function mv(){Ic.current=!0,zt(!0)}function gv(){Ic.current=!1,zt(!1)}async function T(){if(b)return Mt("Routing key config unavailable. Fix /config/routing-keys and retry.");Yr(!0),Mt(null),dn(null),se(null),Ce([]),be([]),Le(0);const C=`rule_decision_${Date.now()}`;try{const L={};ee.forEach(ne=>{ne.key&&(ne.type==="metadata_variant"?L[ne.key]={type:ne.type,value:{key:ne.metadataKey||ne.key,value:ne.value}}:ne.type==="number"?L[ne.key]={type:ne.type,value:parseFloat(ne.value)||0}:ne.value!==""&&(L[ne.key]={type:ne.type,value:ne.value}))});const Z=await Ve("/routing/evaluate",{created_by:a||"test_user",payment_id:C,fallback_output:re.filter(ne=>ne.gateway_name),parameters:L});if(se(Z),ao(),Z.output.type==="volume_split"&&Z.output.splits){const ne=parseInt(q)||100,xe=Z.output.splits.map(Re=>({name:Re.connector.gateway_name,count:Math.round(Re.split/100*ne),percentage:Re.split}));Ce(xe)}}catch(L){ji(L,"rule")}finally{Yr(!1)}}async function K(){if(!a)return Mt("Sign in with a merchant-linked account to continue");Yr(!0),Mt(null),dn(null),se(null),Ce([]),be([]),Le(0);const C=parseInt(q)||0;if(C<=0)return Yr(!1),Mt("Total Payments must be greater than 0");try{const Z=`volume_decision_${Date.now()}`,ne=[],xe=new Map;let Re=null;const ct=gt=>Array.from(xe.entries()).map(([it,ft])=>({name:it,count:ft,percentage:Number((ft/Math.max(1,gt)*100).toFixed(1))})).sort((it,ft)=>ft.count-it.count);for(let gt=0;gt{const dr=gt+Sr,Yn=`${Z}_${dr}`,Br=await Ve("/routing/evaluate",{created_by:a,payment_id:Yn,fallback_output:re.filter(Jr=>Jr.gateway_name),parameters:{}});return{paymentId:Yn,response:Br}}));for(const{paymentId:Kn,response:Sr}of ft){if(Sr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const dr=Y5e(Sr);if(!dr)throw new Error("Volume split evaluation did not return a connector.");Re||(Re=Sr,se(Sr)),xe.set(dr,(xe.get(dr)||0)+1),ne.push({paymentId:Kn,connector:dr})}Le(ne.length),be([...ne]),Ce(ct(ne.length)),ao()}}catch(L){ji(L,"volume")}finally{Yr(!1)}}const ce=ue!=null&&ue.gateway_priority_map?Object.entries(ue.gateway_priority_map).sort(([,C],[,L])=>L-C).map(([C,L])=>({name:C,score:Math.round(L*1e4)/100})):[],ye=parseInt(A.totalPayments)||0,Ke=Oe.length,yt=bt||Ke>0,De=g.useMemo(()=>E.eligible_gateways.split(",").map(C=>C.trim().toLowerCase()).filter(Boolean),[E.eligible_gateways]),At=g.useMemo(()=>{const C=new Set(h),L=new Set(De);return[...new Set([...d.map(ne=>ne.psp.trim().toLowerCase()).filter(Boolean),...C])].filter(ne=>!L.has(ne)).sort().map(ne=>({name:ne,hasCostModel:C.has(ne)}))},[d,h,De]),Tt=g.useMemo(()=>{const C=new Set(De.map(Z=>c_[Z.toLowerCase()]).filter(Boolean)),L=Z=>{for(let ne=0;ne{const xe=c_[Z.toLowerCase()];if(xe)return[Z,xe];const Re=L(ne);return C.add(Re),[Z,Re]}))},[De]),vn=g.useMemo(()=>{const C=Tt;return L=>{if(C[L])return C[L];const Z=c_[L.toLowerCase()];if(Z)return Z;let ne=0;for(const xe of L)ne=ne*31+xe.charCodeAt(0)>>>0;return os[ne%os.length]}},[Tt]);g.useEffect(()=>{ro.length===0||De.length===0||H(C=>{var ne,xe;let L=!1;const Z={...C};for(const Re of De){if((xe=(ne=C[Re])==null?void 0:ne.errorInfo)!=null&&xe.error_code)continue;const ct=C[Re]??ib(Re),gt=Fr(Re,ct.gsmDecision,ct.penalized);gt&&(Z[Re]={...ct,errorInfo:{error_code:gt.errorCode,error_message:gt.errorMessage,issuer_error_code:"",card_network:""}},L=!0)}return L?Z:C})},[ro,De]);const Yt=g.useMemo(()=>An.reduce((C,L)=>(C[L.decidedGateway]||(C[L.decidedGateway]={total:0,success:0,failure:0}),C[L.decidedGateway].total++,L.status==="CHARGED"?C[L.decidedGateway].success++:C[L.decidedGateway].failure++,C),{}),[An]),Xr=g.useMemo(()=>{var en;const C=An,L={series:{},evSeries:[],decidedSeries:[],paymentNums:[],yMin:0,yMax:100};if(C.length<2)return L;const Z=Qs==="all"?0:Math.max(0,C.length-Qs),ne=C.length-Z,xe=Qs==="all"?Math.max(1,ne):Qs,Re=Math.max(1,Math.ceil(ne/xe)),ct=Object.keys(Yt),gt={};ct.forEach(tn=>{gt[tn]={}});const it=tn=>{const St=gt[tn];let on=0,Zr=0;for(const Si in St)on+=St[Si],Zr++;return Zr>0?on/Zr:null},ft={},Kn=()=>{let tn=0,St=0;for(const on in ft)tn+=ft[on],St++;return St>0?tn/St:null},Sr={};ct.forEach(tn=>{Sr[tn]=[]});const dr=[],Yn=[];let Br=null;const Jr=[];for(let tn=0;tn0&&(Stzo&&(zo=St));io>zo&&(io=0,zo=100);const pa=Math.max(0,io-2),Es=Math.min(100,zo+2);return{series:Sr,evSeries:dr,decidedSeries:Yn,paymentNums:Jr,yMin:pa,yMax:Es}},[An,Yt,Qs]),Xt=g.useMemo(()=>{const C=An,L=Object.keys(Yt),Z={data:[],gateways:L,windowSize:1};if(C.length<2)return Z;const ne=50,xe=Qs==="all"?0:Math.max(0,C.length-Qs),Re=C.length-xe,ct=Qs==="all"?Math.max(1,Re):Qs,gt=Math.max(1,Math.ceil(Re/ct)),it=[],ft=[];for(let Kn=0;Knne&&it.shift(),KnC!=null&&C.includes("HEDGING")?"Hedging":C==="SR_SELECTION_MULTI_OBJECTIVE"?"Cost Based":C==="SR_SELECTION_V3_ROUTING"?"Auth Based":C??"—",Tn=g.useMemo(()=>{const C=new Set,L=new Set,Z=new Set,ne=new Set,xe=new Set,Re=new Set,ct=new Set;for(const it of An)C.add(it.decidedGateway),it.cardNetwork&&L.add(it.cardNetwork),it.cardProgram&&Z.add(it.cardProgram),ne.add(er(it.routingApproach)),it.status&&xe.add(it.status),it.retryGateway&&Re.add(it.retryGateway),it.retryStatus&&ct.add(it.retryStatus);const gt=it=>Array.from(it).sort();return{gateways:gt(C),networks:gt(L),programs:gt(Z),routings:gt(ne),outcomes:gt(xe),retryGateways:gt(Re),retryOutcomes:gt(ct)}},[An]),Hn=g.useMemo(()=>{const C=Vt,L=Object.values(C).some(Boolean),Z=An.map((xe,Re)=>({res:xe,idx:Re}));if(!L)return Z;const ne=xe=>{var ct;const Re=(ct=xe.gatewayPriorityMap)==null?void 0:ct[xe.decidedGateway];return typeof Re=="number"?(Re*100).toFixed(1):""};return Z.filter(({res:xe})=>{if(C.gateway&&xe.decidedGateway!==C.gateway||C.network&&(xe.cardNetwork??"")!==C.network||C.program&&(xe.cardProgram??"")!==C.program||C.routing&&er(xe.routingApproach)!==C.routing||C.outcome&&xe.status!==C.outcome||C.retryGateway&&(xe.retryGateway??"")!==C.retryGateway||C.retryOutcome&&(xe.retryStatus??"")!==C.retryOutcome||C.amount&&!ih(xe.amount,xe.currency).toLowerCase().includes(C.amount.toLowerCase())||C.sr&&!ne(xe).includes(C.sr)||C.evGap&&!(xe.evGapTop2!=null?(xe.evGapTop2*100).toFixed(2):"").includes(C.evGap))return!1;if(C.cost){const Re=!!xe.costWon&&xe.costSavedBps!=null&&xe.costSavedBps>0&&xe.status==="CHARGED";if(C.cost==="yes"&&!Re||C.cost==="no"&&Re)return!1}return!0})},[An,Vt]),ur=g.useMemo(()=>{var ct;let C=0,L=0,Z=0,ne=0;for(const{res:gt}of Hn)C+=gt.amount,gt.costWon&>.costSavedBps!=null&>.costSavedBps>0&>.status==="CHARGED"&&(L+=gt.costSavedBps/1e4*gt.amount),gt.evGapTop2!=null&&(Z+=gt.evGapTop2*100,ne+=1);const xe=((ct=Hn[0])==null?void 0:ct.res.currency)||E.currency||"USD",Re=ne>0?Z/ne:null;return{amount:C,savings:L,currency:xe,count:Hn.length,evGapPctAvg:Re}},[Hn,E.currency]),Ea=Object.values(Vt).some(Boolean),Pc=g.useMemo(()=>An.filter(C=>{var L;return(L=C.routingApproach)==null?void 0:L.includes("HEDGING")}).length,[An]),Bf=g.useMemo(()=>{let C=0,L="";for(const Z of An)Z.costWon&&Z.costSavedBps!=null&&Z.costSavedBps>0&&Z.status==="CHARGED"&&(C+=Z.costSavedBps/1e4*Z.amount,L=Z.currency);return{value:C,currency:L}},[An]),id=g.useMemo(()=>{let C=0,L=0,Z=0,ne=0,xe=0,Re=0,ct="";for(const ft of An)if(ft.currency&&(ct=ft.currency),ft.costWon){if(ne++,ft.status==="CHARGED"&&(Z++,ft.costSavedBps!=null&&ft.costSavedBps>0&&(C+=ft.costSavedBps/1e4*ft.amount)),ft.headAuthRate!=null&&ft.chosenAuthRate!=null&&ft.margin!=null){const Kn=Math.max(0,ft.headAuthRate-ft.chosenAuthRate);L+=Kn*ft.amount*ft.margin}}else ft.authWon&&(Re++,ft.status==="CHARGED"&&xe++);const gt=ne>0?Z/ne:null,it=Re>0?xe/Re:null;return{currency:ct,feeSaved:C,authValueRisked:L,netProfit:C-L,overrideSr:gt,authKeptSr:it,overrideTotal:ne,authKeptTotal:Re}},[An]),Ss=g.useMemo(()=>{let C=0,L=0,Z=0,ne=0,xe=0,Re=0,ct=0,gt="";for(const ft of An)Re++,ct+=ft.amount,ft.currency&&(gt=ft.currency),ft.costWon?(C++,ft.status==="CHARGED"?L++:Z++):ft.status==="CHARGED"?ne++:xe++;return{srBased:Re-C,srSuccess:ne,srFailure:xe,costWon:C,costSuccess:L,costFailure:Z,total:Re,tpv:ct,currency:gt}},[An]),Fl=g.useMemo(()=>{let C=0,L=0,Z=0;for(const ne of An){C++;const xe=ne.status==="CHARGED";xe&&L++,(xe||ne.retryStatus==="CHARGED")&&Z++}return{total:C,firstAttemptSuccess:L,finalSuccess:Z,faar:C>0?L/C:null,nar:C>0?Z/C:null}},[An]),_s=((SM=ie==null?void 0:ie.debit_routing_output)==null?void 0:SM.co_badged_card_networks_info)||[],so=g.useMemo(()=>new Map(de.map((C,L)=>[C.name,L])),[de]),Ot=g.useMemo(()=>Object.entries(Yt).sort((C,L)=>L[1].total-C[1].total),[Yt]),fn=g.useMemo(()=>[...de].sort((C,L)=>L.count-C.count),[de]),Ns=fn[0],jr=fe.length,Cs=Number.parseInt(q,10)||0,gM=Cs>0?Math.min(100,Math.round(we/Cs*100)):0,ti=g.useMemo(()=>{var L;const C=((L=Vn.data)==null?void 0:L.results)||[];return C.find(Z=>Z.payment_id===Et)||C[0]||null},[(_M=Vn.data)==null?void 0:_M.results,Et]),Gn=g.useMemo(()=>{var L;const C=((L=Vn.data)==null?void 0:L.timeline)||[];return C.find(Z=>Z.id===$n)||C[0]||null},[(NM=Vn.data)==null?void 0:NM.timeline,$n]);g.useEffect(()=>{var L,Z;if(Gn!=null&&Gn.id){Sn(Gn.id);return}const C=(Z=(L=Vn.data)==null?void 0:L.timeline)==null?void 0:Z[0];C!=null&&C.id&&Sn(C.id)},[(CM=Vn.data)==null?void 0:CM.timeline,Gn==null?void 0:Gn.id]);const xM=g.useMemo(()=>{var L;const C=[];for(const Z of((L=Vn.data)==null?void 0:L.timeline)||[]){const ne=IA(Z),xe=C[C.length-1];!xe||xe.phase!==ne?C.push({phase:ne,events:[Z]}):xe.events.push(Z)}return C},[(EM=Vn.data)==null?void 0:EM.timeline]),Bo=g.useMemo(()=>XL(Gn),[Gn]),Aa=g.useMemo(()=>{var L;const C=((L=Wn.data)==null?void 0:L.results)||[];return C.find(Z=>Z.payment_id===Na)||C[0]||null},[(AM=Wn.data)==null?void 0:AM.results,Na]),qn=g.useMemo(()=>{var L;const C=((L=Wn.data)==null?void 0:L.timeline)||[];return C.find(Z=>Z.id===Mf)||C[0]||null},[(OM=Wn.data)==null?void 0:OM.timeline,Mf]);g.useEffect(()=>{var L,Z;if(qn!=null&&qn.id){ks(qn.id);return}const C=(Z=(L=Wn.data)==null?void 0:L.timeline)==null?void 0:Z[0];C!=null&&C.id&&ks(C.id)},[(TM=Wn.data)==null?void 0:TM.timeline,qn==null?void 0:qn.id]);const yM=g.useMemo(()=>{var L;const C=[];for(const Z of((L=Wn.data)==null?void 0:L.timeline)||[]){const ne=IA(Z),xe=C[C.length-1];!xe||xe.phase!==ne?C.push({phase:ne,events:[Z]}):xe.events.push(Z)}return C},[(PM=Wn.data)==null?void 0:PM.timeline]),zf=g.useMemo(()=>XL(qn),[qn]);g.useEffect(()=>{const C=nd.current;C&&(C.scrollTop=C.scrollHeight)},[An.length]);function M2(C){ws(null),ks(null),cr("summary"),yn(C),Sn(null),lr("summary")}function vM(){yn(null),Sn(null),lr("summary")}function Qm(C,L){yn(null),Sn(null),lr("summary"),Rf(L),ws(C),ks(null),cr("summary")}function bM(){ws(null),ks(null),cr("summary")}function wM(C){var ne;const L={...C};wi.length>0&&!wi.includes(L.currency)&&(L.currency=wi[0]),js.length>0&&!js.includes(L.payment_method_type)&&(L.payment_method_type=js[0]);const Z=c1(((ne=p[L.payment_method_type.toLowerCase()])==null?void 0:ne.values)||[]);return Z.length>0&&!Z.includes(L.payment_method)&&(L.payment_method=Z[0]),Dl.length>0&&!Dl.includes(L.auth_type)&&(L.auth_type=Dl[0]),Ca.length>0&&!Ca.includes(L.card_brand)&&(L.card_brand=Ca[0]),L}function kM(){const C=su();P({...wM(C.form),currency:MA}),Cc(MA),O(C.simulationConfig),fa(C.multiObjScenario),pt(C.extraConnectors),gn(C.removedConnectors),le(C.smartRetryEnabled),H(L=>Object.fromEntries(Object.entries(L).map(([Z,ne])=>[Z,{...RA,successRate:ne.successRate}]))),Mt(null),dn(null)}function jM(){const C=su();ma.results=C.simulationResults,He(C.simulationResults),Un(C.resumableRun),Ul.current=!0,Sg.current++,Df(null),Bt(!1),zt(!1),Ic.current=!1,Kt({}),Mt(null)}function zJ(){const C=su();w==="single"?(P(wM(C.form)),te(C.result),Me(C.singleRunPaymentId),tt(C.singleRunOutcome),Se(C.responseOpen)):w==="batch"?(kM(),jM(),V(0)):w==="rule"?U(L=>L+1):w==="volume"?(W(C.volumePayments),se(C.ruleResult),Ce(C.volumeDistribution),be(C.volumeEvaluationLog),Le(C.volumeProgress),at(C.volumeResponseOpen),ws(null),ks(null),cr("summary"),Rf("Volume Split Decision")):w==="debit"&&(R(C.debitForm),me(C.debitResult),Ne(C.debitPaymentId),qe(C.debitResponseOpen),yn(null),Sn(null),lr("summary")),Mt(null),dn(null),Yr(!1),Ec(!1),yn(null),Sn(null),lr("summary")}const UJ=w==="rule"?"Reset Rule Based Routing":w==="volume"?"Reset Volume Based Routing":w==="debit"?"Reset Debit Routing":"Reset";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsx("div",{children:i.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:i.jsx(qr,{title:"Decision Simulator"})})}),i.jsx("button",{type:"button",onClick:()=>ge(!0),disabled:bt||!a||Ge,title:"Hard refresh — flush this merchant's SR scores from Redis so the next run starts fresh. Use sparingly.","aria-label":"Hard refresh gateway scores",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-600 disabled:pointer-events-none disabled:opacity-40 dark:text-slate-400 dark:hover:bg-white/5 dark:hover:text-slate-300",children:i.jsx(As,{size:14,className:Ge?"animate-spin":""})})]}),i.jsx(qs,{open:Nt,variant:"danger",title:"Hard refresh SR scores?",description:"This flushes all of this merchant's accumulated SR scores from Redis. The next run starts from fresh scores — there's no undo.",confirmLabel:"Flush scores",cancelLabel:"Cancel",onConfirm:()=>{ge(!1),pv()},onCancel:()=>ge(!1)}),sn&&i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>xn(!1)}),i.jsxs("div",{className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Add a processor"}),i.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:At.length>0?"Pick a processor we can already price, or type any other connector name. It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs.":"Enter a connector name (e.g. braintree, worldpay). It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs."}),At.length>0&&i.jsxs("div",{className:"mt-4",children:[i.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-500 leading-4",children:"Known processors"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:At.map(({name:C,hasCostModel:L})=>{const Z=_a.trim().toLowerCase()===C;return i.jsxs("button",{type:"button",onClick:()=>{Dn(C),or(null)},onDoubleClick:Ff,"aria-pressed":Z,title:L?`${C} — has a fitted cost model from ingested reports`:`${C} — priced from your contract seed rates`,className:`rounded-full border px-2.5 py-1 text-xs font-medium transition-colors ${Z?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#2a303a] dark:text-[#9ca7ba] dark:hover:bg-white/5"}`,children:[C,L&&i.jsx("span",{className:"ml-1.5 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle","aria-hidden":!0})]},C)})}),i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:[i.jsx("span",{className:"mr-1 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle"}),"has a fitted cost model; the rest use contract seed rates."]})]}),i.jsx("input",{autoFocus:!0,type:"text",value:_a,placeholder:At.length>0?"Or type a connector name":"Connector name",onChange:C=>{Dn(C.target.value.toLowerCase()),ua&&or(null)},onKeyDown:C=>{C.key==="Enter"?Ff():C.key==="Escape"&&xn(!1)},className:"mt-4 w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),ua&&i.jsx("p",{className:"mt-2 text-xs text-red-600",children:ua}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>xn(!1),children:"Cancel"}),i.jsx(ke,{variant:"primary",size:"sm",onClick:Ff,children:"Add processor"})]})]})]}),w==="rule"&&i.jsx(YH,{merchantId:a,routingKeysConfig:p,routingConfigUnavailable:b,routingKeysLoading:m,resetSignal:z,onRunComplete:ao,onOpenTrace:Qm}),w==="batch"&&i.jsxs("div",{className:"flex flex-wrap items-start gap-x-6 gap-y-3 rounded-2xl border border-slate-200 bg-white px-5 py-3 dark:border-[#222226] dark:bg-[#0b0b10]",children:[i.jsx("div",{className:"-mb-1 -mr-2 -mt-2 flex w-full justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:kM,title:"Restore the controls in this panel to their defaults (per-processor success rates are kept). Leaves the results below untouched.",children:[i.jsx(As,{size:14}),"Reset inputs"]})}),De.map(C=>{const L=`${C.charAt(0).toUpperCase()+C.slice(1)} success rate`,Z=Tt[C]??os[0],ne=(Y[C]??ib(C)).successRate;return i.jsxs("div",{className:"flex w-[190px] flex-col gap-1.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:Z}}),i.jsx(an,{children:L}),De.length>1&&!bt&&i.jsx("button",{type:"button",onClick:()=>ki(C),className:"ml-auto text-slate-500 transition-colors hover:text-red-600",title:`Remove ${C} from the comparison`,"aria-label":`Remove ${C}`,children:i.jsx(Hr,{size:13})})]}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:"number",min:0,max:100,step:1,value:ne,onChange:xe=>qm(C,xe.target.value===""?0:Va(parseFloat(xe.target.value))),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 pr-7 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),i.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-slate-500",children:"%"})]}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:ne,onChange:xe=>qm(C,Va(Number(xe.target.value))),className:`mt-1 h-1.5 w-full cursor-pointer appearance-none rounded-full outline-none + [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:bg-[color:var(--thumb)] [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-webkit-slider-thumb]:active:scale-95 + [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-white [&::-moz-range-thumb]:border-solid [&::-moz-range-thumb]:bg-[color:var(--thumb)] [&::-moz-range-thumb]:shadow`,style:{"--thumb":Z,background:`linear-gradient(to right, ${Z} ${ne}%, rgba(148,163,184,0.45) ${ne}%)`}})]},C)}),da&&i.jsxs("div",{className:"flex w-[100px] flex-col gap-1.5",children:[i.jsx(an,{children:"Processor"}),i.jsxs("button",{type:"button",onClick:On,title:"Add another processor to the comparison",className:"flex items-center justify-center gap-1.5 rounded-lg border border-dashed border-slate-300 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-500 transition-colors hover:border-brand-400 hover:text-brand-600 dark:border-[#33333a] dark:bg-[#0d0d13] dark:text-[#8a93a6] dark:hover:border-brand-500 dark:hover:text-brand-400",children:[i.jsx(Qn,{size:14})," Add"]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[175px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:"Pin every multi-objective transaction to one card scenario so the SR Trend shows a single clean per-segment bucket. 'All scenarios' rotates through this currency's scenarios (interleaves dimensions on one chart). Choosing a currency with configured contract rates (e.g. AED) lists those scenarios here. Editable while paused — the rest of the run continues in the new segment on resume.",children:"Card scenario"})}),i.jsxs("select",{value:String(is),disabled:bt&&!wt,onChange:C=>fa(C.target.value==="ALL"?"ALL":Number(C.target.value)),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:[i.jsx("option",{value:"ALL",children:"All scenarios (rotate)"}),Ua.map((C,L)=>i.jsx("option",{value:L,children:C.label},C.label))]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[130px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:"Settlement currency sent on each transaction. USD exercises the seed-cost fallback; EUR/AUD (and others) let a transaction match the in-house fitted cost models, which are keyed by currency.",children:"Currency"})}),i.jsx("select",{value:wr,disabled:bt&&!wt,onChange:C=>Cc(C.target.value),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:td.map(C=>i.jsx("option",{value:C,children:C},C))})]}),da&&(()=>{const C=Math.max(1,Math.min(_g,A.tps||1));return i.jsxs("div",{className:"flex w-[62px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsx("span",{title:`Transactions kept in flight at once (1–${_g}). Higher = more decide+feedback round-trips per second, so gateway scores move faster. Applies on the next run.`,children:"TPS"})}),i.jsx("input",{type:"number",min:1,max:_g,step:1,value:C,disabled:bt,onChange:L=>{const Z=Math.round(Number(L.target.value)),ne=Number.isFinite(Z)?Math.max(1,Math.min(_g,Z)):1;O(xe=>({...xe,tps:ne}))},className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"})]})})(),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx("span",{className:"block h-4","aria-hidden":!0}),i.jsxs("label",{className:"flex h-[34px] items-center gap-2 cursor-pointer select-none",title:"When on, ~50% of failed transactions are treated as soft declines (GSM retry) and retried on the next eligible processor (alternate PSP).",children:[i.jsx("input",{type:"checkbox",checked:dt,onChange:C=>le(C.target.checked),className:"cursor-pointer rounded border-slate-300 dark:border-slate-600"}),i.jsx("span",{className:"text-xs font-medium text-slate-600 dark:text-slate-300",children:"Retry Enabled"})]})]}),(()=>{const C=WL,L=HL,Z="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold tabular-nums text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none";return i.jsxs("div",{className:"flex w-[220px] flex-col gap-1.5",children:[i.jsx(an,{children:i.jsxs("span",{title:"Per-transaction amount range (multi-objective sim). Each payment's amount is drawn uniformly from this range. Smaller amounts make the flat per-txn fee a bigger share of cost. Applies on the next run.",children:["Amount range (",wr,")"]})}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(QL,{ariaLabel:"Minimum amount",value:A.minAmount,min:C,max:L,onCommit:ne=>O(xe=>({...xe,minAmount:ne})),onSettle:()=>O(ne=>({...ne,minAmount:Math.min(ne.minAmount,ne.maxAmount)})),className:Z}),i.jsx("span",{className:"shrink-0 text-xs text-slate-500",children:"–"}),i.jsx(QL,{ariaLabel:"Maximum amount",value:A.maxAmount,min:C,max:L,onCommit:ne=>O(xe=>({...xe,maxAmount:ne})),onSettle:()=>O(ne=>({...ne,maxAmount:Math.max(ne.minAmount,ne.maxAmount)})),className:Z})]})]})})(),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 self-end lg:ml-auto",children:[i.jsxs(ke,{size:"sm",variant:"ghost",onClick:()=>bi(C=>!C),title:"Show or hide the advanced controls (TPS, Add processor)",children:[i.jsx(Hi,{size:14}),da?"Less":"More"]}),bt?i.jsxs(i.Fragment,{children:[wt?i.jsxs(ke,{onClick:gv,variant:"primary",children:[i.jsx(Ts,{size:14,className:"fill-current"})," Resume"]}):i.jsxs(ke,{onClick:mv,variant:"secondary",children:[i.jsx(BCe,{size:14})," Pause"]}),i.jsxs(ke,{onClick:()=>{Ul.current=!0},variant:"secondary",children:[i.jsx(Hr,{size:14})," Stop"]})]}):Ut?i.jsxs(i.Fragment,{children:[i.jsxs(ke,{onClick:Gm,disabled:!a||b,variant:"primary",title:`Continue the paused run from transaction ${Ut.nextIndex+1} of ${Ut.total}`,children:[i.jsx(Ts,{size:14,className:"fill-current"})," Resume run"]}),i.jsxs(ke,{onClick:sv,variant:"secondary",children:[i.jsx(As,{size:14})," Start over"]})]}):i.jsxs(ke,{onClick:()=>Zm(),disabled:!a||b,variant:"primary",children:[i.jsx(Ts,{size:14,className:"fill-current"})," Run simulation"]})]})]}),i.jsxs("div",{className:w==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":w==="batch"?"grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] lg:items-stretch":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:w==="rule"?{display:"none"}:void 0,children:[i.jsxs("div",{className:`flex flex-col gap-6 min-w-0 ${w==="batch"?"lg:min-h-0":"self-start"}`,children:[w==="batch"&&i.jsx(JAe,{merchantId:a,isSimulating:bt,tps:A.tps,onContractGone:()=>V(0),onCycleEnded:()=>{Ul.current=!0,V(0)},onLoad:({gateways:C,amount:L,totalPayments:Z,paceMs:ne})=>{V(ne),P(xe=>({...xe,eligible_gateways:C.join(", "),amount:String(L)})),O(xe=>({...xe,minAmount:L,maxAmount:L,totalPayments:String(Z)}))}}),w==="batch"&&i.jsx(QAe,{merchantId:a,results:Oe,colorFor:vn}),w==="batch"&&i.jsx(Te,{className:"flex-1",children:i.jsxs(ze,{className:"!pt-4 flex flex-1 flex-col",children:[Ot.length>0?(()=>{const C=Ot,L=C.some(([Z])=>{var ne;return(((ne=Xr.series[Z])==null?void 0:ne.length)??0)>=2});return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[L&&(()=>{const{series:Z,evSeries:ne,decidedSeries:xe,paymentNums:Re}=Xr,ct=Re.map((en,tn)=>{const St={step:en};C.forEach(([Si])=>{var _i;const Oa=(_i=Z[Si])==null?void 0:_i[tn];Oa!=null&&(St[Si]=Oa)});const on=xe[tn];on!=null&&(St.selectedGw=on);const Zr=ne[tn];return Zr!=null&&(St.evLead=Zr),St}),gt=[];ct.forEach(en=>{C.forEach(([tn])=>{const St=en[tn];typeof St=="number"&>.push(St)})});const it=gt.length?Math.min(...gt):0,ft=gt.length?Math.max(...gt):100,Kn=Math.max(ft-it,0),Sr=6,dr=Math.max(Kn,Sr),Yn=dr<=10?2:dr<=30?5:10,Br=(it+ft)/2,Jr=Math.max(Kn/2,Sr/2),io=Math.max(0,Math.floor((Br-Jr)/Yn)*Yn),zo=Math.min(100,Math.ceil((Br+Jr)/Yn)*Yn),pa=zo+Math.min(Yn,2),Es=[];for(let en=io;en<=zo;en+=Yn)Es.push(en);return i.jsxs("div",{className:"w-full flex-1 min-h-[380px] flex flex-col",children:[i.jsxs("div",{className:"mb-2 flex items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Success Rate Trend"})}),i.jsx("div",{className:"flex items-center gap-2 shrink-0",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 dark:border-[#1f1f29] p-0.5",children:E2.map(en=>{const tn=Qs===en;return i.jsx("button",{type:"button",onClick:()=>C2(en),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${tn?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:en==="all"?"All":`Last ${en}`},String(en))})})})]}),i.jsx("div",{className:"min-h-0 flex-1",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:ct,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[io,pa],ticks:Es,allowDataOverflow:!0,tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:en=>`${en}%`}),i.jsx(Vr,{content:en=>{const{active:tn,payload:St}=en;if(!tn||!St||!St.length)return null;const on=St[0].payload;if(!on)return null;const Zr=typeof on.selectedGw=="string"?on.selectedGw:null,Si=typeof on.evLead=="number"?on.evLead:null;return i.jsxs("div",{style:{...il,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:190},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Payment ",on.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:C.map(([Oa])=>{const _i=on[Oa];if(typeof _i!="number")return null;const eg=Tt[Oa]??os[0],R2=Zr===Oa;return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:eg,flexShrink:0}}),i.jsx("span",{style:{color:eg,fontWeight:600},children:Oa}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[_i.toFixed(1),"%"]}),Zr!=null&&i.jsx("span",{style:{fontSize:10,fontWeight:600,width:56,textAlign:"right",color:"#64748b"},children:R2?"★ Selected":""})]},Oa)})}),i.jsxs("div",{style:{marginTop:6,paddingTop:6,borderTop:"1px solid rgba(148,163,184,0.25)",display:"flex",alignItems:"center",gap:6},children:[i.jsxs("span",{style:{color:"#64748b"},children:["EV lead",Zr!=null?` · ${Zr}`:""]}),i.jsx("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums",fontWeight:600},children:Si!=null?`+${(Si*100).toFixed(2)}% of ticket`:"—"})]})]})}}),C.map(([en])=>i.jsx(fi,{type:"natural",dataKey:en,name:en,stroke:Tt[en]??os[0],strokeWidth:2.5,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!0},en))]})})}),i.jsx("div",{className:"mt-3 flex flex-wrap items-center justify-center gap-x-5 gap-y-1.5 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:C.map(([en])=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Tt[en]??os[0]}}),en]},en))})]})})(),Xt.data.length>=2&&(()=>{const{data:Z,gateways:ne}=Xt,xe=Z[Z.length-1]??{},Re=(it,ft)=>Tt[it]??os[ft%os.length],ct=ne.map((it,ft)=>({gw:it,share:xe[it]??0,color:Re(it,ft)})).sort((it,ft)=>ft.share-it.share),gt=ne.map((it,ft)=>({gw:it,idx:ft,share:xe[it]??0})).sort((it,ft)=>ft.share-it.share);return i.jsxs("div",{className:"w-full border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Routing Distribution"})}),i.jsx("div",{className:"flex flex-wrap items-center gap-1.5",children:ct.map(({gw:it,share:ft,color:Kn})=>i.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-slate-50 px-2 py-0.5 text-[11px] font-medium text-slate-600 ring-1 ring-inset ring-slate-200/70 dark:bg-[#12121a] dark:text-slate-300 dark:ring-[#22222c] leading-4",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Kn}}),it,i.jsxs("span",{className:"tabular-nums font-semibold text-slate-900 dark:text-white",children:[Math.round(ft),"%"]})]},it))})]}),i.jsx("div",{className:"h-[200px] w-full",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:Z,margin:{top:8,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[0,100],ticks:[0,25,50,75,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:it=>`${it}%`}),i.jsx(Vr,{cursor:{stroke:"#cbd5e1",strokeWidth:1},content:it=>{const{active:ft,payload:Kn}=it;if(!ft||!Kn||!Kn.length)return null;const Sr=Kn[0].payload;if(!Sr)return null;const dr=ne.map((Yn,Br)=>({gw:Yn,share:Sr[Yn]??0,color:Re(Yn,Br)})).sort((Yn,Br)=>Br.share-Yn.share);return i.jsxs("div",{style:{...il,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:170},children:[i.jsxs("p",{style:{...ol,margin:"0 0 6px"},children:["Payment ",Sr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:dr.map(({gw:Yn,share:Br,color:Jr})=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:Jr,flexShrink:0}}),i.jsx("span",{style:{color:Jr,fontWeight:600},children:Yn}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[Br.toFixed(1),"%"]})]},Yn))})]})}}),gt.map(({gw:it,idx:ft})=>i.jsx(Zu,{type:"monotone",dataKey:it,name:it,stroke:Re(it,ft),fill:Re(it,ft),fillOpacity:.18,strokeWidth:2.5,isAnimationActive:!1,legendType:"none",activeDot:{r:3.5,strokeWidth:0}},it))]})})})]})})()]})})():(()=>{const C=De;if(C.length===0)return null;const L=C.map(xe=>({gw:xe,sr:(Y[xe]??ib(xe)).successRate})),Z=ye||Number(zT),ne=[{step:1},{step:Z}];return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[i.jsx("div",{className:"space-y-2",children:L.map(({gw:xe,sr:Re})=>{const ct=Tt[xe]??os[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:ct}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 truncate shrink-0 w-14 text-left",children:xe}),i.jsxs("span",{className:`font-bold tabular-nums text-[11px] w-14 text-right ${Re>=80?"text-emerald-700 dark:text-emerald-400":Re>=50?"text-amber-700":"text-red-600"} leading-4`,children:[Re,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 text-[11px] leading-4",children:"·"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums text-[11px] w-16 text-right leading-4",children:"0% routed"})]})},xe)})}),i.jsx("div",{className:"w-full flex-1 min-h-[300px]",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(uH,{data:ne,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(wa,{domain:[0,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:xe=>`${xe}%`})]})})}),i.jsx("p",{className:"pt-1 text-center text-[11px] text-slate-500 leading-4",children:"Projected from configured success rates · run a simulation to see live routing."})]})})(),Object.keys(Yt).length===1&&De.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 mx-auto max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})}),w!=="batch"&&i.jsxs(Te,{className:"!rounded-2xl",children:[i.jsx(jt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(an,{children:w==="rule"?"Rule Evaluation":w==="volume"?"Volume Split":w==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:w==="rule"?"Rule Evaluation Parameters":w==="volume"?"Volume Split Configuration":w==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(ze,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),w!=="volume"&&w!=="debit"&&m&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),w!=="volume"&&w!=="debit"&&b&&i.jsx(_t,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),w==="rule"?i.jsxs(i.Fragment,{children:[m&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),b&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:ee.map((C,L)=>{var Z;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:C.key,onChange:ne=>cv(L,ne.target.value),disabled:b||m,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:rd.length===0?i.jsx("option",{value:"",children:"No keys available"}):rd.map(ne=>i.jsx("option",{value:ne,children:ne},ne))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),C.type==="enum_variant"?i.jsx("select",{value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((Z=p[C.key])==null?void 0:Z.values)||[]).map(ne=>i.jsx("option",{value:ne,children:ne},ne))}):C.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):C.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>P2(L),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]}),C.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:C.metadataKey||"",onChange:ne=>lv(L,ne.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:C.value,onChange:ne=>sd(L,"value",ne.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},L)})}),i.jsxs("button",{onClick:T2,disabled:b||m||rd.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:re.map((C,L)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:L+1}),i.jsx("input",{placeholder:"gateway name",value:C.gateway_name,onChange:Z=>Xm(L,"gateway_name",Z.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:C.gateway_id||"",onChange:Z=>Xm(L,"gateway_id",Z.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>dv(L),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(Cn,{size:13})})]},L))}),i.jsxs("button",{onClick:uv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):w==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(mt,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx(Fa,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx(Fa,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:fv,disabled:!a||In,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:F.amount,onChange:C=>ei("amount",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:F.currency,onChange:C=>ei("currency",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:F.auth_type,onChange:C=>ei("auth_type",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:F.card_type,onChange:C=>ei("card_type",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:F.eligible_gateways,onChange:C=>ei("eligible_gateways",C.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:F.merchant_category_code,onChange:C=>ei("merchant_category_code",C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:F.acquirer_country,onChange:C=>ei("acquirer_country",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:F.co_badged_networks,onChange:C=>ei("co_badged_networks",C.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:F.issuer_country,onChange:C=>ei("issuer_country",C.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:F.is_regulated,onChange:C=>ei("is_regulated",C.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),F.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:F.regulated_name,onChange:C=>ei("regulated_name",C.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):w==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:q,onChange:C=>W(C.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(ke,{onClick:K,disabled:In||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(cf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Cs||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:In?we:jr||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${In?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${In?gM:jr&&Cs?Math.min(100,Math.round(jr/Cs*100)):0}%`}})}),In&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[gM,"%"]})]})]}):i.jsx(i.Fragment,{children:w==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:Be,onChange:C=>tt(C.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),Be==="FAILURE"&&i.jsx(EA,{info:I,onChange:$f,rules:ro})]})})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(_t,{error:$o}),w==="rule"?i.jsx(ke,{onClick:T,disabled:In||b,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Evaluate Rules"]})}):w==="debit"?i.jsx(ke,{onClick:hv,disabled:In||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Oo,{size:14})," Run Debit Routing"]})}):w==="volume"?null:i.jsxs(i.Fragment,{children:[Th.SMART_RETRY_IN_SIMULATION,i.jsx(ke,{onClick:Jm,disabled:In||!a||b,className:"w-full justify-center",children:In?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Ts,{size:14})," Run Single Transaction"]})})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:zJ,children:[i.jsx(As,{size:14}),UJ]})})]})]})]}),i.jsxs("div",{className:`min-w-0 flex flex-col gap-4 ${w==="batch"?"lg:min-h-0":""}`,children:[w==="batch"&&i.jsxs("div",{className:"flex flex-col justify-center gap-5 rounded-2xl border border-slate-200 bg-white px-5 py-4 dark:border-[#222226] dark:bg-[#0b0b10]",children:[yt&&i.jsx("div",{className:"-mb-3 -mr-2 -mt-2 flex justify-end",children:i.jsxs(ke,{size:"sm",variant:"ghost",onClick:jM,title:"Clear these stats, the charts and the transaction log. Leaves the controls above untouched.",children:[i.jsx(Cn,{size:14}),"Clear"]})}),(()=>{const C=id.currency||E.currency||"USD";return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",title:"First Attempt Auth Rate — share of decisions charged on the first attempt (first-attempt charges ÷ total decisions).",children:[i.jsx(Jf,{label:"First-attempt auth rate",abbr:"FAAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Fl.faar!=null?`${(Fl.faar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Net Auth Rate — share of decisions charged in the end, counting a successful smart retry (final charges ÷ total decisions). NAR ≥ FAAR when retries recover failures.",children:[i.jsx(Jf,{label:"Net auth rate",abbr:"NAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Fl.nar!=null?`${(Fl.nar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Realized fee saved on charged cost-override decisions: Σ (costSavedBps ÷ 10000) × amount.",children:[i.jsx(Jf,{label:"Realized cost savings"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:ih(Bf.value,Bf.currency||C)})]})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"Total decisions"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Ss.total.toLocaleString()})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"SR-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[Ss.srBased.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ss.srSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:Ss.srFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Jf,{label:"Cost-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[Ss.costWon.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ss.costSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:Ss.costFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]})]})]})})()]}),w==="debit"?ie?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),ve?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>M2(ve),children:"View audit"}):null]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:ie.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:ve})]})]}),ie.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ie.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(ze,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:_s.map((C,L)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",L+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:C.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[C.saving_percentage.toFixed(2),"%"]})]},`${C.network}-${L}`))})]})})]})]}):i.jsx(_t,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>qe(!Ae),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[Ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14}),"Raw response"]}),Ae&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(ie,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-12 text-center",children:[i.jsx(Oo,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):w==="volume"?de.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:jr})," evaluations"]}),Ns&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Ns.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[Ns.percentage,"%"]})]})]})]})]}),B!=null&&B.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Qm(B.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[fn.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:fn.map(C=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${C.percentage}%`,backgroundColor:Zf[(so.get(C.name)??0)%Zf.length]},title:`${C.name}: ${C.percentage}%`},C.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:fn.map(C=>{const L=Zf[(so.get(C.name)??0)%Zf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:L}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:C.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[C.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[C.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${C.percentage}%`,backgroundColor:L}})})]},C.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:fe.slice(-200).map((C,L)=>{const Z=Math.max(0,fe.length-200)+L;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>Qm(C.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:Z+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:C.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Zf[(so.get(C.connector)??0)%Zf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:C.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ne=>{ne.stopPropagation(),Qm(C.paymentId,"Volume Split Decision")},children:"Open"})})]},C.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>at(C=>!C),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API response"]}),rt?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]}),rt&&B&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(B,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(cf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):w==="rule"?B?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:B.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",B.output.type]})]}),B.payment_id?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>Qm(B.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),B.output.type==="single"&&B.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:B.output.connector.gateway_name}),B.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",B.output.connector.gateway_id]})]}),B.output.type==="priority"&&B.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:B.output.connectors.map((C,L)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:L+1}),i.jsx("span",{className:"font-medium",children:C.gateway_name}),C.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",C.gateway_id,")"]})]},L))})]}),B.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Se(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),ae&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(B,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):w==="batch"?i.jsxs(i.Fragment,{children:[yt&&i.jsx(Te,{className:"lg:shrink-0",children:i.jsxs(jt,{className:"flex flex-row items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-[14px] font-semibold text-slate-500 dark:text-slate-400 leading-5",children:"Gateway Selection Summary"})}),i.jsxs("span",{className:"text-[13px] tabular-nums flex items-center gap-1.5 shrink-0 leading-[18px]",children:[i.jsxs("span",{className:"text-slate-500",children:[Ke," / ",ye||0]}),Ke>0&&Pc>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"font-medium text-brand-600 dark:text-sky-400",children:[Math.round(Pc/Ke*100),"% hedged"]})]})]})]})}),i.jsxs(Te,{className:"lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3 lg:shrink-0",children:[i.jsx("span",{className:"flex items-center gap-2.5",children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Autopilot Actions"})}),Ac.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[Ac.length," actions"]})]}),i.jsx(ze,{className:"p-0 lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:Fo==null?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No events yet"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400 mx-auto max-w-[57ch]",children:"Start a simulation — leader changes and auth-band crossings appear here as gateway scores shift."})]}):Ml.isUnavailable?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Events unavailable"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"The analytics pipeline (Kafka → ClickHouse) is offline for this environment."})]}):i.jsxs("div",{className:"max-h-[240px] overflow-y-auto lg:max-h-[360px] lg:flex-1 lg:min-h-0 divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[av.map(C=>{if(C.kind==="leaderFlap"){const Re=Oc.has(C.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Re?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(V0,{size:16,className:"text-sky-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[C.latest.gateway,C.latest.score!=null?` (${(C.latest.score*100).toFixed(1)}%)`:""," now leads on success rate",C.latest.previous_gateway?` over ${C.latest.previous_gateway}${C.latest.previous_score!=null?` (${(C.latest.previous_score*100).toFixed(1)}%)`:""}`:"",i.jsxs("span",{className:"ml-1.5 rounded-full bg-sky-100 px-1.5 py-0.5 text-[11px] font-medium text-sky-700 dark:bg-sky-900/30 dark:text-sky-300 leading-4",children:["×",C.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:["now routing to the best PSP · ",ob(C.latest.bucket_ms)]})]})]},C.latest.id)}if(C.kind==="flap"){const Re=Oc.has(C.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Re?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(As,{size:16,className:"text-amber-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[C.gateway," fluctuating at the cost-savings cutoff",i.jsxs("span",{className:"ml-1.5 rounded-full bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-300 leading-4",children:["×",C.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:["now ",C.inBand?"routed to save cost":"using top performer only"," · ",ob(C.latest.bucket_ms)]})]})]},C.latest.id)}const L=C.event,Z=$5e[L.event_type],ne=(Z==null?void 0:Z.icon)??V0,xe=Oc.has(L.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${xe?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(ne,{size:16,className:(Z==null?void 0:Z.iconClass)??"text-slate-500"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:BT(L)}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:ob(L.bucket_ms)})]})]},L.id)}),i.jsxs("div",{className:"flex items-start gap-2.5 px-4 py-2.5 bg-gradient-to-r from-sky-50 via-transparent to-violet-50 dark:from-sky-500/10 dark:to-violet-500/10",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(DCe,{size:16,className:"text-violet-600"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:["Started tracking"," ",i.jsx("span",{className:"font-semibold text-emerald-700 dark:text-emerald-400",children:"SR"})," ","and"," ",i.jsx("span",{className:"font-semibold text-violet-600 dark:text-violet-400",children:"Cost"})," ","for"," ",De.map((C,L)=>i.jsxs("span",{children:[i.jsx("span",{className:"font-semibold capitalize",style:{color:Tt[C]??os[0]},children:C}),LN2(C=>!C),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Hm?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Hm&&i.jsx(XH,{merchantId:a,gsmRules:ro,decideParams:{amount:E.amount,currency:E.currency,paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:E.eligible_gateways}})]})]}):ue?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:ue.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${D5e(ue.routing_approach)}`,children:ue.routing_approach})}),je?i.jsx(ke,{size:"sm",variant:"secondary",onClick:()=>M2(je),children:"View audit"}):null,ue.is_scheduled_outage&&i.jsx(Pe,{variant:"red",children:"Scheduled Outage"}),je?i.jsx(Pe,{variant:Be==="CHARGED"?"green":"red",children:Be}):null,ue.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[ue.latency,"ms"]})]})]}),je?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:je}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",Be,". Open audit to inspect the full decide and update flow."]})]}):null,ue.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:ue.routing_dimension})]}),ue.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:ue.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:ue.reset_approach})]})]})]})}),ue.multi_objective_info&&i.jsx(nOe,{info:ue.multi_objective_info}),ce.length>0&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:Jm,className:"text-xs",children:[i.jsx(As,{size:12})," Refresh"]})]})}),i.jsx(ze,{children:i.jsx(Li,{width:"100%",height:ce.length*40+20,children:i.jsxs(Yh,{data:ce,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(Ia,{type:"number",domain:[0,100],tickFormatter:C=>`${C}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(wa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(Vr,{formatter:C=>`${C}%`,contentStyle:il,labelStyle:ol,itemStyle:Ph}),i.jsx(xs,{dataKey:"score",radius:[0,4,4,0],children:ce.map((C,L)=>i.jsx(Ey,{fill:C.name===ue.decided_gateway?"#0069ED":C.score<30?"#ef4444":C.score<60?"#f59e0b":"#10b981"},L))})]})})})]}),ue.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Ec(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Or?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),Or&&i.jsx(ze,{className:"space-y-2",children:Object.entries(ue.filter_wise_gateways).map(([C,L])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:C}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(L)?L.map(Z=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:Z},Z)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},C))})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("button",{onClick:()=>Se(C=>!C),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Vd,{size:14}),"API Response"]}),ae?i.jsx(Ds,{size:14}):i.jsx(wn,{size:14})]})}),ae&&i.jsx(ze,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(ue,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(ze,{className:"py-16 text-center",children:[i.jsx(Ts,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})]})]}),w==="batch"&&yt&&i.jsxs(Te,{className:"mt-6",children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),An.length>0&&i.jsxs("span",{className:"flex items-center gap-2 text-xs text-slate-500 tabular-nums",children:[Ea&&i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onClick:()=>Kt({}),className:"rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-600 hover:bg-brand-50 dark:text-brand-400 dark:hover:bg-brand-900/20 leading-4",children:"Clear filters"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"})]}),i.jsxs("span",{children:[Ea?`${Hn.length} / ${An.length}`:An.length," ","transactions"]})]})]}),i.jsx(ze,{className:"p-0",children:An.length>0?i.jsx("div",{ref:nd,className:"max-h-[560px] overflow-y-auto overflow-x-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsxs("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:[i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-8",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Amount"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap w-20",children:"Network"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap ",children:"Program"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",children:"SR Score"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",title:"Expected-value gap between the top-two EV-ranked PSPs (% of ticket) — the decision's margin of victory. Small values mean it was a close call.",children:"EV Δ (top 2)"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),dt&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),dt&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"})]}),(()=>{const C="w-full rounded border border-slate-200 bg-white px-1.5 py-1 text-[11px] font-normal text-slate-700 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-200 dark:placeholder:text-slate-600",L=(ne,xe)=>Kt(Re=>({...Re,[ne]:xe})),Z=(ne,xe,Re)=>i.jsxs("select",{value:Vt[ne]??"",onChange:ct=>L(ne,ct.target.value),className:C,children:[i.jsx("option",{value:"",children:Re}),xe.map(ct=>i.jsx("option",{value:ct,children:ct},ct))]});return i.jsxs("tr",{className:"bg-white dark:bg-[#0a0a0f] border-b border-slate-100 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"px-2 py-1.5"}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.amount??"",onChange:ne=>L("amount",ne.target.value),placeholder:"search",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:Z("network",Tn.networks,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("program",Tn.programs,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("gateway",Tn.gateways,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.sr??"",onChange:ne=>L("sr",ne.target.value),placeholder:"e.g. 90",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:Vt.evGap??"",onChange:ne=>L("evGap",ne.target.value),placeholder:"e.g. 0.12",className:C})}),i.jsx("th",{className:"px-2 py-1.5",children:Z("routing",Tn.routings,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:Z("outcome",Tn.outcomes,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsxs("select",{value:Vt.cost??"",onChange:ne=>L("cost",ne.target.value),className:C,children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"yes",children:"Has savings"}),i.jsx("option",{value:"no",children:"None"})]})}),dt&&i.jsx("th",{className:"px-2 py-1.5",children:Z("retryGateway",Tn.retryGateways,"All")}),dt&&i.jsx("th",{className:"px-2 py-1.5",children:Z("retryOutcome",Tn.retryOutcomes,"All")})]})})()]}),i.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[Hn.map(({res:C,idx:L})=>{var Z;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>M2(C.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:L+1}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap",children:i.jsx("span",{className:"block font-mono text-xs text-slate-700 dark:text-slate-300 tabular-nums group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:ih(C.amount,C.currency)})}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.cardNetwork??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.cardProgram??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:C.decidedGateway}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:(()=>{var xe;const ne=(xe=C.gatewayPriorityMap)==null?void 0:xe[C.decidedGateway];return typeof ne=="number"?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(ne*100).toFixed(1),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})})()}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:C.evGapTop2!=null?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(C.evGapTop2*100).toFixed(2),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})}),i.jsx("td",{className:"px-3 py-2",children:(Z=C.routingApproach)!=null&&Z.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-amber-50 px-2 py-0.5 text-[11px] font-medium text-amber-700 ring-1 ring-inset ring-amber-200 dark:bg-amber-900/20 dark:text-amber-300 dark:ring-amber-800 leading-4",children:"Hedging"}):C.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-emerald-50 px-2 py-0.5 text-[11px] font-medium text-emerald-700 ring-1 ring-inset ring-emerald-200 dark:bg-emerald-900/20 dark:text-emerald-300 dark:ring-emerald-800 leading-4",children:"Cost Based"}):C.routingApproach==="SR_SELECTION_V3_ROUTING"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Auth Based"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:C.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx("span",{className:`text-xs font-semibold ${C.status==="CHARGED"?"text-emerald-700 dark:text-emerald-400":C.status==="PENDING_VBV"?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}`,children:C.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:C.costWon&&C.costSavedBps!=null&&C.costSavedBps>0&&C.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:R5e(C.costSavedBps,C.amount,C.currency)}):null}),dt&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:C.retryGateway??"—"}),dt&&i.jsx("td",{className:"px-3 py-2",children:C.retryStatus?i.jsx(Pe,{variant:C.retryStatus==="CHARGED"?"green":C.retryStatus==="PENDING_VBV"?"orange":"red",children:C.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},C.paymentId)}),Hn.length===0&&i.jsx("tr",{children:i.jsx("td",{colSpan:dt?12:10,className:"px-3 py-8 text-center text-sm text-slate-500 dark:text-slate-400",children:"No transactions match the current filters."})})]}),Hn.length>0&&i.jsx("tfoot",{className:"sticky bottom-0 z-10 bg-slate-50 dark:bg-[#0a0a0f] border-t border-slate-200 dark:border-[#1c1c24]",children:i.jsxs("tr",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200",children:[i.jsx("td",{className:"px-3 py-2 text-slate-500",children:"Σ"}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap tabular-nums",children:ih(ur.amount,ur.currency)}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsxs("td",{className:"px-3 py-2 whitespace-nowrap font-normal text-slate-500",children:[ur.count.toLocaleString()," rows"]}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums font-normal text-slate-500",title:"Average EV margin of victory across these rows",children:ur.evGapPctAvg!=null?`${ur.evGapPctAvg.toFixed(2)}% avg`:""}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums text-emerald-700 dark:text-emerald-400",children:ih(ur.savings,ur.currency)}),dt&&i.jsx("td",{className:"px-3 py-2"}),dt&&i.jsx("td",{className:"px-3 py-2"})]})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Waiting for the first simulated payment result…"]})})]}),Ar&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>dn(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(wH,{size:22})}),i.jsxs("div",{children:[i.jsx(an,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Ar.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>dn(null),children:i.jsx(Hr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Ar.body}),Ar.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Ar.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(ke,{variant:"secondary",onClick:()=>dn(null),children:"Dismiss"}),Ar.configurePath&&i.jsx(ke,{onClick:()=>{dn(null),t(Ar.configurePath)},children:"Configure"})]})]})]})]}),Et&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:vM}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Et}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[ti!=null&&ti.latest_gateway?i.jsx(Pe,{variant:"green",children:ti.latest_gateway}):null,ti!=null&&ti.latest_status?i.jsx(Pe,{variant:KL(ti.latest_status),children:Ti(ti.latest_status)}):null,ti!=null&&ti.event_count?i.jsxs(Pe,{variant:"gray",children:[ti.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Vn.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:vM,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Vn.isLoading&&!Vn.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading payment audit…"]}):Vn.error?i.jsx(_t,{error:Vn.error.message}):xM.length?i.jsx("div",{className:"space-y-4",children:xM.map(C=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:YL(C.phase),children:C.phase})}),i.jsx("div",{className:"space-y-2",children:C.events.map(L=>i.jsxs("button",{type:"button",onClick:()=>{Sn(L.id),lr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Gn==null?void 0:Gn.id)===L.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:tx(L)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Qg(L.created_at_ms)})]}),i.jsx(Pe,{variant:lb(L),children:Ti(L.status)||qL(L.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:ex(L.route)}),L.gateway?i.jsx(Pe,{variant:"green",children:L.gateway}):null,L.request_id?i.jsx(Pe,{variant:"blue",children:"Request"}):null]})]},L.id))})]},C.phase))}):i.jsx(nx,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Gn?tx(Gn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Gn?`${ex(Gn.route)} · ${Qg(Gn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Gn!=null&&Gn.gateway?i.jsx(Pe,{variant:"green",children:Gn.gateway}):null,Gn!=null&&Gn.status?i.jsx(Pe,{variant:lb(Gn),children:Ti(Gn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(C=>i.jsx("button",{type:"button",onClick:()=>lr(C),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${JL(ha===C)}`,children:C==="raw"?"Raw JSON":Ti(C)},C))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Vn.isLoading&&!Vn.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading inspector…"]}):Bo?i.jsxs("div",{className:"space-y-5",children:[ha==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(ZL,{rows:Bo.summaryRows}),Bo.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:NG(Bo.selectionReason)})]}):null,i.jsx(Vl,{title:"Score Context",value:Bo.scoreContext,emptyMessage:"No scoring context was captured for this event."}),Bo.signalRecord?i.jsx(Vl,{title:"Additional Signals",value:Bo.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ha==="input"?i.jsx(Vl,{title:"Request Payload",value:Bo.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ha==="response"?i.jsx(Vl,{title:"Response Payload",value:Bo.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ha==="raw"?i.jsx(Vl,{title:"Raw Event JSON",value:Bo.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(nx,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),Na&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:bM}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Na}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Zs,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Aa!=null&&Aa.latest_gateway?i.jsx(Pe,{variant:"green",children:Aa.latest_gateway}):null,Aa!=null&&Aa.latest_status?i.jsx(Pe,{variant:KL(Aa.latest_status),children:Ti(Aa.latest_status)}):null,Aa!=null&&Aa.event_count?i.jsxs(Pe,{variant:"gray",children:[Aa.event_count," events"]}):null,i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>Wn.mutate(),children:[i.jsx(As,{size:12}),"Refresh"]}),i.jsxs(ke,{size:"sm",variant:"ghost",onClick:bM,children:[i.jsx(Hr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Wn.isLoading&&!Wn.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision trace…"]}):Wn.error&&X5e(Wn.error)&&Na?i.jsx(p_,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):Wn.error?i.jsx(_t,{error:Wn.error.message}):yM.length?i.jsx("div",{className:"space-y-4",children:yM.map(C=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Pe,{variant:YL(C.phase),children:C.phase})}),i.jsx("div",{className:"space-y-2",children:C.events.map(L=>i.jsxs("button",{type:"button",onClick:()=>{ks(L.id),cr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(qn==null?void 0:qn.id)===L.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:tx(L)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Qg(L.created_at_ms)})]}),i.jsx(Pe,{variant:lb(L),children:Ti(L.status)||qL(L.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Pe,{variant:"gray",children:ex(L.route)}),L.gateway?i.jsx(Pe,{variant:"green",children:L.gateway}):null]})]},L.id))})]},C.phase))}):Na?i.jsx(p_,{title:Aa?"Decision summary available":"Decision trace still arriving",body:Aa?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(nx,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:qn?tx(qn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:qn?`${ex(qn.route)} · ${Qg(qn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[qn!=null&&qn.gateway?i.jsx(Pe,{variant:"green",children:qn.gateway}):null,qn!=null&&qn.status?i.jsx(Pe,{variant:lb(qn),children:Ti(qn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(C=>i.jsx("button",{type:"button",onClick:()=>cr(C),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${JL(Lo===C)}`,children:C==="raw"?"Raw JSON":Ti(C)},C))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Wn.isLoading&&!Wn.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:16}),"Loading decision inspector…"]}):zf?i.jsxs("div",{className:"space-y-5",children:[Lo==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(ZL,{rows:zf.summaryRows}),i.jsx(Vl,{title:"Decision Signals",value:zf.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,Lo==="input"?i.jsx(Vl,{title:"Request Payload",value:zf.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,Lo==="response"?i.jsx(Vl,{title:"Response Payload",value:zf.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,Lo==="raw"?i.jsx(Vl,{title:"Raw Event JSON",value:zf.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):Na&&!((RM=(MM=Wn.data)==null?void 0:MM.timeline)!=null&&RM.length)?i.jsx(p_,{title:Aa?"Waiting for detailed decision step":"Waiting for decision step",body:Aa?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(nx,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function nOe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(ze,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(rOe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function rOe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function aOe(){const{merchantId:t}=Er(),{data:e,error:n,isLoading:r,isEnabled:a,setDebitRoutingEnabled:s}=Iy(t),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(null);async function h(p){if(!t){u("Set a merchant ID first");return}l(!0),u(null),f(null);try{const m=await s(p);f(m.debit_routing_enabled?"Debit routing enabled.":"Debit routing disabled.")}catch(m){u(m instanceof Error?m.message:"Failed to update debit routing")}finally{l(!1)}}return i.jsxs("div",{className:"max-w-3xl space-y-6",children:[i.jsx("div",{children:i.jsx(qr,{title:"Network / Debit Routing"})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Oo,{size:16,className:"text-brand-600"}),i.jsxs("div",{children:[i.jsx(an,{children:"Debit routing access"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Debit Routing Runtime Access"})]})]})}),i.jsxs(ze,{className:"space-y-5",children:[!t&&i.jsx(Fa,{tone:"warning",children:"Set a merchant ID in the top bar to load debit routing access."}),t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Loading debit routing flag..."]}):i.jsx("div",{className:"rounded-[24px] border border-slate-200 bg-slate-50 p-5 dark:border-[#232833] dark:bg-[#0b1017]",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#78849a] leading-4",children:"Current state"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:a?"Enabled":"Disabled"}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:(e==null?void 0:e.merchant_id)||t||"No merchant selected"})]}),i.jsx(ke,{onClick:()=>h(!a),disabled:!t||o||r,variant:a?"secondary":"primary",children:o?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Updating..."]}):a?"Disable Debit Routing":"Enable Debit Routing"})]})}),i.jsx(_t,{error:c||(n instanceof Error?n.message:n?"Failed to load debit routing flag":null)}),d&&i.jsx("p",{className:"text-sm text-emerald-700",children:d})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h2",{className:"font-medium text-slate-800 dark:text-white",children:"What This Controls"})}),i.jsxs(ze,{className:"space-y-3 text-sm text-slate-600 dark:text-[#aab5c8]",children:[i.jsxs("p",{children:["This toggle controls the backend runtime gate for ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"NTW_BASED_ROUTING"})," and hybrid debit routing."]}),i.jsx("p",{children:"Detailed debit fee tables and network cost configuration are still managed outside the dashboard. This toggle enables or disables access to the runtime debit-routing flow."}),i.jsxs("p",{children:["Use Decision Explorer's Debit Routing tab to send a real ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"/decide-gateway"})," request and inspect the ranked debit networks."]})]})]})]})}function q0({label:t,value:e,options:n,onChange:r,ariaLabel:a}){const[s,o]=g.useState(!1),l=e!=="all",c=n.find(u=>u.value===e);return i.jsxs("div",{className:"relative inline-flex",children:[i.jsxs("button",{type:"button","aria-label":a,"aria-expanded":s,onClick:()=>o(u=>!u),className:`inline-flex items-center gap-1 rounded uppercase tracking-wide transition-colors ${l?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]"}`,children:[l?`${t}: ${(c==null?void 0:c.label)??e}`:t,i.jsx(wn,{size:13,className:"shrink-0"})]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>o(!1)}),i.jsx("div",{className:"absolute left-0 top-full z-20 mt-1.5 max-h-64 min-w-[170px] overflow-y-auto rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:n.map(u=>i.jsxs("button",{type:"button",onClick:()=>{r(u.value),o(!1)},className:`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs normal-case tracking-normal transition-colors hover:bg-slate-50 dark:hover:bg-[#1c2030] ${u.value===e?"font-semibold text-brand-600 dark:text-brand-400":"text-slate-600 dark:text-slate-300"}`,children:[i.jsx("span",{className:"truncate",children:u.label}),u.value===e&&i.jsx(gi,{size:12,className:"shrink-0"})]},u.value))})]})]})}function WT({label:t,value:e,onChange:n,ariaLabel:r}){const[a,s]=g.useState(!1);return!a&&!e?i.jsxs("button",{type:"button","aria-label":r,onClick:()=>s(!0),className:"inline-flex items-center gap-1 uppercase tracking-wide text-slate-500 transition-colors hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]",children:[t,i.jsx(Kp,{size:13,className:"shrink-0"})]}):i.jsxs("div",{className:"relative w-[240px] max-w-full",children:[i.jsx(Kp,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{autoFocus:!0,value:e,onChange:o=>n(o.target.value),placeholder:"Filter by name or ID","aria-label":r,className:"w-full rounded-lg border border-slate-200 bg-white py-1.5 pl-8 pr-8 text-sm font-normal normal-case tracking-normal text-slate-800 placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#0d1018] dark:text-slate-100 dark:placeholder:text-[#5b6577]"}),i.jsx("button",{type:"button","aria-label":"Clear name filter",onClick:()=>{n(""),s(!1)},className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200",children:i.jsx(Hr,{size:14})})]})}function HT({items:t}){const[e,n]=g.useState(!1),[r,a]=g.useState({}),s=g.useRef(null),o=g.useRef(null);g.useEffect(()=>{if(!e)return;function u(h){var m,x;const p=h.target;!((m=s.current)!=null&&m.contains(p))&&!((x=o.current)!=null&&x.contains(p))&&n(!1)}function d(h){h.key==="Escape"&&n(!1)}function f(){n(!1)}return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),window.addEventListener("resize",f),window.addEventListener("scroll",f,!0),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d),window.removeEventListener("resize",f),window.removeEventListener("scroll",f,!0)}},[e]);function l(){var p;if(e){n(!1);return}const u=(p=s.current)==null?void 0:p.getBoundingClientRect();if(!u)return;const d=190,f=t.length*38+8,h=u.bottom+f>window.innerHeight-8;a({position:"fixed",top:h?Math.max(8,u.top-f-4):u.bottom+4,left:Math.max(8,u.right-d),width:d,zIndex:9999}),n(!0)}const c={default:"text-slate-700 dark:text-slate-300",positive:"text-emerald-700 dark:text-emerald-400",danger:"text-red-600 dark:text-red-400"};return i.jsxs("div",{className:"flex justify-end",children:[i.jsx("button",{ref:s,type:"button",onClick:l,"aria-label":"Rule actions","aria-haspopup":"menu","aria-expanded":e,className:`rounded-md p-1.5 transition-colors ${e?"bg-slate-100 text-slate-700 dark:bg-[#1c2030] dark:text-white":"text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1c2030] dark:hover:text-white"}`,children:i.jsx(RCe,{size:16})}),e&&fs.createPortal(i.jsx("div",{ref:o,role:"menu",style:r,className:"overflow-hidden rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:t.map(u=>{const d=u.icon;return i.jsxs("button",{type:"button",role:"menuitem",disabled:u.disabled,title:u.disabled?u.hint:void 0,onClick:()=>{n(!1),u.onSelect()},className:`flex w-full items-center gap-2.5 px-3 py-2 text-left text-[13px] font-medium transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent dark:hover:bg-[#1c2030] ${c[u.tone??"default"]} leading-[18px]`,children:[i.jsx(d,{size:14,className:"shrink-0"}),u.label]},u.label)})}),document.body)]})}const sOe=/(Z|[+-]\d{2}:?\d{2})$/i;function CG(t){const e=t.trim();if(!e)return 0;const n=e.replace(/(\.\d{3})\d+/,"$1"),r=new Date(sOe.test(n)?n:`${n}Z`).getTime();return Number.isFinite(r)?r:0}function K0(t){const e=t.modified_at||t.created_at;return e?CG(e):0}function EG(t){const e=K0(t);if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}const m_={"==":"equal","!=":"not_equal",">":"greater_than","<":"less_than",">=":"greater_than_equal","<=":"less_than_equal",in:"equal",not_in:"not_equal"},AG={"==":"equals","!=":"not equals",">":"greater than","<":"less than",">=":"greater than or equal","<=":"less than or equal",in:"is one of",not_in:"is not one of"};function ic(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function OG(t){var r;const e=Object.keys(t)[0]||"payment_method",n=((r=t[e])==null?void 0:r.values)||[];return{id:crypto.randomUUID(),lhs:e,operator:"==",value:n[0]||"",metadataKey:""}}function GT(t){return{id:crypto.randomUUID(),conditions:[OG(t)],nested:[]}}function iOe(t){return{equal:"=",not_equal:"≠",greater_than:">",less_than:"<",greater_than_equal:"≥",less_than_equal:"≤"}[t]??t.replace(/_/g," ")}function oOe(t,e,n){function r(l){return{priority:l.map(c=>({gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}))}}function a(l){return l.outputType==="volume_split"?{volume_split:l.volumeSplitEntries.map(c=>({split:c.split,output:{gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}}))}:l.outputType==="volume_split_priority"?{volume_split_priority:l.volumeSplitPriorityEntries.map(c=>({split:c.split,output:c.gateways.map(u=>({gateway_name:u.gatewayName,gateway_id:u.gatewayId||null}))}))}:r(l.priorityGateways)}function s(l){var f;const c=(f=n[l.lhs])==null?void 0:f.type;if((l.operator==="in"||l.operator==="not_in")&&Array.isArray(l.value))return{lhs:l.lhs,comparison:m_[l.operator],value:{type:"enum_variant_array",value:l.value},metadata:{}};if(c==="udf"||c==="global_ref")return{lhs:l.lhs,comparison:m_[l.operator]||l.operator,value:{type:"metadata_variant",value:{key:l.metadataKey||l.lhs,value:l.value}},metadata:{}};const d=c==="integer"?"number":c==="str_value"?"str_value":"enum_variant";return{lhs:l.lhs,comparison:m_[l.operator]||l.operator,value:{type:d,value:c==="integer"?Number(l.value):l.value},metadata:{}}}function o(l){return{condition:l.conditions.map(s),nested:l.nested.length>0?l.nested.map(o):null}}return{globals:{},default_selection:r(e.priorityGateways),rules:t.map(l=>({name:l.name,routing_type:l.outputType,output:a(l),statements:l.statements.map(o)}))}}const lOe={equal:"==",not_equal:"!=",greater_than:">",less_than:"<",greater_than_equal:">=",less_than_equal:"<="};function cOe(t){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data;if(!n)return{ruleBlocks:[],defaultOutput:{priorityGateways:[]}};function r(u){return u.map(d=>({id:crypto.randomUUID(),gatewayName:d.gateway_name,gatewayId:d.gateway_id??""}))}function a(u){var m,x,y,b,v,w;const d=((m=u.value)==null?void 0:m.type)==="enum_variant_array",f=((x=u.value)==null?void 0:x.type)==="metadata_variant";let h=lOe[u.comparison]??u.comparison;if(d&&u.comparison==="equal"&&(h="in"),d&&u.comparison==="not_equal"&&(h="not_in"),f){const j=(y=u.value)==null?void 0:y.value;return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:String((j==null?void 0:j.value)??""),metadataKey:String((j==null?void 0:j.key)??u.lhs)}}const p=d?Array.isArray((b=u.value)==null?void 0:b.value)?u.value.value:[String((v=u.value)==null?void 0:v.value)]:String(((w=u.value)==null?void 0:w.value)??"");return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:p,metadataKey:""}}function s(u){return{id:crypto.randomUUID(),conditions:(u.condition??[]).map(a),nested:(u.nested??[]).map(s)}}const o=(n.rules??[]).map(u=>{const d=u.output,f=u.routing_type??"priority",h=(d==null?void 0:d.priority)??(d==null?void 0:d.data),p=(d==null?void 0:d.volume_split)??((d==null?void 0:d.type)==="volume_split"?d==null?void 0:d.data:void 0),m=d==null?void 0:d.volume_split_priority;return{id:crypto.randomUUID(),name:u.name||"Cloned Rule",statements:(u.statements??[]).map(s),outputType:f,priorityGateways:f==="priority"?r(Array.isArray(h)?h:[]):[],volumeSplitEntries:f==="volume_split"?(Array.isArray(p)?p:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gatewayName:x.output.gateway_name,gatewayId:x.output.gateway_id??""})):[],volumeSplitPriorityEntries:f==="volume_split_priority"?(Array.isArray(m)?m:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gateways:r(x.output)})):[]}}),l=n.default_selection||n.defaultSelection,c=Array.isArray(l==null?void 0:l.priority)?l.priority:Array.isArray(l==null?void 0:l.data)?l.data:[];return{ruleBlocks:o,defaultOutput:{priorityGateways:r(c)}}}const uOe={equal:"equals",not_equal:"does not equal",greater_than:"greater than",less_than:"less than",greater_than_equal:"at least",less_than_equal:"at most"};function dOe(t,e){return e?t==="not_equal"?"is not one of":"is one of":uOe[t]??AG[t]??t.replace(/_/g," ")}function fOe(t){const e=t.value,n=e==null?void 0:e.value,r=e==null?void 0:e.type;return r==="metadata_variant"&&n&&typeof n=="object"?String(n.value??""):Array.isArray(n)?n.map(a=>ic(String(a))).join(", "):r==="enum_variant"||r==="enum_variant_array"?ic(String(n??"")):String(n??"")}function hOe(t){const e=t.value;if((e==null?void 0:e.type)==="metadata_variant"&&e.value&&typeof e.value=="object"){const n=e.value.key;if(n&&n!==t.lhs)return`${ic(t.lhs)}.${n}`}return ic(t.lhs)}function pOe(t){const e=t.value,n=Array.isArray(e==null?void 0:e.value),r=fOe(t);return`${hOe(t)} ${dOe(t.comparison,n)} ${r||"…"}`.trim()}function mOe(t){var r,a;const e=((r=t.condition)==null?void 0:r.length)??0,n=((a=t.nested)==null?void 0:a.length)??0;return e+(n>0?1:0)>1}function $A(t){let n=(t.condition??[]).map(a=>`(${pOe(a)})`).join(" and ");const r=t.nested??[];if(r.length>0){const a=r.map(s=>mOe(s)?`(${$A(s)})`:$A(s)).filter(Boolean).join(" or ");a&&(n=n?`${n} and (${a})`:`(${a})`)}return n}function gOe(t){const e=(t.statements??[]).map($A).filter(Boolean);return e.length===0?"Always matches":e.length===1?e[0]:e.map(n=>n.includes(" and ")?`(${n})`:n).join(" or ")}function iu(t){const e=t==null?void 0:t.gateway_name;if(e)return t!=null&&t.gateway_id?`${e} (${t.gateway_id})`:e}function qT(t){const e=t.output,n=(e==null?void 0:e.priority)??(e==null?void 0:e.data),r=(e==null?void 0:e.volume_split)??((e==null?void 0:e.type)==="volume_split"?e==null?void 0:e.data:void 0),a=e==null?void 0:e.volume_split_priority,s=Array.isArray(n)?n:[],o=Array.isArray(r)?r:[],l=Array.isArray(a)?a:[];return{priorityGateways:s,volumeSplits:o,volumeSplitPriorityEntries:l,isVolumeSplit:t.routing_type==="volume_split"||o.length>0,isVolumeSplitPriority:t.routing_type==="volume_split_priority"||l.length>0}}function KT(t){const e=t.algorithm_data||t.algorithm;return e==null?void 0:e.data}function xOe(t){var r;const e=((r=KT(t))==null?void 0:r.rules)??[];if(e.length===0)return"No conditions — always matches";const n=gOe(e[0]);return e.length>1?`${n} (+${e.length-1} more)`:n}function yOe(t){var c;const e=KT(t),n=(c=e==null?void 0:e.rules)==null?void 0:c[0];let r="";if(n){const u=qT(n);u.isVolumeSplitPriority?r=u.volumeSplitPriorityEntries.map(d=>{var f;return`${iu((f=d.output)==null?void 0:f[0])??"?"} (${d.split}%)`}).join(" / "):u.isVolumeSplit?r=u.volumeSplits.map(d=>`${iu(d.output)??"?"} (${d.split}%)`).join(" / "):u.priorityGateways.length>0&&(r=`${iu(u.priorityGateways[0])} (Priority 100%)`)}const s=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection),o=Array.isArray(s==null?void 0:s.priority)?s.priority:Array.isArray(s==null?void 0:s.data)?s.data:[],l=iu(o[0]);return r?l?`${r} — fallback ${l}`:r:l?`${l} (fallback only)`:"No destination configured"}function e8(t){const e=KT(t),n=new Set;((e==null?void 0:e.rules)??[]).forEach(o=>{const l=qT(o);l.priorityGateways.forEach(c=>c.gateway_name&&n.add(c.gateway_name)),l.volumeSplits.forEach(c=>{var u;return((u=c.output)==null?void 0:u.gateway_name)&&n.add(c.output.gateway_name)}),l.volumeSplitPriorityEntries.forEach(c=>(c.output??[]).forEach(u=>u.gateway_name&&n.add(u.gateway_name)))});const a=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection);return(Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[]).forEach(o=>o.gateway_name&&n.add(o.gateway_name)),Array.from(n)}function YT({algo:t}){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data,r=(n==null?void 0:n.default_selection)||(n==null?void 0:n.defaultSelection);return i.jsxs("div",{className:"space-y-2.5",children:[((n==null?void 0:n.rules)??[]).map((a,s)=>{const{priorityGateways:o,volumeSplits:l,volumeSplitPriorityEntries:c,isVolumeSplit:u,isVolumeSplitPriority:d}=qT(a);return i.jsxs("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0d1018]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-3 py-1.5",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#78849a] leading-4",children:a.name||`Rule ${s+1}`}),a.routing_type&&i.jsx("span",{className:`text-[11px] font-semibold px-1.5 py-0.5 rounded-full ${a.routing_type==="volume_split_priority"?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":a.routing_type==="volume_split"?"bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-400":"bg-brand-100 dark:bg-brand-900/30 text-brand-600 dark:text-brand-400"} leading-4`,children:a.routing_type==="volume_split_priority"?"Split + Priority":a.routing_type==="volume_split"?"Volume Split":"Priority"})]}),i.jsxs("div",{className:"space-y-1.5 px-3 py-2.5",children:[(a.statements??[]).map((f,h)=>i.jsxs("div",{children:[h>0&&i.jsxs("div",{className:"flex items-center gap-2 my-1.5",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"}),i.jsx("span",{className:"text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"})]}),i.jsx(TG,{statement:f})]},h)),i.jsxs("div",{className:"flex items-start gap-2 pt-0.5 text-xs",children:[i.jsx("span",{className:"w-7 shrink-0 text-right text-[11px] font-bold text-brand-600 select-none leading-4",children:"→"}),i.jsxs("div",{className:"flex flex-wrap gap-1",children:[d?c.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-purple-50 dark:bg-purple-900/20 px-2 py-0.5 text-[11px] font-medium text-purple-700 dark:text-purple-300 leading-4",children:[f.split,"%: ",f.output.map(iu).join(", ")]},h)):u?l.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300 leading-4",children:[iu(f.output)," ",f.split,"%"]},h)):o.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-[11px] font-medium text-brand-700 dark:text-brand-300 leading-4",children:[h+1,". ",iu(f)]},h)),!d&&!u&&o.length===0&&i.jsx("span",{className:"text-slate-500 italic",children:"No output configured"})]})]})]})]},s)}),(()=>{const a=r,s=Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[];return s.length>0?i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("div",{className:"flex flex-wrap gap-1",children:s.map((o,l)=>i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-[11px] font-medium text-slate-600 dark:text-[#8090a8] leading-4",children:iu(o)},l))})]}):i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("span",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Not set — unmatched payments have no gateway"})]})})(),(!(n!=null&&n.rules)||n.rules.length===0)&&i.jsx("p",{className:"text-xs text-slate-500 italic",children:"No rules configured."})]})}function vOe({cond:t,op:e}){var n,r;return i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs",children:[i.jsx("span",{className:"select-none text-[11px] font-bold text-slate-500 dark:text-[#78849a] leading-4",children:e}),i.jsxs("span",{className:"rounded-md bg-slate-100 px-2 py-1 text-slate-700 dark:bg-[#1a1f2a] dark:text-[#c8d0de]",children:[ic(String(t.lhs??""))," ",i.jsx("span",{className:"font-mono text-slate-500 dark:text-[#78849a]",children:iOe(String(t.comparison??""))})," ",i.jsx("span",{className:"font-medium",children:((n=t.value)==null?void 0:n.type)==="metadata_variant"&&t.value.value&&typeof t.value.value=="object"?`{ "${t.value.value.key??""}" : "${t.value.value.value??""}" }`:ic(String(((r=t.value)==null?void 0:r.value)??""))})]})]})}function TG({statement:t}){const e=t.condition??[],n=t.nested??[];return i.jsxs("div",{className:"overflow-hidden rounded-lg border border-slate-200 dark:border-[#1e2330]",children:[i.jsx("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 px-2 py-2",children:e.map((r,a)=>i.jsx(vOe,{cond:r,op:a===0?"IF":"AND"},a))}),n.length>0&&i.jsxs("div",{className:"border-t border-slate-100 px-2 py-2 dark:border-[#1e2330]",children:[i.jsx("p",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:e.length>0?"and any of":"any of"}),i.jsx("div",{className:"space-y-1.5",children:n.map((r,a)=>i.jsxs("div",{children:[a>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("div",{className:"border-l-2 border-sky-200 pl-2 dark:border-sky-800",children:i.jsx(TG,{statement:r})})]},a))})]})]})}function bOe(){const t=Ro(),e=Kr(),{merchantId:n}=Er(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState("all"),[k,_]=g.useState("all"),[S,N]=g.useState(""),{data:E,mutate:P}=ut(n?`/routing/list/${n}`:null,()=>Ve(`/routing/list/${n}`)),{data:M,mutate:A}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`)),O=new Set((M||[]).map(U=>U.id)),D=(M||[]).find(U=>{var ee;return((ee=U.algorithm_data||U.algorithm)==null?void 0:ee.type)==="volume_split"}),I=(M||[]).find(U=>{var ee;return((ee=U.algorithm_data||U.algorithm)==null?void 0:ee.type)==="ab_test"}),X=I?(()=>{var ee;const U=(ee=I.algorithm_data||I.algorithm)==null?void 0:ee.data;return new Set([U==null?void 0:U.control_algorithm_id,U==null?void 0:U.variant_algorithm_id].filter(Boolean))})():new Set,Q=(E||[]).filter(U=>{const ee=U.algorithm_data||U.algorithm;return(ee==null?void 0:ee.type)!=="volume_split"&&(ee==null?void 0:ee.type)!=="ab_test"&&(ee==null?void 0:ee.type)!=="volume_contract"}).sort((U,ee)=>K0(ee)-K0(U)),V=Array.from(new Set(Q.flatMap(e8))).sort(),Y=Q.filter(U=>{if(w==="active"&&!O.has(U.id)||w==="inactive"&&O.has(U.id)||k!=="all"&&!e8(U).includes(k))return!1;if(S.trim()){const ee=S.trim().toLowerCase();if(!U.name.toLowerCase().includes(ee)&&!U.id.toLowerCase().includes(ee))return!1}return!0});function H(U){a(ee=>{const pe=new Set(ee);return pe.has(U)?pe.delete(U):pe.add(U),pe})}async function G(U){if(n){if(D){o(U);return}await $(U)}}async function $(U){h(!0),y(null),v(null);try{await Ve("/routing/activate",{created_by:n,routing_algorithm_id:U}),v("Rule activated successfully."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{h(!1)}}async function F(U){m(U),y(null),v(null);try{await Ve("/routing/deactivate",{created_by:n,routing_algorithm_id:U}),v("Rule deactivated successfully."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{m(null)}}async function R(U){if(n){y(null),v(null);try{await Ve("/routing/delete",{created_by:n,routing_algorithm_id:U}),v("Rule deleted."),await Promise.all([P(),A()])}catch(ee){y(String(ee))}finally{d(null)}}}const z=Q.find(U=>U.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(qs,{open:s!==null,title:"Switch to Rule-Based Routing?",description:`"${D==null?void 0:D.name}" (Volume Split) is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const U=s;o(null),$(U)},onCancel:()=>o(null)}),i.jsx(qs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const U=l;c(null),F(U)},onCancel:()=>c(null)}),i.jsx(qs,{open:u!==null,title:"Delete this rule?",description:`"${z==null?void 0:z.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>R(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(qr,{title:"Rule-Based Routing",description:"Create conditions to route card and alternative payment transactions dynamically across multiple active gateways."})}),i.jsxs(ke,{onClick:()=>e("/routing/rules/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?Q.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No rule-based rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Rule Name & ID",value:S,onChange:N,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:U=>j(U),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Conditions Overview"}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Destination Gateway",value:k,options:[{value:"all",label:"All gateways"},...V.map(U=>({value:U,label:U}))],onChange:_,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Y.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:6,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),_("all"),N("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Y.map(U=>{const ee=O.has(U.id),pe=X.has(U.id),re=r.has(U.id),he=xOe(U),q=yOe(U),W=ee?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":U.name,onClick:()=>H(U.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${ee?"bg-emerald-50/50 dark:bg-emerald-900/10":pe?"bg-purple-50/40 dark:bg-purple-900/10":""}`,children:[i.jsx("td",{className:"align-top px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[re?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:U.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:U.id})]})]})}),i.jsxs("td",{className:"align-top px-5 py-4",children:[i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${ee?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:ee?"Active":"Inactive"}),pe&&i.jsx("span",{className:"mt-1.5 block text-[11px] font-medium text-purple-600 dark:text-purple-400 leading-4",children:"In A/B test"})]}),i.jsx("td",{className:"max-w-[420px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words font-mono text-xs leading-[18px] text-slate-600 dark:text-[#8d96a8]",title:he,children:he})}),i.jsx("td",{className:"max-w-[300px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",title:q,children:q})}),i.jsx("td",{className:"align-top whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const ue=EG(U);return ue?i.jsxs("span",{title:ue.full,children:[ue.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:ue.time})]}):"—"})()}),i.jsx("td",{className:"align-top px-5 py-4",onClick:ue=>ue.stopPropagation(),children:i.jsx(HT,{items:[ee?{label:p===U.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>c(U.id),disabled:p===U.id||!t}:{label:"Activate",icon:bT,tone:"positive",onSelect:()=>G(U.id),disabled:f||!t},{label:"Edit",icon:El,onSelect:()=>e(`/routing/rules/${U.id}/edit`),disabled:!!W,hint:W},{label:"Duplicate",icon:lf,onSelect:()=>e(`/routing/rules/new?cloneFrom=${U.id}`),disabled:!t},{label:"Delete",icon:Cn,tone:"danger",onSelect:()=>d(U.id),disabled:!!W,hint:W}]})})]},U.id),re?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:6,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[U.description&&U.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:U.description}),i.jsx(YT,{algo:U})]})},`${U.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"Volume Split is active"})," — activating a rule-based rule will automatically deactivate it."]}),I&&i.jsxs(Fa,{tone:"info",children:[i.jsxs("strong",{children:['A/B experiment "',I.name,'" is active']}),' — rules marked "In A/B test" are used as experiment arms. Activating a rule directly will stop the experiment.']})]})}function ek({message:t}){return t?i.jsxs("p",{role:"alert",className:"mt-1.5 flex items-start gap-1.5 text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:[i.jsx(PCe,{size:14,className:"mt-px shrink-0"}),i.jsx("span",{children:t})]}):null}function PG(t){return t?"!border-red-400 focus:!ring-red-400 dark:!border-red-500/60":""}let LA=[],MG=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e>1;if(t=MG[r])e=r+1;else return!0;if(e==n)return!1}}function t8(t){return t>=127462&&t<=127487}const n8=8205;function kOe(t,e,n=!0,r=!0){return(n?RG:jOe)(t,e,r)}function RG(t,e,n){if(e==t.length)return e;e&&DG(t.charCodeAt(e))&&IG(t.charCodeAt(e-1))&&e--;let r=g_(t,e);for(e+=r8(r);e=0&&t8(g_(t,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function jOe(t,e,n){for(;e>0;){let r=RG(t,e-2,n);if(r=56320&&t<57344}function IG(t){return t>=55296&&t<56320}function r8(t){return t<65536?1:2}class ln{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,r){[e,n]=Xp(this,e,n);let a=[];return this.decompose(0,e,a,2),r.length&&r.decompose(0,r.length,a,3),this.decompose(n,this.length,a,1),el.from(a,this.length-(n-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=Xp(this,e,n);let r=[];return this.decompose(e,n,r,0),el.from(r,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),a=new Ex(this),s=new Ex(e);for(let o=n,l=n;;){if(a.next(o),s.next(o),o=0,a.lineBreak!=s.lineBreak||a.done!=s.done||a.value!=s.value)return!1;if(l+=a.value.length,a.done||l>=r)return!0}}iter(e=1){return new Ex(this,e)}iterRange(e,n=this.length){return new $G(this,e,n)}iterLines(e,n){let r;if(e==null)r=this.iter();else{n==null&&(n=this.lines+1);let a=this.line(e).from;r=this.iterRange(a,Math.max(a,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new LG(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ln.empty:e.length<=32?new Mr(e):el.from(Mr.split(e,[]))}}class Mr extends ln{constructor(e,n=SOe(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.text[s],l=a+o.length;if((n?r:l)>=e)return new _Oe(a,l,r,o);a=l+1,r++}}decompose(e,n,r,a){let s=e<=0&&n>=this.length?this:new Mr(a8(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(a&1){let o=r.pop(),l=u1(s.text,o.text.slice(),0,s.length);if(l.length<=32)r.push(new Mr(l,o.length+s.length));else{let c=l.length>>1;r.push(new Mr(l.slice(0,c)),new Mr(l.slice(c)))}}else r.push(s)}replace(e,n,r){if(!(r instanceof Mr))return super.replace(e,n,r);[e,n]=Xp(this,e,n);let a=u1(this.text,u1(r.text,a8(this.text,0,e)),n),s=this.length+r.length-(n-e);return a.length<=32?new Mr(a,s):el.from(Mr.split(a,[]),s)}sliceString(e,n=this.length,r=` +`){[e,n]=Xp(this,e,n);let a="";for(let s=0,o=0;s<=n&&oe&&o&&(a+=r),es&&(a+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return a}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let r=[],a=-1;for(let s of e)r.push(s),a+=s.length+1,r.length==32&&(n.push(new Mr(r,a)),r=[],a=-1);return a>-1&&n.push(new Mr(r,a)),n}}class el extends ln{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.children[s],l=a+o.length,c=r+o.lines-1;if((n?c:l)>=e)return o.lineInner(e,n,r,a);a=l+1,r=c+1}}decompose(e,n,r,a){for(let s=0,o=0;o<=n&&s=o){let u=a&((o<=e?1:0)|(c>=n?2:0));o>=e&&c<=n&&!u?r.push(l):l.decompose(e-o,n-o,r,u)}o=c+1}}replace(e,n,r){if([e,n]=Xp(this,e,n),r.lines=s&&n<=l){let c=o.replace(e-s,n-s,r),u=this.lines-o.lines+c.lines;if(c.lines>4&&c.lines>u>>6){let d=this.children.slice();return d[a]=c,new el(d,this.length-(n-e)+r.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,r)}sliceString(e,n=this.length,r=` +`){[e,n]=Xp(this,e,n);let a="";for(let s=0,o=0;se&&s&&(a+=r),eo&&(a+=l.sliceString(e-o,n-o,r)),o=c+1}return a}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof el))return 0;let r=0,[a,s,o,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;a+=n,s+=n){if(a==o||s==l)return r;let c=this.children[a],u=e.children[s];if(c!=u)return r+c.scanIdentical(u,n);r+=c.length+1}}static from(e,n=e.reduce((r,a)=>r+a.length+1,-1)){let r=0;for(let p of e)r+=p.lines;if(r<32){let p=[];for(let m of e)m.flatten(p);return new Mr(p,n)}let a=Math.max(32,r>>5),s=a<<1,o=a>>1,l=[],c=0,u=-1,d=[];function f(p){let m;if(p.lines>s&&p instanceof el)for(let x of p.children)f(x);else p.lines>o&&(c>o||!c)?(h(),l.push(p)):p instanceof Mr&&c&&(m=d[d.length-1])instanceof Mr&&p.lines+m.lines<=32?(c+=p.lines,u+=p.length+1,d[d.length-1]=new Mr(m.text.concat(p.text),m.length+1+p.length)):(c+p.lines>a&&h(),c+=p.lines,u+=p.length+1,d.push(p))}function h(){c!=0&&(l.push(d.length==1?d[0]:el.from(d,u)),u=-1,c=d.length=0)}for(let p of e)f(p);return h(),l.length==1?l[0]:new el(l,n)}}ln.empty=new Mr([""],0);function SOe(t){let e=-1;for(let n of t)e+=n.length+1;return e}function u1(t,e,n=0,r=1e9){for(let a=0,s=0,o=!0;s=n&&(c>r&&(l=l.slice(0,r-a)),a0?1:(e instanceof Mr?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,a=this.nodes[r],s=this.offsets[r],o=s>>1,l=a instanceof Mr?a.text.length:a.children.length;if(o==(n>0?l:0)){if(r==0)return this.done=!0,this.value="",this;n>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[r]+=n,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(a instanceof Mr){let c=a.text[o+(n<0?-1:0)];if(this.offsets[r]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=a.children[o+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[r]+=n):(n<0&&this.offsets[r]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof Mr?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class $G{constructor(e,n,r){this.value="",this.done=!1,this.cursor=new Ex(e,n>r?-1:1),this.pos=n>r?e.length:0,this.from=Math.min(n,r),this.to=Math.max(n,r)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let r=n<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:a}=this.cursor.next(e);return this.pos+=(a.length+e)*n,this.value=a.length<=r?a:n<0?a.slice(a.length-r):a.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LG{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:r,value:a}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=a,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(ln.prototype[Symbol.iterator]=function(){return this.iter()},Ex.prototype[Symbol.iterator]=$G.prototype[Symbol.iterator]=LG.prototype[Symbol.iterator]=function(){return this});class _Oe{constructor(e,n,r,a){this.from=e,this.to=n,this.number=r,this.text=a}get length(){return this.to-this.from}}function Xp(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function ka(t,e,n=!0,r=!0){return kOe(t,e,n,r)}function NOe(t){return t>=56320&&t<57344}function COe(t){return t>=55296&&t<56320}function Ms(t,e){let n=t.charCodeAt(e);if(!COe(n)||e+1==t.length)return n;let r=t.charCodeAt(e+1);return NOe(r)?(n-55296<<10)+(r-56320)+65536:n}function XT(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function tl(t){return t<65536?1:2}const FA=/\r\n?|\n/;var us=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(us||(us={}));class vl{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;ne)return s+(e-a);s+=l}else{if(r!=us.Simple&&u>=e&&(r==us.TrackDel&&ae||r==us.TrackBefore&&ae))return null;if(u>e||u==e&&n<0&&!l)return e==a||n<0?s:s+c;s+=c}a=u}if(e>a)throw new RangeError(`Position ${e} is out of range for changeset of length ${a}`);return s}touchesRange(e,n=e){for(let r=0,a=0;r=0&&a<=n&&l>=e)return an?"cover":!0;a=l}return!1}toString(){let e="";for(let n=0;n=0?":"+a:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new vl(e)}static create(e){return new vl(e)}}class na extends vl{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return BA(this,(n,r,a,s,o)=>e=e.replace(a,a+(r-n),o),!1),e}mapDesc(e,n=!1){return zA(this,e,n,!0)}invert(e){let n=this.sections.slice(),r=[];for(let a=0,s=0;a=0){n[a]=l,n[a+1]=o;let c=a>>1;for(;r.length0&&ou(r,n,s.text),s.forward(d),l+=d}let u=e[o++];for(;l>1].toJSON()))}return e}static of(e,n,r){let a=[],s=[],o=0,l=null;function c(d=!1){if(!d&&!a.length)return;oh||f<0||h>n)throw new RangeError(`Invalid change range ${f} to ${h} (in doc of length ${n})`);let m=p?typeof p=="string"?ln.of(p.split(r||FA)):p:ln.empty,x=m.length;if(f==h&&x==0)return;fo&&Ka(a,f-o,-1),Ka(a,h-f,x),ou(s,a,m),o=h}}return u(e),c(!l),l}static empty(e){return new na(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let a=0;al&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;r.length=0&&n<=0&&n==t[a+1]?t[a]+=e:a>=0&&e==0&&t[a]==0?t[a+1]+=n:r?(t[a]+=e,t[a+1]+=n):t.push(e,n)}function ou(t,e,n){if(n.length==0)return;let r=e.length-2>>1;if(r>1])),!(n||o==t.sections.length||t.sections[o+1]<0);)l=t.sections[o++],c=t.sections[o++];e(a,u,s,d,f),a=u,s=d}}}function zA(t,e,n,r=!1){let a=[],s=r?[]:null,o=new Y0(t),l=new Y0(e);for(let c=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let u=Math.min(o.len,l.len);Ka(a,u,-1),o.forward(u),l.forward(u)}else if(l.ins>=0&&(o.ins<0||c==o.i||o.off==0&&(l.len=0&&c=0){let u=0,d=o.len;for(;d;)if(l.ins==-1){let f=Math.min(d,l.len);u+=f,d-=f,l.forward(f)}else if(l.ins==0&&l.lenc||o.ins>=0&&o.len>c)&&(l||r.length>u),s.forward2(c),o.forward(c)}}}}class Y0{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return n>=e.length?ln.empty:e[n]}textBit(e){let{inserted:n}=this.set,r=this.i-2>>1;return r>=n.length&&!e?ln.empty:n[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Od{constructor(e,n,r){this.from=e,this.to=n,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let r,a;return this.empty?r=a=e.mapPos(this.from,n):(r=e.mapPos(this.from,1),a=e.mapPos(this.to,-1)),r==this.from&&a==this.to?this:new Od(r,a,this.flags)}extend(e,n=e,r=0){if(e<=this.anchor&&n>=this.anchor)return Ee.range(e,n,void 0,void 0,r);let a=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return Ee.range(this.anchor,a,void 0,void 0,r)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Ee.range(e.anchor,e.head)}static create(e,n,r){return new Od(e,n,r)}}class Ee{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:Ee.create(this.ranges.map(r=>r.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Ee(e.ranges.map(n=>Od.fromJSON(n)),e.main)}static single(e,n=e){return new Ee([Ee.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,a=0;aa.from-s.from),n=e.indexOf(r);for(let a=1;as.head?Ee.range(c,l):Ee.range(l,c))}}return new Ee(e,n)}}function BG(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let JT=0;class Qe{constructor(e,n,r,a,s){this.combine=e,this.compareInput=n,this.compare=r,this.isStatic=a,this.id=JT++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Qe(e.combine||(n=>n),e.compareInput||((n,r)=>n===r),e.compare||(e.combine?(n,r)=>n===r:ZT),!!e.static,e.enables)}of(e){return new d1([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new d1(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new d1(e,this,2,n)}from(e,n){return n||(n=r=>r),this.compute([e],r=>n(r.field(e)))}}function ZT(t,e){return t==e||t.length==e.length&&t.every((n,r)=>n===e[r])}class d1{constructor(e,n,r,a){this.dependencies=e,this.facet=n,this.type=r,this.value=a,this.id=JT++}dynamicSlot(e){var n;let r=this.value,a=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,c=!1,u=!1,d=[];for(let f of this.dependencies)f=="doc"?c=!0:f=="selection"?u=!0:((n=e[f.id])!==null&&n!==void 0?n:1)&1||d.push(e[f.id]);return{create(f){return f.values[o]=r(f),1},update(f,h){if(c&&h.docChanged||u&&(h.docChanged||h.selection)||UA(f,d)){let p=r(f);if(l?!s8(p,f.values[o],a):!a(p,f.values[o]))return f.values[o]=p,1}return 0},reconfigure:(f,h)=>{let p,m=h.config.address[s];if(m!=null){let x=nk(h,m);if(this.dependencies.every(y=>y instanceof Qe?h.facet(y)===f.facet(y):y instanceof as?h.field(y,!1)==f.field(y,!1):!0)||(l?s8(p=r(f),x,a):a(p=r(f),x)))return f.values[o]=x,0}else p=r(f);return f.values[o]=p,1}}}}function s8(t,e,n){if(t.length!=e.length)return!1;for(let r=0;rt[c.id]),a=n.map(c=>c.type),s=r.filter(c=>!(c&1)),o=t[e.id]>>1;function l(c){let u=[];for(let d=0;dr===a),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(cb).find(r=>r.field==this);return((n==null?void 0:n.create)||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:r=>(r.values[n]=this.create(r),1),update:(r,a)=>{let s=r.values[n],o=this.updateF(s,a);return this.compareF(s,o)?0:(r.values[n]=o,1)},reconfigure:(r,a)=>{let s=r.facet(cb),o=a.facet(cb),l;return(l=s.find(c=>c.field==this))&&l!=o.find(c=>c.field==this)?(r.values[n]=l.create(r),1):a.config.address[this.id]!=null?(r.values[n]=a.field(this),0):(r.values[n]=this.create(r),1)}}}init(e){return[this,cb.of({field:this,create:e})]}get extension(){return this}}const xd={lowest:4,low:3,default:2,high:1,highest:0};function Cg(t){return e=>new zG(e,t)}const Of={highest:Cg(xd.highest),high:Cg(xd.high),default:Cg(xd.default),low:Cg(xd.low),lowest:Cg(xd.lowest)};class zG{constructor(e,n){this.inner=e,this.prec=n}}class Qj{of(e){return new VA(this,e)}reconfigure(e){return Qj.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class VA{constructor(e,n){this.compartment=e,this.inner=n}}class tk{constructor(e,n,r,a,s,o){for(this.base=e,this.compartments=n,this.dynamicSlots=r,this.address=a,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,n,r){let a=[],s=Object.create(null),o=new Map;for(let h of AOe(e,n,o))h instanceof as?a.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h);let l=Object.create(null),c=[],u=[];for(let h of a)l[h.id]=u.length<<1,u.push(p=>h.slot(p));let d=r==null?void 0:r.config.facets;for(let h in s){let p=s[h],m=p[0].facet,x=d&&d[h]||[];if(p.every(y=>y.type==0))if(l[m.id]=c.length<<1|1,ZT(x,p))c.push(r.facet(m));else{let y=m.combine(p.map(b=>b.value));c.push(r&&m.compare(y,r.facet(m))?r.facet(m):y)}else{for(let y of p)y.type==0?(l[y.id]=c.length<<1|1,c.push(y.value)):(l[y.id]=u.length<<1,u.push(b=>y.dynamicSlot(b)));l[m.id]=u.length<<1,u.push(y=>EOe(y,m,p))}}let f=u.map(h=>h(l));return new tk(e,o,f,l,c,s)}}function AOe(t,e,n){let r=[[],[],[],[],[]],a=new Map;function s(o,l){let c=a.get(o);if(c!=null){if(c<=l)return;let u=r[c].indexOf(o);u>-1&&r[c].splice(u,1),o instanceof VA&&n.delete(o.compartment)}if(a.set(o,l),Array.isArray(o))for(let u of o)s(u,l);else if(o instanceof VA){if(n.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let u=e.get(o.compartment)||o.inner;n.set(o.compartment,u),s(u,l)}else if(o instanceof zG)s(o.inner,o.prec);else if(o instanceof as)r[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof d1)r[l].push(o),o.facet.extensions&&s(o.facet.extensions,xd.default);else{let u=o.extension;if(!u)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(u,l)}}return s(t,xd.default),r.reduce((o,l)=>o.concat(l))}function Ax(t,e){if(e&1)return 2;let n=e>>1,r=t.status[n];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;t.status[n]=4;let a=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|a}function nk(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const UG=Qe.define(),WA=Qe.define({combine:t=>t.some(e=>e),static:!0}),VG=Qe.define({combine:t=>t.length?t[0]:void 0,static:!0}),WG=Qe.define(),HG=Qe.define(),GG=Qe.define(),qG=Qe.define({combine:t=>t.length?t[0]:!1});class Ol{constructor(e,n){this.type=e,this.value=n}static define(){return new OOe}}class OOe{of(e){return new Ol(this,e)}}class TOe{constructor(e){this.map=e}of(e){return new Ft(this,e)}}class Ft{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Ft(this.type,n)}is(e){return this.type==e}static define(e={}){return new TOe(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let r=[];for(let a of e){let s=a.map(n);s&&r.push(s)}return r}}Ft.reconfigure=Ft.define();Ft.appendConfig=Ft.define();class ia{constructor(e,n,r,a,s,o){this.startState=e,this.changes=n,this.selection=r,this.effects=a,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&BG(r,n.newLength),s.some(l=>l.type==ia.time)||(this.annotations=s.concat(ia.time.of(Date.now())))}static create(e,n,r,a,s,o){return new ia(e,n,r,a,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(ia.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}ia.time=Ol.define();ia.userEvent=Ol.define();ia.addToHistory=Ol.define();ia.remote=Ol.define();function POe(t,e){let n=[];for(let r=0,a=0;;){let s,o;if(r=t[r]))s=t[r++],o=t[r++];else if(a=0;a--){let s=r[a](t);s instanceof ia?t=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ia?t=s[0]:t=YG(e,Zh(s),!1)}return t}function ROe(t){let e=t.startState,n=e.facet(GG),r=t;for(let a=n.length-1;a>=0;a--){let s=n[a](t);s&&Object.keys(s).length&&(r=KG(r,HA(e,s,t.changes.newLength),!0))}return r==t?t:ia.create(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}const DOe=[];function Zh(t){return t==null?DOe:Array.isArray(t)?t:[t]}var pr=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(pr||(pr={}));const IOe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let GA;try{GA=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function $Oe(t){if(GA)return GA.test(t);for(let e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||IOe.test(n)))return!0}return!1}function LOe(t){return e=>{if(!/\S/.test(e))return pr.Space;if($Oe(e))return pr.Word;for(let n=0;n-1)return pr.Word;return pr.Other}}class rn{constructor(e,n,r,a,s,o){this.config=e,this.doc=n,this.selection=r,this.values=a,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;la.set(u,c)),n=null),a.set(l.value.compartment,l.value.extension)):l.is(Ft.reconfigure)?(n=null,r=l.value):l.is(Ft.appendConfig)&&(n=null,r=Zh(r).concat(l.value));let s;n?s=e.startState.values.slice():(n=tk.resolve(r,a,this),s=new rn(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,u)=>u.reconfigure(c,this),null).values);let o=e.startState.facet(WA)?e.newSelection:e.newSelection.asSingle();new rn(n,e.newDoc,o,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Ee.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,r=e(n.ranges[0]),a=this.changes(r.changes),s=[r.range],o=Zh(r.effects);for(let l=1;lo.spec.fromJSON(l,c)))}}return rn.create({doc:e.doc,selection:Ee.fromJSON(e.selection),extensions:n.extensions?a.concat([n.extensions]):a})}static create(e={}){let n=tk.resolve(e.extensions||[],new Map),r=e.doc instanceof ln?e.doc:ln.of((e.doc||"").split(n.staticFacet(rn.lineSeparator)||FA)),a=e.selection?e.selection instanceof Ee?e.selection:Ee.single(e.selection.anchor,e.selection.head):Ee.single(0);return BG(a,r.length),n.staticFacet(WA)||(a=a.asSingle()),new rn(n,r,a,n.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(rn.tabSize)}get lineBreak(){return this.facet(rn.lineSeparator)||` +`}get readOnly(){return this.facet(qG)}phrase(e,...n){for(let r of this.facet(rn.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(r,a)=>{if(a=="$")return"$";let s=+(a||1);return!s||s>n.length?r:n[s-1]})),e}languageDataAt(e,n,r=-1){let a=[];for(let s of this.facet(UG))for(let o of s(this,n,r))Object.prototype.hasOwnProperty.call(o,e)&&a.push(o[e]);return a}charCategorizer(e){let n=this.languageDataAt("wordChars",e);return LOe(n.length?n[0]:"")}wordAt(e){let{text:n,from:r,length:a}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,l=e-r;for(;o>0;){let c=ka(n,o,!1);if(s(n.slice(c,o))!=pr.Word)break;o=c}for(;lt.length?t[0]:4});rn.lineSeparator=VG;rn.readOnly=qG;rn.phrases=Qe.define({compare(t,e){let n=Object.keys(t),r=Object.keys(e);return n.length==r.length&&n.every(a=>t[a]==e[a])}});rn.languageData=UG;rn.changeFilter=WG;rn.transactionFilter=HG;rn.transactionExtender=GG;Qj.reconfigure=Ft.define();function Tl(t,e,n={}){let r={};for(let a of t)for(let s of Object.keys(a)){let o=a[s],l=r[s];if(l===void 0)r[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(n,s))r[s]=n[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let a in e)r[a]===void 0&&(r[a]=e[a]);return r}class Pu{eq(e){return this==e}range(e,n=e){return qA.create(e,n,this)}}Pu.prototype.startSide=Pu.prototype.endSide=0;Pu.prototype.point=!1;Pu.prototype.mapMode=us.TrackDel;function QT(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let qA=class XG{constructor(e,n,r){this.from=e,this.to=n,this.value=r}static create(e,n,r){return new XG(e,n,r)}};function KA(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class eP{constructor(e,n,r,a){this.from=e,this.to=n,this.value=r,this.maxPoint=a}get length(){return this.to[this.to.length-1]}findIndex(e,n,r,a=0){let s=r?this.to:this.from;for(let o=a,l=s.length;;){if(o==l)return o;let c=o+l>>1,u=s[c]-e||(r?this.value[c].endSide:this.value[c].startSide)-n;if(c==o)return u>=0?o:l;u>=0?l=c:o=c+1}}between(e,n,r,a){for(let s=this.findIndex(n,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sp||h==p&&u.startSide>0&&u.endSide<=0)continue;(p-h||u.endSide-u.startSide)<0||(o<0&&(o=h),u.point&&(l=Math.max(l,p-h)),r.push(u),a.push(h-o),s.push(p-o))}return{mapped:r.length?new eP(a,s,r,l):null,pos:o}}}class Gt{constructor(e,n,r,a){this.chunkPos=e,this.chunk=n,this.nextLayer=r,this.maxPoint=a}static create(e,n,r,a){return new Gt(e,n,r,a)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:r=!1,filterFrom:a=0,filterTo:s=this.length}=e,o=e.filter;if(n.length==0&&!o)return this;if(r&&(n=n.slice().sort(KA)),this.isEmpty)return n.length?Gt.of(n):this;let l=new JG(this,null,-1).goto(0),c=0,u=[],d=new xc;for(;l.value||c=0){let f=n[c++];d.addInner(f.from,f.to,f.value)||u.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,n-s,r)===!1)return}this.nextLayer.between(e,n,r)}}iter(e=0){return X0.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return X0.from(e).goto(n)}static compare(e,n,r,a,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=n.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),c=i8(o,l,r),u=new Eg(o,c,s),d=new Eg(l,c,s);r.iterGaps((f,h,p)=>o8(u,f,d,h,p,a)),r.empty&&r.length==0&&o8(u,0,d,0,0,a)}static eq(e,n,r=0,a){a==null&&(a=999999999);let s=e.filter(d=>!d.isEmpty&&n.indexOf(d)<0),o=n.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=i8(s,o),c=new Eg(s,l,0).goto(r),u=new Eg(o,l,0).goto(r);for(;;){if(c.to!=u.to||!YA(c.active,u.active)||c.point&&(!u.point||!QT(c.point,u.point)))return!1;if(c.to>a)return!0;c.next(),u.next()}}static spans(e,n,r,a,s=-1){let o=new Eg(e,null,s).goto(n),l=n,c=o.openStart;for(;;){let u=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),f=o.pointFroml&&(a.span(l,u,o.active,c),c=o.openEnd(u));if(o.to>r)return c+(o.point&&o.to>r?1:0);l=o.to,o.next()}}static of(e,n=!1){let r=new xc;for(let a of e instanceof qA?[e]:n?FOe(e):e)r.add(a.from,a.to,a.value);return r.finish()}static join(e){if(!e.length)return Gt.empty;let n=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let a=e[r];a!=Gt.empty;a=a.nextLayer)n=new Gt(a.chunkPos,a.chunk,n,Math.max(a.maxPoint,n.maxPoint));return n}}Gt.empty=new Gt([],[],null,-1);function FOe(t){if(t.length>1)for(let e=t[0],n=1;n0)return t.slice().sort(KA);e=r}return t}Gt.empty.nextLayer=Gt.empty;class xc{finishChunk(e){this.chunks.push(new eP(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,r){this.addInner(e,n,r)||(this.nextLayer||(this.nextLayer=new xc)).add(e,n,r)}addInner(e,n,r){let a=e-this.lastTo||r.startSide-this.last.endSide;if(a<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return a<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=n,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let r=n.value.length-1;return this.last=n.value[r],this.lastFrom=n.from[r]+e,this.lastTo=n.to[r]+e,!0}finish(){return this.finishInner(Gt.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=Gt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function i8(t,e,n){let r=new Map;for(let s of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&a.push(new JG(o,n,r,s));return a.length==1?a[0]:new X0(a)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let r of this.heap)r.goto(e,n);for(let r=this.heap.length>>1;r>=0;r--)x_(this.heap,r);return this.next(),this}forward(e,n){for(let r of this.heap)r.forward(e,n);for(let r=this.heap.length>>1;r>=0;r--)x_(this.heap,r);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),x_(this.heap,0)}}}function x_(t,e){for(let n=t[e];;){let r=(e<<1)+1;if(r>=t.length)break;let a=t[r];if(r+1=0&&(a=t[r+1],r++),n.compare(a)<0)break;t[r]=n,t[e]=a,e=r}}class Eg{constructor(e,n,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=X0.from(e,n,r)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){ub(this.active,e),ub(this.activeTo,e),ub(this.activeRank,e),this.minActive=l8(this.active,this.activeTo)}addActive(e){let n=0,{value:r,to:a,rank:s}=this.cursor;for(;n0;)n++;db(this.active,n,r),db(this.activeTo,n,a),db(this.activeRank,n,s),e&&db(e,n,this.cursor.from),this.minActive=l8(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>e){this.to=this.activeTo[a],this.endSide=this.active[a].endSide;break}this.removeActive(a),r&&ub(r,a)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from=0&&r[a]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&n.push(this.active[r]);return n.reverse()}openEnd(e){let n=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)n++;return n}}function o8(t,e,n,r,a,s){t.goto(e),n.goto(r);let o=r+a,l=r,c=r-e,u=!!s.boundChange;for(let d=!1;;){let f=t.to+c-n.to,h=f||t.endSide-n.endSide,p=h<0?t.to+c:n.to,m=Math.min(p,o);if(t.point||n.point?(t.point&&n.point&&QT(t.point,n.point)&&YA(t.activeForPoint(t.to),n.activeForPoint(n.to))||s.comparePoint(l,m,t.point,n.point),d=!1):(d&&s.boundChange(l),m>l&&!YA(t.active,n.active)&&s.compareRange(l,m,t.active,n.active),u&&mo)break;l=p,h<=0&&t.next(),h>=0&&n.next()}}function YA(t,e){if(t.length!=e.length)return!1;for(let n=0;n=e;r--)t[r+1]=t[r];t[e]=n}function l8(t,e){let n=-1,r=1e9;for(let a=0;a=e)return a;if(a==t.length)break;s+=t.charCodeAt(a)==9?n-s%n:1,a=ka(t,a)}return r===!0?-1:t.length}const JA="ͼ",c8=typeof Symbol>"u"?"__"+JA:Symbol.for(JA),ZA=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),u8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Mu{constructor(e,n){this.rules=[];let{finish:r}=n||{};function a(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,c,u){let d=[],f=/^@(\w+)\b/.exec(o[0]),h=f&&f[1]=="keyframes";if(f&&l==null)return c.push(o[0]+";");for(let p in l){let m=l[p];if(/&/.test(p))s(p.split(/,\s*/).map(x=>o.map(y=>x.replace(/&/,y))).reduce((x,y)=>x.concat(y)),m,c);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(a(p),m,d,h)}else m!=null&&d.push(p.replace(/_.*/,"").replace(/[A-Z]/g,x=>"-"+x.toLowerCase())+": "+m+";")}(d.length||h)&&c.push((r&&!f&&!u?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(a(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=u8[c8]||1;return u8[c8]=e+1,JA+e.toString(36)}static mount(e,n,r){let a=e[ZA],s=r&&r.nonce;a?s&&a.setNonce(s):a=new BOe(e,s),a.mount(Array.isArray(n)?n:[n],e)}}let d8=new Map;class BOe{constructor(e,n){let r=e.ownerDocument||e,a=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&a.CSSStyleSheet){let s=d8.get(r);if(s)return e[ZA]=s;this.sheet=new a.CSSStyleSheet,d8.set(r,this)}else this.styleTag=r.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[ZA]=this}mount(e,n){let r=this.sheet,a=0,s=0;for(let o=0;o-1&&(this.modules.splice(c,1),s--,c=-1),c==-1){if(this.modules.splice(s++,0,l),r)for(let u=0;u",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},zOe=typeof navigator<"u"&&/Mac/.test(navigator.platform),UOe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ra=0;Ra<10;Ra++)Ru[48+Ra]=Ru[96+Ra]=String(Ra);for(var Ra=1;Ra<=24;Ra++)Ru[Ra+111]="F"+Ra;for(var Ra=65;Ra<=90;Ra++)Ru[Ra]=String.fromCharCode(Ra+32),J0[Ra]=String.fromCharCode(Ra);for(var y_ in Ru)J0.hasOwnProperty(y_)||(J0[y_]=Ru[y_]);function VOe(t){var e=zOe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||UOe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?J0:Ru)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function Pn(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var a=n[r];typeof a=="string"?t.setAttribute(r,a):a!=null&&(t[r]=a)}e++}for(;e2);var Ze={mac:p8||/Mac/.test(cs.platform),windows:/Win/.test(cs.platform),linux:/Linux|X11/.test(cs.platform),ie:e2,ie_version:QG?QA.documentMode||6:t5?+t5[1]:e5?+e5[1]:0,gecko:f8,gecko_version:f8?+(/Firefox\/(\d+)/.exec(cs.userAgent)||[0,0])[1]:0,chrome:!!v_,chrome_version:v_?+v_[1]:0,ios:p8,android:/Android\b/.test(cs.userAgent),webkit:h8,webkit_version:h8?+(/\bAppleWebKit\/(\d+)/.exec(cs.userAgent)||[0,0])[1]:0,safari:n5,safari_version:n5?+(/\bVersion\/(\d+(\.\d+)?)/.exec(cs.userAgent)||[0,0])[1]:0,tabSize:QA.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function tP(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const rk=Object.create(null);function nP(t,e,n){if(t==e)return!0;t||(t=rk),e||(e=rk);let r=Object.keys(t),a=Object.keys(e);if(r.length-0!=a.length-0)return!1;for(let s of r)if(s!=n&&(a.indexOf(s)==-1||t[s]!==e[s]))return!1;return!0}function WOe(t,e){for(let n=t.attributes.length-1;n>=0;n--){let r=t.attributes[n].name;e[r]==null&&t.removeAttribute(r)}for(let n in e){let r=e[n];n=="style"?t.style.cssText=r:t.getAttribute(n)!=r&&t.setAttribute(n,r)}}function m8(t,e,n){let r=!1;if(e)for(let a in e)n&&a in n||(r=!0,a=="style"?t.style.cssText="":t.removeAttribute(a));if(n)for(let a in n)e&&e[a]==n[a]||(r=!0,a=="style"?t.style.cssText=n[a]:t.setAttribute(a,n[a]));return r}function HOe(t){let e=Object.create(null);for(let n=0;n0?3e8:-4e8:n>0?1e8:-1e8,new uf(e,n,n,r,e.widget||null,!1)}static replace(e){let n=!!e.block,r,a;if(e.isBlockGap)r=-5e8,a=4e8;else{let{start:s,end:o}=eq(e,n);r=(s?n?-3e8:-1:5e8)-1,a=(o?n?2e8:1:-6e8)+1}return new uf(e,r,a,n,e.widget||null,!0)}static line(e){return new Ly(e)}static set(e,n=!1){return Gt.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}kt.none=Gt.empty;class $y extends kt{constructor(e){let{start:n,end:r}=eq(e);super(n?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?tP(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||rk}eq(e){return this==e||e instanceof $y&&this.tagName==e.tagName&&nP(this.attrs,e.attrs)}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}$y.prototype.point=!1;class Ly extends kt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Ly&&this.spec.class==e.spec.class&&nP(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}Ly.prototype.mapMode=us.TrackBefore;Ly.prototype.point=!0;class uf extends kt{constructor(e,n,r,a,s,o){super(n,r,s,e),this.block=a,this.isReplace=o,this.mapMode=a?n<=0?us.TrackBefore:us.TrackAfter:us.TrackDel}get type(){return this.startSide!=this.endSide?Ba.WidgetRange:this.startSide<=0?Ba.WidgetBefore:Ba.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof uf&&GOe(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}uf.prototype.point=!0;function eq(t,e=!1){let{inclusiveStart:n,inclusiveEnd:r}=t;return n==null&&(n=t.inclusive),r==null&&(r=t.inclusive),{start:n??e,end:r??e}}function GOe(t,e){return t==e||!!(t&&e&&t.compare(e))}function Qh(t,e,n,r=0){let a=n.length-1;a>=0&&n[a]+r>=t?n[a]=Math.max(n[a],e):n.push(t,e)}class Z0 extends Pu{constructor(e,n){super(),this.tagName=e,this.attributes=n}eq(e){return e==this||e instanceof Z0&&this.tagName==e.tagName&&nP(this.attributes,e.attributes)}static create(e){return new Z0(e.tagName,e.attributes||rk)}static set(e,n=!1){return Gt.of(e,n)}}Z0.prototype.startSide=Z0.prototype.endSide=-1;function Q0(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function r5(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function Ox(t,e){if(!e.anchorNode)return!1;try{return r5(t,e.anchorNode)}catch{return!1}}function Tx(t){return t.nodeType==3?ty(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function Px(t,e,n,r){return n?g8(t,e,n,r,-1)||g8(t,e,n,r,1):!1}function Du(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function ak(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function g8(t,e,n,r,a){for(;;){if(t==n&&e==r)return!0;if(e==(a<0?0:yc(t))){if(t.nodeName=="DIV")return!1;let s=t.parentNode;if(!s||s.nodeType!=1)return!1;e=Du(t)+(a<0?0:1),t=s}else if(t.nodeType==1){if(t=t.childNodes[e+(a<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=a<0?yc(t):0}else return!1}}function yc(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function ey(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function qOe(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function tq(t,e){let n=e.width/t.offsetWidth,r=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-t.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}function KOe(t,e,n,r,a,s,o,l){let c=t.ownerDocument,u=c.defaultView||window;for(let d=t,f=!1;d&&!f;)if(d.nodeType==1){let h,p=d==c.body,m=1,x=1;if(p)h=qOe(u);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(f=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let v=d.getBoundingClientRect();({scaleX:m,scaleY:x}=tq(d,v)),h={left:v.left,right:v.left+d.clientWidth*m,top:v.top,bottom:v.top+d.clientHeight*x}}let y=0,b=0;if(a=="nearest")e.top0&&e.bottom>h.bottom+b&&(b=e.bottom-h.bottom+o)):e.bottom>h.bottom-o&&(b=e.bottom-h.bottom+o,n<0&&e.top-b0&&e.right>h.right+y&&(y=e.right-h.right+s)):e.right>h.right-s&&(y=e.right-h.right+s,n<0&&e.lefth.bottom||e.lefth.right)&&(e={left:Math.max(e.left,h.left),right:Math.min(e.right,h.right),top:Math.max(e.top,h.top),bottom:Math.min(e.bottom,h.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function nq(t,e=!0){let n=t.ownerDocument,r=null,a=null;for(let s=t.parentNode;s&&!(s==n.body||(!e||r)&&a);)if(s.nodeType==1)!a&&s.scrollHeight>s.clientHeight&&(a=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:a}}class YOe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:r}=e;this.set(n,Math.min(e.anchorOffset,n?yc(n):0),r,Math.min(e.focusOffset,r?yc(r):0))}set(e,n,r,a){this.anchorNode=e,this.anchorOffset=n,this.focusNode=r,this.focusOffset=a}}let gd=null;Ze.safari&&Ze.safari_version>=26&&(gd=!1);function rq(t){if(t.setActive)return t.setActive();if(gd)return t.focus(gd);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(gd==null?{get preventScroll(){return gd={preventScroll:!0},!0}}:void 0),!gd){gd=!1;for(let n=0;nMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function sq(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r>0)return{node:n,offset:r};if(n.nodeType==1&&r>0){if(n.contentEditable=="false")return null;n=n.childNodes[r-1],r=yc(n)}else if(n.parentNode&&!ak(n))r=Du(n),n=n.parentNode;else return null}}function iq(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r=n){if(l.level==r)return o;(s<0||(a!=0?a<0?l.fromn:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}}function cq(t,e){if(t.length!=e.length)return!1;for(let n=0;n=0;x-=3)if(Vo[x+1]==-p){let y=Vo[x+2],b=y&2?a:y&4?y&1?s:a:0;b&&(Fn[f]=Fn[Vo[x]]=b),l=x;break}}else{if(Vo.length==189)break;Vo[l++]=f,Vo[l++]=h,Vo[l++]=c}else if((m=Fn[f])==2||m==1){let x=m==a;c=x?0:1;for(let y=l-3;y>=0;y-=3){let b=Vo[y+2];if(b&2)break;if(x)Vo[y+2]|=2;else{if(b&4)break;Vo[y+2]|=4}}}}}function r3e(t,e,n,r){for(let a=0,s=r;a<=n.length;a++){let o=a?n[a-1].to:t,l=ac;)m==y&&(m=n[--x].from,y=x?n[x-1].to:t),Fn[--m]=p;c=d}else s=u,c++}}}function s5(t,e,n,r,a,s,o){let l=r%2?2:1;if(r%2==a%2)for(let c=e,u=0;cc&&o.push(new ll(c,x.from,p));let y=x.direction==df!=!(p%2);i5(t,y?r+1:r,a,x.inner,x.from,x.to,o),c=x.to}m=x.to}else{if(m==n||(d?Fn[m]!=l:Fn[m]==l))break;m++}h?s5(t,c,m,r+1,a,h,o):ce;){let d=!0,f=!1;if(!u||c>s[u-1].to){let x=Fn[c-1];x!=l&&(d=!1,f=x==16)}let h=!d&&l==1?[]:null,p=d?r:r+1,m=c;e:for(;;)if(u&&m==s[u-1].to){if(f)break e;let x=s[--u];if(!d)for(let y=x.from,b=u;;){if(y==e)break e;if(b&&s[b-1].to==y)y=s[--b].from;else{if(Fn[y-1]==l)break e;break}}if(h)h.push(x);else{x.toFn.length;)Fn[Fn.length]=256;let r=[],a=e==df?0:1;return i5(t,a,a,n,0,t.length,r),r}function uq(t){return[new ll(0,t,0)]}let dq="";function s3e(t,e,n,r,a){var s;let o=r.head-t.from,l=ll.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),c=e[l],u=c.side(a,n);if(o==u){let h=l+=a?1:-1;if(h<0||h>=e.length)return null;c=e[l=h],o=c.side(!a,n),u=c.side(a,n)}let d=ka(t.text,o,c.forward(a,n));(dc.to)&&(d=u),dq=t.text.slice(Math.min(o,d),Math.max(o,d));let f=l==(a?e.length-1:0)?null:e[l+(a?1:-1)];return f&&d==u&&f.level+(a?0:1)t.some(e=>e)}),vq=Qe.define({combine:t=>t.some(e=>e)}),bq=Qe.define();class tp{constructor(e,n,r,a,s,o=!1){this.range=e,this.y=n,this.x=r,this.yMargin=a,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new tp(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new tp(Ee.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const fb=Ft.define({map:(t,e)=>t.map(e)}),wq=Ft.define();function ps(t,e,n){let r=t.facet(mq);r.length?r[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const Yl=Qe.define({combine:t=>t.length?t[0]:!0});let o3e=0;const Rh=Qe.define({combine(t){return t.filter((e,n)=>{for(let r=0;r{let c=[];return o&&c.push(t2.of(u=>{let d=u.plugin(l);return d?o(d):kt.none})),s&&c.push(s(l)),c})}static fromClass(e,n){return br.define((r,a)=>new e(r,a),n)}}class b_{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(r){if(ps(n.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){ps(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(r){ps(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const kq=Qe.define(),iP=Qe.define(),t2=Qe.define(),jq=Qe.define(),oP=Qe.define(),Fy=Qe.define(),Sq=Qe.define();function y8(t,e){let n=t.state.facet(Sq);if(!n.length)return n;let r=n.map(s=>s instanceof Function?s(t):s),a=[];return Gt.spans(r,e.from,e.to,{point(){},span(s,o,l,c){let u=s-e.from,d=o-e.from,f=a;for(let h=l.length-1;h>=0;h--,c--){let p=l[h].spec.bidiIsolate,m;if(p==null&&(p=i3e(e.text,u,d)),c>0&&f.length&&(m=f[f.length-1]).to==u&&m.direction==p)m.to=d,f=m.inner;else{let x={from:u,to:d,direction:p,inner:[]};f.push(x),f=x.inner}}}}),a}const _q=Qe.define();function lP(t){let e=0,n=0,r=0,a=0;for(let s of t.state.facet(_q)){let o=s(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(a=Math.max(a,o.bottom)))}return{left:e,right:n,top:r,bottom:a}}const rx=Qe.define();class Bi{constructor(e,n,r,a){this.fromA=e,this.toA=n,this.fromB=r,this.toB=a}join(e){return new Bi(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,r=this;for(;n>0;n--){let a=e[n-1];if(!(a.fromA>r.toA)){if(a.toAa.push(new Bi(s,o,l,c))),this.changedRanges=a}static create(e,n,r){return new sk(e,n,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const l3e=[];class Cr{constructor(e,n,r=0){this.dom=e,this.length=n,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return l3e}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let n=this.domAttrs;n&&WOe(this.dom,n)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,n=this.posAtStart){let r=n;for(let a of this.children){if(a==e)return r;r+=a.length+a.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,n){return null}domPosFor(e,n){let r=Du(this.dom),a=this.length?e>0:n>0;return new jo(this.parent.dom,r+(a?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof r2)return e;return null}static get(e){return e.cmTile}}class n2 extends Cr{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let n=this.dom,r=null,a,s=(e==null?void 0:e.node)==n?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,a=r?r.nextSibling:n.firstChild,s&&a!=l.dom&&(s.written=!0),l.dom.parentNode==n)for(;a&&a!=l.dom;)a=v8(a);else n.insertBefore(l.dom,a);r=l.dom}for(a=r?r.nextSibling:n.firstChild,s&&a&&(s.written=!0);a;)a=v8(a);this.length=o}}function v8(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class r2 extends n2{constructor(e,n){super(n),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let n=Cr.get(e);if(n&&this.owns(n))return n;e=e.parentNode}}blockTiles(e){for(let n=[],r=this,a=0,s=0;;)if(a==r.children.length){if(!n.length)return;r=r.parent,r.breakAfter&&s++,a=n.pop()}else{let o=r.children[a++];if(o instanceof oc)n.push(a),r=o,a=0;else{let l=s+o.length,c=e(o,s);if(c!==void 0)return c;s=l+o.breakAfter}}}resolveBlock(e,n){let r,a=-1,s,o=-1;if(this.blockTiles((l,c)=>{let u=c+l.length;if(e>=c&&e<=u){if(l.isWidget()&&n>=-1&&n<=1){if(l.flags&32)return!0;l.flags&16&&(r=void 0)}(ce||e==c&&(n>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-c)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&n<0||!s?{tile:r,offset:a}:{tile:s,offset:o}}}class oc extends n2{constructor(e,n){super(e),this.wrapper=n}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,n){let r=new oc(n||document.createElement(e.tagName),e);return n||(r.flags|=4),r}}class Jp extends n2{constructor(e,n){super(e),this.attrs=n}isLine(){return!0}static start(e,n,r){let a=new Jp(n||document.createElement("div"),e);return(!n||!r)&&(a.flags|=4),a}get domAttrs(){return this.attrs}resolveInline(e,n,r){let a=null,s=-1,o=null,l=-1;function c(d,f){for(let h=0,p=0;h=f&&(m.isComposite()?c(m,f-p):(!o||o.isHidden&&(n>0||r&&u3e(o,m)))&&(x>f||m.flags&32)?(o=m,l=f-p):(pr&&(e=r);let a=e,s=e,o=0;e==0&&n<0||e==r&&n>=0?Ze.chrome||Ze.gecko||(e?(a--,o=1):s=0)?0:l.length-1];return Ze.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(l,u=>u.width)||c),o?ey(c,o<0):c||null}static of(e,n){let r=new Td(n||document.createTextNode(e),e);return n||(r.flags|=2),r}}class ff extends Cr{constructor(e,n,r,a){super(e,n,a),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,n){return this.coordsInWidget(e,n,!1)}coordsInWidget(e,n,r){let a=this.widget.coordsAt(this.dom,e,n);if(a)return a;if(r)return ey(this.dom.getBoundingClientRect(),this.length?e==0:n<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let c=l?s.length-1:0;o=s[c],!(e>0?c==0:c==s.length-1||o.top0;)if(a.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==a.children.length){if(!e&&!l.length)break;r&&r.leave(a),o=!!a.breakAfter,{tile:a,index:s}=l.pop(),s++}else{let c=a.children[s],u=c.breakAfter;(n>0?c.length<=e:c.length=0;l--){let c=n.marks[l],u=a.lastChild;if(u instanceof Is&&u.mark.eq(c.mark))u.dom!=c.dom&&u.setDOM(w_(c.dom)),a=u;else{if(this.cache.reused.get(c)){let f=Cr.get(c.dom);f&&f.setDOM(w_(c.dom))}let d=Is.of(c.mark,c.dom);a.append(d),a=d}this.cache.reused.set(c,2)}let s=Cr.get(e.text);s&&this.cache.reused.set(s,2);let o=new Td(e.text,e.text.nodeValue);o.flags|=8,a.append(o)}addInlineWidget(e,n,r){let a=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);a||this.flushBuffer();let s=this.ensureMarks(n,r);!a&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,n,r){this.flushBuffer(),this.ensureMarks(n,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let n=this.afterWidget||this.lastBlock;n.length+=e,this.pos+=e}addLineStart(e,n){var r;e||(e=Nq);let a=Jp.start(e,n||((r=this.cache.find(Jp))===null||r===void 0?void 0:r.dom),!!n);this.getBlockPos().append(this.lastBlock=this.curLine=a)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,n){var r;let a=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(n>0&&(l=a.lastChild)&&l instanceof Is&&l.mark.eq(o))a=l,n--;else{let c=Is.of(o,(r=this.cache.find(Is,u=>u.mark.eq(o)))===null||r===void 0?void 0:r.dom);a.append(c),a=c,n=0}}return a}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!b8(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Ze.ios&&b8(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(k_,0,32)||new ff(k_.toDOM(),0,k_,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let n=new f3e(e.from,e.to,e.value,e.rank),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let n=this.root;for(let r of this.wrappers){let a=n.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);n.append(s),n=s}}return n}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let n=2|(e<0?16:32),r=this.cache.find(ik,void 0,1);return r&&(r.flags=n),r||new ik(n)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class p3e{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:a,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=a;let l=this.textOff=Math.min(e,a.length);return s?null:a.slice(0,l)}let n=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,n);return this.textOff=n,r}}const ok=[ff,Jp,Td,Is,ik,oc,r2];for(let t=0;t[]),this.index=ok.map(()=>0),this.reused=new Map}add(e){let n=e.constructor.bucket,r=this.buckets[n];r.length<6?r.push(e):r[this.index[n]=(this.index[n]+1)%6]=e}find(e,n,r=2){let a=e.bucket,s=this.buckets[a],o=this.index[a];for(let l=s.length-1;l>=0;l--){let c=(l+o)%s.length,u=s[c];if((!n||n(u))&&!this.reused.has(u))return s.splice(c,1),c{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,n){let r=n&&this.getCompositionContext(n.text);for(let a=0,s=0,o=0;;){let l=oa){let u=c-a;this.preserve(u,!o,!l),a=c,s+=u}if(!l)break;n&&l.fromA<=n.range.fromA&&l.toA>=n.range.toA?(this.forward(l.fromA,n.range.fromA,n.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(c-l);else{let u=c>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Is&&a.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?a.length&&(a.length=s=0):o instanceof Is&&(a.shift(),s=Math.min(s,a.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,n){let r=null,a=this.builder,s=0,o=Gt.spans(this.decorations,e,n,{point:(l,c,u,d,f,h)=>{if(u instanceof uf){if(this.disallowBlockEffectsFor[h]){if(u.block)throw new RangeError("Block decorations may not be specified via plugins");if(c>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,f>d.length)a.continueWidget(c-l);else{let p=u.widget||(u.block?Zp.block:Zp.inline),m=x3e(u),x=this.cache.findWidget(p,c-l,m)||ff.of(p,this.view,c-l,m);u.block?(u.startSide>0&&a.addLineStartIfNotCovered(r),a.addBlockWidget(x)):(a.ensureLine(r),a.addInlineWidget(x,d,f))}r=null}else r=y3e(r,u);c>l&&this.text.skip(c-l)},span:(l,c,u,d)=>{for(let f=l;fs,this.openMarks=o}forward(e,n,r=1){n-e<=10?this.old.advance(n-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(n-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let n=[],r=null;for(let a=e.parentNode;;a=a.parentNode){let s=Cr.get(a);if(a==this.view.contentDOM)break;s instanceof Is?n.push(s):s!=null&&s.isLine()?r=s:s instanceof oc||(a.nodeName=="DIV"&&!r&&a!=this.view.contentDOM?r=new Jp(a,Nq):r||n.push(Is.of(new $y({tagName:a.nodeName.toLowerCase(),attributes:HOe(a)}),a)))}return{line:r,marks:n}}}function b8(t,e){let n=r=>{for(let a of r.children)if((e?a.isText():a.length)||n(a))return!0;return!1};return n(t)}function x3e(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const Nq={class:"cm-line"};function y3e(t,e){let n=e.spec.attributes,r=e.spec.class;return!n&&!r||(t||(t={class:"cm-line"}),n&&tP(n,t),r&&(t.class+=" "+r)),t}function v3e(t){let e=[];for(let n=t.parents.length;n>1;n--){let r=n==t.parents.length?t.tile:t.parents[n].tile;r instanceof Is&&e.push(r.mark)}return e}function w_(t){let e=Cr.get(t);return e&&e.setDOM(t.cloneNode()),t}class Zp extends Pl{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Zp.inline=new Zp("span");Zp.block=new Zp("div");const k_=new class extends Pl{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class w8{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=kt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new r2(e,e.contentDOM),this.updateInner([new Bi(0,0,0,e.state.doc.length)],null)}update(e){var n;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let a=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?a=this.domChanged.newSel.head:!E3e(e.changes,this.hasComposition)&&!e.selectionSet&&(a=e.state.selection.main.head));let s=a>-1?w3e(this.view,e.changes,a):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:f}=this.hasComposition;r=new Bi(d,f,e.changes.mapPos(d,-1),e.changes.mapPos(f,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Ze.ie||Ze.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let c=S3e(o,this.decorations,e.changes);c.length&&(r=Bi.extendWithRanges(r,c));let u=N3e(l,this.blockWrappers,e.changes);return u.length&&(r=Bi.extendWithRanges(r,u)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(n||e.length){let o=this.tile,l=new g3e(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);n&&Cr.get(n.text)&&l.cache.reused.set(Cr.get(n.text),2),this.tile=l.run(e,n),l5(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Ze.chrome||Ze.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let a=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Ox(r,this.view.observer.selectionRange)&&!(a&&r.contains(a));if(!(s||n||o))return;let l=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,u,d;if(c.empty?d=u=this.inlineDOMNearPos(c.anchor,c.assoc||1):(d=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),u=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),Ze.gecko&&c.empty&&!this.hasComposition&&b3e(u)){let h=document.createTextNode("");this.view.observer.ignore(()=>u.node.insertBefore(h,u.node.childNodes[u.offset]||null)),u=d=new jo(h,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!Px(u.node,u.offset,f.anchorNode,f.anchorOffset)||!Px(d.node,d.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,c))&&(this.view.observer.ignore(()=>{Ze.android&&Ze.chrome&&r.contains(f.focusNode)&&C3e(f.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let h=Q0(this.view.root);if(h)if(c.empty){if(Ze.gecko){let p=k3e(u.node,u.offset);if(p&&p!=3){let m=(p==1?sq:iq)(u.node,u.offset);m&&(u=new jo(m.node,m.offset))}}h.collapse(u.node,u.offset),c.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=c.bidiLevel)}else if(h.extend){h.collapse(u.node,u.offset);try{h.extend(d.node,d.offset)}catch{}}else{let p=document.createRange();c.anchor>c.head&&([u,d]=[d,u]),p.setEnd(d.node,d.offset),p.setStart(u.node,u.offset),h.removeAllRanges(),h.addRange(p)}o&&this.view.root.activeElement==r&&(r.blur(),a&&a.focus())}),this.view.observer.setSelectionRange(u,d)),this.impreciseAnchor=u.precise?null:new jo(f.anchorNode,f.anchorOffset),this.impreciseHead=d.precise?null:new jo(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&Px(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,r=Q0(e.root),{anchorNode:a,anchorOffset:s}=e.observer.selectionRange;if(!r||!n.empty||!n.assoc||!r.modify)return;let o=this.lineAt(n.head,n.assoc);if(!o)return;let l=o.posAtStart;if(n.head==l||n.head==l+o.length)return;let c=this.coordsAt(n.head,-1),u=this.coordsAt(n.head,1);if(!c||!u||c.bottom>u.top)return;let d=this.domAtPos(n.head+n.assoc,n.assoc);r.collapse(d.node,d.offset),r.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=n.from&&r.collapse(a,s)}posFromDOM(e,n){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let a=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[n];else{let o=yc(e)==0?0:n==0?-1:1;for(;;){let l=e.parentNode;if(l==r.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return a;for(;s&&!Cr.get(s);)s=s.nextSibling;if(!s)return a+r.length;for(let o=0,l=a;;o++){let c=r.children[o];if(c.dom==s)return l;l+=c.length+c.breakAfter}}else return r.isText()?e==r.dom?a+n:a+(n?r.length:0):a}domAtPos(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.domPosFor(e,n):r.domIn(a,n)}inlineDOMNearPos(e,n){let r,a=-1,s=!1,o,l=-1,c=!1;return this.tile.blockTiles((u,d)=>{if(u.isWidget()){if(u.flags&32&&d>=e)return!0;u.flags&16&&(s=!0)}else{let f=d+u.length;if(d<=e&&(r=u,a=e-d,s=f=e&&!o&&(o=u,l=e-d,c=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,n):(s&&o?r=null:c&&r&&(o=null),r&&n<0||!o?r.domIn(a,n):o.domIn(l,n))}coordsAt(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.widget instanceof j_?null:r.coordsInWidget(a,n,!0):r.coordsIn(a,n)}lineAt(e,n){let{tile:r}=this.tile.resolveBlock(e,n);return r.isLine()?r:null}coordsForChar(e){let{tile:n,offset:r}=this.tile.resolveBlock(e,1);if(!n.isLine())return null;function a(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let c=a(l,o);if(c)return c}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,c=this.view.textDirection==zn.LTR,u=0,d=(f,h,p)=>{for(let m=0;ma);m++){let x=f.children[m],y=h+x.length,b=x.dom.getBoundingClientRect(),{height:v}=b;if(p&&!m&&(u+=b.top-p.top),x instanceof oc)y>r&&d(x,h,b);else if(h>=r&&(u>0&&n.push(-u),n.push(v+u),u=0,o)){let w=x.dom.lastChild,j=w?Tx(w):[];if(j.length){let k=j[j.length-1],_=c?k.right-b.left:b.right-k.left;_>l&&(l=_,this.minWidth=s,this.minWidthFrom=h,this.minWidthTo=y)}}p&&m==f.children.length-1&&(u+=p.bottom-b.bottom),h=y+x.breakAfter}};return d(this.tile,0,null),n}textDirectionAt(e){let{tile:n}=this.tile.resolveBlock(e,1);return getComputedStyle(n.dom).direction=="rtl"?zn.RTL:zn.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,c;for(let u of o.children){if(!u.isText()||/[^ -~]/.test(u.text))return;let d=Tx(u.dom);if(d.length!=1)return;l+=d[0].width,c=d[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:c}}});if(e)return e;let n=document.createElement("div"),r,a,s;return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(n);let o=Tx(n.firstChild)[0];r=n.getBoundingClientRect().height,a=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,n.remove()}),{lineHeight:r,charWidth:a,textHeight:s}}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let r=0,a=0;;a++){let s=a==n.viewports.length?null:n.viewports[a],o=s?s.from-1:this.view.state.doc.length;if(o>r){let l=(n.lineBlockAt(o).bottom-n.lineBlockAt(r).top)/this.view.scaleY;e.push(kt.replace({widget:new j_(l),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return kt.set(e)}updateDeco(){let e=1,n=this.view.state.facet(t2).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,a=this.view.state.facet(oP).map((s,o)=>{let l=typeof s=="function";return l&&(r=!0),l?s(this.view):s});for(a.length&&(this.dynamicDecorationMap[e++]=r,n.push(Gt.join(a))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){var n;if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(bq))try{if(d(this.view,e.range,e))return!0}catch(f){ps(this.view.state,f,"scroll handler")}let{range:r}=e,a=this.coordsAt(r.head,(n=r.assoc)!==null&&n!==void 0?n:r.empty?0:r.head>r.anchor?-1:1),s;if(!a)return;!r.empty&&(s=this.coordsAt(r.anchor,r.anchor>r.head?-1:1))&&(a={left:Math.min(a.left,s.left),top:Math.min(a.top,s.top),right:Math.max(a.right,s.right),bottom:Math.max(a.bottom,s.bottom)});let o=lP(this.view),l={left:a.left-o.left,top:a.top-o.top,right:a.right+o.right,bottom:a.bottom+o.bottom},{offsetWidth:c,offsetHeight:u}=this.view.scrollDOM;if(KOe(this.view.scrollDOM,l,r.head1&&(a.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||a.bottomr.isWidget()||r.children.some(n);return n(this.tile.resolveBlock(e,1).tile)}destroy(){l5(this.tile)}}function l5(t,e){let n=e==null?void 0:e.get(t);if(n!=1){n==null&&t.destroy();for(let r of t.children)l5(r,e)}}function b3e(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function Cq(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let r=sq(n.focusNode,n.focusOffset),a=iq(n.focusNode,n.focusOffset),s=r||a;if(a&&r&&a.node!=r.node){let l=Cr.get(a.node);if(!l||l.isText()&&l.text!=a.node.nodeValue)s=a;else if(t.docView.lastCompositionAfterCursor){let c=Cr.get(r.node);!c||c.isText()&&c.text!=r.node.nodeValue||(s=a)}}if(t.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function w3e(t,e,n){let r=Cq(t,n);if(!r)return null;let{node:a,from:s,to:o}=r,l=a.nodeValue;if(/[\n\r]/.test(l)||t.state.doc.sliceString(r.from,r.to)!=l)return null;let c=e.invertedDesc;return{range:new Bi(c.mapPos(s),c.mapPos(o),s,o),text:a}}function k3e(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(n=!0)}),n}class j_ extends Pl{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function A3e(t,e,n=1){let r=t.charCategorizer(e),a=t.doc.lineAt(e),s=e-a.from;if(a.length==0)return Ee.cursor(e);s==0?n=1:s==a.length&&(n=-1);let o=s,l=s;n<0?o=ka(a.text,s,!1):l=ka(a.text,s);let c=r(a.text.slice(o,l));for(;o>0;){let u=ka(a.text,o,!1);if(r(a.text.slice(u,o))!=c)break;o=u}for(;lt.defaultLineHeight*1.5){let l=t.viewState.heightOracle.textHeight,c=Math.floor((a-n.top-(t.defaultLineHeight-l)*.5)/l);s+=c*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(n.from,n.to);return n.from+XA(o,s,t.state.tabSize)}function c5(t,e,n){let r=t.lineBlockAt(e);if(Array.isArray(r.type)){let a;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!a||s.type==Ba.Text&&(a.type!=s.type||(n<0?s.frome)))&&(a=s)}}return a||r}return r}function T3e(t,e,n,r){let a=c5(t,e.head,e.assoc||-1),s=!r||a.type!=Ba.Text||!(t.lineWrapping||a.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>a.from?e.head-1:e.head);if(s){let o=t.dom.getBoundingClientRect(),l=t.textDirectionAt(a.from),c=t.posAtCoords({x:n==(l==zn.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(c!=null)return Ee.cursor(c,n?-1:1)}return Ee.cursor(n?a.to:a.from,n?-1:1)}function k8(t,e,n,r){let a=t.state.doc.lineAt(e.head),s=t.bidiSpans(a),o=t.textDirectionAt(a.from);for(let l=e,c=null;;){let u=s3e(a,s,o,l,n),d=dq;if(!u){if(a.number==(n?t.state.doc.lines:1))return l;d=` +`,a=t.state.doc.line(a.number+(n?1:-1)),s=t.bidiSpans(a),u=t.visualLineSide(a,!n)}if(c){if(!c(d))return l}else{if(!r)return u;c=r(d)}l=u}}function P3e(t,e,n){let r=t.state.charCategorizer(e),a=r(n);return s=>{let o=r(s);return a==pr.Space&&(a=o),a==o}}function M3e(t,e,n,r){let a=e.head,s=n?1:-1;if(a==(n?t.state.doc.length:0))return Ee.cursor(a,e.assoc);let o=e.goalColumn,l,c=t.contentDOM.getBoundingClientRect(),u=t.coordsAtPos(a,e.assoc||((e.empty?n:e.head==e.from)?1:-1)),d=t.documentTop;if(u)o==null&&(o=u.left-c.left),l=s<0?u.top:u.bottom;else{let m=t.viewState.lineBlockAt(a);o==null&&(o=Math.min(c.right-c.left,t.defaultCharacterWidth*(a-m.from))),l=(s<0?m.top:m.bottom)+d}let f=c.left+o,h=t.viewState.heightOracle.textHeight>>1,p=r??h;for(let m=0;;m+=h){let x=l+(p+m)*s,y=u5(t,{x:f,y:x},!1,s);if(n?x>c.bottom:xl:v{if(e>s&&ea(t)),n.from,e.head>n.from?-1:1);return r==n.from?n:Ee.cursor(r,rt.viewState.docHeight)return new nl(t.state.doc.length,-1);if(u=t.elementAtHeight(c),r==null)break;if(u.type==Ba.Text){if(r<0?u.tot.viewport.to)break;let h=t.docView.coordsAt(r<0?u.from:u.to,r>0?-1:1);if(h&&(r<0?h.top<=c+s:h.bottom>=c+s))break}let f=t.viewState.heightOracle.textHeight/2;c=r>0?u.bottom+f:u.top-f}if(t.viewport.from>=u.to||t.viewport.to<=u.from){if(n)return null;if(u.type==Ba.Text){let f=O3e(t,a,u,o,l);return new nl(f,f==u.from?1:-1)}}if(u.type!=Ba.Text)return c<(u.top+u.bottom)/2?new nl(u.from,1):new nl(u.to,-1);let d=t.docView.lineAt(u.from,2);return(!d||d.length!=u.length)&&(d=t.docView.lineAt(u.from,-2)),new R3e(t,o,l,t.textDirectionAt(u.from)).scanTile(d,u.from)}class R3e{constructor(e,n,r,a){this.view=e,this.x=n,this.y=r,this.baseDir=a,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+a.from>1;t:if(s.has(m)){let y=r+Math.floor(Math.random()*p);for(let b=0;b1)){if(b.bottomthis.y)(!c||c.top>b.top)&&(c=b),v=-1;else{let w=b.left>this.x?this.x-b.left:b.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,n);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,n)}let h=(o?this.dirAt(e[u],1):this.baseDir)==zn.LTR;return{i:u,after:this.x>(f.left+f.right)/2==h}}scanText(e,n){let r=[];for(let s=0;s{let o=r[s]-n,l=r[s+1]-n;return ty(e.dom,o,l).getClientRects()});return a.after?new nl(r[a.i+1],-1):new nl(r[a.i],1)}scanTile(e,n){if(!e.length)return new nl(n,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,n);if(l.isComposite())return this.scanTile(l,n)}let r=[n];for(let l=0,c=n;l{let c=e.children[l];return c.flags&48?null:(c.dom.nodeType==1?c.dom:ty(c.dom,0,c.length)).getClientRects()}),s=e.children[a.i],o=r[a.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):a.after?new nl(r[a.i+1],-1):new nl(o,1)}}const oh="￿";class D3e{constructor(e,n){this.points=e,this.view=n,this.text="",this.lineSeparator=n.state.facet(rn.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=oh}readRange(e,n){if(!e)return this;let r=e.parentNode;for(let a=e;;){this.findPointBefore(r,a);let s=this.text.length;this.readNode(a);let o=Cr.get(a),l=a.nextSibling;if(l==n){o!=null&&o.breakAfter&&!l&&r!=this.view.contentDOM&&this.lineBreak();break}let c=Cr.get(l);(o&&c?o.breakAfter:(o?o.breakAfter:ak(a))||ak(l)&&(a.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!$3e(l,n)&&this.lineBreak(),a=l}return this.findPointBefore(r,n),this}readTextNode(e){let n=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,n.length));for(let r=0,a=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=n.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(l=a.exec(n))&&(s=l.index,o=l[0].length),this.append(n.slice(r,s<0?n.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=o-1);r=s+o}}readNode(e){let n=Cr.get(e),r=n&&n.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let a=r.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==n&&(r.pos=this.text.length)}findPointInside(e,n){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(I3e(e,r.node,r.offset)?n:0))}}function I3e(t,e,n){for(;;){if(!e||n-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=Aq(e.docView.tile,n,r,0))){let c=s||o?[]:B3e(e),u=new D3e(c,e);u.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=u.text,this.newSel=z3e(c,this.bounds.from)}else{let c=e.observer.selectionRange,u=s&&s.node==c.focusNode&&s.offset==c.focusOffset||!r5(e.contentDOM,c.focusNode)?l.main.head:e.docView.posFromDOM(c.focusNode,c.focusOffset),d=o&&o.node==c.anchorNode&&o.offset==c.anchorOffset||!r5(e.contentDOM,c.anchorNode)?l.main.anchor:e.docView.posFromDOM(c.anchorNode,c.anchorOffset),f=e.viewport;if((Ze.ios||Ze.chrome)&&l.main.empty&&u!=d&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange(Ee.range(d,u));else if(e.lineWrapping&&d==u&&!(l.main.empty&&l.main.head==u)&&e.inputState.lastTouchTime>Date.now()-100){let h=e.coordsAtPos(u,-1),p=0;h&&(p=e.inputState.lastTouchY<=h.bottom?-1:1),this.newSel=Ee.create([Ee.cursor(u,p)])}else this.newSel=Ee.single(d,u)}}}function Aq(t,e,n,r){if(t.isComposite()){let a=-1,s=-1,o=-1,l=-1;for(let c=0,u=r,d=r;cn)return Aq(f,e,n,u);if(h>=e&&a==-1&&(a=c,s=u),u>n&&f.dom.parentNode==t.dom){o=c,l=d;break}d=h,u=h+f.breakAfter}return{from:s,to:l<0?r+t.length:l,startDOM:(a?t.children[a-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:r,to:r+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function Oq(t,e){let n,{newSel:r}=e,{state:a}=t,s=a.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:c}=e.bounds,u=s.from,d=null;(o===8||Ze.android&&e.text.length=l&&s.to<=c&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(h=e.text.length-(f.length-(s.to-l)))?n={from:s.from,to:s.to,insert:ln.of(e.text.slice(s.from-l,h).split(oh))}:(p=Tq(f,e.text,u-l,d))&&(Ze.chrome&&o==13&&p.toB==p.from+2&&e.text.slice(p.from,p.toB)==oh+oh&&p.toB--,n={from:l+p.from,to:l+p.toA,insert:ln.of(e.text.slice(p.from,p.toB).split(oh))})}else r&&(!t.hasFocus&&a.facet(Yl)||lk(r,s))&&(r=null);if(!n&&!r)return!1;if((Ze.mac||Ze.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(r&&n.insert.length==2&&(r=Ee.single(r.main.anchor-1,r.main.head-1)),n={from:n.from,to:n.to,insert:ln.of([n.insert.toString().replace("."," ")])}):a.doc.lineAt(s.from).toDate.now()-50?n={from:s.from,to:s.to,insert:a.toText(t.inputState.insertingText)}:Ze.chrome&&n&&n.from==n.to&&n.from==s.head&&n.insert.toString()==` + `&&t.lineWrapping&&(r&&(r=Ee.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:ln.of([" "])}),n)return cP(t,n,r,o);if(r&&!lk(r,s)){let l=!1,c="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(l=!0),c=t.inputState.lastSelectionOrigin,c=="select.pointer"&&(r=Eq(a.facet(Fy).map(u=>u(t)),r))),t.dispatch({selection:r,scrollIntoView:l,userEvent:c}),!0}else return!1}function cP(t,e,n,r=-1){if(Ze.ios&&t.inputState.flushIOSKey(e))return!0;let a=t.state.selection.main;if(Ze.android&&(e.to==a.to&&(e.from==a.from||e.from==a.from-1&&t.state.sliceDoc(e.from,a.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&ep(t.contentDOM,"Enter",13)||(e.from==a.from-1&&e.to==a.to&&e.insert.length==0||r==8&&e.insert.lengtha.head)&&ep(t.contentDOM,"Backspace",8)||e.from==a.from&&e.to==a.to+1&&e.insert.length==0&&ep(t.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,l=()=>o||(o=F3e(t,e,n));return t.state.facet(gq).some(c=>c(t,e.from,e.to,s,l))||t.dispatch(l()),!0}function F3e(t,e,n){let r,a=t.state,s=a.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let c=e.fromf(t)),u,c);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:Ee.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=s.frome.to?a.sliceDoc(e.to,s.to):"";r=a.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+u))}else{let c=a.changes(e),u=n&&n.main.to<=c.newLength?n.main:void 0;if(a.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=t.state.sliceDoc(e.from,e.to),f,h=n&&Cq(t,n.main.head);if(h){let m=e.insert.length-(e.to-e.from);f={from:h.from,to:h.to-m}}else f=t.state.doc.lineAt(s.head);let p=s.to-e.to;r=a.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:c,range:u||m.map(c)};let x=m.to-p,y=x-d.length;if(t.state.sliceDoc(y,x)!=d||x>=f.from&&y<=f.to)return{range:m};let b=a.changes({from:y,to:x,insert:e.insert}),v=m.to-s.to;return{changes:b,range:u?Ee.range(Math.max(0,u.anchor+v),Math.max(0,u.head+v)):m.map(b)}})}else r={changes:c,selection:u&&a.selection.replaceRange(u)}}let l="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,l+=".compose",t.inputState.compositionFirstChange&&(l+=".start",t.inputState.compositionFirstChange=!1)),a.update(r,{userEvent:l,scrollIntoView:!0})}function Tq(t,e,n,r){let a=Math.min(t.length,e.length),s=0;for(;s0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(r=="end"){let c=Math.max(0,s-Math.min(o,l));n-=o+c-s}if(o=o?s-n:0;s-=c,l=s+(l-o),o=s}else if(l=l?s-n:0;s-=c,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function B3e(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}=t.observer.selectionRange;return n&&(e.push(new j8(n,r)),(a!=n||s!=r)&&e.push(new j8(a,s))),e}function z3e(t,e){if(t.length==0)return null;let n=t[0].pos,r=t.length==2?t[1].pos:n;return n>-1&&r>-1?Ee.single(n+e,r+e):null}function lk(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class U3e{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ze.safari&&e.contentDOM.addEventListener("input",()=>null),Ze.gecko&&rTe(e.contentDOM.ownerDocument)}handleEvent(e){!X3e(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let r=this.handlers[e];if(r){for(let a of r.observers)a(this.view,n);for(let a of r.handlers){if(n.defaultPrevented)break;if(a(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=V3e(e),r=this.handlers,a=this.view.contentDOM;for(let s in n)if(s!="scroll"){let o=!n[s].handlers.length,l=r[s];l&&o!=!l.handlers.length&&(a.removeEventListener(s,this.handleEvent),l=null),l||a.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!n[s]&&a.removeEventListener(s,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Mq.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ze.android&&Ze.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return Ze.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&!e.shiftKey&&((n=Pq.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||W3e.indexOf(e.key)>-1&&e.ctrlKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from0?!0:Ze.safari&&!Ze.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function S8(t,e){return(n,r)=>{try{return e.call(t,r,n)}catch(a){ps(n.state,a)}}}function V3e(t){let e=Object.create(null);function n(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of t){let a=r.spec,s=a&&a.plugin.domEventHandlers,o=a&&a.plugin.domEventObservers;if(s)for(let l in s){let c=s[l];c&&n(l).handlers.push(S8(r.value,c))}if(o)for(let l in o){let c=o[l];c&&n(l).observers.push(S8(r.value,c))}}for(let r in To)n(r).handlers.push(To[r]);for(let r in Ks)n(r).observers.push(Ks[r]);return e}const Pq=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],W3e="dthko",Mq=[16,17,18,20,91,92,224,225],hb=6;function pb(t){return Math.max(0,t)*.7+8}function H3e(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class G3e{constructor(e,n,r,a){this.view=e,this.startEvent=n,this.style=r,this.mustSelect=a,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=nq(e.contentDOM),this.atoms=e.state.facet(Fy).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(rn.allowMultipleSelections)&&q3e(e,n),this.dragging=Y3e(e,n)&&Iq(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&H3e(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,r=0,a=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:a,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=lP(this.view);e.clientX-c.left<=a+hb?n=-pb(a-e.clientX):e.clientX+c.right>=o-hb&&(n=pb(e.clientX-o)),e.clientY-c.top<=s+hb?r=-pb(s-e.clientY):e.clientY+c.bottom>=l-hb&&(r=pb(e.clientY-l)),this.setScrollSpeed(n,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,r=Eq(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function q3e(t,e){let n=t.state.facet(fq);return n.length?n[0](e):Ze.mac?e.metaKey:e.ctrlKey}function K3e(t,e){let n=t.state.facet(hq);return n.length?n[0](e):Ze.mac?!e.altKey:!e.ctrlKey}function Y3e(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let r=Q0(t.root);if(!r||r.rangeCount==0)return!0;let a=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function X3e(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,r;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(r=Cr.get(n))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}const To=Object.create(null),Ks=Object.create(null),Rq=Ze.ie&&Ze.ie_version<15||Ze.ios&&Ze.webkit_version<604;function J3e(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),Dq(t,n.value)},50)}function a2(t,e,n){for(let r of t.facet(e))n=r(n,t);return n}function Dq(t,e){e=a2(t.state,aP,e);let{state:n}=t,r,a=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(d5!=null&&n.selection.ranges.every(c=>c.empty)&&d5==s.toString()){let c=-1;r=n.changeByRange(u=>{let d=n.doc.lineAt(u.from);if(d.from==c)return{range:u};c=d.from;let f=n.toText((o?s.line(a++).text:e)+n.lineBreak);return{changes:{from:d.from,insert:f},range:Ee.cursor(u.from+f.length)}})}else o?r=n.changeByRange(c=>{let u=s.line(a++);return{changes:{from:c.from,to:c.to,insert:u.text},range:Ee.cursor(c.from+u.length)}}):r=n.replaceSelection(s);t.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Ks.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Ks.wheel=Ks.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};To.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Ks.touchstart=(t,e)=>{let n=t.inputState,r=e.targetTouches[0];n.lastTouchTime=Date.now(),r&&(n.lastTouchX=r.clientX,n.lastTouchY=r.clientY),n.setSelectionOrigin("select.pointer")};Ks.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};To.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of t.state.facet(pq))if(n=r(t,e),n)break;if(!n&&e.button==0&&(n=Q3e(t,e)),n){let r=!t.hasFocus;t.inputState.startMouseSelection(new G3e(t,e,n,r)),r&&t.observer.ignore(()=>{rq(t.contentDOM);let s=t.root.activeElement;s&&!s.contains(t.contentDOM)&&s.blur()});let a=t.inputState.mouseSelection;if(a)return a.start(e),a.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function _8(t,e,n,r){if(r==1)return Ee.cursor(e,n);if(r==2)return A3e(t.state,e,n);{let a=t.docView.lineAt(e,n),s=t.state.doc.lineAt(a?a.posAtEnd:e),o=a?a.posAtStart:s.from,l=a?a.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(C8+1)%3:1}function Q3e(t,e){let n=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Iq(e),a=t.state.selection;return{update(s){s.docChanged&&(n.pos=s.changes.mapPos(n.pos),a=a.map(s.changes))},get(s,o,l){let c=t.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),u,d=_8(t,c.pos,c.assoc,r);if(n.pos!=c.pos&&!o){let f=_8(t,n.pos,n.assoc,r),h=Math.min(f.from,d.from),p=Math.max(f.to,d.to);d=h1&&(u=eTe(a,c.pos))?u:l?a.addRange(d):Ee.create([d])}}}function eTe(t,e){for(let n=0;n=e)return Ee.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}To.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let a=t.docView.tile.nearest(e.target);if(a&&a.isWidget()){let s=a.posAtStart,o=s+a.length;(s>=n.to||o<=n.from)&&(n=Ee.range(s,o))}}let{inputState:r}=t;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",a2(t.state,sP,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};To.dragend=t=>(t.inputState.draggedContent=null,!1);function A8(t,e,n,r){if(n=a2(t.state,aP,n),!n)return;let a=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=t.inputState,o=r&&s&&K3e(t,e)?{from:s.from,to:s.to}:null,l={from:a,insert:n},c=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(a,-1),head:c.mapPos(a,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}To.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let r=Array(n.length),a=0,s=()=>{++a==n.length&&A8(t,e,r.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(r[o]=l.result),s()},l.readAsText(n[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return A8(t,e,r,!0),!0}return!1};To.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=Rq?null:e.clipboardData;return n?(Dq(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(J3e(t),!1)};function tTe(t,e){let n=t.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),t.focus()},50)}function nTe(t){let e=[],n=[],r=!1;for(let a of t.selection.ranges)a.empty||(e.push(t.sliceDoc(a.from,a.to)),n.push(a));if(!e.length){let a=-1;for(let{from:s}of t.selection.ranges){let o=t.doc.lineAt(s);o.number>a&&(e.push(o.text),n.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),a=o.number}r=!0}return{text:a2(t,sP,e.join(t.lineBreak)),ranges:n,linewise:r}}let d5=null;To.copy=To.cut=(t,e)=>{if(!Ox(t.contentDOM,t.observer.selectionRange))return!1;let{text:n,ranges:r,linewise:a}=nTe(t.state);if(!n&&!a)return!1;d5=a?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Rq?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",n),!0):(tTe(t,n),!1)};const $q=Ol.define();function Lq(t,e){let n=[];for(let r of t.facet(xq)){let a=r(t,e);a&&n.push(a)}return n.length?t.update({effects:n,annotations:$q.of(!0)}):null}function Fq(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=Lq(t.state,e);n?t.dispatch(n):t.update([])}},10)}Ks.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Fq(t)};Ks.blur=t=>{t.observer.clearSelectionRange(),Fq(t)};Ks.compositionstart=Ks.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Ks.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ze.chrome&&Ze.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Ks.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};To.beforeinput=(t,e)=>{var n,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let s=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],c=t.posAtDOM(l.startContainer,l.startOffset),u=t.posAtDOM(l.endContainer,l.endOffset);return cP(t,{from:c,to:u,insert:t.state.toText(s)},null),!0}}let a;if(Ze.chrome&&Ze.android&&(a=Pq.find(s=>s.inputType==e.inputType))&&(t.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return Ze.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),Ze.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Ks.compositionend(t,e),20),!1};const O8=new Set;function rTe(t){O8.has(t)||(O8.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const T8=["pre-wrap","normal","pre-line","break-spaces"];let Qp=!1;function P8(){Qp=!1}class aTe{constructor(e){this.lineWrapping=e,this.doc=ln.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let r=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((n-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return T8.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let r=0;r-1,c=Math.abs(n-this.lineHeight)>.3||this.lineWrapping!=l||Math.abs(r-this.charWidth)>.1;if(this.lineWrapping=l,this.lineHeight=n,this.charWidth=r,this.textHeight=a,this.lineLength=s,c){this.heightSamples={};for(let u=0;u0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>f1&&(Qp=!0),this.height=e)}replace(e,n,r){return ys.of(r)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,r,a){let s=this,o=r.doc;for(let l=a.length-1;l>=0;l--){let{fromA:c,toA:u,fromB:d,toB:f}=a[l],h=s.lineAt(c,Jn.ByPosNoHeight,r.setDoc(n),0,0),p=h.to>=u?h:s.lineAt(u,Jn.ByPosNoHeight,r,0,0);for(f+=p.to-u,u=p.to;l>0&&h.from<=a[l-1].toA;)c=a[l-1].fromA,d=a[l-1].fromB,l--,cs*2){let l=e[n-1];l.break?e.splice(--n,1,l.left,null,l.right):e.splice(--n,1,l.left,l.right),r+=1+l.break,a-=l.size}else if(s>a*2){let l=e[r];l.break?e.splice(r,1,l.left,null,l.right):e.splice(r,1,l.left,l.right),r+=2+l.break,s-=l.size}else break;else if(a=s&&o(this.lineAt(0,Jn.ByPos,r,a,s))}setMeasuredHeight(e){let n=e.heights[e.index++];n<0?(this.spaceAbove=-n,n=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(n)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more&&this.setMeasuredHeight(a),this.outdated=!1,this}toString(){return`block(${this.length})`}}class li extends Bq{constructor(e,n,r){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,n){return new vo(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,n,r){let a=r[0];return r.length==1&&(a instanceof li||a instanceof Ma&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof Ma?a=new li(a.length,this.height,this.spaceAbove):a.height=this.height,this.outdated||(a.outdated=!1),a):ys.of(r)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more?this.setMeasuredHeight(a):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ma extends ys{constructor(e){super(e,0)}heightMetrics(e,n){let r=e.doc.lineAt(n).number,a=e.doc.lineAt(n+this.length).number,s=a-r+1,o,l=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*s);o=c/s,this.length>s+1&&(l=(this.height-c)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:a,perLine:o,perChar:l}}blockAt(e,n,r,a){let{firstLine:s,lastLine:o,perLine:l,perChar:c}=this.heightMetrics(n,a);if(n.lineWrapping){let u=a+(e0){let s=r[r.length-1];s instanceof Ma?r[r.length-1]=new Ma(s.length+a):r.push(null,new Ma(a-1))}if(e>0){let s=r[0];s instanceof Ma?r[0]=new Ma(e+s.length):r.unshift(new Ma(e-1),null)}return ys.of(r)}decomposeLeft(e,n){n.push(new Ma(e-1),null)}decomposeRight(e,n){n.push(null,new Ma(this.length-e-1))}updateHeight(e,n=0,r=!1,a){let s=n+this.length;if(a&&a.from<=n+this.length&&a.more){let o=[],l=Math.max(n,a.from),c=-1;for(a.from>n&&o.push(new Ma(a.from-n-1).updateHeight(e,n));l<=s&&a.more;){let d=e.doc.lineAt(l).length;o.length&&o.push(null);let f=a.heights[a.index++],h=0;f<0&&(h=-f,f=a.heights[a.index++]),c==-1?c=f:Math.abs(f-c)>=f1&&(c=-2);let p=new li(d,f,h);p.outdated=!1,o.push(p),l+=d+1}l<=s&&o.push(null,new Ma(s-l).updateHeight(e,l));let u=ys.of(o);return(c<0||Math.abs(u.height-this.height)>=f1||Math.abs(c-this.heightMetrics(e,n).perLine)>=f1)&&(Qp=!0),ck(this,u)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class oTe extends ys{constructor(e,n,r){super(e.length+n+r.length,e.height+r.height,n|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,n,r,a){let s=r+this.left.height;return el))return u;let d=n==Jn.ByPosNoHeight?Jn.ByPosNoHeight:Jn.ByPos;return c?u.join(this.right.lineAt(l,d,r,o,l)):this.left.lineAt(l,d,r,a,s).join(u)}forEachLine(e,n,r,a,s,o){let l=a+this.left.height,c=s+this.left.length+this.break;if(this.break)e=c&&this.right.forEachLine(e,n,r,l,c,o);else{let u=this.lineAt(c,Jn.ByPos,r,a,s);e=e&&u.from<=n&&o(u),n>u.to&&this.right.forEachLine(u.to+1,n,r,l,c,o)}}replace(e,n,r){let a=this.left.length+this.break;if(nthis.left.length)return this.balanced(this.left,this.right.replace(e-a,n-a,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of r)s.push(l);if(e>0&&M8(s,o-1),n=r&&n.push(null)),e>r&&this.right.decomposeLeft(e-r,n)}decomposeRight(e,n){let r=this.left.length,a=r+this.break;if(e>=a)return this.right.decomposeRight(e-a,n);e2*n.size||n.size>2*e.size?ys.of(this.break?[e,null,n]:[e,n]):(this.left=ck(this.left,e),this.right=ck(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,r=!1,a){let{left:s,right:o}=this,l=n+s.length+this.break,c=null;return a&&a.from<=n+s.length&&a.more?c=s=s.updateHeight(e,n,r,a):s.updateHeight(e,n,r),a&&a.from<=l+o.length&&a.more?c=o=o.updateHeight(e,l,r,a):o.updateHeight(e,l,r),c?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function M8(t,e){let n,r;t[e]==null&&(n=t[e-1])instanceof Ma&&(r=t[e+1])instanceof Ma&&t.splice(e-1,3,new Ma(n.length+1+r.length))}const lTe=5;class uP{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let r=Math.min(n,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof li?a.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new li(r-this.pos,-1,0)),this.writtenTo=r,n>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,r){if(e=lTe)&&this.addLineDeco(a,s,o)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenToe&&this.nodes.push(new li(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,n){let r=new Ma(n-e);return this.oracle.doc.lineAt(e).to==n&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof li)return e;let n=new li(0,-1,0);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,r){let a=this.ensureLine();a.length+=r,a.collapsed+=r,a.widgetHeight=Math.max(a.widgetHeight,e),a.breaks+=n,this.writtenTo=this.pos=this.pos+r}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof li)&&!this.isCovered?this.nodes.push(new li(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&f.overflow!="visible"){let h=d.getBoundingClientRect();s=Math.max(s,h.left),o=Math.min(o,h.right),l=Math.max(l,h.top),c=Math.min(u==t.parentNode?a.innerHeight:c,h.bottom)}u=f.position=="absolute"||f.position=="fixed"?d.offsetParent:d.parentNode}else if(u.nodeType==11)u=u.host;else break;return{left:s-n.left,right:Math.max(s,o)-n.left,top:l-(n.top+e),bottom:Math.max(l,c)-(n.top+e)}}function fTe(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function hTe(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class __{constructor(e,n,r,a){this.from=e,this.to=n,this.size=r,this.displaySize=a}static same(e,n){if(e.length!=n.length)return!1;for(let r=0;rtypeof a!="function"&&a.class=="cm-lineWrapping");this.heightOracle=new aTe(r),this.stateDeco=I8(n),this.heightMap=ys.empty().applyChanges(this.stateDeco,ln.empty,this.heightOracle.setDoc(n.doc),[new Bi(0,0,0,n.doc.length)]);for(let a=0;a<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());a++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=kt.set(this.lineGaps.map(a=>a.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let r=0;r<=1;r++){let a=r?n.head:n.anchor;if(!e.some(({from:s,to:o})=>a>=s&&a<=o)){let{from:s,to:o}=this.lineBlockAt(a);e.push(new mb(s,o))}}return this.viewports=e.sort((r,a)=>r.from-a.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?D8:new dP(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(ax(e,this.scaler))})}update(e,n=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=I8(this.state);let a=e.changedRanges,s=Bi.extendWithRanges(a,cTe(r,this.stateDeco,e?e.changes:na.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);P8(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Qp)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let c=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.headc.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let u=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(u||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(vq)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,n=e.contentDOM,r=window.getComputedStyle(n),a=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?zn.RTL:zn.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=n.getBoundingClientRect(),c=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let u=0,d=0;if(l.width&&l.height){let{scaleX:k,scaleY:_}=tq(n,l);(k>.005&&Math.abs(this.scaleX-k)>.005||_>.005&&Math.abs(this.scaleY-_)>.005)&&(this.scaleX=k,this.scaleY=_,u|=16,o=c=!0)}let f=(parseInt(r.paddingTop)||0)*this.scaleY,h=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=h)&&(this.paddingTop=f,this.paddingBottom=h,u|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(a.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,u|=16);let p=nq(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=aq(this.scrollParent||e.win);let x=(this.printing?hTe:dTe)(n,this.paddingTop),y=x.top-this.pixelViewport.top,b=x.bottom-this.pixelViewport.bottom;this.pixelViewport=x;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(c=!0)),!this.inView&&!this.scrollTarget&&!fTe(e.dom))return 0;let w=l.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,u|=16),c){let k=e.docView.measureVisibleLineHeights(this.viewport);if(a.mustRefreshForHeights(k)&&(o=!0),o||a.lineWrapping&&Math.abs(w-this.contentDOMWidth)>a.charWidth){let{lineHeight:_,charWidth:S,textHeight:N}=e.docView.measureTextSize();o=_>0&&a.refresh(s,_,S,N,Math.max(5,w/S),k),o&&(e.docView.minWidth=0,u|=16)}y>0&&b>0?d=Math.max(y,b):y<0&&b<0&&(d=Math.min(y,b)),P8();for(let _ of this.viewports){let S=_.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(_);this.heightMap=(o?ys.empty().applyChanges(this.stateDeco,ln.empty,this.heightOracle,[new Bi(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(a,0,o,new sTe(_.from,S))}Qp&&(u|=2)}let j=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return j&&(u&2&&(u|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),u|=this.updateForViewport()),(u&2||j)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),a=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,c=new mb(a.lineAt(o-r*1e3,Jn.ByHeight,s,0,0).from,a.lineAt(l+(1-r)*1e3,Jn.ByHeight,s,0,0).to);if(n){let{head:u}=n.range;if(uc.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=a.lineAt(u,Jn.ByPos,s,0,0),h;n.y=="center"?h=(f.top+f.bottom)/2-d/2:n.y=="start"||n.y=="nearest"&&u=l+Math.max(10,Math.min(r,250)))&&a>o-2*1e3&&s>1,o=a<<1;if(this.defaultTextDirection!=zn.LTR&&!r)return[];let l=[],c=(d,f,h,p)=>{if(f-dd&&bb.from>=h.from&&b.to<=h.to&&Math.abs(b.from-d)b.fromv));if(!y){if(fw.from<=f&&w.to>=f)){let w=n.moveToLineBoundary(Ee.cursor(f),!1,!0).head;w>d&&(f=w)}let b=this.gapSize(h,d,f,p),v=r||b<2e6?b:2e6;y=new __(d,f,b,v)}l.push(y)},u=d=>{if(d.length2e6)for(let _ of e)_.from>=d.from&&_.fromd.from&&c(d.from,p,d,f),mn.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let r=[];Gt.spans(n,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let a=0;if(r.length!=this.visibleRanges.length)a=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||ax(this.heightMap.lineAt(e,Jn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||ax(this.heightMap.lineAt(this.scaler.fromDOM(e),Jn.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return ax(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class mb{constructor(e,n){this.from=e,this.to=n}}function mTe(t,e,n){let r=[],a=t,s=0;return Gt.spans(n,t,e,{span(){},point(o,l){o>a&&(r.push({from:a,to:o}),s+=o-a),a=l}},20),a=1)return e[e.length-1].to;let r=Math.floor(t*n);for(let a=0;;a++){let{from:s,to:o}=e[a],l=o-s;if(r<=l)return s+r;r-=l}}function xb(t,e){let n=0;for(let{from:r,to:a}of t.ranges){if(e<=a){n+=e-r;break}n+=a-r}return n/t.total}function gTe(t,e){for(let n of t)if(e(n))return n}const D8={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function I8(t){let e=t.facet(t2).filter(r=>typeof r!="function"),n=t.facet(oP).filter(r=>typeof r!="function");return n.length&&e.push(Gt.join(n)),e}class dP{constructor(e,n,r){let a=0,s=0,o=0;this.viewports=r.map(({from:l,to:c})=>{let u=n.lineAt(l,Jn.ByPos,e,0,0).top,d=n.lineAt(c,Jn.ByPos,e,0,0).bottom;return a+=d-u,{from:l,to:c,top:u,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(n.height-a);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let n=0,r=0,a=0;;n++){let s=nn.from==e.viewports[r].from&&n.to==e.viewports[r].to):!1}}function ax(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),r=e.toDOM(t.bottom);return new vo(t.from,t.length,n,r-n,Array.isArray(t._content)?t._content.map(a=>ax(a,e)):t._content)}const yb=Qe.define({combine:t=>t.join(" ")}),f5=Qe.define({combine:t=>t.indexOf(!0)>-1}),h5=Mu.newName(),zq=Mu.newName(),Uq=Mu.newName(),Vq={"&light":"."+zq,"&dark":"."+Uq};function p5(t,e,n){return new Mu(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,a=>{if(a=="&")return t;if(!n||!n[a])throw new RangeError(`Unsupported selector: ${a}`);return n[a]}):t+" "+r}})}const xTe=p5("."+h5,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Vq),yTe={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},N_=Ze.ie&&Ze.ie_version<=11;class vTe{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new YOe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let r of n)this.queue.push(r);(Ze.ie&&Ze.ie_version<=11||Ze.ios&&e.composing)&&n.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ze.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ze.chrome&&Ze.chrome_version<126)&&(this.editContext=new wTe(e),e.state.facet(Yl)&&(e.contentDOM.editContext=this.editContext.editContext)),N_&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,r)=>n!=e[r]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,a=this.selectionRange;if(r.state.facet(Yl)?r.root.activeElement!=this.dom:!Ox(this.dom,a))return;let s=a.anchorNode&&r.docView.tile.nearest(a.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(Ze.ie&&Ze.ie_version<=11||Ze.android&&Ze.chrome)&&!r.state.selection.main.empty&&a.focusNode&&Px(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=Q0(e.root);if(!n)return!1;let r=Ze.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&bTe(this.view,n)||n;if(!r||this.selectionRange.eq(r))return!1;let a=Ox(this.dom,r);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&ep(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,r=-1,a=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(a=!0),n==-1?{from:n,to:r}=o:(n=Math.min(o.from,n),r=Math.max(o.to,r)))}return{from:n,to:r,typeOver:a}}readChange(){let{from:e,to:n,typeOver:r}=this.processRecords(),a=this.selectionChanged&&Ox(this.dom,this.selectionRange);if(e<0&&!a)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new L3e(this.view,e,n,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let r=this.view.state,a=Oq(this.view,n);return this.view.state==r&&(n.domChanged||n.newSel&&!lk(this.view.state.selection,n.newSel.main))&&this.view.update([]),a}readMutation(e){let n=this.view.docView.tile.nearest(e.target);if(!n||n.isWidget())return null;if(n.markDirty(e.type=="attributes"),e.type=="childList"){let r=$8(n,e.previousSibling||e.target.previousSibling,-1),a=$8(n,e.nextSibling||e.target.nextSibling,1);return{from:r?n.posAfter(r):n.posAtStart,to:a?n.posBefore(a):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Yl)!=e.state.facet(Yl)&&(e.view.contentDOM.editContext=e.state.facet(Yl)?this.editContext.editContext:null))}destroy(){var e,n,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function $8(t,e,n){for(;e;){let r=Cr.get(e);if(r&&r.parent==t)return r;let a=e.parentNode;e=a!=t.dom?a:n>0?e.nextSibling:e.previousSibling}return null}function L8(t,e){let n=e.startContainer,r=e.startOffset,a=e.endContainer,s=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return Px(o.node,o.offset,a,s)&&([n,r,a,s]=[a,s,n,r]),{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}}function bTe(t,e){if(e.getComposedRanges){let a=e.getComposedRanges(t.root)[0];if(a)return L8(t,a)}let n=null;function r(a){a.preventDefault(),a.stopImmediatePropagation(),n=a.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",r,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",r,!0),n?L8(t,n):null}class wTe{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let a=e.state.selection.main,{anchor:s,head:o}=a,l=this.toEditorPos(r.updateRangeStart),c=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:l,drifted:!1});let u=c-l>r.text.length;l==this.from&&sthis.to&&(c=s);let d=Tq(e.state.sliceDoc(l,c),r.text,(u?a.from:a.to)-l,u?"end":null);if(!d){let h=Ee.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));lk(h,a)||e.dispatch({selection:h,userEvent:"select"});return}let f={from:d.from+l,to:d.toA+l,insert:ln.of(r.text.slice(d.from,d.toB).split(` +`))};if((Ze.mac||Ze.android)&&f.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:c,insert:ln.of([r.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let h=this.to-this.from+(f.to-f.from+f.insert.length);cP(e,f,Ee.single(this.toEditorPos(r.selectionStart,h),this.toEditorPos(r.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(n.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let a=[],s=null;for(let o=this.toEditorPos(r.rangeStart),l=this.toEditorPos(r.rangeEnd);o{let a=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let c=this.toEditorPos(s.rangeStart),u=this.toEditorPos(s.rangeEnd);if(c{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)n.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let a=Q0(r.root);a&&a.rangeCount&&this.editContext.updateSelectionBounds(a.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,r=!1,a=this.pendingContextChange;return e.changes.iterChanges((s,o,l,c,u)=>{if(r)return;let d=u.length-(o-s);if(a&&o>=a.to)if(a.from==s&&a.to==o&&a.insert.eq(u)){a=this.pendingContextChange=null,n+=d,this.to+=d;return}else a=null,this.revertPending(e.state);if(s+=n,o+=n,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+u.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),u.toString()),this.to+=d}n+=d}),a&&!r&&this.revertPending(e.state),!r}update(e){let n=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(a=>!a.isUserEvent("input.type")&&a.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),a=this.toContextPos(n.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=a)&&this.editContext.updateSelection(r,a)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class We{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(a=>a.forEach(s=>r(s,this)))||(a=>this.update(a)),this.dispatch=this.dispatch.bind(this),this._root=e.root||XOe(e.parent)||document,this.viewState=new R8(this,e.state||rn.create(e)),e.scrollTo&&e.scrollTo.is(fb)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Rh).map(a=>new b_(a));for(let a of this.plugins)a.update(this);this.observer=new vTe(this),this.inputState=new U3e(this),this.inputState.ensureHandlers(this.plugins),this.docView=new w8(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let n=e.length==1&&e[0]instanceof ia?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,r=!1,a,s=this.state;for(let h of e){if(h.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=h.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,c=null;e.some(h=>h.annotation($q))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,c=Lq(s,o),c||(l=1));let u=this.observer.delayedAndroidKey,d=null;if(u?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(rn.phrases)!=this.state.facet(rn.phrases))return this.setState(s);a=sk.create(this,s,e),a.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(f&&(f=f.map(h.changes)),h.scrollIntoView){let{main:p}=h.state.selection,{x:m,y:x}=this.state.facet(We.cursorScrollMargin);f=new tp(p.empty?p:Ee.cursor(p.head,p.head>p.anchor?-1:1),"nearest","nearest",x,m)}for(let p of h.effects)p.is(fb)&&(f=p.value.clip(this.state))}this.viewState.update(a,f),this.bidiCache=uk.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),n=this.docView.update(a),this.state.facet(rx)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(yb)!=a.state.facet(yb)&&(this.viewState.mustMeasureContent=!0),(n||r||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!a.empty)for(let h of this.state.facet(o5))try{h(a)}catch(p){ps(this.state,p,"update listener")}(c||d)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),d&&!Oq(this,d)&&u.force&&ep(this.contentDOM,u.key,u.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new R8(this,e),this.plugins=e.facet(Rh).map(r=>new b_(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new w8(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(Rh),r=e.state.facet(Rh);if(n!=r){let a=[];for(let s of r){let o=n.indexOf(s);if(o<0)a.push(new b_(s));else{let l=this.plugins[o];l.mustUpdate=e,a.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=a,this.pluginMap.clear()}else for(let a of this.plugins)a.mustUpdate=e;for(let a=0;a-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,r=this.viewState.scrollParent,a=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(a-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(aq(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(a);s=p.from,o=p.top}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];c&4||([this.measureRequests,u]=[u,this.measureRequests]);let d=u.map(p=>{try{return p.read(this)}catch(m){return ps(this.state,m),F8}}),f=sk.create(this,this.state,[]),h=!1;f.flags|=c,n?n.flags|=c:n=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),h=this.docView.update(f),h&&this.docViewUpdate());for(let p=0;p1||m<-1)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){a=a+m,r?r.scrollTop+=m:this.win.scrollBy(0,m),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(o5))l(n)}get themeClasses(){return h5+" "+(this.state.facet(f5)?Uq:zq)+" "+this.state.facet(yb)}updateAttrs(){let e=B8(this,kq,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Yl)?"true":"false",class:"cm-content",style:`${Ze.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),B8(this,iP,n);let r=this.observer.ignore(()=>{let a=m8(this.contentDOM,this.contentAttrs,n),s=m8(this.dom,this.editorAttrs,e);return a||s});return this.editorAttrs=e,this.contentAttrs=n,r}showAnnouncements(e){let n=!0;for(let r of e)for(let a of r.effects)if(a.is(We.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(rx);let e=this.state.facet(We.cspNonce);Mu.mount(this.root,this.styleModules.concat(xTe).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;nr.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,r){return S_(this,e,k8(this,e,n,r))}moveByGroup(e,n){return S_(this,e,k8(this,e,n,r=>P3e(this,e.head,r)))}visualLineSide(e,n){let r=this.bidiSpans(e),a=this.textDirectionAt(e.from),s=r[n?r.length-1:0];return Ee.cursor(s.side(n,a)+e.from,s.forward(!n,a)?1:-1)}moveToLineBoundary(e,n,r=!0){return T3e(this,e,n,r)}moveVertically(e,n,r){return S_(this,e,M3e(this,e,n,r))}domAtPos(e,n=1){return this.docView.domAtPos(e,n)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){this.readMeasured();let r=u5(this,e,n);return r&&r.pos}posAndSideAtCoords(e,n=!0){return this.readMeasured(),u5(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let r=this.docView.coordsAt(e,n);if(!r||r.left==r.right)return r;let a=this.state.doc.lineAt(e),s=this.bidiSpans(a),o=s[ll.find(s,e-a.from,-1,n)];return ey(r,o.dir==zn.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(yq)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>kTe)return uq(e.length);let n=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||cq(s.isolates,r=y8(this,e))))return s.order;r||(r=y8(this,e));let a=a3e(e.text,n,r);return this.bidiCache.push(new uk(e.from,e.to,n,r,!0,a)),a}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ze.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{rq(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){var r,a,s,o;return fb.of(new tp(typeof e=="number"?Ee.cursor(e):e,(r=n.y)!==null&&r!==void 0?r:"nearest",(a=n.x)!==null&&a!==void 0?a:"nearest",(s=n.yMargin)!==null&&s!==void 0?s:5,(o=n.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return fb.of(new tp(Ee.cursor(r.from),"start","start",r.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return br.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return br.define(()=>({}),{eventObservers:e})}static theme(e,n){let r=Mu.newName(),a=[yb.of(r),rx.of(p5(`.${r}`,e))];return n&&n.dark&&a.push(f5.of(!0)),a}static baseTheme(e){return Of.lowest(rx.of(p5("."+h5,e,Vq)))}static findFromDOM(e){var n;let r=e.querySelector(".cm-content"),a=r&&Cr.get(r)||Cr.get(e);return((n=a==null?void 0:a.root)===null||n===void 0?void 0:n.view)||null}}We.styleModule=rx;We.inputHandler=gq;We.clipboardInputFilter=aP;We.clipboardOutputFilter=sP;We.scrollHandler=bq;We.focusChangeEffect=xq;We.perLineTextDirection=yq;We.exceptionSink=mq;We.updateListener=o5;We.editable=Yl;We.mouseSelectionStyle=pq;We.dragMovesSelection=hq;We.clickAddsSelectionRange=fq;We.decorations=t2;We.blockWrappers=jq;We.outerDecorations=oP;We.atomicRanges=Fy;We.bidiIsolatedRanges=Sq;We.cursorScrollMargin=Qe.define({combine:t=>{let e=5,n=5;for(let r of t)typeof r=="number"?e=n=r:{x:e,y:n}=r;return{x:e,y:n}}});We.scrollMargins=_q;We.darkTheme=f5;We.cspNonce=Qe.define({combine:t=>t.length?t[0]:""});We.contentAttributes=iP;We.editorAttributes=kq;We.lineWrapping=We.contentAttributes.of({class:"cm-lineWrapping"});We.announce=Ft.define();const kTe=4096,F8={};class uk{constructor(e,n,r,a,s,o){this.from=e,this.to=n,this.dir=r,this.isolates=a,this.fresh=s,this.order=o}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let r=[],a=e.length?e[e.length-1].dir:zn.LTR;for(let s=Math.max(0,e.length-10);s=0;a--){let s=r[a],o=typeof s=="function"?s(t):s;o&&tP(o,n)}return n}const jTe=Ze.mac?"mac":Ze.windows?"win":Ze.linux?"linux":"key";function STe(t,e){const n=t.split(/-(?!$)/);let r=n[n.length-1];r=="Space"&&(r=" ");let a,s,o,l;for(let c=0;cr.concat(a),[]))),n}function NTe(t,e,n){return Hq(Wq(t.state),e,t,n)}let Xc=null;const CTe=4e3;function ETe(t,e=jTe){let n=Object.create(null),r=Object.create(null),a=(o,l)=>{let c=r[o];if(c==null)r[o]=l;else if(c!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,c,u,d)=>{var f,h;let p=n[o]||(n[o]=Object.create(null)),m=l.split(/ (?!$)/).map(b=>STe(b,e));for(let b=1;b{let j=Xc={view:w,prefix:v,scope:o};return setTimeout(()=>{Xc==j&&(Xc=null)},CTe),!0}]})}let x=m.join(" ");a(x,!1);let y=p[x]||(p[x]={preventDefault:!1,stopPropagation:!1,run:((h=(f=p._any)===null||f===void 0?void 0:f.run)===null||h===void 0?void 0:h.slice())||[]});c&&y.run.push(c),u&&(y.preventDefault=!0),d&&(y.stopPropagation=!0)};for(let o of t){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let u of l){let d=n[u]||(n[u]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let h in d)d[h].run.push(p=>f(p,m5))}let c=o[e]||o.key;if(c)for(let u of l)s(u,c,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(u,"Shift-"+c,o.shift,o.preventDefault,o.stopPropagation)}return n}let m5=null;function Hq(t,e,n,r){m5=e;let a=VOe(e),s=Ms(a,0),o=tl(s)==a.length&&a!=" ",l="",c=!1,u=!1,d=!1;Xc&&Xc.view==n&&Xc.scope==r&&(l=Xc.prefix+" ",Mq.indexOf(e.keyCode)<0&&(u=!0,Xc=null));let f=new Set,h=y=>{if(y){for(let b of y.run)if(!f.has(b)&&(f.add(b),b(n)))return y.stopPropagation&&(d=!0),!0;y.preventDefault&&(y.stopPropagation&&(d=!0),u=!0)}return!1},p=t[r],m,x;return p&&(h(p[l+vb(a,e,!o)])?c=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ze.windows&&e.ctrlKey&&e.altKey)&&!(Ze.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=Ru[e.keyCode])&&m!=a?(h(p[l+vb(m,e,!0)])||e.shiftKey&&(x=J0[e.keyCode])!=a&&x!=m&&h(p[l+vb(x,e,!1)]))&&(c=!0):o&&e.shiftKey&&h(p[l+vb(a,e,!0)])&&(c=!0),!c&&h(p._any)&&(c=!0)),u&&(c=!0),c&&d&&e.stopPropagation(),m5=null,c}class Wd{constructor(e,n,r,a,s){this.className=e,this.left=n,this.top=r,this.width=a,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,r){if(r.empty){let a=e.coordsAtPos(r.head,r.assoc||1);if(!a)return[];let s=Gq(e);return[new Wd(n,a.left-s.left,a.top-s.top,null,a.bottom-a.top)]}else return ATe(e,n,r)}}function Gq(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==zn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function U8(t,e,n,r){let a=t.coordsAtPos(e,n*2);if(!a)return r;let s=t.dom.getBoundingClientRect(),o=(a.top+a.bottom)/2,l=t.posAtCoords({x:s.left+1,y:o}),c=t.posAtCoords({x:s.right-1,y:o});return l==null||c==null?r:{from:Math.max(r.from,Math.min(l,c)),to:Math.min(r.to,Math.max(l,c))}}function ATe(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let r=Math.max(n.from,t.viewport.from),a=Math.min(n.to,t.viewport.to),s=t.textDirection==zn.LTR,o=t.contentDOM,l=o.getBoundingClientRect(),c=Gq(t),u=o.querySelector(".cm-line"),d=u&&window.getComputedStyle(u),f=l.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),h=l.right-(d?parseInt(d.paddingRight):0),p=c5(t,r,1),m=c5(t,a,-1),x=p.type==Ba.Text?p:null,y=m.type==Ba.Text?m:null;if(x&&(t.lineWrapping||p.widgetLineBreaks)&&(x=U8(t,r,1,x)),y&&(t.lineWrapping||m.widgetLineBreaks)&&(y=U8(t,a,-1,y)),x&&y&&x.from==y.from&&x.to==y.to)return v(w(n.from,n.to,x));{let k=x?w(n.from,null,x):j(p,!1),_=y?w(null,n.to,y):j(m,!0),S=[];return(x||p).to<(y||m).from-(x&&y?1:0)||p.widgetLineBreaks>1&&k.bottom+t.defaultLineHeight/2<_.top?S.push(b(f,k.bottom,h,_.top)):k.bottom<_.top&&t.elementAtHeight((k.bottom+_.top)/2).type==Ba.Text&&(k.bottom=_.top=(k.bottom+_.top)/2),v(k).concat(S).concat(v(_))}function b(k,_,S,N){return new Wd(e,k-c.left,_-c.top,Math.max(0,S-k),N-_)}function v({top:k,bottom:_,horizontal:S}){let N=[];for(let E=0;EA&&D.from=X)break;H>I&&M(Math.max(Y,I),k==null&&Y<=A,Math.min(H,X),_==null&&H>=O,V.dir)}if(I=Q.to+1,I>=X)break}return P.length==0&&M(A,k==null,O,_==null,t.textDirection),{top:N,bottom:E,horizontal:P}}function j(k,_){let S=l.top+(_?k.top:k.bottom);return{top:S,bottom:S,horizontal:[]}}}function OTe(t,e){return t.constructor==e.constructor&&t.eq(e)}class TTe{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(h1)!=e.state.facet(h1)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,r=e.facet(h1);for(;n!OTe(n,this.drawn[r]))){let n=this.dom.firstChild,r=0;for(let a of e)a.update&&n&&a.constructor&&this.drawn[r].constructor&&a.update(n,this.drawn[r])?(n=n.nextSibling,r++):this.dom.insertBefore(a.draw(),n);for(;n;){let a=n.nextSibling;n.remove(),n=a}this.drawn=e,Ze.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const h1=Qe.define();function qq(t){return[br.define(e=>new TTe(e,t)),h1.of(t)]}const em=Qe.define({combine(t){return Tl(t,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function PTe(t={}){return[em.of(t),MTe,RTe,DTe,vq.of(!0)]}function Kq(t){return t.startState.facet(em)!=t.state.facet(em)}const MTe=qq({above:!0,markers(t){let{state:e}=t,n=e.facet(em),r=[];for(let a of e.selection.ranges){let s=a==e.selection.main;if(a.empty||n.drawRangeCursor&&!(s&&Ze.ios&&n.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=a.empty?a:Ee.cursor(a.head,a.assoc);for(let c of Wd.forRange(t,o,l))r.push(c)}}return r},update(t,e){t.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=Kq(t);return n&&V8(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){V8(e.state,t)},class:"cm-cursorLayer"});function V8(t,e){e.style.animationDuration=t.facet(em).cursorBlinkRate+"ms"}const RTe=qq({above:!1,markers(t){let e=[],{main:n,ranges:r}=t.state.selection;for(let a of r)if(!a.empty)for(let s of Wd.forRange(t,"cm-selectionBackground",a))e.push(s);if(Ze.ios&&!n.empty&&t.state.facet(em).iosSelectionHandles){for(let a of Wd.forRange(t,"cm-selectionHandle cm-selectionHandle-start",Ee.cursor(n.from,1)))e.push(a);for(let a of Wd.forRange(t,"cm-selectionHandle cm-selectionHandle-end",Ee.cursor(n.to,1)))e.push(a)}return e},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||Kq(t)},class:"cm-selectionLayer"}),DTe=Of.highest(We.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Yq=Ft.define({map(t,e){return t==null?null:e.mapPos(t)}}),sx=as.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,r)=>r.is(Yq)?r.value:n,t)}}),ITe=br.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(sx);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(sx)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(sx),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let r=t.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-r.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(sx)!=t&&this.view.dispatch({effects:Yq.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function $Te(){return[sx,ITe]}function W8(t,e,n,r,a){e.lastIndex=0;for(let s=t.iterRange(n,r),o=n,l;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)a(o+l.index,l)}function LTe(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let r=[];for(let{from:a,to:s}of n)a=Math.max(t.state.doc.lineAt(a).from,a-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=a?r[r.length-1].to=s:r.push({from:a,to:s});return r}class FTe{constructor(e){const{regexp:n,decoration:r,decorate:a,boundary:s,maxLength:o=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,a)this.addMatch=(l,c,u,d)=>a(d,u,u+l[0].length,l,c);else if(typeof r=="function")this.addMatch=(l,c,u,d)=>{let f=r(l,c,u);f&&d(u,u+l[0].length,f)};else if(r)this.addMatch=(l,c,u,d)=>d(u,u+l[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let n=new xc,r=n.add.bind(n);for(let{from:a,to:s}of LTe(e,this.maxLength))W8(e.state.doc,this.regexp,a,s,(o,l)=>this.addMatch(l,e,o,r));return n.finish()}updateDeco(e,n){let r=1e9,a=-1;return e.docChanged&&e.changes.iterChanges((s,o,l,c)=>{c>=e.view.viewport.from&&l<=e.view.viewport.to&&(r=Math.min(l,r),a=Math.max(c,a))}),e.viewportMoved||a-r>1e3?this.createDeco(e.view):a>-1?this.updateRange(e.view,n.map(e.changes),r,a):n}updateRange(e,n,r,a){for(let s of e.visibleRanges){let o=Math.max(s.from,r),l=Math.min(s.to,a);if(l>=o){let c=e.state.doc.lineAt(o),u=c.toc.from;o--)if(this.boundary.test(c.text[o-1-c.from])){d=o;break}for(;lh.push(b.range(x,y));if(c==u)for(this.regexp.lastIndex=d-c.from;(p=this.regexp.exec(c.text))&&p.indexthis.addMatch(y,e,x,m));n=n.update({filterFrom:d,filterTo:f,filter:(x,y)=>xf,add:h})}}return n}}const g5=/x/.unicode!=null?"gu":"g",BTe=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,g5),zTe={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let C_=null;function UTe(){var t;if(C_==null&&typeof document<"u"&&document.body){let e=document.body.style;C_=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return C_||!1}const p1=Qe.define({combine(t){let e=Tl(t,{render:null,specialChars:BTe,addSpecialChars:null});return(e.replaceTabs=!UTe())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,g5)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,g5)),e}});function VTe(t={}){return[p1.of(t),WTe()]}let H8=null;function WTe(){return H8||(H8=br.fromClass(class{constructor(t){this.view=t,this.decorations=kt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(p1)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new FTe({regexp:t.specialChars,decoration:(e,n,r)=>{let{doc:a}=n.state,s=Ms(e[0],0);if(s==9){let o=a.lineAt(r),l=n.state.tabSize,c=Rm(o.text,l,r-o.from);return kt.replace({widget:new KTe((l-c%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=kt.replace({widget:new qTe(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(p1);t.startState.facet(p1)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const HTe="•";function GTe(t){return t>=32?HTe:t==10?"␤":String.fromCharCode(9216+t)}class qTe extends Pl{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=GTe(this.code),r=e.state.phrase("Control character")+" "+(zTe[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,r,n);if(a)return a;let s=document.createElement("span");return s.textContent=n,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class KTe extends Pl{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function YTe(){return JTe}const XTe=kt.line({class:"cm-activeLine"}),JTe=br.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let r of t.state.selection.ranges){let a=t.lineBlockAt(r.head);a.from>e&&(n.push(XTe.range(a.from)),e=a.from)}return kt.set(n)}},{decorations:t=>t.decorations});class ZTe extends Pl{constructor(e){super(),this.content=e}toDOM(e){let n=document.createElement("span");return n.className="cm-placeholder",n.style.pointerEvents="none",n.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),n.setAttribute("aria-hidden","true"),n}coordsAt(e){let n=e.firstChild?Tx(e.firstChild):[];if(!n.length)return null;let r=window.getComputedStyle(e.parentNode),a=ey(n[0],r.direction!="rtl"),s=parseInt(r.lineHeight);return a.bottom-a.top>s*1.5?{left:a.left,right:a.right,top:a.top,bottom:a.top+s}:a}ignoreEvent(){return!1}}function Xq(t){let e=br.fromClass(class{constructor(n){this.view=n,this.placeholder=t?kt.set([kt.widget({widget:new ZTe(t),side:1}).range(0)]):kt.none}get decorations(){return this.view.state.doc.length?kt.none:this.placeholder}},{decorations:n=>n.decorations});return typeof t=="string"?[e,We.contentAttributes.of({"aria-placeholder":t})]:e}const x5=2e3;function QTe(t,e,n){let r=Math.min(e.line,n.line),a=Math.max(e.line,n.line),s=[];if(e.off>x5||n.off>x5||e.col<0||n.col<0){let o=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=r;c<=a;c++){let u=t.doc.line(c);u.length<=l&&s.push(Ee.range(u.from+o,u.to+l))}}else{let o=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=r;c<=a;c++){let u=t.doc.line(c),d=XA(u.text,o,t.tabSize,!0);if(d<0)s.push(Ee.cursor(u.to));else{let f=XA(u.text,l,t.tabSize);s.push(Ee.range(u.from+d,u.from+f))}}}return s}function ePe(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function G8(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),r=t.state.doc.lineAt(n),a=n-r.from,s=a>x5?-1:a==r.length?ePe(t,e.clientX):Rm(r.text,t.state.tabSize,n-r.from);return{line:r.number,col:s,off:a}}function tPe(t,e){let n=G8(t,e),r=t.state.selection;return n?{update(a){if(a.docChanged){let s=a.changes.mapPos(a.startState.doc.line(n.line).from),o=a.state.doc.lineAt(s);n={line:o.number,col:n.col,off:Math.min(n.off,o.length)},r=r.map(a.changes)}},get(a,s,o){let l=G8(t,a);if(!l)return r;let c=QTe(t.state,n,l);return c.length?o?Ee.create(c.concat(r.ranges)):Ee.create(c):r}}:null}function nPe(t){let e=n=>n.altKey&&n.button==0;return We.mouseSelectionStyle.of((n,r)=>e(r)?tPe(n,r):null)}const rPe={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},aPe={style:"cursor: crosshair"};function sPe(t={}){let[e,n]=rPe[t.key||"Alt"],r=br.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventObservers:{keydown(a){this.set(a.keyCode==e||n(a))},keyup(a){(a.keyCode==e||!n(a))&&this.set(!1)},mousemove(a){this.set(n(a))}}});return[r,We.contentAttributes.of(a=>{var s;return!((s=a.plugin(r))===null||s===void 0)&&s.isDown?aPe:null})]}const bb="-10000px";class Jq{constructor(e,n,r,a){this.facet=n,this.createTooltipView=r,this.removeTooltipView=a,this.input=e.state.facet(n),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,n){var r;let a=e.state.facet(this.facet),s=a.filter(c=>c);if(a===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let o=[],l=n?[]:null;for(let c=0;cn[u]=c),n.length=l.length),this.input=a,this.tooltips=s,this.tooltipViews=o,!0}}function iPe(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const E_=Qe.define({combine:t=>{var e,n,r;return{position:Ze.ios?"absolute":((e=t.find(a=>a.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(a=>a.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((r=t.find(a=>a.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||iPe}}}),q8=new WeakMap,fP=br.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(E_);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Jq(t,hP,(n,r)=>this.createTooltip(n,r),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,r=t.state.facet(E_);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let a of this.manager.tooltipViews)a.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let a of this.manager.tooltipViews)this.container.appendChild(a.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),r=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let a=document.createElement("div");a.className="cm-tooltip-arrow",n.dom.appendChild(a)}return n.dom.style.position=this.position,n.dom.style.top=bb,n.dom.style.left="0px",this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(t=r.destroy)===null||t===void 0||t.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(Ze.safari){let o=s.getBoundingClientRect();n=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else n=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(t=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),a=lP(this.view);return{visible:{left:r.left+a.left,top:r.top+a.top,right:r.right-a.right,bottom:r.bottom-a.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(E_).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:r,scaleX:a,scaleY:s}=t,o=[];for(let l=0;l=Math.min(n.bottom,r.bottom)||f.rightMath.min(n.right,r.right)+.1)){d.style.top=bb;continue}let p=c.arrow?u.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,x=h.right-h.left,y=(e=q8.get(u))!==null&&e!==void 0?e:h.bottom-h.top,b=u.offset||lPe,v=this.view.textDirection==zn.LTR,w=h.width>r.right-r.left?v?r.left:r.right-h.width:v?Math.max(r.left,Math.min(f.left-(p?14:0)+b.x,r.right-x)):Math.min(Math.max(r.left,f.left-x+(p?14:0)-b.x),r.right-x),j=this.above[l];!c.strictSide&&(j?f.top-y-m-b.yr.bottom)&&j==r.bottom-f.bottom>f.top-r.top&&(j=this.above[l]=!j);let k=(j?f.top-r.top:r.bottom-f.bottom)-m;if(kw&&N.top<_+y&&N.bottom>_&&(_=j?N.top-y-2-m:N.bottom+m+2);if(this.position=="absolute"?(d.style.top=(_-t.parent.top)/s+"px",K8(d,(w-t.parent.left)/a)):(d.style.top=_/s+"px",K8(d,w/a)),p){let N=f.left+(v?b.x:-b.x)-(w+14-7);p.style.left=N/a+"px"}u.overlap!==!0&&o.push({left:w,top:_,right:S,bottom:_+y}),d.classList.toggle("cm-tooltip-above",j),d.classList.toggle("cm-tooltip-below",!j),u.positioned&&u.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=bb}},{eventObservers:{scroll(){this.maybeMeasure()}}});function K8(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const oPe=We.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lPe={x:0,y:0},hP=Qe.define({enables:[fP,oPe]}),dk=Qe.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class i2{static create(e){return new i2(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Jq(e,dk,(n,r)=>this.createHostedView(n,r),n=>n.dom.remove())}createHostedView(e,n){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let r of this.manager.tooltipViews){let a=r[e];if(a!==void 0){if(n===void 0)n=a;else if(n!==a)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const cPe=hP.compute([dk],t=>{let e=t.facet(dk);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var r;return(r=n.end)!==null&&r!==void 0?r:n.pos})),create:i2.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class uPe{constructor(e,n,r,a,s){this.view=e,this.source=n,this.field=r,this.setHover=a,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;el.bottom||n.xl.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(a)).find(d=>d.from<=a&&d.to>=a),u=c&&c.dir==zn.RTL?-1:1;s=n.x{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>ps(e.state,c,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(fP),n=e?e.manager.tooltips.findIndex(r=>r.create==i2.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:a,tooltip:s}=this;if(a.length&&s&&!dPe(s.dom,e)||this.pending){let{pos:o}=a[0]||this.pending,l=(r=(n=a[0])===null||n===void 0?void 0:n.end)!==null&&r!==void 0?r:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!fPe(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=r=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const wb=4;function dPe(t,e){let{left:n,right:r,top:a,bottom:s}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();a=Math.min(l.top,a),s=Math.max(l.bottom,s)}return e.clientX>=n-wb&&e.clientX<=r+wb&&e.clientY>=a-wb&&e.clientY<=s+wb}function fPe(t,e,n,r,a,s){let o=t.scrollDOM.getBoundingClientRect(),l=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>r||o.righta||Math.min(o.bottom,l)=e&&c<=n}function hPe(t,e={}){let n=Ft.define(),r=as.define({create(){return[]},update(a,s){if(a.length&&(e.hideOnChange&&(s.docChanged||s.selection)?a=[]:e.hideOn&&(a=a.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let l of a){let c=s.changes.mapPos(l.pos,-1,us.TrackDel);if(c!=null){let u=Object.assign(Object.create(null),l);u.pos=c,u.end!=null&&(u.end=s.changes.mapPos(u.end)),o.push(u)}}a=o}for(let o of s.effects)o.is(n)&&(a=o.value),o.is(pPe)&&(a=[]);return a},provide:a=>dk.from(a)});return{active:r,extension:[r,br.define(a=>new uPe(a,t,r,n,e.hoverTime||300)),cPe]}}function Zq(t,e){let n=t.plugin(fP);if(!n)return null;let r=n.manager.tooltips.indexOf(e);return r<0?null:n.manager.tooltipViews[r]}const pPe=Ft.define(),Y8=Qe.define({combine(t){let e,n;for(let r of t)e=e||r.topContainer,n=n||r.bottomContainer;return{topContainer:e,bottomContainer:n}}});function pP(t,e){let n=t.plugin(Qq),r=n?n.specs.indexOf(e):-1;return r>-1?n.panels[r]:null}const Qq=br.fromClass(class{constructor(t){this.input=t.state.facet(ny),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(Y8);this.top=new kb(t,!0,e.topContainer),this.bottom=new kb(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(Y8);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new kb(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new kb(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(ny);if(n!=this.input){let r=n.filter(c=>c),a=[],s=[],o=[],l=[];for(let c of r){let u=this.specs.indexOf(c),d;u<0?(d=c(t.view),l.push(d)):(d=this.panels[u],d.update&&d.update(t)),a.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=a,this.top.sync(s),this.bottom.sync(o);for(let c of l)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let r of this.panels)r.update&&r.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>We.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class kb{constructor(e,n,r){this.view=e,this.top=n,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=X8(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=X8(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function X8(t){let e=t.nextSibling;return t.remove(),e}const ny=Qe.define({enables:Qq});function mPe(t,e){let n,r=new Promise(o=>n=o),a=o=>gPe(o,e,n);t.state.field(A_,!1)?t.dispatch({effects:eK.of(a)}):t.dispatch({effects:Ft.appendConfig.of(A_.init(()=>[a]))});let s=tK.of(a);return{close:s,result:r.then(o=>((t.win.queueMicrotask||(c=>t.win.setTimeout(c,10)))(()=>{t.state.field(A_).indexOf(a)>-1&&t.dispatch({effects:s})}),o))}}const A_=as.define({create(){return[]},update(t,e){for(let n of e.effects)n.is(eK)?t=[n.value].concat(t):n.is(tK)&&(t=t.filter(r=>r!=n.value));return t},provide:t=>ny.computeN([t],e=>e.field(t))}),eK=Ft.define(),tK=Ft.define();function gPe(t,e,n){let r=e.content?e.content(t,()=>o(null)):null;if(!r){if(r=Pn("form"),e.input){let l=Pn("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),r.appendChild(Pn("label",(e.label||"")+": ",l))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(Pn("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let a=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let l=0;l{u.keyCode==27?(u.preventDefault(),o(null)):u.keyCode==13&&(u.preventDefault(),o(c))}),c.addEventListener("submit",u=>{u.preventDefault(),o(c)})}let s=Pn("div",r,Pn("button",{onclick:()=>o(null),"aria-label":t.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(l){s.contains(s.ownerDocument.activeElement)&&t.focus(),n(l)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let l;typeof e.focus=="string"?l=r.querySelector(e.focus):l=r.querySelector("input")||r.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}class vc extends Pu{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}vc.prototype.elementClass="";vc.prototype.toDOM=void 0;vc.prototype.mapMode=us.TrackBefore;vc.prototype.startSide=vc.prototype.endSide=-1;vc.prototype.point=!0;const m1=Qe.define(),xPe=Qe.define(),yPe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Gt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Rx=Qe.define();function vPe(t){return[nK(),Rx.of({...yPe,...t})]}const J8=Qe.define({combine:t=>t.some(e=>e)});function nK(t){return[bPe]}const bPe=br.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Rx).map(e=>new Q8(t,e)),this.fixed=!t.state.facet(J8);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,r=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(r<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(J8)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=Gt.iter(this.view.state.facet(m1),this.view.viewport.from),r=[],a=this.gutters.map(s=>new wPe(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let l of s.type)if(l.type==Ba.Text&&o){y5(n,r,l.from);for(let c of a)c.line(this.view,l,r);o=!1}else if(l.widget)for(let c of a)c.widget(this.view,l)}else if(s.type==Ba.Text){y5(n,r,s.from);for(let o of a)o.line(this.view,s,r)}else if(s.widget)for(let o of a)o.widget(this.view,s);for(let s of a)s.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(Rx),n=t.state.facet(Rx),r=t.docChanged||t.heightChanged||t.viewportChanged||!Gt.eq(t.startState.facet(m1),t.state.facet(m1),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let a of this.gutters)a.update(t)&&(r=!0);else{r=!0;let a=[];for(let s of n){let o=e.indexOf(s);o<0?a.push(new Q8(this.view,s)):(this.gutters[o].update(t),a.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),a.indexOf(s)<0&&s.destroy();for(let s of a)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=a}return r}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>We.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let r=n.dom.offsetWidth*e.scaleX,a=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==zn.LTR?{left:r,right:a}:{right:r,left:a}})});function Z8(t){return Array.isArray(t)?t:[t]}function y5(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class wPe{constructor(e,n,r){this.gutter=e,this.height=r,this.i=0,this.cursor=Gt.iter(e.markers,n.from)}addElement(e,n,r){let{gutter:a}=this,s=(n.top-this.height)/e.scaleY,o=n.height/e.scaleY;if(this.i==a.elements.length){let l=new rK(e,o,s,r);a.elements.push(l),a.dom.appendChild(l.dom)}else a.elements[this.i].update(e,o,s,r);this.height=n.bottom,this.i++}line(e,n,r){let a=[];y5(this.cursor,a,n.from),r.length&&(a=a.concat(r));let s=this.gutter.config.lineMarker(e,n,a);s&&a.unshift(s);let o=this.gutter;a.length==0&&!o.config.renderEmptyElements||this.addElement(e,n,a)}widget(e,n){let r=this.gutter.config.widgetMarker(e,n.widget,n),a=r?[r]:null;for(let s of e.state.facet(xPe)){let o=s(e,n.widget,n);o&&(a||(a=[])).push(o)}a&&this.addElement(e,n,a)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class Q8{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in n.domEventHandlers)this.dom.addEventListener(r,a=>{let s=a.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();o=(c.top+c.bottom)/2}else o=a.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);n.domEventHandlers[r](e,l,a)&&a.preventDefault()});this.markers=Z8(n.markers(e)),n.initialSpacer&&(this.spacer=new rK(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=Z8(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let a=this.config.updateSpacer(this.spacer.markers[0],e);a!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[a])}let r=e.view.viewport;return!Gt.eq(this.markers,n,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class rK{constructor(e,n,r,a){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,r,a)}update(e,n,r,a){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),kPe(this.markers,a)||this.setMarkers(e,a)}setMarkers(e,n){let r="cm-gutterElement",a=this.dom.firstChild;for(let s=0,o=0;;){let l=o,c=ss(l,c,u)||o(l,c,u):o}return r}})}});class O_ extends vc{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function T_(t,e){return t.state.facet(Dh).formatNumber(e,t.state)}const _Pe=Rx.compute([Dh],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(jPe)},lineMarker(e,n,r){return r.some(a=>a.toDOM)?null:new O_(T_(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,r)=>{for(let a of e.state.facet(SPe)){let s=a(e,n,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Dh)!=e.state.facet(Dh),initialSpacer(e){return new O_(T_(e,e6(e.state.doc.lines)))},updateSpacer(e,n){let r=T_(n.view,e6(n.view.state.doc.lines));return r==e.number?e:new O_(r)},domEventHandlers:t.facet(Dh).domEventHandlers,side:"before"}));function NPe(t={}){return[Dh.of(t),nK(),_Pe]}function e6(t){let e=9;for(;e{let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.head).from;a>n&&(n=a,e.push(CPe.range(a)))}return Gt.of(e)});function APe(){return EPe}const OPe=1024;let TPe=0;class P_{constructor(e,n){this.from=e,this.to=n}}class Qt{constructor(e={}){this.id=TPe++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ys.match(e)),n=>{let r=e(n);return r===void 0?null:[this,r]}}}Qt.closedBy=new Qt({deserialize:t=>t.split(" ")});Qt.openedBy=new Qt({deserialize:t=>t.split(" ")});Qt.group=new Qt({deserialize:t=>t.split(" ")});Qt.isolate=new Qt({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});Qt.contextHash=new Qt({perNode:!0});Qt.lookAhead=new Qt({perNode:!0});Qt.mounted=new Qt({perNode:!0});class Dx{constructor(e,n,r,a=!1){this.tree=e,this.overlay=n,this.parser=r,this.bracketed=a}static get(e){return e&&e.props&&e.props[Qt.mounted.id]}}const PPe=Object.create(null);class Ys{constructor(e,n,r,a=0){this.name=e,this.props=n,this.id=r,this.flags=a}static define(e){let n=e.props&&e.props.length?Object.create(null):PPe,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),a=new Ys(e.name||"",n,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(a)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return a}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(Qt.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let r in e)for(let a of r.split(" "))n[a]=e[r];return r=>{for(let a=r.prop(Qt.group),s=-1;s<(a?a.length:0);s++){let o=n[s<0?r.name:a[s]];if(o)return o}}}}Ys.none=new Ys("",Object.create(null),0,8);class mP{constructor(e){this.types=e;for(let n=0;n0;for(let c=this.cursor(o|Rr.IncludeAnonymous);;){let u=!1;if(c.from<=s&&c.to>=a&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;u=!0}for(;u&&r&&(l||!c.type.isAnonymous)&&r(c),!c.nextSibling();){if(!c.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:yP(Ys.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,a)=>new mr(this.type,n,r,a,this.propValues),e.makeTree||((n,r,a)=>new mr(Ys.none,n,r,a)))}static build(e){return IPe(e)}}mr.empty=new mr(Ys.none,[],[],0);class gP{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new gP(this.buffer,this.index)}}class Iu{constructor(e,n,r){this.buffer=e,this.length=n,this.set=r}get type(){return Ys.none}toString(){let e=[];for(let n=0;n0));c=o[c+3]);return l}slice(e,n,r){let a=this.buffer,s=new Uint16Array(n-e),o=0;for(let l=e,c=0;l=e&&ne;case 1:return n<=e&&r>e;case 2:return r>e;case 4:return!0}}function ry(t,e,n,r){for(var a;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to0?l.length:-1;e!=u;e+=n){let d=l[e],f=c[e]+o.from,h;if(!(!(s&Rr.EnterBracketed&&d instanceof mr&&(h=Dx.get(d))&&!h.overlay&&h.bracketed&&r>=f&&r<=f+d.length)&&!aK(a,r,f,f+d.length))){if(d instanceof Iu){if(s&Rr.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,n,r-f,a);if(p>-1)return new lu(new MPe(o,d,e,f),null,p)}else if(s&Rr.IncludeAnonymous||!d.type.isAnonymous||xP(d)){let p;if(!(s&Rr.IgnoreMounts)&&(p=Dx.get(d))&&!p.overlay)return new Gi(p.tree,f,e,o);let m=new Gi(d,f,e,o);return s&Rr.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?d.children.length-1:0,n,r,a,s)}}}if(s&Rr.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+n:e=n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,r=0){let a;if(!(r&Rr.IgnoreOverlays)&&(a=Dx.get(this._tree))&&a.overlay){let s=e-this.from,o=r&Rr.EnterBracketed&&a.bracketed;for(let{from:l,to:c}of a.overlay)if((n>0||o?l<=s:l=s:c>s))return new Gi(a.tree,a.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function n6(t,e,n,r){let a=t.cursor(),s=[];if(!a.firstChild())return s;if(n!=null){for(let o=!1;!o;)if(o=a.type.is(n),!a.nextSibling())return s}for(;;){if(r!=null&&a.type.is(r))return s;if(a.type.is(e)&&s.push(a.node),!a.nextSibling())return r==null?s:[]}}function v5(t,e,n=e.length-1){for(let r=t;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}class MPe{constructor(e,n,r,a){this.parent=e,this.buffer=n,this.index=r,this.start=a}}class lu extends sK{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,r){super(),this.context=e,this._parent=n,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,n,r){let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.context.start,r);return s<0?null:new lu(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,r=0){if(r&Rr.ExcludeBuffers)return null;let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new lu(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new lu(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new lu(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:r}=this.context,a=this.index+4,s=r.buffer[this.index+3];if(s>a){let o=r.buffer[this.index+1];e.push(r.slice(a,s,o)),n.push(0)}return new mr(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iK(t){if(!t.length)return null;let e=0,n=t[0];for(let s=1;sn.from||o.to=e){let l=new Gi(o.tree,o.overlay[0].from+s.from,-1,s);(a||(a=[r])).push(ry(l,e,n,!1))}}return a?iK(a):r}class b5{get name(){return this.type.name}constructor(e,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~Rr.EnterBracketed,e instanceof Gi)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:r,buffer:a}=this.buffer;return this.type=n||a.set.types[a.buffer[e]],this.from=r+a.buffer[e+1],this.to=r+a.buffer[e+2],!0}yield(e){return e?e instanceof Gi?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,r,this.mode));let{buffer:a}=this.buffer,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,r=this.mode){return this.buffer?r&Rr.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Rr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Rr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(e<0){let a=r<0?0:this.stack[r]+4;if(this.index!=a)return this.yieldBuf(n.findChild(a,this.index,-1,0,4))}else{let a=n.buffer[this.index+3];if(a<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(a)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,r,{buffer:a}=this;if(a){if(e>0){if(this.index-1)for(let s=n+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let l=r._tree.children[s];if(this.mode&Rr.IncludeAnonymous||l instanceof Iu||!l.type.isAnonymous||xP(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==a){if(a==this.index)return o;n=o,r=s+1;break e}a=this.stack[--s]}for(let a=r;a=0;s--){if(s<0)return v5(this._tree,e,a);let o=r[n.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[a]&&e[a]!=o.name)return!1;a--}}return!0}}function xP(t){return t.children.some(e=>e instanceof Iu||!e.type.isAnonymous||xP(e))}function IPe(t){var e;let{buffer:n,nodeSet:r,maxBufferLength:a=OPe,reused:s=[],minRepeatType:o=r.types.length}=t,l=Array.isArray(n)?new gP(n,n.length):n,c=r.types,u=0,d=0;function f(k,_,S,N,E,P){let{id:M,start:A,end:O,size:D}=l,I=d,X=u;if(D<0)if(l.next(),D==-1){let G=s[M];S.push(G),N.push(A-k);return}else if(D==-3){u=M;return}else if(D==-4){d=M;return}else throw new RangeError(`Unrecognized record size: ${D}`);let Q=c[M],V,Y,H=A-k;if(O-A<=a&&(Y=y(l.pos-_,E))){let G=new Uint16Array(Y.size-Y.skip),$=l.pos-Y.size,F=G.length;for(;l.pos>$;)F=b(Y.start,G,F);V=new Iu(G,O-Y.start,r),H=Y.start-k}else{let G=l.pos-D;l.next();let $=[],F=[],R=M>=o?M:-1,z=0,U=O;for(;l.pos>G;)R>=0&&l.id==R&&l.size>=0?(l.end<=U-a&&(m($,F,A,z,l.end,U,R,I,X),z=$.length,U=l.end),l.next()):P>2500?h(A,G,$,F):f(A,G,$,F,R,P+1);if(R>=0&&z>0&&z<$.length&&m($,F,A,z,A,U,R,I,X),$.reverse(),F.reverse(),R>-1&&z>0){let ee=p(Q,X);V=yP(Q,$,F,0,$.length,0,O-A,ee,ee)}else V=x(Q,$,F,O-A,I-O,X)}S.push(V),N.push(H)}function h(k,_,S,N){let E=[],P=0,M=-1;for(;l.pos>_;){let{id:A,start:O,end:D,size:I}=l;if(I>4)l.next();else{if(M>-1&&O=0;D-=3)A[I++]=E[D],A[I++]=E[D+1]-O,A[I++]=E[D+2]-O,A[I++]=I;S.push(new Iu(A,E[2]-O,r)),N.push(O-k)}}function p(k,_){return(S,N,E)=>{let P=0,M=S.length-1,A,O;if(M>=0&&(A=S[M])instanceof mr){if(!M&&A.type==k&&A.length==E)return A;(O=A.prop(Qt.lookAhead))&&(P=N[M]+A.length+O)}return x(k,S,N,E,P,_)}}function m(k,_,S,N,E,P,M,A,O){let D=[],I=[];for(;k.length>N;)D.push(k.pop()),I.push(_.pop()+S-E);k.push(x(r.types[M],D,I,P-E,A-P,O)),_.push(E-S)}function x(k,_,S,N,E,P,M){if(P){let A=[Qt.contextHash,P];M=M?[A].concat(M):[A]}if(E>25){let A=[Qt.lookAhead,E];M=M?[A].concat(M):[A]}return new mr(k,_,S,N,M)}function y(k,_){let S=l.fork(),N=0,E=0,P=0,M=S.end-a,A={size:0,start:0,skip:0};e:for(let O=S.pos-k;S.pos>O;){let D=S.size;if(S.id==_&&D>=0){A.size=N,A.start=E,A.skip=P,P+=4,N+=4,S.next();continue}let I=S.pos-D;if(D<0||I=o?4:0,Q=S.start;for(S.next();S.pos>I;){if(S.size<0)if(S.size==-3||S.size==-4)X+=4;else break e;else S.id>=o&&(X+=4);S.next()}E=Q,N+=D,P+=X}return(_<0||N==k)&&(A.size=N,A.start=E,A.skip=P),A.size>4?A:void 0}function b(k,_,S){let{id:N,start:E,end:P,size:M}=l;if(l.next(),M>=0&&N4){let O=l.pos-(M-4);for(;l.pos>O;)S=b(k,_,S)}_[--S]=A,_[--S]=P-k,_[--S]=E-k,_[--S]=N}else M==-3?u=N:M==-4&&(d=N);return S}let v=[],w=[];for(;l.pos>0;)f(t.start||0,t.bufferStart||0,v,w,-1,0);let j=(e=t.length)!==null&&e!==void 0?e:v.length?w[0]+v[0].length:0;return new mr(c[t.topID],v.reverse(),w.reverse(),j)}const r6=new WeakMap;function g1(t,e){if(!t.isAnonymous||e instanceof Iu||e.type!=t)return 1;let n=r6.get(e);if(n==null){n=1;for(let r of e.children){if(r.type!=t||!(r instanceof mr)){n=1;break}n+=g1(t,r)}r6.set(e,n)}return n}function yP(t,e,n,r,a,s,o,l,c){let u=0;for(let m=r;m=d)break;_+=S}if(w==j+1){if(_>d){let S=m[j];p(S.children,S.positions,0,S.children.length,x[j]+v);continue}f.push(m[j])}else{let S=x[w-1]+m[w-1].length-k;f.push(yP(t,m,x,j,w,k,S,null,c))}h.push(k+v-s)}}return p(e,n,r,a,0),(l||c)(f,h,o)}class Hd{constructor(e,n,r,a,s=!1,o=!1){this.from=e,this.to=n,this.tree=r,this.offset=a,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],r=!1){let a=[new Hd(0,e.length,e,0,!1,r)];for(let s of n)s.to>e.length&&a.push(s);return a}static applyChanges(e,n,r=128){if(!n.length)return e;let a=[],s=1,o=e.length?e[0]:null;for(let l=0,c=0,u=0;;l++){let d=l=r)for(;o&&o.from=h.from||f<=h.to||u){let p=Math.max(h.from,c)-u,m=Math.min(h.to,f)-u;h=p>=m?null:new Hd(p,m,h.tree,h.offset+u,l>0,!!d)}if(h&&a.push(h),o.to>f)break;o=snew P_(a.from,a.to)):[new P_(0,0)]:[new P_(0,e.length)],this.createParse(e,n||[],r)}parse(e,n,r){let a=this.startParse(e,n,r);for(;;){let s=a.advance();if(s)return s}}}class $Pe{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}new Qt({perNode:!0});let LPe=0;class Di{constructor(e,n,r,a){this.name=e,this.set=n,this.base=r,this.modified=a,this.id=LPe++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let r=typeof e=="string"?e:"?";if(e instanceof Di&&(n=e),n!=null&&n.base)throw new Error("Can not derive from a modified tag");let a=new Di(r,[],null,[]);if(a.set.push(a),n)for(let s of n.set)a.set.push(s);return a}static defineModifier(e){let n=new fk(e);return r=>r.modified.indexOf(n)>-1?r:fk.get(r.base||r,r.modified.concat(n).sort((a,s)=>a.id-s.id))}}let FPe=0;class fk{constructor(e){this.name=e,this.instances=[],this.id=FPe++}static get(e,n){if(!n.length)return e;let r=n[0].instances.find(l=>l.base==e&&BPe(n,l.modified));if(r)return r;let a=[],s=new Di(e.name,a,e,n);for(let l of n)l.instances.push(s);let o=zPe(n);for(let l of e.set)if(!l.modified.length)for(let c of o)a.push(fk.get(l,c));return s}}function BPe(t,e){return t.length==e.length&&t.every((n,r)=>n==e[r])}function zPe(t){let e=[[]];for(let n=0;nr.length-n.length)}function UPe(t){let e=Object.create(null);for(let n in t){let r=t[n];Array.isArray(r)||(r=[r]);for(let a of n.split(" "))if(a){let s=[],o=2,l=a;for(let f=0;;){if(l=="..."&&f>0&&f+3==a.length){o=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!h)throw new RangeError("Invalid path: "+a);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),f+=h[0].length,f==a.length)break;let p=a[f++];if(f==a.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+a);l=a.slice(f)}let c=s.length-1,u=s[c];if(!u)throw new RangeError("Invalid path: "+a);let d=new ay(r,o,c>0?s.slice(0,c):null);e[u]=d.sort(e[u])}}return lK.add(e)}const lK=new Qt({combine(t,e){let n,r,a;for(;t||e;){if(!t||e&&t.depth>=e.depth?(a=e,e=e.next):(a=t,t=t.next),n&&n.mode==a.mode&&!a.context&&!n.context)continue;let s=new ay(a.tags,a.mode,a.context);n?n.next=s:r=s,n=s}return r}});class ay{constructor(e,n,r,a){this.tags=e,this.mode=n,this.context=r,this.next=a}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=a;for(let l of s)for(let c of l.set){let u=n[c.id];if(u){o=o?o+" "+u:u;break}}return o},scope:r}}function VPe(t,e){let n=null;for(let r of t){let a=r.style(e);a&&(n=n?n+" "+a:a)}return n}function WPe(t,e,n,r=0,a=t.length){let s=new HPe(r,Array.isArray(e)?e:[e],n);s.highlightRange(t.cursor(),r,a,"",s.highlighters),s.flush(a)}class HPe{constructor(e,n,r){this.at=e,this.highlighters=n,this.span=r,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,r,a,s){let{type:o,from:l,to:c}=e;if(l>=r||c<=n)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let u=a,d=GPe(e)||ay.empty,f=VPe(s,d.tags);if(f&&(u&&(u+=" "),u+=f,d.mode==1&&(a+=(a?" ":"")+f)),this.startSpan(Math.max(n,l),u),d.opaque)return;let h=e.tree&&e.tree.prop(Qt.mounted);if(h&&h.overlay){let p=e.node.enter(h.overlay[0].from+l,1),m=this.highlighters.filter(y=>!y.scope||y.scope(h.tree.type)),x=e.firstChild();for(let y=0,b=l;;y++){let v=y=w||!e.nextSibling())););if(!v||w>r)break;b=v.to+l,b>n&&(this.highlightRange(p.cursor(),Math.max(n,v.from+l),Math.min(r,b),"",m),this.startSpan(Math.min(r,b),u))}x&&e.parent()}else if(e.firstChild()){h&&(a="");do if(!(e.to<=n)){if(e.from>=r)break;this.highlightRange(e,n,r,a,s),this.startSpan(Math.min(r,e.to),u)}while(e.nextSibling());e.parent()}}}function GPe(t){let e=t.type.prop(lK);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const Ye=Di.define,Sb=Ye(),Uc=Ye(),a6=Ye(Uc),s6=Ye(Uc),Vc=Ye(),_b=Ye(Vc),M_=Ye(Vc),qo=Ye(),cd=Ye(qo),Wo=Ye(),Ho=Ye(),w5=Ye(),Ag=Ye(w5),Nb=Ye(),oe={comment:Sb,lineComment:Ye(Sb),blockComment:Ye(Sb),docComment:Ye(Sb),name:Uc,variableName:Ye(Uc),typeName:a6,tagName:Ye(a6),propertyName:s6,attributeName:Ye(s6),className:Ye(Uc),labelName:Ye(Uc),namespace:Ye(Uc),macroName:Ye(Uc),literal:Vc,string:_b,docString:Ye(_b),character:Ye(_b),attributeValue:Ye(_b),number:M_,integer:Ye(M_),float:Ye(M_),bool:Ye(Vc),regexp:Ye(Vc),escape:Ye(Vc),color:Ye(Vc),url:Ye(Vc),keyword:Wo,self:Ye(Wo),null:Ye(Wo),atom:Ye(Wo),unit:Ye(Wo),modifier:Ye(Wo),operatorKeyword:Ye(Wo),controlKeyword:Ye(Wo),definitionKeyword:Ye(Wo),moduleKeyword:Ye(Wo),operator:Ho,derefOperator:Ye(Ho),arithmeticOperator:Ye(Ho),logicOperator:Ye(Ho),bitwiseOperator:Ye(Ho),compareOperator:Ye(Ho),updateOperator:Ye(Ho),definitionOperator:Ye(Ho),typeOperator:Ye(Ho),controlOperator:Ye(Ho),punctuation:w5,separator:Ye(w5),bracket:Ag,angleBracket:Ye(Ag),squareBracket:Ye(Ag),paren:Ye(Ag),brace:Ye(Ag),content:qo,heading:cd,heading1:Ye(cd),heading2:Ye(cd),heading3:Ye(cd),heading4:Ye(cd),heading5:Ye(cd),heading6:Ye(cd),contentSeparator:Ye(qo),list:Ye(qo),quote:Ye(qo),emphasis:Ye(qo),strong:Ye(qo),link:Ye(qo),monospace:Ye(qo),strikethrough:Ye(qo),inserted:Ye(),deleted:Ye(),changed:Ye(),invalid:Ye(),meta:Nb,documentMeta:Ye(Nb),annotation:Ye(Nb),processingInstruction:Ye(Nb),definition:Di.defineModifier("definition"),constant:Di.defineModifier("constant"),function:Di.defineModifier("function"),standard:Di.defineModifier("standard"),local:Di.defineModifier("local"),special:Di.defineModifier("special")};for(let t in oe){let e=oe[t];e instanceof Di&&(e.name=t)}cK([{tag:oe.link,class:"tok-link"},{tag:oe.heading,class:"tok-heading"},{tag:oe.emphasis,class:"tok-emphasis"},{tag:oe.strong,class:"tok-strong"},{tag:oe.keyword,class:"tok-keyword"},{tag:oe.atom,class:"tok-atom"},{tag:oe.bool,class:"tok-bool"},{tag:oe.url,class:"tok-url"},{tag:oe.labelName,class:"tok-labelName"},{tag:oe.inserted,class:"tok-inserted"},{tag:oe.deleted,class:"tok-deleted"},{tag:oe.literal,class:"tok-literal"},{tag:oe.string,class:"tok-string"},{tag:oe.number,class:"tok-number"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],class:"tok-string2"},{tag:oe.variableName,class:"tok-variableName"},{tag:oe.local(oe.variableName),class:"tok-variableName tok-local"},{tag:oe.definition(oe.variableName),class:"tok-variableName tok-definition"},{tag:oe.special(oe.variableName),class:"tok-variableName2"},{tag:oe.definition(oe.propertyName),class:"tok-propertyName tok-definition"},{tag:oe.typeName,class:"tok-typeName"},{tag:oe.namespace,class:"tok-namespace"},{tag:oe.className,class:"tok-className"},{tag:oe.macroName,class:"tok-macroName"},{tag:oe.propertyName,class:"tok-propertyName"},{tag:oe.operator,class:"tok-operator"},{tag:oe.comment,class:"tok-comment"},{tag:oe.meta,class:"tok-meta"},{tag:oe.invalid,class:"tok-invalid"},{tag:oe.punctuation,class:"tok-punctuation"}]);var R_;const Ih=new Qt;function qPe(t){return Qe.define({combine:t?e=>e.concat(t):void 0})}const KPe=new Qt;class So{constructor(e,n,r=[],a=""){this.data=e,this.name=a,rn.prototype.hasOwnProperty("tree")||Object.defineProperty(rn.prototype,"tree",{get(){return rs(this)}}),this.parser=n,this.extension=[$u.of(this),rn.languageData.of((s,o,l)=>{let c=i6(s,o,l),u=c.type.prop(Ih);if(!u)return[];let d=s.facet(u),f=c.type.prop(KPe);if(f){let h=c.resolve(o-c.from,l);for(let p of f)if(p.test(h,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,n,r=-1){return i6(e,n,r).type.prop(Ih)==this.data}findRegions(e){let n=e.facet($u);if((n==null?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let r=[],a=(s,o)=>{if(s.prop(Ih)==this.data){r.push({from:o,to:o+s.length});return}let l=s.prop(Qt.mounted);if(l){if(l.tree.prop(Ih)==this.data){if(l.overlay)for(let c of l.overlay)r.push({from:c.from+o,to:c.to+o});else r.push({from:o,to:o+s.length});return}else if(l.overlay){let c=r.length;if(a(l.tree,l.overlay[0].from+o),r.length>c)return}}for(let c=0;c=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-r,n-r)}}let Og=null;class tm{constructor(e,n,r=[],a,s,o,l,c){this.parser=e,this.state=n,this.fragments=r,this.tree=a,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,r){return new tm(e,n,[],mr.empty,0,r,[],null)}startParse(){return this.parser.startParse(new YPe(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=mr.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let a=Date.now()+e;e=()=>Date.now()>a}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Hd.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=Og;Og=this;try{return e()}finally{Og=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=o6(e,n.from,n.to);return e}changes(e,n){let{fragments:r,tree:a,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((u,d,f,h)=>c.push({fromA:u,toA:d,fromB:f,toB:h})),r=Hd.applyChanges(r,c),a=mr.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let u of this.skipped){let d=e.mapPos(u.from,1),f=e.mapPos(u.to,-1);de.from&&(this.fragments=o6(this.fragments,a,s),this.skipped.splice(r--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends oK{createParse(n,r,a){let s=a[0].from,o=a[a.length-1].to;return{parsedPos:s,advance(){let c=Og;if(c){for(let u of a)c.tempSkipped.push(u);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=o,new mr(Ys.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return Og}}function o6(t,e,n){return Hd.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class nm{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new nm(n)}static init(e){let n=Math.min(3e3,e.doc.length),r=tm.create(e.facet($u).parser,e,{from:0,to:n});return r.work(20,n)||r.takeTree(),new nm(r)}}So.state=as.define({create:nm.init,update(t,e){for(let n of e.effects)if(n.is(So.setState))return n.value;return e.startState.facet($u)!=e.state.facet($u)?nm.init(e.state):t.apply(e)}});let uK=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(uK=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const D_=typeof navigator<"u"&&(!((R_=navigator.scheduling)===null||R_===void 0)&&R_.isInputPending)?()=>navigator.scheduling.isInputPending():null,XPe=br.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(So.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(So.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=uK(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnda+1e3,c=s.context.work(()=>D_&&D_()||Date.now()>o,a+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:So.setState.of(new nm(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>ps(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$u=Qe.define({combine(t){return t.length?t[0]:null},enables:t=>[So.state,XPe,We.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]}),JPe=Qe.define(),o2=Qe.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function hf(t){let e=t.facet(o2);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function sy(t,e){let n="",r=t.tabSize,a=t.facet(o2)[0];if(a==" "){for(;e>=r;)n+=" ",e-=r;a=" "}for(let s=0;s=e?ZPe(t,n,e):null}class l2{constructor(e,n={}){this.state=e,this.options=n,this.unit=hf(e)}lineAt(e,n=1){let r=this.state.doc.lineAt(e),{simulateBreak:a,simulateDoubleBreak:s}=this.options;return a!=null&&a>=r.from&&a<=r.to?s&&a==e?{text:"",from:e}:(n<0?a-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,n=e.length){return Rm(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:r,from:a}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let o=s(a);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const dK=new Qt;function ZPe(t,e,n){let r=e.resolveStack(n),a=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(a!=r.node){let s=[];for(let o=a;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return fK(r,t,n)}function fK(t,e,n){for(let r=t;r;r=r.next){let a=eMe(r.node);if(a)return a(bP.create(e,n,r))}return 0}function QPe(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function eMe(t){let e=t.type.prop(dK);if(e)return e;let n=t.firstChild,r;if(n&&(r=n.type.prop(Qt.closedBy))){let a=t.lastChild,s=a&&r.indexOf(a.name)>-1;return o=>aMe(o,!0,1,void 0,s&&!QPe(o)?a.from:void 0)}return t.parent==null?tMe:null}function tMe(){return 0}class bP extends l2{constructor(e,n,r){super(e.state,e.options),this.base=e,this.pos=n,this.context=r}get node(){return this.context.node}static create(e,n,r){return new bP(e,n,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(n.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(nMe(r,e))break;n=this.state.doc.lineAt(r.from)}return this.lineIndent(n.from)}continue(){return fK(this.context.next,this.base,this.pos)}}function nMe(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function rMe(t){let e=t.node,n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let a=t.options.simulateBreak,s=t.state.doc.lineAt(n.from),o=a==null||a<=s.from?s.to:Math.min(s.to,a);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==r)return null;if(!c.type.isSkipped){if(c.from>=o)return null;let u=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+u}}l=c.to}}function aMe(t,e,n,r,a){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=r&&s.slice(o,o+r.length)==r||a==t.pos+o,c=rMe(t);return c?l?t.column(c.from):t.column(c.to):t.baseIndent+(l?0:t.unit*n)}const sMe=200;function iMe(){return rn.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,a=n.lineAt(r);if(r>a.from+sMe)return t;let s=n.sliceString(a.from,r);if(!e.some(u=>u.test(s)))return t;let{state:o}=t,l=-1,c=[];for(let{head:u}of o.selection.ranges){let d=o.doc.lineAt(u);if(d.from==l)continue;l=d.from;let f=vP(o,d.from);if(f==null)continue;let h=/^\s*/.exec(d.text)[0],p=sy(o,f);h!=p&&c.push({from:d.from,to:d.from+h.length,insert:p})}return c.length?[t,{changes:c,sequential:!0}]:t})}const oMe=Qe.define(),lMe=new Qt;function cMe(t,e,n){let r=rs(t);if(r.lengthn)continue;if(s&&l.from=e&&u.to>n&&(s=u)}}return s}function uMe(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function hk(t,e,n){for(let r of t.facet(oMe)){let a=r(t,e,n);if(a)return a}return cMe(t,e,n)}function hK(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?void 0:{from:n,to:r}}const c2=Ft.define({map:hK}),By=Ft.define({map:hK});function pK(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(r=>r.from<=n&&r.to>=n)||e.push(t.lineBlockAt(n));return e}const pf=as.define({create(){return kt.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,r)=>t=l6(t,n,r)),t=t.map(e.changes);for(let n of e.effects)if(n.is(c2)&&!dMe(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(xK),a=r?kt.replace({widget:new yMe(r(e.state,n.value))}):c6;t=t.update({add:[a.range(n.value.from,n.value.to)]})}else n.is(By)&&(t=t.update({filter:(r,a)=>n.value.from!=r||n.value.to!=a,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=l6(t,e.selection.main.head)),t},provide:t=>We.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(r,a)=>{n.push(r,a)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n{ae&&(r=!0)}),r?t.update({filterFrom:e,filterTo:n,filter:(a,s)=>a>=n||s<=e}):t}function pk(t,e,n){var r;let a=null;return(r=t.field(pf,!1))===null||r===void 0||r.between(e,n,(s,o)=>{(!a||a.from>s)&&(a={from:s,to:o})}),a}function dMe(t,e,n){let r=!1;return t.between(e,e,(a,s)=>{a==e&&s==n&&(r=!0)}),r}function mK(t,e){return t.field(pf,!1)?e:e.concat(Ft.appendConfig.of(yK()))}const fMe=t=>{for(let e of pK(t)){let n=hk(t.state,e.from,e.to);if(n)return t.dispatch({effects:mK(t.state,[c2.of(n),gK(t,n)])}),!0}return!1},hMe=t=>{if(!t.state.field(pf,!1))return!1;let e=[];for(let n of pK(t)){let r=pk(t.state,n.from,n.to);r&&e.push(By.of(r),gK(t,r,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function gK(t,e,n=!0){let r=t.state.doc.lineAt(e.from).number,a=t.state.doc.lineAt(e.to).number;return We.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${a}.`)}const pMe=t=>{let{state:e}=t,n=[];for(let r=0;r{let e=t.state.field(pf,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(r,a)=>{n.push(By.of({from:r,to:a}))}),t.dispatch({effects:n}),!0},gMe=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:fMe},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:hMe},{key:"Ctrl-Alt-[",run:pMe},{key:"Ctrl-Alt-]",run:mMe}],xMe={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},xK=Qe.define({combine(t){return Tl(t,xMe)}});function yK(t){return[pf,wMe]}function vK(t,e){let{state:n}=t,r=n.facet(xK),a=o=>{let l=t.lineBlockAt(t.posAtDOM(o.target)),c=pk(t.state,l.from,l.to);c&&t.dispatch({effects:By.of(c)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,a,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=a,s}const c6=kt.replace({widget:new class extends Pl{toDOM(t){return vK(t,null)}}});class yMe extends Pl{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return vK(e,this.value)}}const vMe={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class I_ extends vc{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function bMe(t={}){let e={...vMe,...t},n=new I_(e,!0),r=new I_(e,!1),a=br.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet($u)!=o.state.facet($u)||o.startState.field(pf,!1)!=o.state.field(pf,!1)||rs(o.startState)!=rs(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new xc;for(let c of o.viewportLineBlocks){let u=pk(o.state,c.from,c.to)?r:hk(o.state,c.from,c.to)?n:null;u&&l.add(c.from,c.from,u)}return l.finish()}}),{domEventHandlers:s}=e;return[a,vPe({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(a))===null||l===void 0?void 0:l.markers)||Gt.empty},initialSpacer(){return new I_(e,!1)},domEventHandlers:{...s,click:(o,l,c)=>{if(s.click&&s.click(o,l,c))return!0;let u=pk(o.state,l.from,l.to);if(u)return o.dispatch({effects:By.of(u)}),!0;let d=hk(o.state,l.from,l.to);return d?(o.dispatch({effects:c2.of(d)}),!0):!1}}}),yK()]}const wMe=We.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Dm{constructor(e,n){this.specs=e;let r;function a(l){let c=Mu.newName();return(r||(r=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?a(n.all):void 0,o=n.scope;this.scope=o instanceof So?l=>l.prop(Ih)==o.data:o?l=>l==o:void 0,this.style=cK(e.map(l=>({tag:l.tag,class:l.class||a(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=r?new Mu(r):null,this.themeType=n.themeType}static define(e,n){return new Dm(e,n||{})}}const k5=Qe.define(),bK=Qe.define({combine(t){return t.length?[t[0]]:null}});function $_(t){let e=t.facet(k5);return e.length?e:t.facet(bK)}function wP(t,e){let n=[jMe],r;return t instanceof Dm&&(t.module&&n.push(We.styleModule.of(t.module)),r=t.themeType),e!=null&&e.fallback?n.push(bK.of(t)):r?n.push(k5.computeN([We.darkTheme],a=>a.facet(We.darkTheme)==(r=="dark")?[t]:[])):n.push(k5.of(t)),n}class kMe{constructor(e){this.markCache=Object.create(null),this.tree=rs(e.state),this.decorations=this.buildDeco(e,$_(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=rs(e.state),r=$_(e.state),a=r!=$_(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);n.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(n!=this.tree||e.viewportChanged||a)&&(this.tree=n,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return kt.none;let r=new xc;for(let{from:a,to:s}of e.visibleRanges)WPe(this.tree,n,(o,l,c)=>{r.add(o,l,this.markCache[c]||(this.markCache[c]=kt.mark({class:c})))},a,s);return r.finish()}}const jMe=Of.high(br.fromClass(kMe,{decorations:t=>t.decorations})),SMe=Dm.define([{tag:oe.meta,color:"#404740"},{tag:oe.link,textDecoration:"underline"},{tag:oe.heading,textDecoration:"underline",fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strong,fontWeight:"bold"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.keyword,color:"#708"},{tag:[oe.atom,oe.bool,oe.url,oe.contentSeparator,oe.labelName],color:"#219"},{tag:[oe.literal,oe.inserted],color:"#164"},{tag:[oe.string,oe.deleted],color:"#a11"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],color:"#e40"},{tag:oe.definition(oe.variableName),color:"#00f"},{tag:oe.local(oe.variableName),color:"#30a"},{tag:[oe.typeName,oe.namespace],color:"#085"},{tag:oe.className,color:"#167"},{tag:[oe.special(oe.variableName),oe.macroName],color:"#256"},{tag:oe.definition(oe.propertyName),color:"#00c"},{tag:oe.comment,color:"#940"},{tag:oe.invalid,color:"#f00"}]),_Me=We.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),wK=1e4,kK="()[]{}",jK=Qe.define({combine(t){return Tl(t,{afterCursor:!0,brackets:kK,maxScanDistance:wK,renderMatch:EMe})}}),NMe=kt.mark({class:"cm-matchingBracket"}),CMe=kt.mark({class:"cm-nonmatchingBracket"});function EMe(t){let e=[],n=t.matched?NMe:CMe;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}function u6(t){let e=[],n=t.facet(jK);for(let r of t.selection.ranges){if(!r.empty)continue;let a=cl(t,r.head,-1,n)||r.head>0&&cl(t,r.head-1,1,n)||n.afterCursor&&(cl(t,r.head,1,n)||r.headt.decorations}),OMe=[AMe,_Me];function TMe(t={}){return[jK.of(t),OMe]}const PMe=new Qt;function j5(t,e,n){let r=t.prop(e<0?Qt.openedBy:Qt.closedBy);if(r)return r;if(t.name.length==1){let a=n.indexOf(t.name);if(a>-1&&a%2==(e<0?1:0))return[n[a+e]]}return null}function S5(t){let e=t.type.prop(PMe);return e?e(t.node):t}function cl(t,e,n,r={}){let a=r.maxScanDistance||wK,s=r.brackets||kK,o=rs(t),l=o.resolveInner(e,n);for(let c=l;c;c=c.parent){let u=j5(c.type,n,s);if(u&&c.from0?e>=d.from&&ed.from&&e<=d.to))return MMe(t,e,n,c,d,u,s)}}return RMe(t,e,n,o,l.type,a,s)}function MMe(t,e,n,r,a,s,o){let l=r.parent,c={from:a.from,to:a.to},u=0,d=l==null?void 0:l.cursor();if(d&&(n<0?d.childBefore(r.from):d.childAfter(r.to)))do if(n<0?d.to<=r.from:d.from>=r.to){if(u==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let u={from:n<0?e-1:e,to:n>0?e+1:e},d=t.doc.iterRange(e,n>0?t.doc.length:0),f=0;for(let h=0;!d.next().done&&h<=s;){let p=d.value;n<0&&(h+=p.length);let m=e+h*n;for(let x=n>0?0:p.length-1,y=n>0?p.length:-1;x!=y;x+=n){let b=o.indexOf(p[x]);if(!(b<0||r.resolveInner(m+x,1).type!=a))if(b%2==0==n>0)f++;else{if(f==1)return{start:u,end:{from:m+x,to:m+x+1},matched:b>>1==c>>1};f--}}n>0&&(h+=p.length)}return d.done?{start:u,matched:!1}:null}function d6(t,e,n,r=0,a=0){e==null&&(e=t.search(/[^\s\u00a0]/),e==-1&&(e=t.length));let s=a;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.posn}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return a(s)==a(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let a=this.string.slice(this.pos).match(e);return a&&a.index>0?null:(a&&n!==!1&&(this.pos+=a[0].length),a)}}current(){return this.string.slice(this.start,this.pos)}}function DMe(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>!0),copyState:t.copyState||IMe,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||SP,mergeTokens:t.mergeTokens!==!1}}function IMe(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const f6=new WeakMap;class kP extends So{constructor(e){let n=qPe(e.languageData),r=DMe(e),a,s=new class extends oK{createParse(o,l,c){return new LMe(a,o,l,c)}};super(n,s,[],e.name),this.topNode=zMe(n,this),a=this,this.streamParser=r,this.stateAfter=new Qt({perNode:!0}),this.tokenTable=e.tokenTable?new EK(r.tokenTable):BMe}static define(e){return new kP(e)}getIndent(e){let n,{overrideIndentation:r}=e.options;r&&(n=f6.get(e.state),n!=null&&n1e4)return null;for(;s=r&&n+e.length<=a&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:n+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],c=n+e.positions[o],u=l instanceof mr&&c=e.length)return e;!a&&n==0&&e.type==t.topNode&&(a=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],c;if(on&&jP(t,s.tree,0-s.offset,n,l),u;if(c&&c.pos<=r&&(u=_K(t,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:u}}return{state:t.streamParser.startState(a?hf(a):4),tree:mr.empty}}class LMe{constructor(e,n,r,a){this.lang=e,this.input=n,this.fragments=r,this.ranges=a,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=a[a.length-1].to;let s=tm.get(),o=a[0].from,{state:l,tree:c}=$Me(e,r,o,this.to,s==null?void 0:s.state);this.state=l,this.parsedPos=this.chunkStart=o+c.length;for(let u=0;uu.from<=s.viewport.from&&u.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(hf(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=tm.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(n,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==` +`&&(n="");else{let r=n.indexOf(` +`);r>-1&&(n=n.slice(0,r))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),r=e+n.length;for(let a=this.rangeIndex;;){let s=this.ranges[a].to;if(s>=r||(n=n.slice(0,s-(r-n.length)),a++,a==this.ranges.length))break;let o=this.ranges[a].from,l=this.lineAfter(o);n+=l,r=o+l.length}return{line:n,end:r}}skipGapsTo(e,n,r){for(;;){let a=this.ranges[this.rangeIndex].to,s=e+n;if(r>0?a>s:a>=s)break;let o=this.ranges[++this.rangeIndex].from;n+=o-a}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){a=this.skipGapsTo(n,a,1),n+=a;let l=this.chunk.length;a=this.skipGapsTo(r,a,-1),r+=a,s+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==n?this.chunk[o+2]=r:this.chunk.push(e,n,r,s),a}parseLine(e){let{line:n,end:r}=this.nextLine(),a=0,{streamParser:s}=this.lang,o=new SK(n,e?e.state.tabSize:4,e?hf(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=NK(s.token,o,this.state);if(l&&(a=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,a)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return a}throw new Error("Stream parser failed to advance stream.")}const SP=Object.create(null),iy=[Ys.none],FMe=new mP(iy),h6=[],p6=Object.create(null),CK=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])CK[t]=AK(SP,e);class EK{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),CK)}resolve(e){return e?this.table[e]||(this.table[e]=AK(this.extra,e)):0}}const BMe=new EK(SP);function L_(t,e){h6.indexOf(t)>-1||(h6.push(t),console.warn(e))}function AK(t,e){let n=[];for(let l of e.split(" ")){let c=[];for(let u of l.split(".")){let d=t[u]||oe[u];d?typeof d=="function"?c.length?c=c.map(d):L_(u,`Modifier ${u} used at start of tag`):c.length?L_(u,`Tag ${u} used as modifier`):c=Array.isArray(d)?d:[d]:L_(u,`Unknown highlighting tag ${u}`)}for(let u of c)n.push(u)}if(!n.length)return 0;let r=e.replace(/ /g,"_"),a=r+" "+n.map(l=>l.id),s=p6[a];if(s)return s.id;let o=p6[a]=Ys.define({id:iy.length,name:r,props:[UPe({[r]:n})]});return iy.push(o),o.id}function zMe(t,e){let n=Ys.define({id:iy.length,name:"Document",props:[Ih.add(()=>t),dK.add(()=>r=>e.getIndent(r))],top:!0});return iy.push(n),n}zn.RTL,zn.LTR;const UMe=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),r=NP(t.state,n.from);return r.line?VMe(t):r.block?HMe(t):!1};function _P(t,e){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let a=t(e,n);return a?(r(n.update(a)),!0):!1}}const VMe=_P(KMe,0),WMe=_P(OK,0),HMe=_P((t,e)=>OK(t,e,qMe(e)),0);function NP(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const Tg=50;function GMe(t,{open:e,close:n},r,a){let s=t.sliceDoc(r-Tg,r),o=t.sliceDoc(a,a+Tg),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(o)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&o.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:a+c,margin:c&&1}};let d,f;a-r<=2*Tg?d=f=t.sliceDoc(r,a):(d=t.sliceDoc(r,r+Tg),f=t.sliceDoc(a-Tg,a));let h=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(f)[0].length,m=f.length-p-n.length;return d.slice(h,h+e.length)==e&&f.slice(m,m+n.length)==n?{open:{pos:r+h+e.length,margin:/\s/.test(d.charAt(h+e.length))?1:0},close:{pos:a-p-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function qMe(t){let e=[];for(let n of t.selection.ranges){let r=t.doc.lineAt(n.from),a=n.to<=r.to?r:t.doc.lineAt(n.to);a.from>r.from&&a.from==n.to&&(a=n.to==r.to+1?r:t.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=a.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:a.to})}return e}function OK(t,e,n=e.selection.ranges){let r=n.map(s=>NP(e,s.from).block);if(!r.every(s=>s))return null;let a=n.map((s,o)=>GMe(e,r[o],s.from,s.to));if(t!=2&&!a.every(s=>s))return{changes:e.changes(n.map((s,o)=>a[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(t!=1&&a.some(s=>s)){let s=[];for(let o=0,l;oa&&(s==o||o>f.from)){a=f.from;let h=/^\s*/.exec(f.text)[0].length,p=h==f.length,m=f.text.slice(h,h+u.length)==u?h:-1;hs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&s.push({from:l.from+u,insert:c+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:c}of r)if(l>=0){let u=o.from+l,d=u+c.length;o.text[d-o.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const _5=Ol.define(),YMe=Ol.define(),XMe=Qe.define(),TK=Qe.define({combine(t){return Tl(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(r,a)=>e(r,a)||n(r,a)})}}),PK=as.define({create(){return ul.empty},update(t,e){let n=e.state.facet(TK),r=e.annotation(_5);if(r){let c=Bs.fromTransaction(e,r.selection),u=r.side,d=u==0?t.undone:t.done;return c?d=mk(d,d.length,n.minDepth,c):d=DK(d,e.startState.selection),new ul(u==0?r.rest:d,u==0?d:r.rest)}let a=e.annotation(YMe);if((a=="full"||a=="before")&&(t=t.isolate()),e.annotation(ia.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=Bs.fromTransaction(e),o=e.annotation(ia.time),l=e.annotation(ia.userEvent);return s?t=t.addChanges(s,o,l,n,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,n.newGroupDelay)),(a=="full"||a=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new ul(t.done.map(Bs.fromJSON),t.undone.map(Bs.fromJSON))}});function JMe(t={}){return[PK,TK.of(t),We.domEventHandlers({beforeinput(e,n){let r=e.inputType=="historyUndo"?MK:e.inputType=="historyRedo"?N5:null;return r?(e.preventDefault(),r(n)):!1}})]}function u2(t,e){return function({state:n,dispatch:r}){if(!e&&n.readOnly)return!1;let a=n.field(PK,!1);if(!a)return!1;let s=a.pop(t,n,e);return s?(r(s),!0):!1}}const MK=u2(0,!1),N5=u2(1,!1),ZMe=u2(0,!0),QMe=u2(1,!0);class Bs{constructor(e,n,r,a,s){this.changes=e,this.effects=n,this.mapped=r,this.startSelection=a,this.selectionsAfter=s}setSelAfter(e){return new Bs(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(e){return new Bs(e.changes&&na.fromJSON(e.changes),[],e.mapped&&vl.fromJSON(e.mapped),e.startSelection&&Ee.fromJSON(e.startSelection),e.selectionsAfter.map(Ee.fromJSON))}static fromTransaction(e,n){let r=zi;for(let a of e.startState.facet(XMe)){let s=a(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new Bs(e.changes.invert(e.startState.doc),r,void 0,n||e.startState.selection,zi)}static selection(e){return new Bs(void 0,zi,void 0,void 0,e)}}function mk(t,e,n,r){let a=e+1>n+20?e-n-1:0,s=t.slice(a,e);return s.push(r),s}function eRe(t,e){let n=[],r=!1;return t.iterChangedRanges((a,s)=>n.push(a,s)),e.iterChangedRanges((a,s,o,l)=>{for(let c=0;c=u&&o<=d&&(r=!0)}}),r}function tRe(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,r)=>n.empty!=e.ranges[r].empty).length===0}function RK(t,e){return t.length?e.length?t.concat(e):t:e}const zi=[],nRe=200;function DK(t,e){if(t.length){let n=t[t.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-nRe));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),mk(t,t.length-1,1e9,n.setSelAfter(r)))}else return[Bs.selection([e])]}function rRe(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function F_(t,e){if(!t.length)return t;let n=t.length,r=zi;for(;n;){let a=aRe(t[n-1],e,r);if(a.changes&&!a.changes.empty||a.effects.length){let s=t.slice(0,n);return s[n-1]=a,s}else e=a.mapped,n--,r=a.selectionsAfter}return r.length?[Bs.selection(r)]:zi}function aRe(t,e,n){let r=RK(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):zi,n);if(!t.changes)return Bs.selection(r);let a=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new Bs(a,Ft.mapEffects(t.effects,e),o,t.startSelection.map(s),r)}const sRe=/^(input\.type|delete)($|\.)/;class ul{constructor(e,n,r=0,a=void 0){this.done=e,this.undone=n,this.prevTime=r,this.prevUserEvent=a}isolate(){return this.prevTime?new ul(this.done,this.undone):this}addChanges(e,n,r,a,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!r||sRe.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime0&&n-this.prevTimen.empty?t.moveByChar(n,e):d2(n,e))}function ss(t){return t.textDirectionAt(t.state.selection.main.head)==zn.LTR}const $K=t=>IK(t,!ss(t)),LK=t=>IK(t,ss(t));function FK(t,e){return Io(t,n=>n.empty?t.moveByGroup(n,e):d2(n,e))}const oRe=t=>FK(t,!ss(t)),lRe=t=>FK(t,ss(t));function cRe(t,e,n){if(e.type.prop(n))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function f2(t,e,n){let r=rs(t).resolveInner(e.head),a=n?Qt.closedBy:Qt.openedBy;for(let c=e.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;cRe(t,u,a)?r=u:c=n?u.to:u.from}let s=r.type.prop(a),o,l;return s&&(o=n?cl(t,r.from,1):cl(t,r.to,-1))&&o.matched?l=n?o.end.to:o.end.from:l=n?r.to:r.from,Ee.cursor(l,n?-1:1)}const uRe=t=>Io(t,e=>f2(t.state,e,!ss(t))),dRe=t=>Io(t,e=>f2(t.state,e,ss(t)));function BK(t,e){return Io(t,n=>{if(!n.empty)return d2(n,e);let r=t.moveVertically(n,e);return r.head!=n.head?r:t.moveToLineBoundary(n,e)})}const zK=t=>BK(t,!1),UK=t=>BK(t,!0);function VK(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,n.height):d2(o,e));if(a.eq(r.selection))return!1;let s;if(n.selfScroll){let o=t.coordsAtPos(r.selection.main.head),l=t.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;o&&o.top>c&&o.bottomWK(t,!1),C5=t=>WK(t,!0);function ed(t,e,n){let r=t.lineBlockAt(e.head),a=t.moveToLineBoundary(e,n);if(a.head==e.head&&a.head!=(n?r.to:r.from)&&(a=t.moveToLineBoundary(e,n,!1)),!n&&a.head==r.from&&r.length){let s=/^\s*/.exec(t.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(a=Ee.cursor(r.from+s))}return a}const fRe=t=>Io(t,e=>ed(t,e,!0)),hRe=t=>Io(t,e=>ed(t,e,!1)),pRe=t=>Io(t,e=>ed(t,e,!ss(t))),mRe=t=>Io(t,e=>ed(t,e,ss(t))),gRe=t=>Io(t,e=>Ee.cursor(t.lineBlockAt(e.head).from,1)),xRe=t=>Io(t,e=>Ee.cursor(t.lineBlockAt(e.head).to,-1));function yRe(t,e,n){let r=!1,a=Im(t.selection,s=>{let o=cl(t,s.head,-1)||cl(t,s.head,1)||s.head>0&&cl(t,s.head-1,1)||s.headyRe(t,e);function Qi(t,e){let n=Im(t.state.selection,r=>{let a=e(r);return Ee.range(r.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch(Do(t.state,n)),!0)}function HK(t,e){return Qi(t,n=>t.moveByChar(n,e))}const GK=t=>HK(t,!ss(t)),qK=t=>HK(t,ss(t));function KK(t,e){return Qi(t,n=>t.moveByGroup(n,e))}const bRe=t=>KK(t,!ss(t)),wRe=t=>KK(t,ss(t)),kRe=t=>Qi(t,e=>f2(t.state,e,!ss(t))),jRe=t=>Qi(t,e=>f2(t.state,e,ss(t)));function YK(t,e){return Qi(t,n=>t.moveVertically(n,e))}const XK=t=>YK(t,!1),JK=t=>YK(t,!0);function ZK(t,e){return Qi(t,n=>t.moveVertically(n,e,VK(t).height))}const g6=t=>ZK(t,!1),x6=t=>ZK(t,!0),SRe=t=>Qi(t,e=>ed(t,e,!0)),_Re=t=>Qi(t,e=>ed(t,e,!1)),NRe=t=>Qi(t,e=>ed(t,e,!ss(t))),CRe=t=>Qi(t,e=>ed(t,e,ss(t))),ERe=t=>Qi(t,e=>Ee.cursor(t.lineBlockAt(e.head).from)),ARe=t=>Qi(t,e=>Ee.cursor(t.lineBlockAt(e.head).to)),y6=({state:t,dispatch:e})=>(e(Do(t,{anchor:0})),!0),v6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.doc.length})),!0),b6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.selection.main.anchor,head:0})),!0),w6=({state:t,dispatch:e})=>(e(Do(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),ORe=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),TRe=({state:t,dispatch:e})=>{let n=h2(t).map(({from:r,to:a})=>Ee.range(r,Math.min(a+1,t.doc.length)));return e(t.update({selection:Ee.create(n),userEvent:"select"})),!0},PRe=({state:t,dispatch:e})=>{let n=Im(t.selection,r=>{let a=rs(t),s=a.resolveStack(r.from,1);if(r.empty){let o=a.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=r.to||l.to>r.to&&l.from<=r.from)&&o.next)return Ee.range(l.to,l.from)}return r});return n.eq(t.selection)?!1:(e(Do(t,n)),!0)};function QK(t,e){let{state:n}=t,r=n.selection,a=n.selection.ranges.slice();for(let s of n.selection.ranges){let o=n.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let c=t.moveVertically(l,e);if(c.heado.to){a.some(u=>u.head==c.head)||a.push(c);break}else{if(c.head==l.head)break;l=c}}}return a.length==r.ranges.length?!1:(t.dispatch(Do(n,Ee.create(a,a.length-1))),!0)}const MRe=t=>QK(t,!1),RRe=t=>QK(t,!0),DRe=({state:t,dispatch:e})=>{let n=t.selection,r=null;return n.ranges.length>1?r=Ee.create([n.main]):n.main.empty||(r=Ee.create([Ee.cursor(n.main.head)])),r?(e(Do(t,r)),!0):!1};function zy(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:r}=t,a=r.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let c=e(s);co&&(n="delete.forward",c=Cb(t,c,!0)),o=Math.min(o,c),l=Math.max(l,c)}else o=Cb(t,o,!1),l=Cb(t,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:Ee.cursor(o,oa(t)))r.between(e,e,(a,s)=>{ae&&(e=n?s:a)});return e}const eY=(t,e,n)=>zy(t,r=>{let a=r.from,{state:s}=t,o=s.doc.lineAt(a),l,c;if(n&&!e&&a>o.from&&aeY(t,!1,!0),tY=t=>eY(t,!0,!1),nY=(t,e)=>zy(t,n=>{let r=n.head,{state:a}=t,s=a.doc.lineAt(r),o=a.charCategorizer(r);for(let l=null;;){if(r==(e?s.to:s.from)){r==n.head&&s.number!=(e?a.doc.lines:1)&&(r+=e?1:-1);break}let c=ka(s.text,r-s.from,e)+s.from,u=s.text.slice(Math.min(r,c)-s.from,Math.max(r,c)-s.from),d=o(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),rY=t=>nY(t,!1),IRe=t=>nY(t,!0),$Re=t=>zy(t,e=>{let n=t.lineBlockAt(e.head).to;return e.headzy(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),FRe=t=>zy(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let n=t.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ln.of(["",""])},range:Ee.cursor(r.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},zRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(r=>{if(!r.empty||r.from==0||r.from==t.doc.length)return{range:r};let a=r.from,s=t.doc.lineAt(a),o=a==s.from?a-1:ka(s.text,a-s.from,!1)+s.from,l=a==s.to?a+1:ka(s.text,a-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:t.doc.slice(a,l).append(t.doc.slice(o,a))},range:Ee.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function h2(t){let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.from),s=t.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=t.doc.lineAt(r.to-1)),n>=a.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:a.from,to:s.to,ranges:[r]});n=s.number+1}return e}function aY(t,e,n){if(t.readOnly)return!1;let r=[],a=[];for(let s of h2(t)){if(n?s.to==t.doc.length:s.from==0)continue;let o=t.doc.lineAt(n?s.to+1:s.from-1),l=o.length+1;if(n){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+t.lineBreak});for(let c of s.ranges)a.push(Ee.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:t.lineBreak+o.text});for(let c of s.ranges)a.push(Ee.range(c.anchor-l,c.head-l))}}return r.length?(e(t.update({changes:r,scrollIntoView:!0,selection:Ee.create(a,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const URe=({state:t,dispatch:e})=>aY(t,e,!1),VRe=({state:t,dispatch:e})=>aY(t,e,!0);function sY(t,e,n){if(t.readOnly)return!1;let r=[];for(let s of h2(t))n?r.push({from:s.from,insert:t.doc.slice(s.from,s.to)+t.lineBreak}):r.push({from:s.to,insert:t.lineBreak+t.doc.slice(s.from,s.to)});let a=t.changes(r);return e(t.update({changes:a,selection:t.selection.map(a,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const WRe=({state:t,dispatch:e})=>sY(t,e,!1),HRe=({state:t,dispatch:e})=>sY(t,e,!0),GRe=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(h2(e).map(({from:a,to:s})=>(a>0?a--:s{let s;if(t.lineWrapping){let o=t.lineBlockAt(a.head),l=t.coordsAtPos(a.head,a.assoc||1);l&&(s=o.bottom+t.documentTop-l.bottom+t.defaultLineHeight/2)}return t.moveVertically(a,!0,s)}).map(n);return t.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function qRe(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=rs(t).resolveInner(e),r=n.childBefore(e),a=n.childAfter(e),s;return r&&a&&r.to<=e&&a.from>=e&&(s=r.type.prop(Qt.closedBy))&&s.indexOf(a.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(a.from).from&&!/\S/.test(t.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}const k6=iY(!1),KRe=iY(!0);function iY(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(a=>{let{from:s,to:o}=a,l=e.doc.lineAt(s),c=!t&&s==o&&qRe(e,s);t&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let u=new l2(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=vP(u,s);for(d==null&&(d=Rm(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let a=[];for(let o=r.from;o<=r.to;){let l=t.doc.lineAt(o);l.number>n&&(r.empty||r.to>l.from)&&(e(l,a,r),n=l.number),o=l.to+1}let s=t.changes(a);return{changes:a,range:Ee.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const YRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),r=new l2(t,{overrideIndentation:s=>{let o=n[s];return o??-1}}),a=CP(t,(s,o,l)=>{let c=vP(r,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=sy(t,c);(u!=d||l.fromt.readOnly?!1:(e(t.update(CP(t,(n,r)=>{r.push({from:n.from,insert:t.facet(o2)})}),{userEvent:"input.indent"})),!0),lY=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(CP(t,(n,r)=>{let a=/^\s*/.exec(n.text)[0];if(!a)return;let s=Rm(a,t.tabSize),o=0,l=sy(t,Math.max(0,s-hf(t)));for(;o(t.setTabFocusMode(),!0),JRe=[{key:"Ctrl-b",run:$K,shift:GK,preventDefault:!0},{key:"Ctrl-f",run:LK,shift:qK},{key:"Ctrl-p",run:zK,shift:XK},{key:"Ctrl-n",run:UK,shift:JK},{key:"Ctrl-a",run:gRe,shift:ERe},{key:"Ctrl-e",run:xRe,shift:ARe},{key:"Ctrl-d",run:tY},{key:"Ctrl-h",run:E5},{key:"Ctrl-k",run:$Re},{key:"Ctrl-Alt-h",run:rY},{key:"Ctrl-o",run:BRe},{key:"Ctrl-t",run:zRe},{key:"Ctrl-v",run:C5}],ZRe=[{key:"ArrowLeft",run:$K,shift:GK,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:oRe,shift:bRe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:pRe,shift:NRe,preventDefault:!0},{key:"ArrowRight",run:LK,shift:qK,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:lRe,shift:wRe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:mRe,shift:CRe,preventDefault:!0},{key:"ArrowUp",run:zK,shift:XK,preventDefault:!0},{mac:"Cmd-ArrowUp",run:y6,shift:b6},{mac:"Ctrl-ArrowUp",run:m6,shift:g6},{key:"ArrowDown",run:UK,shift:JK,preventDefault:!0},{mac:"Cmd-ArrowDown",run:v6,shift:w6},{mac:"Ctrl-ArrowDown",run:C5,shift:x6},{key:"PageUp",run:m6,shift:g6},{key:"PageDown",run:C5,shift:x6},{key:"Home",run:hRe,shift:_Re,preventDefault:!0},{key:"Mod-Home",run:y6,shift:b6},{key:"End",run:fRe,shift:SRe,preventDefault:!0},{key:"Mod-End",run:v6,shift:w6},{key:"Enter",run:k6,shift:k6},{key:"Mod-a",run:ORe},{key:"Backspace",run:E5,shift:E5,preventDefault:!0},{key:"Delete",run:tY,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:rY,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:IRe,preventDefault:!0},{mac:"Mod-Backspace",run:LRe,preventDefault:!0},{mac:"Mod-Delete",run:FRe,preventDefault:!0}].concat(JRe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),QRe=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:uRe,shift:kRe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:dRe,shift:jRe},{key:"Alt-ArrowUp",run:URe},{key:"Shift-Alt-ArrowUp",run:WRe},{key:"Alt-ArrowDown",run:VRe},{key:"Shift-Alt-ArrowDown",run:HRe},{key:"Mod-Alt-ArrowUp",run:MRe},{key:"Mod-Alt-ArrowDown",run:RRe},{key:"Escape",run:DRe},{key:"Mod-Enter",run:KRe},{key:"Alt-l",mac:"Ctrl-l",run:TRe},{key:"Mod-i",run:PRe,preventDefault:!0},{key:"Mod-[",run:lY},{key:"Mod-]",run:oY},{key:"Mod-Alt-\\",run:YRe},{key:"Shift-Mod-k",run:GRe},{key:"Shift-Mod-\\",run:vRe},{key:"Mod-/",run:UMe},{key:"Alt-A",run:WMe},{key:"Ctrl-m",mac:"Shift-Alt-m",run:XRe}].concat(ZRe),e4e={key:"Tab",run:oY,shift:lY},j6=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class rm{constructor(e,n,r=0,a=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,a),this.bufferStart=r,this.normalize=s?l=>s(j6(l)):j6,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ms(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=XT(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=tl(e);let a=this.normalize(n);if(a.length)for(let s=0,o=r,l=!0;;s++){let c=a.charCodeAt(s),u=this.match(c,o,l,this.bufferPos+this.bufferStart,s==a.length-1);if(u)return this.value=u,this;if(s==a.length-1)break;l&&sthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,a=r+n[0].length;if(this.matchPos=gk(this.text,a+(r==a?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(rthis.value.to)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=r||a.to<=n){let l=new np(n,e.sliceString(n,r));return B_.set(e,l),l}if(a.from==n&&a.to==r)return a;let{text:s,from:o}=a;return o>n&&(s=e.sliceString(n,o)+s,o=n),a.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,a=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this.matchPos=gk(this.text,a+(r==a?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=np.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(uY.prototype[Symbol.iterator]=dY.prototype[Symbol.iterator]=function(){return this});function t4e(t){try{return new RegExp(t,EP),!0}catch{return!1}}function gk(t,e){if(e>=t.length)return e;let n=t.lineAt(e),r;for(;e=56320&&r<57344;)e++;return e}const n4e=t=>{let{state:e}=t,n=String(e.doc.lineAt(t.state.selection.main.head).number),{close:r,result:a}=mPe(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:e.phrase("go")});return a.then(s=>{let o=s&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(s.elements.line.value);if(!o){t.dispatch({effects:r});return}let l=e.doc.lineAt(e.selection.main.head),[,c,u,d,f]=o,h=d?+d.slice(1):0,p=u?+u:l.number;if(u&&f){let y=p/100;c&&(y=y*(c=="-"?-1:1)+l.number/e.doc.lines),p=Math.round(e.doc.lines*y)}else u&&c&&(p=p*(c=="-"?-1:1)+l.number);let m=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),x=Ee.cursor(m.from+Math.max(0,Math.min(h,m.length)));t.dispatch({effects:[r,We.scrollIntoView(x.from,{y:"center"})],selection:x})}),!0},r4e={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},a4e=Qe.define({combine(t){return Tl(t,r4e,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function s4e(t){return[u4e,c4e]}const i4e=kt.mark({class:"cm-selectionMatch"}),o4e=kt.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function S6(t,e,n,r){return(n==0||t(e.sliceDoc(n-1,n))!=pr.Word)&&(r==e.doc.length||t(e.sliceDoc(r,r+1))!=pr.Word)}function l4e(t,e,n,r){return t(e.sliceDoc(n,n+1))==pr.Word&&t(e.sliceDoc(r-1,r))==pr.Word}const c4e=br.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(a4e),{state:n}=t,r=n.selection;if(r.ranges.length>1)return kt.none;let a=r.main,s,o=null;if(a.empty){if(!e.highlightWordAroundCursor)return kt.none;let c=n.wordAt(a.head);if(!c)return kt.none;o=n.charCategorizer(a.head),s=n.sliceDoc(c.from,c.to)}else{let c=a.to-a.from;if(c200)return kt.none;if(e.wholeWords){if(s=n.sliceDoc(a.from,a.to),o=n.charCategorizer(a.head),!(S6(o,n,a.from,a.to)&&l4e(o,n,a.from,a.to)))return kt.none}else if(s=n.sliceDoc(a.from,a.to),!s)return kt.none}let l=[];for(let c of t.visibleRanges){let u=new rm(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!o||S6(o,n,d,f))&&(a.empty&&d<=a.from&&f>=a.to?l.push(o4e.range(d,f)):(d>=a.to||f<=a.from)&&l.push(i4e.range(d,f)),l.length>e.maxMatches))return kt.none}}return kt.set(l)}},{decorations:t=>t.decorations}),u4e=We.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),d4e=({state:t,dispatch:e})=>{let{selection:n}=t,r=Ee.create(n.ranges.map(a=>t.wordAt(a.head)||Ee.cursor(a.head)),n.mainIndex);return r.eq(n)?!1:(e(t.update({selection:r})),!0)};function f4e(t,e){let{main:n,ranges:r}=t.selection,a=t.wordAt(n.head),s=a&&a.from==n.from&&a.to==n.to;for(let o=!1,l=new rm(t.doc,e,r[r.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new rm(t.doc,e,0,Math.max(0,r[r.length-1].from-1)),o=!0}else{if(o&&r.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const h4e=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return d4e({state:t,dispatch:e});let r=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=r))return!1;let a=f4e(t,r);return a?(e(t.update({selection:t.selection.addRange(Ee.range(a.from,a.to),!1),effects:We.scrollIntoView(a.to)})),!0):!1},$m=Qe.define({combine(t){return Tl(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new C4e(e),scrollToMatch:e=>We.scrollIntoView(e)})}});class fY{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||t4e(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?` +`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new v4e(this):new g4e(this)}getCursor(e,n=0,r){let a=e.doc?e:rn.create({doc:e});return r==null&&(r=a.doc.length),this.regexp?ch(this,a,n,r):lh(this,a,n,r)}}class hY{constructor(e){this.spec=e}}function p4e(t,e,n){return(r,a,s,o)=>{if(n&&!n(r,a,s,o))return!1;let l=r>=o&&a<=o+s.length?s.slice(r-o,a-o):e.doc.sliceString(r,a);return t(l,e,r,a)}}function lh(t,e,n,r){let a;return t.wholeWord&&(a=m4e(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(a=p4e(t.test,e,a)),new rm(e.doc,t.unquoted,n,r,t.caseSensitive?void 0:s=>s.toLowerCase(),a)}function m4e(t,e){return(n,r,a,s)=>((s>n||s+a.length=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=lh(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}function x4e(t,e,n){return(r,a,s)=>(!n||n(r,a,s))&&t(s[0],e,r,a)}function ch(t,e,n,r){let a;return t.wholeWord&&(a=y4e(e.charCategorizer(e.selection.main.head))),t.test&&(a=x4e(t.test,e,a)),new uY(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:a},n,r)}function xk(t,e){return t.slice(ka(t,e,!1),e)}function yk(t,e){return t.slice(e,ka(t,e))}function y4e(t){return(e,n,r)=>!r[0].length||(t(xk(r.input,r.index))!=pr.Word||t(yk(r.input,r.index))!=pr.Word)&&(t(yk(r.input,r.index+r[0].length))!=pr.Word||t(xk(r.input,r.index+r[0].length))!=pr.Word)}class v4e extends hY{nextMatch(e,n,r){let a=ch(this.spec,e,r,e.doc.length).next();return a.done&&(a=ch(this.spec,e,0,n).next()),a.done?null:a.value}prevMatchInRange(e,n,r){for(let a=1;;a++){let s=Math.max(n,r-a*1e4),o=ch(this.spec,e,s,r),l=null;for(;!o.next().done;)l=o.value;if(l&&(s==n||l.from>s+10))return l;if(s==n)return null}}prevMatch(e,n,r){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let a=r.length;a>0;a--){let s=+r.slice(0,a);if(s>0&&s=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=ch(this.spec,e,Math.max(0,n-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}const oy=Ft.define(),AP=Ft.define(),ju=as.define({create(t){return new z_(A5(t).create(),null)},update(t,e){for(let n of e.effects)n.is(oy)?t=new z_(n.value.create(),t.panel):n.is(AP)&&(t=new z_(t.query,n.value?OP:null));return t},provide:t=>ny.from(t,e=>e.panel)});class z_{constructor(e,n){this.query=e,this.panel=n}}const b4e=kt.mark({class:"cm-searchMatch"}),w4e=kt.mark({class:"cm-searchMatch cm-searchMatch-selected"}),k4e=br.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(ju))}update(t){let e=t.state.field(ju);(e!=t.startState.field(ju)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return kt.none;let{view:n}=this,r=new xc;for(let a=0,s=n.visibleRanges,o=s.length;as[a+1].from-2*250;)c=s[++a].to;t.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?w4e:b4e)})}return r.finish()}},{decorations:t=>t.decorations});function Uy(t){return e=>{let n=e.state.field(ju,!1);return n&&n.query.spec.valid?t(e,n):gY(e)}}const vk=Uy((t,{query:e})=>{let{to:n}=t.state.selection.main,r=e.nextMatch(t.state,n,n);if(!r)return!1;let a=Ee.single(r.from,r.to),s=t.state.facet($m);return t.dispatch({selection:a,effects:[TP(t,r),s.scrollToMatch(a.main,t)],userEvent:"select.search"}),mY(t),!0}),bk=Uy((t,{query:e})=>{let{state:n}=t,{from:r}=n.selection.main,a=e.prevMatch(n,r,r);if(!a)return!1;let s=Ee.single(a.from,a.to),o=t.state.facet($m);return t.dispatch({selection:s,effects:[TP(t,a),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),mY(t),!0}),j4e=Uy((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:Ee.create(n.map(r=>Ee.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),S4e=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:a}=n.main,s=[],o=0;for(let l=new rm(t.doc,t.sliceDoc(r,a));!l.next().done;){if(s.length>1e3)return!1;l.value.from==r&&(o=s.length),s.push(Ee.range(l.value.from,l.value.to))}return e(t.update({selection:Ee.create(s,o),userEvent:"select.search.matches"})),!0},_6=Uy((t,{query:e})=>{let{state:n}=t,{from:r,to:a}=n.selection.main;if(n.readOnly)return!1;let s=e.nextMatch(n,r,r);if(!s)return!1;let o=s,l=[],c,u,d=[];o.precise?o.from==r&&o.to==a&&(u=n.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:u}),d.push(We.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):o=e.nextMatch(n,o.from,o.to);let f=t.state.changes(l);return o&&(c=Ee.single(o.from,o.to).map(f),d.push(TP(t,o)),d.push(n.facet($m).scrollToMatch(c.main,t))),t.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),_4e=Uy((t,{query:e})=>{if(t.state.readOnly)return!1;let n=[];for(let a of e.matchAll(t.state,1e9)){let{from:s,to:o,precise:l}=a;l&&n.push({from:s,to:o,insert:e.getReplacement(a)})}if(!n.length)return!1;let r=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:We.announce.of(r),userEvent:"input.replace.all"}),!0});function OP(t){return t.state.facet($m).createPanel(t)}function A5(t,e){var n,r,a,s,o;let l=t.selection.main,c=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!c)return e;let u=t.facet($m);return new fY({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=e==null?void 0:e.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(a=e==null?void 0:e.literal)!==null&&a!==void 0?a:u.literal,regexp:(s=e==null?void 0:e.regexp)!==null&&s!==void 0?s:u.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:u.wholeWord})}function pY(t){let e=pP(t,OP);return e&&e.dom.querySelector("[main-field]")}function mY(t){let e=pY(t);e&&e==t.root.activeElement&&e.select()}const gY=t=>{let e=t.state.field(ju,!1);if(e&&e.panel){let n=pY(t);if(n&&n!=t.root.activeElement){let r=A5(t.state,e.query.spec);r.valid&&t.dispatch({effects:oy.of(r)}),n.focus(),n.select()}}else t.dispatch({effects:[AP.of(!0),e?oy.of(A5(t.state,e.query.spec)):Ft.appendConfig.of(A4e)]});return!0},xY=t=>{let e=t.state.field(ju,!1);if(!e||!e.panel)return!1;let n=pP(t,OP);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:AP.of(!1)}),!0},N4e=[{key:"Mod-f",run:gY,scope:"editor search-panel"},{key:"F3",run:vk,shift:bk,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:vk,shift:bk,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:xY,scope:"editor search-panel"},{key:"Mod-Shift-l",run:S4e},{key:"Mod-Alt-g",run:n4e},{key:"Mod-d",run:h4e,preventDefault:!0}];class C4e{constructor(e){this.view=e;let n=this.query=e.state.field(ju).query.spec;this.commit=this.commit.bind(this),this.searchField=Pn("input",{value:n.search,placeholder:ni(e,"Find"),"aria-label":ni(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Pn("input",{value:n.replace,placeholder:ni(e,"Replace"),"aria-label":ni(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Pn("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=Pn("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=Pn("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(a,s,o){return Pn("button",{class:"cm-button",name:a,onclick:s,type:"button"},o)}this.dom=Pn("div",{onkeydown:a=>this.keydown(a),class:"cm-search"},[this.searchField,r("next",()=>vk(e),[ni(e,"next")]),r("prev",()=>bk(e),[ni(e,"previous")]),r("select",()=>j4e(e),[ni(e,"all")]),Pn("label",null,[this.caseField,ni(e,"match case")]),Pn("label",null,[this.reField,ni(e,"regexp")]),Pn("label",null,[this.wordField,ni(e,"by word")]),...e.state.readOnly?[]:[Pn("br"),this.replaceField,r("replace",()=>_6(e),[ni(e,"replace")]),r("replaceAll",()=>_4e(e),[ni(e,"replace all")])],Pn("button",{name:"close",onclick:()=>xY(e),"aria-label":ni(e,"close"),type:"button"},["×"])])}commit(){let e=new fY({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:oy.of(e)}))}keydown(e){NTe(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?bk:vk)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),_6(this.view))}update(e){for(let n of e.transactions)for(let r of n.effects)r.is(oy)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet($m).top}}function ni(t,e){return t.state.phrase(e)}const Eb=30,Ab=/[\s\.,:;?!]/;function TP(t,{from:e,to:n}){let r=t.state.doc.lineAt(e),a=t.state.doc.lineAt(n).to,s=Math.max(r.from,e-Eb),o=Math.min(a,n+Eb),l=t.state.sliceDoc(s,o);if(s!=r.from){for(let c=0;cl.length-Eb;c--)if(!Ab.test(l[c-1])&&Ab.test(l[c])){l=l.slice(0,c);break}}return We.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${r.number}.`)}const E4e=We.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),A4e=[ju,Of.low(k4e),E4e];class yY{constructor(e,n,r,a){this.state=e,this.pos=n,this.explicit=r,this.view=a,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=rs(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),r=Math.max(n.from,this.pos-250),a=n.text.slice(r-n.from,this.pos-n.from),s=a.search(vY(e,!1));return s<0?null:{from:r+s,to:this.pos,text:a.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),r&&r.onDocChange&&(this.abortOnDocChange=!0))}}function N6(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function O4e(t){let e=Object.create(null),n=Object.create(null);for(let{label:a}of t){e[a[0]]=!0;for(let s=1;stypeof a=="string"?{label:a}:a),[n,r]=e.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:O4e(e);return a=>{let s=a.matchBefore(r);return s||a.explicit?{from:s?s.from:a.pos,options:e,validFor:n}:null}}class C6{constructor(e,n,r,a){this.completion=e,this.source=n,this.match=r,this.score=a}}function Gd(t){return t.selection.main.from}function vY(t,e){var n;let{source:r}=t,a=e&&r[0]!="^",s=r[r.length-1]!="$";return!a&&!s?t:new RegExp(`${a?"^":""}(?:${r})${s?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const bY=Ol.define();function P4e(t,e,n,r){let{main:a}=t.selection,s=n-a.from,o=r-a.from;return{...t.changeByRange(l=>{if(l!=a&&n!=r&&t.sliceDoc(l.from+s,l.from+o)!=t.sliceDoc(n,r))return{range:l};let c=t.toText(e);return{changes:{from:l.from+s,to:r==a.from?l.to:l.from+o,insert:c},range:Ee.cursor(l.from+s+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const E6=new WeakMap;function M4e(t){if(!Array.isArray(t))return t;let e=E6.get(t);return e||E6.set(t,e=T4e(t)),e}const wk=Ft.define(),ly=Ft.define();class R4e{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(_=XT(k))!=_.toLowerCase()?1:_!=_.toUpperCase()?2:0;(!v||S==1&&y||j==0&&S!=0)&&(n[f]==k||r[f]==k&&(h=!0)?o[f++]=v:o.length&&(b=!1)),j=S,v+=tl(k)}return f==c&&o[0]==0&&b?this.result(-100+(h?-200:0),o,e):p==c&&m==0?this.ret(-200-e.length+(x==e.length?0:-100),[0,x]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):p==c?this.ret(-900-e.length,[m,x]):f==c?this.result(-100+(h?-200:0)+-700+(b?0:-1100),o,e):n.length==2?null:this.result((a[0]?-700:0)+-200+-1100,a,e)}result(e,n,r){let a=[],s=0;for(let o of n){let l=o+(this.astral?tl(Ms(r,o)):1);s&&a[s-1]==o?a[s-1]=l:(a[s++]=o,a[s++]=l)}return this.ret(e-r.length,a)}}class D4e{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:I4e,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>r=>A6(e(r),n(r)),optionClass:(e,n)=>r=>A6(e(r),n(r)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function A6(t,e){return t?e?t+" "+e:t:e}function I4e(t,e,n,r,a,s){let o=t.textDirection==zn.RTL,l=o,c=!1,u="top",d,f,h=e.left-a.left,p=a.right-e.right,m=r.right-r.left,x=r.bottom-r.top;if(l&&h=x||v>e.top?d=n.bottom-e.top:(u="bottom",d=e.bottom-n.top)}let y=(e.bottom-e.top)/s.offsetHeight,b=(e.right-e.left)/s.offsetWidth;return{style:`${u}: ${d/y}px; max-width: ${f/b}px`,class:"cm-completionInfo-"+(c?o?"left-narrow":"right-narrow":l?"left":"right")}}const PP=Ft.define();function $4e(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let r=document.createElement("div");return r.classList.add("cm-completionIcon"),n.type&&r.classList.add(...n.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),r.setAttribute("aria-hidden","true"),r},position:20}),e.push({render(n,r,a,s){let o=document.createElement("span");o.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let u=0;uc&&o.appendChild(document.createTextNode(l.slice(c,d)));let h=o.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(l.slice(d,f))),h.className="cm-completionMatchedText",c=f}return cn.position-r.position).map(n=>n.render)}function U_(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let a=Math.floor(e/n);return{from:a*n,to:(a+1)*n}}let r=Math.floor((t-e)/n);return{from:t-(r+1)*n,to:t-r*n}}class L4e{constructor(e,n,r){this.view=e,this.stateField=n,this.applyCompletion=r,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let a=e.state.field(n),{options:s,selected:o}=a.open,l=e.state.facet(ba);this.optionContent=$4e(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=U_(s.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:u}=e.state.field(n).open;for(let d=c.target,f;d&&d!=this.dom;d=d.parentNode)if(d.nodeName=="LI"&&(f=/-(\d+)$/.exec(d.id))&&+f[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;d!=null&&(e.dispatch({effects:PP.of(d)}),c.preventDefault())}}),this.dom.addEventListener("focusout",c=>{let u=e.state.field(this.stateField,!1);u&&u.tooltip&&e.state.facet(ba).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:ly.of(null)})}),this.showOptions(s,a.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let r=e.state.field(this.stateField),a=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),r!=a){let{options:s,selected:o,disabled:l}=r.open;(!a.open||a.open.options!=s)&&(this.range=U_(s.length,o,e.state.facet(ba).maxRenderedOptions),this.showOptions(s,r.id)),this.updateSel(),l!=((n=a.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let r of this.currentClass.split(" "))r&&this.dom.classList.remove(r);for(let r of n.split(" "))r&&this.dom.classList.add(r);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected=this.range.to)&&(this.range=U_(n.options.length,n.selected,this.view.state.facet(ba).maxRenderedOptions),this.showOptions(n.options,e.id));let r=this.updateSelectedOption(n.selected);if(r){this.destroyInfo();let{completion:a}=n.options[n.selected],{info:s}=a;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(a);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,a)}).catch(l=>ps(this.view.state,l,"completion info")):(this.addInfoPane(o,a),r.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let r=this.info=document.createElement("div");if(r.className="cm-tooltip cm-completionInfo",r.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)r.appendChild(e),this.infoDestroy=null;else{let{dom:a,destroy:s}=e;r.appendChild(a),this.infoDestroy=s||null}this.dom.appendChild(r),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let r=this.list.firstChild,a=this.range.from;r;r=r.nextSibling,a++)r.nodeName!="LI"||!r.id?a--:a==e?r.hasAttribute("aria-selected")||(r.setAttribute("aria-selected","true"),n=r):r.hasAttribute("aria-selected")&&(r.removeAttribute("aria-selected"),r.removeAttribute("aria-describedby"));return n&&B4e(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),r=this.info.getBoundingClientRect(),a=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return a.top>Math.min(s.bottom,n.bottom)-10||a.bottom{o.target==a&&o.preventDefault()});let s=null;for(let o=r.from;or.from||r.from==0))if(s=h,typeof u!="string"&&u.header)a.appendChild(u.header(u));else{let p=a.appendChild(document.createElement("completion-section"));p.textContent=h}}const d=a.appendChild(document.createElement("li"));d.id=n+"-"+o,d.setAttribute("role","option");let f=this.optionClass(l);f&&(d.className=f);for(let h of this.optionContent){let p=h(l,this.view.state,this.view,c);p&&d.appendChild(p)}}return r.from&&a.classList.add("cm-completionListIncompleteTop"),r.tonew L4e(n,t,e)}function B4e(t,e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=n.height/t.offsetHeight;r.topn.bottom&&(t.scrollTop+=(r.bottom-n.bottom)/a)}function O6(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function z4e(t,e){let n=[],r=null,a=null,s=d=>{n.push(d);let{section:f}=d.completion;if(f){r||(r=[]);let h=typeof f=="string"?f:f.name;r.some(p=>p.name==h)||r.push(typeof f=="string"?{name:h}:f)}},o=e.facet(ba);for(let d of t)if(d.hasResult()){let f=d.result.getMatch;if(d.result.filter===!1)for(let h of d.result.options)s(new C6(h,d.source,f?f(h):[],1e9-n.length));else{let h=e.sliceDoc(d.from,d.to),p,m=o.filterStrict?new D4e(h):new R4e(h);for(let x of d.result.options)if(p=m.match(x.label)){let y=x.displayLabel?f?f(x,p.matched):[]:p.matched,b=p.score+(x.boost||0);if(s(new C6(x,d.source,y,b)),typeof x.section=="object"&&x.section.rank==="dynamic"){let{name:v}=x.section;a||(a=Object.create(null)),a[v]=Math.max(b,a[v]||-1e9)}}}}if(r){let d=Object.create(null),f=0,h=(p,m)=>(p.rank==="dynamic"&&m.rank==="dynamic"?a[m.name]-a[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof m.rank=="number"?m.rank:1e9)||(p.nameh.score-f.score||u(f.completion,h.completion))){let f=d.completion;!c||c.label!=f.label||c.detail!=f.detail||c.type!=null&&f.type!=null&&c.type!=f.type||c.apply!=f.apply||c.boost!=f.boost?l.push(d):O6(d.completion)>O6(c)&&(l[l.length-1]=d),c=d.completion}return l}class $h{constructor(e,n,r,a,s,o){this.options=e,this.attrs=n,this.tooltip=r,this.timestamp=a,this.selected=s,this.disabled=o}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new $h(this.options,T6(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,r,a,s,o){if(a&&!o&&e.some(u=>u.isPending))return a.setDisabled();let l=z4e(e,n);if(!l.length)return a&&e.some(u=>u.isPending)?a.setDisabled():null;let c=n.facet(ba).selectOnOpen?0:-1;if(a&&a.selected!=c&&a.selected!=-1){let u=a.options[a.selected].completion;for(let d=0;dd.hasResult()?Math.min(u,d.from):u,1e8),create:q4e,above:s.aboveCursor},a?a.timestamp:Date.now(),c,!1)}map(e){return new $h(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new $h(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class kk{constructor(e,n,r){this.active=e,this.id=n,this.open=r}static start(){return new kk(H4e,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,r=n.facet(ba),s=(r.override||n.languageDataAt("autocomplete",Gd(n)).map(M4e)).map(c=>(this.active.find(d=>d.source==c)||new Ui(c,this.active.some(d=>d.state!=0)?1:0)).update(e,r));s.length==this.active.length&&s.every((c,u)=>c==this.active[u])&&(s=this.active);let o=this.open,l=e.effects.some(c=>c.is(MP));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!U4e(s,this.active)||l?o=$h.build(s,n,this.id,o,r,l):o&&o.disabled&&!s.some(c=>c.isPending)&&(o=null),!o&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new Ui(c.source,0):c));for(let c of e.effects)c.is(PP)&&(o=o&&o.setSelected(c.value,this.id));return s==this.active&&o==this.open?this:new kk(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?V4e:W4e}}function U4e(t,e){if(t==e)return!0;for(let n=0,r=0;;){for(;n-1&&(n["aria-activedescendant"]=t+"-"+e),n}const H4e=[];function wY(t,e){if(t.isUserEvent("input.complete")){let r=t.annotation(bY);if(r&&e.activateOnCompletion(r))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class Ui{constructor(e,n,r=!1){this.source=e,this.state=n,this.explicit=r}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let r=wY(e,n),a=this;(r&8||r&16&&this.touches(e))&&(a=new Ui(a.source,0)),r&4&&a.state==0&&(a=new Ui(this.source,1)),a=a.updateFor(e,r);for(let s of e.effects)if(s.is(wk))a=new Ui(a.source,1,s.value);else if(s.is(ly))a=new Ui(a.source,0);else if(s.is(MP))for(let o of s.value)o.source==a.source&&(a=o);return a}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Gd(e.state))}}class rp extends Ui{constructor(e,n,r,a,s,o){super(e,3,n),this.limit=r,this.result=a,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,n){var r;if(!(n&3))return this.map(e.changes);let a=this.result;a.map&&!e.changes.empty&&(a=a.map(a,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=Gd(e.state);if(l>o||!a||n&2&&(Gd(e.startState)==this.from||ln.map(e))}}),Rs=as.define({create(){return kk.start()},update(t,e){return t.update(e)},provide:t=>[hP.from(t,e=>e.tooltip),We.contentAttributes.from(t,e=>e.attrs)]});function RP(t,e){const n=e.completion.apply||e.completion.label;let r=t.state.field(Rs).active.find(a=>a.source==e.source);return r instanceof rp?(typeof n=="string"?t.dispatch({...P4e(t.state,n,r.from,r.to),annotations:bY.of(e.completion)}):n(t,e.completion,r.from,r.to),!0):!1}const q4e=F4e(Rs,RP);function Ob(t,e="option"){return n=>{let r=n.state.field(Rs,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+a*(t?1:-1):t?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),n.dispatch({effects:PP.of(l)}),!0}}const K4e=t=>{let e=t.state.field(Rs,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Rs,!1)?(t.dispatch({effects:wk.of(!0)}),!0):!1,Y4e=t=>{let e=t.state.field(Rs,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:ly.of(null)}),!0)};class X4e{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const J4e=50,Z4e=1e3,Q4e=br.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Rs).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Rs),n=t.state.facet(ba);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Rs)==e)return;let r=t.transactions.some(s=>{let o=wY(s,n);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;sJ4e&&Date.now()-o.time>Z4e){for(let l of o.context.abortListeners)try{l()}catch(c){ps(this.view.state,c)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(s=>s.effects.some(o=>o.is(wk)))&&(this.pendingStart=!0);let a=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),a):-1,this.composing!=0)for(let s of t.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Rs);for(let n of e.active)n.isPending&&!this.running.some(r=>r.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(ba).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=Gd(e),r=new yY(e,n,t.explicit,this.view),a=new X4e(t,r);this.running.push(a),Promise.resolve(t.source(r)).then(s=>{a.context.aborted||(a.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:ly.of(null)}),ps(this.view.state,s)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(ba).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(ba),r=this.view.state.field(Rs);for(let a=0;al.source==s.active.source);if(o&&o.isPending)if(s.done==null){let l=new Ui(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||r.open&&r.open.disabled)&&this.view.dispatch({effects:MP.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Rs,!1);if(e&&e.tooltip&&this.view.state.facet(ba).closeOnBlur){let n=e.open&&Zq(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ly.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:wk.of(!1)}),20),this.composing=0}}}),eDe=typeof navigator=="object"&&/Win/.test(navigator.platform),tDe=Of.highest(We.domEventHandlers({keydown(t,e){let n=e.state.field(Rs,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(eDe&&t.altKey)||t.metaKey)return!1;let r=n.open.options[n.open.selected],a=n.active.find(o=>o.source==r.source),s=r.completion.commitCharacters||a.result.commitCharacters;return s&&s.indexOf(t.key)>-1&&RP(e,r),!1}})),nDe=We.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),cy={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Pd=Ft.define({map(t,e){let n=e.mapPos(t,-1,us.TrackAfter);return n??void 0}}),DP=new class extends Pu{};DP.startSide=1;DP.endSide=-1;const kY=as.define({create(){return Gt.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:r=>r>=n.from&&r<=n.to})}for(let n of e.effects)n.is(Pd)&&(t=t.update({add:[DP.range(n.value,n.value+1)]}));return t}});function rDe(){return[sDe,kY]}const V_="()[]{}<>«»»«[]{}";function jY(t){for(let e=0;e{if((aDe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let a=t.state.selection.main;if(r.length>2||r.length==2&&tl(Ms(r,0))==1||e!=a.from||n!=a.to)return!1;let s=lDe(t.state,r);return s?(t.dispatch(s),!0):!1}),iDe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let r=SY(t,t.selection.main.head).brackets||cy.brackets,a=null,s=t.changeByRange(o=>{if(o.empty){let l=cDe(t.doc,o.head);for(let c of r)if(c==l&&p2(t.doc,o.head)==jY(Ms(c,0)))return{changes:{from:o.head-c.length,to:o.head+c.length},range:Ee.cursor(o.head-c.length)}}return{range:a=o}});return a||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!a},oDe=[{key:"Backspace",run:iDe}];function lDe(t,e){let n=SY(t,t.selection.main.head),r=n.brackets||cy.brackets;for(let a of r){let s=jY(Ms(a,0));if(e==a)return s==a?fDe(t,a,r.indexOf(a+a+a)>-1,n):uDe(t,a,s,n.before||cy.before);if(e==s&&_Y(t,t.selection.main.from))return dDe(t,a,s)}return null}function _Y(t,e){let n=!1;return t.field(kY).between(0,t.doc.length,r=>{r==e&&(n=!0)}),n}function p2(t,e){let n=t.sliceString(e,e+2);return n.slice(0,tl(Ms(n,0)))}function cDe(t,e){let n=t.sliceString(e-2,e);return tl(Ms(n,0))==n.length?n:n.slice(1)}function uDe(t,e,n,r){let a=null,s=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:n,from:o.to}],effects:Pd.of(o.to+e.length),range:Ee.range(o.anchor+e.length,o.head+e.length)};let l=p2(t.doc,o.head);return!l||/\s/.test(l)||r.indexOf(l)>-1?{changes:{insert:e+n,from:o.head},effects:Pd.of(o.head+e.length),range:Ee.cursor(o.head+e.length)}:{range:a=o}});return a?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function dDe(t,e,n){let r=null,a=t.changeByRange(s=>s.empty&&p2(t.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:Ee.cursor(s.head+n.length)}:r={range:s});return r?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function fDe(t,e,n,r){let a=r.stringPrefixes||cy.stringPrefixes,s=null,o=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Pd.of(l.to+e.length),range:Ee.range(l.anchor+e.length,l.head+e.length)};let c=l.head,u=p2(t.doc,c),d;if(u==e){if(P6(t,c))return{changes:{insert:e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)};if(_Y(t,c)){let h=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+h.length,insert:h},range:Ee.cursor(c+h.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(d=M6(t,c-2*e.length,a))>-1&&P6(t,d))return{changes:{insert:e+e+e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)};if(t.charCategorizer(c)(u)!=pr.Word&&M6(t,c,a)>-1&&!hDe(t,c,e,a))return{changes:{insert:e+e,from:c},effects:Pd.of(c+e.length),range:Ee.cursor(c+e.length)}}return{range:s=l}});return s?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function P6(t,e){let n=rs(t).resolveInner(e+1);return n.parent&&n.from==e}function hDe(t,e,n,r){let a=rs(t).resolveInner(e,-1),s=r.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=t.sliceDoc(a.from,Math.min(a.to,a.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&r.indexOf(l.slice(0,c))>-1){let d=a.firstChild;for(;d&&d.from==a.from&&d.to-d.from>n.length+c;){if(t.sliceDoc(d.to-n.length,d.to)==n)return!1;d=d.firstChild}return!0}let u=a.to==e&&a.parent;if(!u)break;a=u}return!1}function M6(t,e,n){let r=t.charCategorizer(e);if(r(t.sliceDoc(e-1,e))!=pr.Word)return e;for(let a of n){let s=e-a.length;if(t.sliceDoc(s,e)==a&&r(t.sliceDoc(s-1,s))!=pr.Word)return s}return-1}function NY(t={}){return[tDe,Rs,ba.of(t),Q4e,pDe,nDe]}const CY=[{key:"Ctrl-Space",run:ap},{mac:"Alt-`",run:ap},{mac:"Alt-i",run:ap},{key:"Escape",run:Y4e},{key:"ArrowDown",run:Ob(!0)},{key:"ArrowUp",run:Ob(!1)},{key:"PageDown",run:Ob(!0,"page")},{key:"PageUp",run:Ob(!1,"page")},{key:"Enter",run:K4e}],pDe=Of.highest(s2.computeN([ba],t=>t.facet(ba).defaultKeymap?[CY]:[]));class R6{constructor(e,n,r){this.from=e,this.to=n,this.diagnostic=r}}class yd{constructor(e,n,r){this.diagnostics=e,this.panel=n,this.selected=r}static init(e,n,r){let a=r.facet(dl).markerFilter;a&&(e=a(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new xc,l=[],c=0,u=r.doc.iter(),d=0,f=r.doc.length;for(let p=0;;){let m=p==s.length?null:s[p];if(!m&&!l.length)break;let x,y;if(l.length)x=c,y=l.reduce((w,j)=>Math.min(w,j.to),m&&m.from>x?m.from:1e8);else{if(x=m.from,x>f)break;y=m.to,l.push(m),p++}for(;pw.from||w.to==x))l.push(w),p++,y=Math.min(w.to,y);else{y=Math.min(w.from,y);break}}y=Math.min(y,f);let b=!1;if(l.some(w=>w.from==x&&(w.to==y||y==f))&&(b=x==y,!b&&y-x<10)){let w=x-(d+u.value.length);w>0&&(u.next(w),d=x);for(let j=x;;){if(j>=y){b=!0;break}if(!u.lineBreak&&d+u.value.length>j)break;j=d+u.value.length,d+=u.value.length,u.next()}}let v=ODe(l);if(b)o.add(x,x,kt.widget({widget:new NDe(v),diagnostics:l.slice()}));else{let w=l.reduce((j,k)=>k.markClass?j+" "+k.markClass:j,"");o.add(x,y,kt.mark({class:"cm-lintRange cm-lintRange-"+v+w,diagnostics:l.slice(),inclusiveEnd:l.some(j=>j.to>y)}))}if(c=y,c==f)break;for(let w=0;w{if(!(e&&o.diagnostics.indexOf(e)<0))if(!r)r=new R6(a,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new R6(r.from,s,r.diagnostic)}}),r}function mDe(t,e){let n=e.pos,r=e.end||n,a=t.state.facet(dl).hideOn(t,n,r);if(a!=null)return a;let s=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(IP))||t.changes.touchesRange(s.from,Math.max(s.to,r)))}function EY(t,e){return t.field(hi,!1)?e:e.concat(Ft.appendConfig.of(MY))}function gDe(t,e){return{effects:EY(t,[IP.of(e)])}}const IP=Ft.define(),$P=Ft.define(),AY=Ft.define(),hi=as.define({create(){return new yd(kt.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),r=null,a=t.panel;if(t.selected){let s=e.changes.mapPos(t.selected.from,1);r=Lu(n,t.selected.diagnostic,s)||Lu(n,null,s)}!n.size&&a&&e.state.facet(dl).autoPanel&&(a=null),t=new yd(n,a,r)}for(let n of e.effects)if(n.is(IP)){let r=e.state.facet(dl).autoPanel?n.value.length?uy.open:null:t.panel;t=yd.init(n.value,r,e.state)}else n.is($P)?t=new yd(t.diagnostics,n.value?uy.open:null,t.selected):n.is(AY)&&(t=new yd(t.diagnostics,t.panel,n.value));return t},provide:t=>[ny.from(t,e=>e.panel),We.decorations.from(t,e=>e.diagnostics)]}),xDe=kt.mark({class:"cm-lintRange cm-lintRange-active"});function yDe(t,e,n){let{diagnostics:r}=t.state.field(hi),a,s=-1,o=-1;r.between(e-(n<0?1:0),e+(n>0?1:0),(c,u,{spec:d})=>{if(e>=c&&e<=u&&(c==u||(e>c||n>0)&&(ePY(t,n,!1)))}const bDe=t=>{let e=t.state.field(hi,!1);(!e||!e.panel)&&t.dispatch({effects:EY(t.state,[$P.of(!0)])});let n=pP(t,uy.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},D6=t=>{let e=t.state.field(hi,!1);return!e||!e.panel?!1:(t.dispatch({effects:$P.of(!1)}),!0)},wDe=t=>{let e=t.state.field(hi,!1);if(!e)return!1;let n=t.state.selection.main,r=Lu(e.diagnostics,null,n.to+1);return!r&&(r=Lu(e.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(t.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},kDe=[{key:"Mod-Shift-m",run:bDe,preventDefault:!0},{key:"F8",run:wDe}],OY=br.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(dl);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(r(this.view))),r=>{this.view.state.doc==e.doc&&this.view.dispatch(gDe(this.view.state,r.reduce((a,s)=>a.concat(s))))},r=>{ps(this.view.state,r)})}}update(t){let e=t.state.facet(dl);(t.docChanged||e!=t.startState.facet(dl)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function jDe(t,e,n){let r=[],a=-1;for(let s of t)s.then(o=>{r.push(o),clearTimeout(a),r.length==t.length?e(r):a=setTimeout(()=>e(r),200)},n)}const dl=Qe.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...Tl(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:I6,tooltipFilter:I6,needsRefresh:(e,n)=>e?n?r=>e(r)||n(r):e:n,hideOn:(e,n)=>e?n?(r,a,s)=>e(r,a,s)||n(r,a,s):e:n,autoPanel:(e,n)=>e||n})}}});function I6(t,e){return t?e?(n,r)=>e(t(n,r),r):t:e}function SDe(t,e={}){return[dl.of({source:t,config:e}),OY,MY]}function _De(t){let e=t.plugin(OY);e&&e.force()}function TY(t){let e=[];if(t)e:for(let{name:n}of t){for(let r=0;rs.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function PY(t,e,n){var r;let a=n?TY(e.actions):[];return Pn("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Pn("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(r=e.actions)===null||r===void 0?void 0:r.map((s,o)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=Lu(t.state.field(hi).diagnostics,e);m&&s.apply(t,m.from,m.to)},{name:u}=s,d=a[o]?u.indexOf(a[o]):-1,f=d<0?u:[u.slice(0,d),Pn("u",u.slice(d,d+1)),u.slice(d+1)],h=s.markClass?" "+s.markClass:"";return Pn("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${a[o]})"`}.`},f)}),e.source&&Pn("div",{class:"cm-diagnosticSource"},e.source))}class NDe extends Pl{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Pn("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class $6{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=PY(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class uy{constructor(e){this.view=e,this.items=[];let n=a=>{if(!(a.ctrlKey||a.altKey||a.metaKey)){if(a.keyCode==27)D6(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=TY(s.actions);for(let l=0;l{for(let s=0;sD6(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(hi).selected;if(!e)return-1;for(let n=0;n{for(let d of u.diagnostics){if(o.has(d))continue;o.add(d);let f=-1,h;for(let p=r;pr&&(this.items.splice(r,f-r),a=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),s=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.topc.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function n(){let r=e;e=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;e!=r.dom;)n();e=r.dom.nextSibling}else this.list.insertBefore(r.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(hi),r=Lu(n.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:AY.of(r)})}static open(e){return new uy(e)}}function CDe(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Tb(t){return CDe(``,'width="6" height="3"')}const EDe=We.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Tb("#d11")},".cm-lintRange-warning":{backgroundImage:Tb("orange")},".cm-lintRange-info":{backgroundImage:Tb("#999")},".cm-lintRange-hint":{backgroundImage:Tb("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function ADe(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function ODe(t){let e="hint",n=1;for(let r of t){let a=ADe(r.severity);a>n&&(n=a,e=r.severity)}return e}const MY=[hi,We.decorations.compute([hi],t=>{let{selected:e,panel:n}=t.field(hi);return!e||!n||e.from==e.to?kt.none:kt.set([xDe.range(e.from,e.to)])}),hPe(yDe,{hideOn:mDe}),EDe];var L6=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(oDe)),e.defaultKeymap!==!1&&(r=r.concat(QRe)),e.searchKeymap!==!1&&(r=r.concat(N4e)),e.historyKeymap!==!1&&(r=r.concat(iRe)),e.foldKeymap!==!1&&(r=r.concat(gMe)),e.completionKeymap!==!1&&(r=r.concat(CY)),e.lintKeymap!==!1&&(r=r.concat(kDe));var a=[];return e.lineNumbers!==!1&&a.push(NPe()),e.highlightActiveLineGutter!==!1&&a.push(APe()),e.highlightSpecialChars!==!1&&a.push(VTe()),e.history!==!1&&a.push(JMe()),e.foldGutter!==!1&&a.push(bMe()),e.drawSelection!==!1&&a.push(PTe()),e.dropCursor!==!1&&a.push($Te()),e.allowMultipleSelections!==!1&&a.push(rn.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(iMe()),e.syntaxHighlighting!==!1&&a.push(wP(SMe,{fallback:!0})),e.bracketMatching!==!1&&a.push(TMe()),e.closeBrackets!==!1&&a.push(rDe()),e.autocompletion!==!1&&a.push(NY()),e.rectangularSelection!==!1&&a.push(nPe()),n!==!1&&a.push(sPe()),e.highlightActiveLine!==!1&&a.push(YTe()),e.highlightSelectionMatches!==!1&&a.push(s4e()),e.tabSize&&typeof e.tabSize=="number"&&a.push(o2.of(" ".repeat(e.tabSize))),a.concat([s2.of(r.flat())]).filter(Boolean)};const TDe="#e5c07b",F6="#e06c75",PDe="#56b6c2",MDe="#ffffff",x1="#abb2bf",O5="#7d8799",RDe="#61afef",DDe="#98c379",B6="#d19a66",IDe="#c678dd",$De="#21252b",z6="#2c313a",U6="#282c34",W_="#353a42",LDe="#3E4451",V6="#528bff",FDe=We.theme({"&":{color:x1,backgroundColor:U6},".cm-content":{caretColor:V6},".cm-cursor, .cm-dropCursor":{borderLeftColor:V6},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:LDe},".cm-panels":{backgroundColor:$De,color:x1},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:U6,color:O5,border:"none"},".cm-activeLineGutter":{backgroundColor:z6},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:W_},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:W_,borderBottomColor:W_},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:z6,color:x1}}},{dark:!0}),BDe=Dm.define([{tag:oe.keyword,color:IDe},{tag:[oe.name,oe.deleted,oe.character,oe.propertyName,oe.macroName],color:F6},{tag:[oe.function(oe.variableName),oe.labelName],color:RDe},{tag:[oe.color,oe.constant(oe.name),oe.standard(oe.name)],color:B6},{tag:[oe.definition(oe.name),oe.separator],color:x1},{tag:[oe.typeName,oe.className,oe.number,oe.changed,oe.annotation,oe.modifier,oe.self,oe.namespace],color:TDe},{tag:[oe.operator,oe.operatorKeyword,oe.url,oe.escape,oe.regexp,oe.link,oe.special(oe.string)],color:PDe},{tag:[oe.meta,oe.comment],color:O5},{tag:oe.strong,fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.link,color:O5,textDecoration:"underline"},{tag:oe.heading,fontWeight:"bold",color:F6},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:B6},{tag:[oe.processingInstruction,oe.string,oe.inserted],color:DDe},{tag:oe.invalid,color:MDe}]),zDe=[FDe,wP(BDe)];var UDe=We.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),VDe=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:r=!0,readOnly:a=!1,theme:s="light",placeholder:o="",basicSetup:l=!0}=e,c=[];switch(n&&c.unshift(s2.of([e4e])),l&&(typeof l=="boolean"?c.unshift(L6()):c.unshift(L6(l))),o&&c.unshift(Xq(o)),s){case"light":c.push(UDe);break;case"dark":c.push(zDe);break;case"none":break;default:c.push(s);break}return r===!1&&c.push(We.editable.of(!1)),a&&c.push(rn.readOnly.of(!0)),[...c]},WDe=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)});class HDe{constructor(e,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class W6{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var H_=null,GDe=()=>typeof window>"u"?new W6:(H_||(H_=new W6),H_),H6=Ol.define(),qDe=200,KDe=[];function YDe(t){var{value:e,selection:n,onChange:r,onStatistics:a,onCreateEditor:s,onUpdate:o,extensions:l=KDe,autoFocus:c,theme:u="light",height:d=null,minHeight:f=null,maxHeight:h=null,width:p=null,minWidth:m=null,maxWidth:x=null,placeholder:y="",editable:b=!0,readOnly:v=!1,indentWithTab:w=!0,basicSetup:j=!0,root:k,initialState:_}=t,[S,N]=g.useState(),[E,P]=g.useState(),[M,A]=g.useState(),O=g.useState(()=>({current:null}))[0],D=g.useState(()=>({current:null}))[0],I=We.theme({"&":{height:d,minHeight:f,maxHeight:h,width:p,minWidth:m,maxWidth:x},"& .cm-scroller":{height:"100% !important"}}),X=We.updateListener.of(Y=>{if(Y.docChanged&&typeof r=="function"&&!Y.transactions.some($=>$.annotation(H6))){O.current?O.current.reset():(O.current=new HDe(()=>{if(D.current){var $=D.current;D.current=null,$()}O.current=null},qDe),GDe().add(O.current));var H=Y.state.doc,G=H.toString();r(G,Y)}a&&a(WDe(Y))}),Q=VDe({theme:u,editable:b,readOnly:v,placeholder:y,indentWithTab:w,basicSetup:j}),V=[X,I,...Q];return o&&typeof o=="function"&&V.push(We.updateListener.of(o)),V=V.concat(l),g.useLayoutEffect(()=>{if(S&&!M){var Y={doc:e,selection:n,extensions:V},H=_?rn.fromJSON(_.json,Y,_.fields):rn.create(Y);if(A(H),!E){var G=new We({state:H,parent:S,root:k});P(G),s&&s(G,H)}}return()=>{E&&(A(void 0),P(void 0))}},[S,M]),g.useEffect(()=>{t.container&&N(t.container)},[t.container]),g.useEffect(()=>()=>{E&&(E.destroy(),P(void 0)),O.current&&(O.current.cancel(),O.current=null)},[E]),g.useEffect(()=>{c&&E&&E.focus()},[c,E]),g.useEffect(()=>{E&&E.dispatch({effects:Ft.reconfigure.of(V)})},[u,l,d,f,h,p,m,x,y,b,v,w,j,r,o]),g.useEffect(()=>{if(e!==void 0){var Y=E?E.state.doc.toString():"";if(E&&e!==Y){var H=O.current&&!O.current.isDone,G=()=>{E&&e!==E.state.doc.toString()&&E.dispatch({changes:{from:0,to:E.state.doc.toString().length,insert:e||""},annotations:[H6.of(!0)]})};H?D.current=G:G()}}},[e,E]),{state:M,setState:A,view:E,setView:P,container:S,setContainer:N}}var XDe=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],RY=g.forwardRef((t,e)=>{var{className:n,value:r="",selection:a,extensions:s=[],onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,autoFocus:d,theme:f="light",height:h,minHeight:p,maxHeight:m,width:x,minWidth:y,maxWidth:b,basicSetup:v,placeholder:w,indentWithTab:j,editable:k,readOnly:_,root:S,initialState:N}=t,E=ike(t,XDe),P=g.useRef(null),{state:M,view:A,container:O,setContainer:D}=YDe({root:S,value:r,autoFocus:d,theme:f,height:h,minHeight:p,maxHeight:m,width:x,minWidth:y,maxWidth:b,basicSetup:v,placeholder:w,indentWithTab:j,editable:k,readOnly:_,selection:a,onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,extensions:s,initialState:N});g.useImperativeHandle(e,()=>({editor:P.current,state:M,view:A}),[P,O,M,A]);var I=g.useCallback(Q=>{P.current=Q,D(Q)},[D]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var X=typeof f=="string"?"cm-theme-"+f:"cm-theme";return i.jsx("div",T0({ref:I,className:""+X+(n?" "+n:"")},E))});RY.displayName="CodeMirror";var DY=t=>{var{theme:e,settings:n={},styles:r=[]}=t,a={".cm-gutters":{}},s={};n.background&&(s.backgroundColor=n.background),n.backgroundImage&&(s.backgroundImage=n.backgroundImage),n.foreground&&(s.color=n.foreground),n.fontSize&&(s.fontSize=n.fontSize),(n.background||n.foreground)&&(a["&"]=s),n.fontFamily&&(a["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(a[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(a[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(a[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(a[".cm-content"]={caretColor:n.caret},a[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var o={};n.gutterActiveForeground&&(o.color=n.gutterActiveForeground),n.lineHighlight&&(a[".cm-activeLine"]={backgroundColor:n.lineHighlight},o.backgroundColor=n.lineHighlight),a[".cm-activeLineGutter"]=o,n.selection&&(a["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:n.selection+" !important"}),n.selectionMatch&&(a["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var l=We.theme(a,{dark:e==="dark"}),c=Dm.define(r),u=[l,wP(c)];return u},JDe={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},ZDe=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#116329"},{tag:[oe.comment,oe.bracket],color:"#6a737d"},{tag:[oe.className,oe.propertyName],color:"#6f42c1"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#005cc5"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#d73a49"},{tag:[oe.string,oe.meta,oe.regexp],color:"#032f62"},{tag:[oe.name,oe.quote],color:"#22863a"},{tag:[oe.heading,oe.strong],color:"#24292e",fontWeight:"bold"},{tag:[oe.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[oe.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#e36209"},{tag:[oe.url,oe.escape,oe.regexp,oe.link],color:"#032f62"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#cb2431"}],IY=t=>{var{theme:e="light",settings:n={},styles:r=[]}=t||{};return DY({theme:e,settings:T0({},JDe,n),styles:[...ZDe,...r]})};IY();var QDe={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},eIe=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#7ee787"},{tag:[oe.comment,oe.bracket],color:"#8b949e"},{tag:[oe.className,oe.propertyName],color:"#d2a8ff"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#79c0ff"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#ff7b72"},{tag:[oe.string,oe.meta,oe.regexp],color:"#a5d6ff"},{tag:[oe.name,oe.quote],color:"#7ee787"},{tag:[oe.heading,oe.strong],color:"#d2a8ff",fontWeight:"bold"},{tag:[oe.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[oe.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#ffab70"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#f97583"}],$Y=t=>{var{theme:e="dark",settings:n={},styles:r=[]}=t||{};return DY({theme:e,settings:T0({},QDe,n),styles:[...eIe,...r]})};$Y();const tIe=["absa_sanlam","aci","adyen","adyenplatform","affirm","airwallex","amazonpay","archipel","authipay","authorizedotnet","bambora","bamboraapac","bankofamerica","barclaycard","billwerk","bitpay","blackhawknetwork","bluesnap","boku","braintree","breadpay","calida","cardinal","cashtocode","celero","chargebee","checkbook","checkout","coinbase","coingate","cryptopay","ctp_mastercard","ctp_visa","custombilling","cybersource","cybersourcedecisionmanager","datatrans","deutschebank","digitalvirgo","dlocal","dwolla","ebanx","elavon","envoy","facilitapay","finix","fiserv","fiservcommercehub","fiservemea","fiuu","flexiti","forte","getnet","gigadat","givepayments","globalpay","globepay","gocardless","helcim","hipay","hyperpg","iatapay","imerchantsolutions","inespay","interpayments","itaubank","jpmorgan","juspaythreedsserver","klarna","loonio","mifinity","mollie","moneris","multisafepay","netcetera","nexinets","nexixpay","nmi","nomupay","noon","nordea","novalnet","nuvei","opennode","paybox","payconex","payjustnow","payjustnowinstore","payload","payme","payone","paypal","paysafe","paystack","paytm","payu","peachpayments","phonepe","placetopay","plaid","powertranz","prophetpay","rapyd","razorpay","recurly","redsys","revolv3","riskified","santander","shift4","signifyd","silverflow","square","stax","stripe","stripebilling","tesouro","threedsecureio","tokenio","truelayer","trustly","trustpay","trustpayments","tsys","tsys_transit","vgs","volt","wellsfargo","wise","worldline","worldpay","worldpaymodular","worldpayvantiv","worldpayxml","xendit","zen","zift","zsl"];function am(t,e=[],n=[]){const r=new Set(e.filter(Boolean)),a=kAe();if(a){const o=new Set(n.filter(Boolean));return a.filter(l=>!o.has(l.merchant_connector_id)).map(l=>({name:l.connector_name,gatewayId:l.merchant_connector_id}))}const s=new Set;return[...t,...tIe].filter(o=>!o||r.has(o)||s.has(o)?!1:(s.add(o),!0)).map(o=>({name:o}))}function T5(t,e){const n=t.toLowerCase(),r=e.toLowerCase();if(!n)return 0;if(r.startsWith(n))return 1e3-r.length;let a=0,s=0,o=-1,l=0;for(let c=0;c({item:n,score:T5(t,n)})).filter(n=>n.score!==null).sort((n,r)=>r.score-n.score).map(n=>n.item):e}const nIe={"==":"=","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in",not_in:"not in"},rIe={"=":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in","not in":"not_in"};function ix(t){return Array.isArray(t.value)?`${t.lhs} in [${t.value.join(", ")}]`:`${t.metadataKey?`${t.lhs}.${t.metadataKey}`:t.lhs} ${nIe[t.operator]??t.operator} ${t.value}`}function G6(t){const e=t.conditions.map(ix).join(" and ");return t.conditions.length>1?`(${e})`:e}function aIe(t){const e=[];if(t.conditions.length===0&&t.nested.length>0){const n=t.nested[0].conditions;e.push(n.length>1?`(${n.map(ix).join(" and ")})`:n.length===1?ix(n[0]):"");const r=t.nested.slice(1);return r.length>0&&e.push(`and (${r.map(G6).join(" or ")})`),e.filter(Boolean)}return t.conditions.forEach((n,r)=>e.push(r===0?ix(n):`and ${ix(n)}`)),t.nested.length>0&&e.push(`and (${t.nested.map(G6).join(" or ")})`),e}function sIe(t){return t.map(e=>{const n=[];if(e.statements.forEach((r,a)=>{a>0&&n.push("or"),aIe(r).forEach(s=>n.push(s))}),e.outputType==="priority"){const r=e.priorityGateways.map(a=>a.gatewayId?`${a.gatewayName}(${a.gatewayId})`:a.gatewayName).join(", ");n.push(`=> priority: ${r}`)}else if(e.outputType==="volume_split"){const r=e.volumeSplitEntries.map(a=>`${a.split}% ${a.gatewayName}${a.gatewayId?`(${a.gatewayId})`:""}`).join(", ");n.push(`=> volume_split: ${r}`)}else{const r=e.volumeSplitPriorityEntries.map(a=>`${a.split}% [${a.gateways.map(s=>s.gatewayId?`${s.gatewayName}(${s.gatewayId})`:s.gatewayName).join(", ")}]`).join(", ");n.push(`=> volume_split_priority: ${r}`)}return n.join(` +`)}).join(` + +`)}class Md extends Error{}function G_(t){if(t=t.trim(),!t)return null;const e=/^(\w+)\s+in\s+\[([^\]]*)\]$/.exec(t);if(e){const a=e[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Md(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:e[1],operator:"in",value:a}}const n=/^(\w+)\s+not\s+in\s+\[([^\]]*)\]$/.exec(t);if(n){const a=n[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Md(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:n[1],operator:"not_in",value:a}}const r=/^([\w.]+)\s*(>=|<=|!=|>|<|=)\s*(.+)$/.exec(t);if(r){const a=r[3].trim();if(!a)throw new Md(`Empty value in condition: "${t}"`);const s=r[1],o=s.indexOf("."),l=o>=0?s.slice(0,o):s,c=o>=0?s.slice(o+1):void 0;return{id:crypto.randomUUID(),lhs:l,operator:rIe[r[2]]??r[2],value:a,metadataKey:c}}throw new Md(`Invalid condition syntax: "${t}"`)}function q_(t,e){const n=[];let r=0,a=0;for(let s=0;s0)continue;const o=e.exec(t.slice(s));o&&o.index===0&&(n.push(t.slice(a,s).trim()),s+=o[0].length-1,a=s+1)}return n.push(t.slice(a).trim()),n.filter(Boolean)}function K_(t){return t=t.trim(),t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1).trim():t}function iIe(t){const e=[],n=[];for(const r of t.split(` +`)){const a=r.trim();if(!a||a.startsWith("#"))continue;const s=a.replace(/^(?:and|or)\s+/i,"").trim();if(s.startsWith("(")&&s.endsWith(")"))if(e.length===0&&n.length===0)for(const o of q_(s.slice(1,-1),/^\s+and\s+/i))try{const l=G_(K_(o));l&&e.push(l)}catch(l){if(l instanceof Md)return{group:null,error:l.message};throw l}else for(const o of q_(s.slice(1,-1),/^\s+or\s+/i)){const l=[];for(const c of q_(K_(o),/^\s+and\s+/i))try{const u=G_(K_(c));u&&l.push(u)}catch(u){if(u instanceof Md)return{group:null,error:u.message};throw u}l.length&&n.push({id:crypto.randomUUID(),conditions:l,nested:[]})}else try{const o=G_(s);o&&e.push(o)}catch(o){if(o instanceof Md)return{group:null,error:o.message};throw o}}return{group:{id:crypto.randomUUID(),conditions:e,nested:n},error:null}}function oIe(t){let e=!0;for(const n of t.split(` +`)){const r=n.trim();if(!(!r||r.startsWith("#"))){if(/^or$/i.test(r)){e=!0;continue}if(!/^and$/i.test(r)){if(e){e=!1;continue}if(!/^(?:and|or)\s+/i.test(r))return`Missing 'and' or 'or' before: "${r.length>40?r.slice(0,40)+"…":r}"`}}}return null}function lIe(t){const e=[];let n=0,r=0,a="";for(let s=0;s0)continue;const o=/^(\s+)(and|or)(\s+)/i.exec(t.slice(s));o&&(e.push({sep:a,text:t.slice(r,s).trim()}),a=o[2].toLowerCase(),s+=o[0].length-1,r=s+1)}return e.push({sep:a,text:t.slice(r).trim()}),e.filter(s=>s.text)}function cIe(t){return t.split(` +`).flatMap(e=>{const n=e.trim();if(!n||n.startsWith("#")||/^=>/.test(n)||/^(?:and|or)(?:\s|$)/i.test(n))return[e];const r=lIe(n);return r.length<=1?[e]:r.map((a,s)=>s===0?a.text:`${a.sep} ${a.text}`)}).join(` +`)}function uIe(t){const e=[],n=t.split(/\n\s*\n/).map(r=>r.trim()).filter(Boolean);for(let r=0;r");if(s===-1)continue;const o=cIe(a.slice(0,s).trim()),l=oIe(o);if(l)return{rules:null,error:`Rule ${r+1}: ${l}`};const c=a.slice(s+2).trim();let u="priority",d=[],f=[];const h=[];if(c.startsWith("priority:")){u="priority";const x=c.slice(9).trim();d=x?x.split(",").flatMap(y=>{const b=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(y.trim());return b&&b[1]?[{id:crypto.randomUUID(),gatewayName:b[1],gatewayId:b[2]??""}]:[]}):[]}else if(c.startsWith("volume_split:")){u="volume_split";const x=c.slice(13).trim();f=x?x.split(",").flatMap(y=>{const b=/^(\d+)%\s+([^\s(]+)(?:\(([^)]*)\))?$/.exec(y.trim());return b?[{id:crypto.randomUUID(),split:Number(b[1]),gatewayName:b[2],gatewayId:b[3]??""}]:[]}):[]}else if(c.startsWith("volume_split_priority:")){u="volume_split_priority";const x=c.slice(22).trim(),y=/(\d+)%\s*\[([^\]]*)\]/g;let b;for(;(b=y.exec(x))!==null;){const v=b[2].split(",").map(w=>w.trim()).filter(Boolean).map(w=>{const j=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(w);return{id:crypto.randomUUID(),gatewayName:(j==null?void 0:j[1])??w,gatewayId:(j==null?void 0:j[2])??""}});h.push({id:crypto.randomUUID(),split:Number(b[1]),gateways:v})}}else return{rules:null,error:`Rule ${r+1}: output must start with priority:, volume_split:, or volume_split_priority:`};if(u==="priority"&&d.length===0)return{rules:null,error:`Rule ${r+1}: priority output must have at least one gateway`};if(u==="volume_split"&&f.length===0)return{rules:null,error:`Rule ${r+1}: volume_split output must have at least one gateway`};if(u==="volume_split_priority"&&h.length===0)return{rules:null,error:`Rule ${r+1}: volume_split_priority output must have at least one gateway`};const p=o.replace(/^([ \t]*)or\s+(?=\S)/gim,`$1or +$1`),m=[];for(const x of p.split(/^[ \t]*or[ \t]*$/im)){const{group:y,error:b}=iIe(x.trim());if(b)return{rules:null,error:`Rule ${r+1}: ${b}`};y&&(y.conditions.length>0||y.nested.length>0)&&m.push(y)}m.length||m.push({id:crypto.randomUUID(),conditions:[],nested:[]}),e.push({id:crypto.randomUUID(),name:`Rule ${e.length+1}`,statements:m,outputType:u,priorityGateways:d,volumeSplitEntries:f,volumeSplitPriorityEntries:h})}return{rules:e,error:null}}const LY=`currency in [EUR, GBP] +and amount > 100 +and (payment_method = card or card_type = credit) +=> priority: adyen + +currency = USD +=> volume_split: 70% stripe, 30% adyen`,dIe=kP.define({startState:()=>({}),token(t){return t.eatSpace()?null:t.match(/^#.*/)?"comment":t.match("=>")?"meta":t.match(/^(?:and|or|not)\b/i)||t.match(/^in\b/i)?"keyword":t.match(/^(?:volume_split_priority|volume_split|priority)(?=\s*:)/)?"typeName":t.match(/^(?:!=|>=|<=|>|<|=)/)?"operator":t.match(/^\d+/)?"number":t.match(/^[[\]%,:]/)?"punctuation":t.match(/^\w+/)?"variableName":(t.next(),null)}}),FY=t=>[{tag:oe.keyword,color:t?"#a78bfa":"#7c3aed",fontWeight:"600"},{tag:oe.meta,color:t?"#fbbf24":"#d97706",fontWeight:"700"},{tag:oe.typeName,color:t?"#34d399":"#059669",fontWeight:"600"},{tag:oe.operator,color:t?"#60a5fa":"#2563eb"},{tag:oe.number,color:t?"#fbbf24":"#b45309"},{tag:oe.punctuation,color:"#64748b"},{tag:oe.comment,color:t?"#4e5870":"#94a3b8",fontStyle:"italic"},{tag:oe.variableName,color:t?"#cbd5e1":"#1e293b"}],fIe=IY({styles:FY(!1)}),hIe=$Y({styles:FY(!0)}),pIe=/\w+\s+(?:(?:in|not\s+in)\s*\[[^\]]+\]|(?:=|!=|>=|<=|>|<)\s+\S+)\s*$/;function mIe(t,e,n,r){var m,x,y;const a=t.slice(0,e).split(` +`),s=a[a.length-1],o=a.length>=2?a[a.length-2].trim():"";if(!s.trim())return pIe.test(o)||/^or$/i.test(o)?["and","and (","or","or (","=>"]:[];const l=s.includes("]")?s.slice(s.lastIndexOf("]")+1):s;if(s.includes("]")&&!l.trim())return["and","and (","or","or (","=>"];const c=l.trimStart().replace(/^(?:and|or)\s+/i,"").replace(/^\(/,"");if(!c)return Object.keys(n).slice(0,12);if(/\)\s*$/.test(c))return["and","or","or (","=>"];const u=/=>\s*(\w*)$/.exec(s);if(u){const b=r[0]??"gateway_name",v=r[1]??"gateway_name",w=[`priority: ${b}`,`volume_split: 70% ${b}, 30% ${v}`];return u[1]?w.sort((j,k)=>(T5(u[1],k)??-1/0)-(T5(u[1],j)??-1/0)):w}if(/=>\s*(?:priority|volume_split(?:_priority)?):/.test(s)){const b=/(\w*)$/.exec(s);return Pg((b==null?void 0:b[1])??"",am(r).map(v=>v.name)).slice(0,10)}const d=/(\w+)\s+(?:in|not\s+in)\s*\[(?:[^\]]*,\s*)?(\w*)$/.exec(c);if(d){const b=((m=n[d[1]])==null?void 0:m.values)??[],v=/\[([^\]]*)$/.exec(c),w=v?v[1].split(",").map(j=>j.trim()).filter(Boolean):[];return Pg(d[2],b.filter(j=>!w.includes(j))).slice(0,12)}const f=/(\w+)\s+(?:>=|<=|!=|>|<|=)\s*(\w*)$/.exec(c);if(f)return Pg(f[2],((x=n[f[1]])==null?void 0:x.values)??[]).slice(0,12);const h=/^(\w+)\s+(\w*)$/.exec(c);if(h&&n[h[1]]){const v=((y=n[h[1]])==null?void 0:y.type)==="integer"?["=","!=",">","<",">=","<="]:["=","!=","in [","not in ["];return Pg(h[2],v)}if(/\)\s*$/.test(c))return["and","or","or (","=>"];const p=/(\w+)$/.exec(c);return p&&p[1].length>=1?Pg(p[1],["and","and (","or","or (","=>",...Object.keys(n)]).slice(0,12):[]}function gIe(t,e){return n=>{const r=n.state.doc.toString(),a=n.pos,s=mIe(r,a,t.current??{},e.current??[]);if(!s.length)return null;const o=r.slice(0,a),l=/(\w+)$/.exec(o);return{from:l?a-l[0].length:a,options:s.map(u=>({label:u,apply(d,f,h,p){const m=d.state.doc.toString(),x=m.slice(p),y=/^\w+/.exec(x);let b=y?p+y[0].length:p;u.includes(":")&&(b=d.state.doc.lineAt(p).to);const v=m.slice(b);let w,j;if(u.endsWith("["))w=u+"]",j=h+u.length;else if(u.endsWith("("))w=u+")",j=h+u.length;else{const k=!u.endsWith(":")&&!/^\s/.test(v);w=u+(k?" ":""),j=h+w.length}d.dispatch({changes:{from:h,to:b,insert:w},selection:{anchor:j}}),setTimeout(()=>ap(d),0)}})),validFor:/^\w*$/}}}function xIe(t){return SDe(e=>{var u;const n=t.current;if(!n)return[];const r=e.state.doc.toString(),a=/Rule (\d+)/.exec(n),s=a?parseInt(a[1],10)-1:0,o=r.split(/\n\s*\n/);let l=0;for(let d=0;d ul":{maxHeight:"220px",borderRadius:"8px",overflowY:"auto"},".cm-tooltip.cm-tooltip-autocomplete > ul > li":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",padding:"4px 12px"},".cm-diagnostic":{padding:"2px 4px",borderRadius:"3px"}});function vIe({value:t,onChange:e,parseError:n,routingKeys:r,gatewaySuggestions:a}){const[s,o]=g.useState(()=>document.documentElement.classList.contains("dark")),l=g.useRef(r),c=g.useRef(a),u=g.useRef(n),d=g.useRef(null);g.useEffect(()=>{l.current=r},[r]),g.useEffect(()=>{c.current=a},[a]),g.useEffect(()=>{u.current=n,d.current&&_De(d.current)},[n]),g.useEffect(()=>{const p=new MutationObserver(()=>o(document.documentElement.classList.contains("dark")));return p.observe(document.documentElement,{attributeFilter:["class"]}),()=>p.disconnect()},[]);const h=g.useMemo(()=>[dIe,Xq(LY),NY({override:[gIe(l,c)],activateOnTyping:!0,closeOnBlur:!0}),xIe(u),We.lineWrapping,yIe,We.domEventHandlers({click:(p,m)=>(ap(m),!1)}),We.updateListener.of(p=>{if(p.docChanged)for(const m of p.transactions)m.changes.iterChanges((x,y,b,v,w)=>{const j=w.toString();(j===" "||j===` +`)&&ap(p.view)})})],[]);return i.jsxs("div",{children:[i.jsx(RY,{value:t,onChange:p=>e(p),onCreateEditor:p=>{d.current=p},theme:s?hIe:fIe,extensions:h,basicSetup:{lineNumbers:!1,foldGutter:!1,autocompletion:!1,highlightActiveLine:!1,highlightSelectionMatches:!1,closeBrackets:!0,bracketMatching:!0,indentOnInput:!1,searchKeymap:!1},className:`rounded-xl border overflow-hidden ${n?"border-red-400 dark:border-red-500":"border-slate-200 dark:border-[#222226]"}`}),n?i.jsx("p",{className:"mt-1.5 text-xs text-red-600 font-medium",children:n}):i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:["Tab / Enter to complete · ↑↓ navigate · ",i.jsx("code",{className:"font-mono",children:"or"})," on its own line starts an OR group"]})]})}function bIe(){for(var t=arguments.length,e=new Array(t),n=0;nr=>{e.forEach(a=>a(r))},e)}const m2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Lm(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function LP(t){return"nodeType"in t}function Js(t){var e,n;return t?Lm(t)?t:LP(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function FP(t){const{Document:e}=Js(t);return t instanceof e}function Vy(t){return Lm(t)?!1:t instanceof Js(t).HTMLElement}function BY(t){return t instanceof Js(t).SVGElement}function Fm(t){return t?Lm(t)?t.document:LP(t)?FP(t)?t:Vy(t)||BY(t)?t.ownerDocument:document:document:document}const jl=m2?g.useLayoutEffect:g.useEffect;function BP(t){const e=g.useRef(t);return jl(()=>{e.current=t}),g.useCallback(function(){for(var n=arguments.length,r=new Array(n),a=0;a{t.current=setInterval(r,a)},[]),n=g.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function dy(t,e){e===void 0&&(e=[t]);const n=g.useRef(t);return jl(()=>{n.current!==t&&(n.current=t)},e),n}function Wy(t,e){const n=g.useRef();return g.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function jk(t){const e=BP(t),n=g.useRef(null),r=g.useCallback(a=>{a!==n.current&&(e==null||e(a,n.current)),n.current=a},[]);return[n,r]}function P5(t){const e=g.useRef();return g.useEffect(()=>{e.current=t},[t]),e.current}let Y_={};function Hy(t,e){return g.useMemo(()=>{if(e)return e;const n=Y_[t]==null?0:Y_[t]+1;return Y_[t]=n,t+"-"+n},[t,e])}function zY(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a{const l=Object.entries(o);for(const[c,u]of l){const d=s[c];d!=null&&(s[c]=d+t*u)}return s},{...e})}}const sp=zY(1),fy=zY(-1);function kIe(t){return"clientX"in t&&"clientY"in t}function zP(t){if(!t)return!1;const{KeyboardEvent:e}=Js(t.target);return e&&t instanceof e}function jIe(t){if(!t)return!1;const{TouchEvent:e}=Js(t.target);return e&&t instanceof e}function M5(t){if(jIe(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return kIe(t)?{x:t.clientX,y:t.clientY}:null}const hy=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[hy.Translate.toString(t),hy.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),q6="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function SIe(t){return t.matches(q6)?t:t.querySelector(q6)}const _Ie={display:"none"};function NIe(t){let{id:e,value:n}=t;return J.createElement("div",{id:e,style:_Ie},n)}function CIe(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const a={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return J.createElement("div",{id:e,style:a,role:"status","aria-live":r,"aria-atomic":!0},n)}function EIe(){const[t,e]=g.useState("");return{announce:g.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const UY=g.createContext(null);function AIe(t){const e=g.useContext(UY);g.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function OIe(){const[t]=g.useState(()=>new Set),e=g.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[g.useCallback(r=>{let{type:a,event:s}=r;t.forEach(o=>{var l;return(l=o[a])==null?void 0:l.call(o,s)})},[t]),e]}const TIe={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},PIe={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function MIe(t){let{announcements:e=PIe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:a=TIe}=t;const{announce:s,announcement:o}=EIe(),l=Hy("DndLiveRegion"),[c,u]=g.useState(!1);if(g.useEffect(()=>{u(!0)},[]),AIe(g.useMemo(()=>({onDragStart(f){let{active:h}=f;s(e.onDragStart({active:h}))},onDragMove(f){let{active:h,over:p}=f;e.onDragMove&&s(e.onDragMove({active:h,over:p}))},onDragOver(f){let{active:h,over:p}=f;s(e.onDragOver({active:h,over:p}))},onDragEnd(f){let{active:h,over:p}=f;s(e.onDragEnd({active:h,over:p}))},onDragCancel(f){let{active:h,over:p}=f;s(e.onDragCancel({active:h,over:p}))}}),[s,e])),!c)return null;const d=J.createElement(J.Fragment,null,J.createElement(NIe,{id:r,value:a.draggable}),J.createElement(CIe,{id:l,announcement:o}));return n?fs.createPortal(d,n):d}var ra;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(ra||(ra={}));function Sk(){}function K6(t,e){return g.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function RIe(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const Po=Object.freeze({x:0,y:0});function VY(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function WY(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function DIe(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function Y6(t){let{left:e,top:n,height:r,width:a}=t;return[{x:e,y:n},{x:e+a,y:n},{x:e,y:n+r},{x:e+a,y:n+r}]}function HY(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function X6(t,e,n){return e===void 0&&(e=t.left),n===void 0&&(n=t.top),{x:e+t.width*.5,y:n+t.height*.5}}const IIe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=X6(e,e.left,e.top),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=VY(X6(c),a);s.push({id:l,data:{droppableContainer:o,value:u}})}}return s.sort(WY)},$Ie=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=Y6(e),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=Y6(c),d=a.reduce((h,p,m)=>h+VY(u[m],p),0),f=Number((d/4).toFixed(4));s.push({id:l,data:{droppableContainer:o,value:f}})}}return s.sort(WY)};function LIe(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),a=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=a-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const c=LIe(l,e);c>0&&a.push({id:o,data:{droppableContainer:s,value:c}})}}return a.sort(DIe)};function BIe(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function GY(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:Po}function zIe(t){return function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const UIe=zIe(1);function VIe(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function WIe(t,e,n){const r=VIe(e);if(!r)return t;const{scaleX:a,scaleY:s,x:o,y:l}=r,c=t.left-o-(1-a)*parseFloat(n),u=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),d=a?t.width/a:t.width,f=s?t.height/s:t.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const HIe={ignoreTransform:!1};function Bm(t,e){e===void 0&&(e=HIe);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:u,transformOrigin:d}=Js(t).getComputedStyle(t);u&&(n=WIe(n,u,d))}const{top:r,left:a,width:s,height:o,bottom:l,right:c}=n;return{top:r,left:a,width:s,height:o,bottom:l,right:c}}function J6(t){return Bm(t,{ignoreTransform:!0})}function GIe(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function qIe(t,e){return e===void 0&&(e=Js(t).getComputedStyle(t)),e.position==="fixed"}function KIe(t,e){e===void 0&&(e=Js(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(a=>{const s=e[a];return typeof s=="string"?n.test(s):!1})}function g2(t,e){const n=[];function r(a){if(e!=null&&n.length>=e||!a)return n;if(FP(a)&&a.scrollingElement!=null&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!Vy(a)||BY(a)||n.includes(a))return n;const s=Js(t).getComputedStyle(a);return a!==t&&KIe(a,s)&&n.push(a),qIe(a,s)?n:r(a.parentNode)}return t?r(t):n}function qY(t){const[e]=g2(t,1);return e??null}function X_(t){return!m2||!t?null:Lm(t)?t:LP(t)?FP(t)||t===Fm(t).scrollingElement?window:Vy(t)?t:null:null}function KY(t){return Lm(t)?t.scrollX:t.scrollLeft}function YY(t){return Lm(t)?t.scrollY:t.scrollTop}function R5(t){return{x:KY(t),y:YY(t)}}var ya;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(ya||(ya={}));function XY(t){return!m2||!t?!1:t===document.scrollingElement}function JY(t){const e={x:0,y:0},n=XY(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},a=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:a,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const YIe={x:.2,y:.2};function XIe(t,e,n,r,a){let{top:s,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),a===void 0&&(a=YIe);const{isTop:u,isBottom:d,isLeft:f,isRight:h}=JY(t),p={x:0,y:0},m={x:0,y:0},x={height:e.height*a.y,width:e.width*a.x};return!u&&s<=e.top+x.height?(p.y=ya.Backward,m.y=r*Math.abs((e.top+x.height-s)/x.height)):!d&&c>=e.bottom-x.height&&(p.y=ya.Forward,m.y=r*Math.abs((e.bottom-x.height-c)/x.height)),!h&&l>=e.right-x.width?(p.x=ya.Forward,m.x=r*Math.abs((e.right-x.width-l)/x.width)):!f&&o<=e.left+x.width&&(p.x=ya.Backward,m.x=r*Math.abs((e.left+x.width-o)/x.width)),{direction:p,speed:m}}function JIe(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:a}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:a,width:t.clientWidth,height:t.clientHeight}}function ZY(t){return t.reduce((e,n)=>sp(e,R5(n)),Po)}function ZIe(t){return t.reduce((e,n)=>e+KY(n),0)}function QIe(t){return t.reduce((e,n)=>e+YY(n),0)}function e$e(t,e){if(e===void 0&&(e=Bm),!t)return;const{top:n,left:r,bottom:a,right:s}=e(t);qY(t)&&(a<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const t$e=[["x",["left","right"],ZIe],["y",["top","bottom"],QIe]];class UP{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=g2(n),a=ZY(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of t$e)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=a[s]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Ix{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var a;(a=this.target)==null||a.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function n$e(t){const{EventTarget:e}=Js(t);return t instanceof e?t:Fm(t)}function J_(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var Pi;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(Pi||(Pi={}));function Z6(t){t.preventDefault()}function r$e(t){t.stopPropagation()}var nn;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(nn||(nn={}));const QY={start:[nn.Space,nn.Enter],cancel:[nn.Esc],end:[nn.Space,nn.Enter,nn.Tab]},a$e=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case nn.Right:return{...n,x:n.x+25};case nn.Left:return{...n,x:n.x-25};case nn.Down:return{...n,y:n.y+25};case nn.Up:return{...n,y:n.y-25}}};class VP{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Ix(Fm(n)),this.windowListeners=new Ix(Js(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Pi.Resize,this.handleCancel),this.windowListeners.add(Pi.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Pi.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&e$e(r),n(Po)}handleKeyDown(e){if(zP(e)){const{active:n,context:r,options:a}=this.props,{keyboardCodes:s=QY,coordinateGetter:o=a$e,scrollBehavior:l="smooth"}=a,{code:c}=e;if(s.end.includes(c)){this.handleEnd(e);return}if(s.cancel.includes(c)){this.handleCancel(e);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Po;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(e,{active:n,context:r.current,currentCoordinates:d});if(f){const h=fy(f,d),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const x of m){const y=e.code,{isTop:b,isRight:v,isLeft:w,isBottom:j,maxScroll:k,minScroll:_}=JY(x),S=JIe(x),N={x:Math.min(y===nn.Right?S.right-S.width/2:S.right,Math.max(y===nn.Right?S.left:S.left+S.width/2,f.x)),y:Math.min(y===nn.Down?S.bottom-S.height/2:S.bottom,Math.max(y===nn.Down?S.top:S.top+S.height/2,f.y))},E=y===nn.Right&&!v||y===nn.Left&&!w,P=y===nn.Down&&!j||y===nn.Up&&!b;if(E&&N.x!==f.x){const M=x.scrollLeft+h.x,A=y===nn.Right&&M<=k.x||y===nn.Left&&M>=_.x;if(A&&!h.y){x.scrollTo({left:M,behavior:l});return}A?p.x=x.scrollLeft-M:p.x=y===nn.Right?x.scrollLeft-k.x:x.scrollLeft-_.x,p.x&&x.scrollBy({left:-p.x,behavior:l});break}else if(P&&N.y!==f.y){const M=x.scrollTop+h.y,A=y===nn.Down&&M<=k.y||y===nn.Up&&M>=_.y;if(A&&!h.x){x.scrollTo({top:M,behavior:l});return}A?p.y=x.scrollTop-M:p.y=y===nn.Down?x.scrollTop-k.y:x.scrollTop-_.y,p.y&&x.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,sp(fy(f,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}VP.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=QY,onActivation:a}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),a==null||a({event:t.nativeEvent}),!0)}return!1}}];function Q6(t){return!!(t&&"distance"in t)}function eF(t){return!!(t&&"delay"in t)}class WP{constructor(e,n,r){var a;r===void 0&&(r=n$e(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=Fm(o),this.documentListeners=new Ix(this.document),this.listeners=new Ix(r),this.windowListeners=new Ix(Js(o)),this.initialCoordinates=(a=M5(s))!=null?a:Po,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Pi.Resize,this.handleCancel),this.windowListeners.add(Pi.DragStart,Z6),this.windowListeners.add(Pi.VisibilityChange,this.handleCancel),this.windowListeners.add(Pi.ContextMenu,Z6),this.documentListeners.add(Pi.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eF(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Q6(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:a}=this.props;a(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(Pi.Click,r$e,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Pi.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:a,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!a)return;const c=(n=M5(e))!=null?n:Po,u=fy(a,c);if(!r&&l){if(Q6(l)){if(l.tolerance!=null&&J_(u,l.tolerance))return this.handleCancel();if(J_(u,l.distance))return this.handleStart()}if(eF(l)&&J_(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}e.cancelable&&e.preventDefault(),o(c)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===nn.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const s$e={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class HP extends WP{constructor(e){const{event:n}=e,r=Fm(n.target);super(e,s$e,r)}}HP.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const i$e={move:{name:"mousemove"},end:{name:"mouseup"}};var D5;(function(t){t[t.RightClick=2]="RightClick"})(D5||(D5={}));class o$e extends WP{constructor(e){super(e,i$e,Fm(e.event.target))}}o$e.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===D5.RightClick?!1:(r==null||r({event:n}),!0)}}];const Z_={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class l$e extends WP{constructor(e){super(e,Z_)}static setup(){return window.addEventListener(Z_.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Z_.move.name,e)};function e(){}}}l$e.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:a}=n;return a.length>1?!1:(r==null||r({event:n}),!0)}}];var $x;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})($x||($x={}));var _k;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(_k||(_k={}));function c$e(t){let{acceleration:e,activator:n=$x.Pointer,canScroll:r,draggingRect:a,enabled:s,interval:o=5,order:l=_k.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:h}=t;const p=d$e({delta:f,disabled:!s}),[m,x]=wIe(),y=g.useRef({x:0,y:0}),b=g.useRef({x:0,y:0}),v=g.useMemo(()=>{switch(n){case $x.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case $x.DraggableRect:return a}},[n,a,c]),w=g.useRef(null),j=g.useCallback(()=>{const _=w.current;if(!_)return;const S=y.current.x*b.current.x,N=y.current.y*b.current.y;_.scrollBy(S,N)},[]),k=g.useMemo(()=>l===_k.TreeOrder?[...u].reverse():u,[l,u]);g.useEffect(()=>{if(!s||!u.length||!v){x();return}for(const _ of k){if((r==null?void 0:r(_))===!1)continue;const S=u.indexOf(_),N=d[S];if(!N)continue;const{direction:E,speed:P}=XIe(_,N,v,e,h);for(const M of["x","y"])p[M][E[M]]||(P[M]=0,E[M]=0);if(P.x>0||P.y>0){x(),w.current=_,m(j,o),y.current=P,b.current=E;return}}y.current={x:0,y:0},b.current={x:0,y:0},x()},[e,j,r,x,s,o,JSON.stringify(v),JSON.stringify(p),m,u,k,d,JSON.stringify(h)])}const u$e={x:{[ya.Backward]:!1,[ya.Forward]:!1},y:{[ya.Backward]:!1,[ya.Forward]:!1}};function d$e(t){let{delta:e,disabled:n}=t;const r=P5(e);return Wy(a=>{if(n||!r||!a)return u$e;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[ya.Backward]:a.x[ya.Backward]||s.x===-1,[ya.Forward]:a.x[ya.Forward]||s.x===1},y:{[ya.Backward]:a.y[ya.Backward]||s.y===-1,[ya.Forward]:a.y[ya.Forward]||s.y===1}}},[n,e,r])}function f$e(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Wy(a=>{var s;return e==null?null:(s=r??a)!=null?s:null},[r,e])}function h$e(t,e){return g.useMemo(()=>t.reduce((n,r)=>{const{sensor:a}=r,s=a.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var py;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(py||(py={}));var I5;(function(t){t.Optimized="optimized"})(I5||(I5={}));const tF=new Map;function p$e(t,e){let{dragging:n,dependencies:r,config:a}=e;const[s,o]=g.useState(null),{frequency:l,measure:c,strategy:u}=a,d=g.useRef(t),f=y(),h=dy(f),p=g.useCallback(function(b){b===void 0&&(b=[]),!h.current&&o(v=>v===null?b:v.concat(b.filter(w=>!v.includes(w))))},[h]),m=g.useRef(null),x=Wy(b=>{if(f&&!n)return tF;if(!b||b===tF||d.current!==t||s!=null){const v=new Map;for(let w of t){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){v.set(w.id,w.rect.current);continue}const j=w.node.current,k=j?new UP(c(j),j):null;w.rect.current=k,k&&v.set(w.id,k)}return v}return b},[t,s,n,f,c]);return g.useEffect(()=>{d.current=t},[t]),g.useEffect(()=>{f||p()},[n,f]),g.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),g.useEffect(()=>{f||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,f,p,...r]),{droppableRects:x,measureDroppableContainers:p,measuringScheduled:s!=null};function y(){switch(u){case py.Always:return!1;case py.BeforeDragging:return n;default:return!n}}}function eX(t,e){return Wy(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function m$e(t,e){return eX(t,e)}function g$e(t){let{callback:e,disabled:n}=t;const r=BP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function x2(t){let{callback:e,disabled:n}=t;const r=BP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function x$e(t){return new UP(Bm(t),t)}function nF(t,e,n){e===void 0&&(e=x$e);const[r,a]=g.useState(null);function s(){a(c=>{if(!t)return null;if(t.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=e(t);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=g$e({callback(c){if(t)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(t)){s();break}}}}),l=x2({callback:s});return jl(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function y$e(t){const e=eX(t);return GY(t,e)}const rF=[];function v$e(t){const e=g.useRef(t),n=Wy(r=>t?r&&r!==rF&&t&&e.current&&t.parentNode===e.current.parentNode?r:g2(t):rF,[t]);return g.useEffect(()=>{e.current=t},[t]),n}function b$e(t){const[e,n]=g.useState(null),r=g.useRef(t),a=g.useCallback(s=>{const o=X_(s.target);o&&n(l=>l?(l.set(o,R5(o)),new Map(l)):null)},[]);return g.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(c=>{const u=X_(c);return u?(u.addEventListener("scroll",a,{passive:!0}),[u,R5(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(c=>{const u=X_(c);u==null||u.removeEventListener("scroll",a)})}},[a,t]),g.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>sp(s,o),Po):ZY(t):Po,[t,e])}function aF(t,e){e===void 0&&(e=[]);const n=g.useRef(null);return g.useEffect(()=>{n.current=null},e),g.useEffect(()=>{const r=t!==Po;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?fy(t,n.current):Po}function w$e(t){g.useEffect(()=>{if(!m2)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function k$e(t,e){return g.useMemo(()=>t.reduce((n,r)=>{let{eventName:a,handler:s}=r;return n[a]=o=>{s(o,e)},n},{}),[t,e])}function tX(t){return g.useMemo(()=>t?GIe(t):null,[t])}const sF=[];function j$e(t,e){e===void 0&&(e=Bm);const[n]=t,r=tX(n?Js(n):null),[a,s]=g.useState(sF);function o(){s(()=>t.length?t.map(c=>XY(c)?r:new UP(e(c),c)):sF)}const l=x2({callback:o});return jl(()=>{l==null||l.disconnect(),o(),t.forEach(c=>l==null?void 0:l.observe(c))},[t]),a}function S$e(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Vy(e)?e:t}function _$e(t){let{measure:e}=t;const[n,r]=g.useState(null),a=g.useCallback(u=>{for(const{target:d}of u)if(Vy(d)){r(f=>{const h=e(d);return f?{...f,width:h.width,height:h.height}:h});break}},[e]),s=x2({callback:a}),o=g.useCallback(u=>{const d=S$e(u);s==null||s.disconnect(),d&&(s==null||s.observe(d)),r(d?e(d):null)},[e,s]),[l,c]=jk(o);return g.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const N$e=[{sensor:HP,options:{}},{sensor:VP,options:{}}],C$e={current:{}},y1={draggable:{measure:J6},droppable:{measure:J6,strategy:py.WhileDragging,frequency:I5.Optimized},dragOverlay:{measure:Bm}};class Lx extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const E$e={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Lx,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Sk},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:y1,measureDroppableContainers:Sk,windowRect:null,measuringScheduled:!1},A$e={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Sk,draggableNodes:new Map,over:null,measureDroppableContainers:Sk},y2=g.createContext(A$e),nX=g.createContext(E$e);function O$e(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Lx}}}function T$e(t,e){switch(e.type){case ra.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case ra.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case ra.DragEnd:case ra.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ra.RegisterDroppable:{const{element:n}=e,{id:r}=n,a=new Lx(t.droppable.containers);return a.set(r,n),{...t,droppable:{...t.droppable,containers:a}}}case ra.SetDroppableDisabled:{const{id:n,key:r,disabled:a}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Lx(t.droppable.containers);return o.set(n,{...s,disabled:a}),{...t,droppable:{...t.droppable,containers:o}}}case ra.UnregisterDroppable:{const{id:n,key:r}=e,a=t.droppable.containers.get(n);if(!a||r!==a.key)return t;const s=new Lx(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function P$e(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:a}=g.useContext(y2),s=P5(r),o=P5(n==null?void 0:n.id);return g.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!zP(s)||document.activeElement===s.target)return;const l=a.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=SIe(d);if(f){f.focus();break}}})}},[r,e,a,o,s]),null}function M$e(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((a,s)=>s({transform:a,...r}),n):n}function R$e(t){return g.useMemo(()=>({draggable:{...y1.draggable,...t==null?void 0:t.draggable},droppable:{...y1.droppable,...t==null?void 0:t.droppable},dragOverlay:{...y1.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function D$e(t){let{activeNode:e,measure:n,initialRect:r,config:a=!0}=t;const s=g.useRef(!1),{x:o,y:l}=typeof a=="boolean"?{x:a,y:a}:a;jl(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const u=e==null?void 0:e.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=GY(d,r);if(o||(f.x=0),l||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const h=qY(u);h&&h.scrollBy({top:f.y,left:f.x})}},[e,o,l,r,n])}const rX=g.createContext({...Po,scaleX:1,scaleY:1});var Wc;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Wc||(Wc={}));const I$e=g.memo(function(e){var n,r,a,s;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=N$e,collisionDetection:f=FIe,measuring:h,modifiers:p,...m}=e;const x=g.useReducer(T$e,void 0,O$e),[y,b]=x,[v,w]=OIe(),[j,k]=g.useState(Wc.Uninitialized),_=j===Wc.Initialized,{draggable:{active:S,nodes:N,translate:E},droppable:{containers:P}}=y,M=S!=null?N.get(S):null,A=g.useRef({initial:null,translated:null}),O=g.useMemo(()=>{var dt;return S!=null?{id:S,data:(dt=M==null?void 0:M.data)!=null?dt:C$e,rect:A}:null},[S,M]),D=g.useRef(null),[I,X]=g.useState(null),[Q,V]=g.useState(null),Y=dy(m,Object.values(m)),H=Hy("DndDescribedBy",o),G=g.useMemo(()=>P.getEnabled(),[P]),$=R$e(h),{droppableRects:F,measureDroppableContainers:R,measuringScheduled:z}=p$e(G,{dragging:_,dependencies:[E.x,E.y],config:$.droppable}),U=f$e(N,S),ee=g.useMemo(()=>Q?M5(Q):null,[Q]),pe=Kt(),re=m$e(U,$.draggable.measure);D$e({activeNode:S!=null?N.get(S):null,config:pe.layoutShiftCompensation,initialRect:re,measure:$.draggable.measure});const he=nF(U,$.draggable.measure,re),q=nF(U?U.parentElement:null),W=g.useRef({activatorEvent:null,active:null,activeNode:U,collisionRect:null,collisions:null,droppableRects:F,draggableNodes:N,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=P.getNodeFor((n=W.current.over)==null?void 0:n.id),te=_$e({measure:$.dragOverlay.measure}),ie=(r=te.nodeRef.current)!=null?r:U,me=_?(a=te.rect)!=null?a:he:null,ve=!!(te.nodeRef.current&&te.rect),Ne=y$e(ve?null:he),je=tX(ie?Js(ie):null),Me=v$e(_?ue??U:null),Be=j$e(Me),tt=M$e(p,{transform:{x:E.x-Ne.x,y:E.y-Ne.y,scaleX:1,scaleY:1},activatorEvent:Q,active:O,activeNodeRect:he,containerNodeRect:q,draggingNodeRect:me,over:W.current.over,overlayNodeRect:te.rect,scrollableAncestors:Me,scrollableAncestorRects:Be,windowRect:je}),B=ee?sp(ee,E):null,se=b$e(Me),de=aF(se),Ce=aF(se,[he]),fe=sp(tt,de),be=me?UIe(me,tt):null,we=O&&be?f({active:O,collisionRect:be,droppableRects:F,droppableContainers:G,pointerCoordinates:B}):null,Le=HY(we,"id"),[Oe,He]=g.useState(null),vt=ve?tt:sp(tt,Ce),bt=BIe(vt,(s=Oe==null?void 0:Oe.rect)!=null?s:null,he),Bt=g.useRef(null),wt=g.useCallback((dt,le)=>{let{sensor:Ie,options:Ge}=le;if(D.current==null)return;const nt=N.get(D.current);if(!nt)return;const Nt=dt.nativeEvent,ge=new Ie({active:D.current,activeNode:nt,event:Nt,options:Ge,context:W,onAbort(pt){if(!N.get(pt))return;const{onDragAbort:gn}=Y.current,sn={id:pt};gn==null||gn(sn),v({type:"onDragAbort",event:sn})},onPending(pt,Ht,gn,sn){if(!N.get(pt))return;const{onDragPending:_a}=Y.current,Dn={id:pt,constraint:Ht,initialCoordinates:gn,offset:sn};_a==null||_a(Dn),v({type:"onDragPending",event:Dn})},onStart(pt){const Ht=D.current;if(Ht==null)return;const gn=N.get(Ht);if(!gn)return;const{onDragStart:sn}=Y.current,xn={activatorEvent:Nt,active:{id:Ht,data:gn.data,rect:A}};fs.unstable_batchedUpdates(()=>{sn==null||sn(xn),k(Wc.Initializing),b({type:ra.DragStart,initialCoordinates:pt,active:Ht}),v({type:"onDragStart",event:xn}),X(Bt.current),V(Nt)})},onMove(pt){b({type:ra.DragMove,coordinates:pt})},onEnd:st(ra.DragEnd),onCancel:st(ra.DragCancel)});Bt.current=ge;function st(pt){return async function(){const{active:gn,collisions:sn,over:xn,scrollAdjustedTranslate:_a}=W.current;let Dn=null;if(gn&&_a){const{cancelDrop:ua}=Y.current;Dn={activatorEvent:Nt,active:gn,collisions:sn,delta:_a,over:xn},pt===ra.DragEnd&&typeof ua=="function"&&await Promise.resolve(ua(Dn))&&(pt=ra.DragCancel)}D.current=null,fs.unstable_batchedUpdates(()=>{b({type:pt}),k(Wc.Uninitialized),He(null),X(null),V(null),Bt.current=null;const ua=pt===ra.DragEnd?"onDragEnd":"onDragCancel";if(Dn){const or=Y.current[ua];or==null||or(Dn),v({type:ua,event:Dn})}})}}},[N]),zt=g.useCallback((dt,le)=>(Ie,Ge)=>{const nt=Ie.nativeEvent,Nt=N.get(Ge);if(D.current!==null||!Nt||nt.dndKit||nt.defaultPrevented)return;const ge={active:Nt};dt(Ie,le.options,ge)===!0&&(nt.dndKit={capturedBy:le.sensor},D.current=Ge,wt(Ie,le))},[N,wt]),Ut=h$e(d,zt);w$e(d),jl(()=>{he&&j===Wc.Initializing&&k(Wc.Initialized)},[he,j]),g.useEffect(()=>{const{onDragMove:dt}=Y.current,{active:le,activatorEvent:Ie,collisions:Ge,over:nt}=W.current;if(!le||!Ie)return;const Nt={active:le,activatorEvent:Ie,collisions:Ge,delta:{x:fe.x,y:fe.y},over:nt};fs.unstable_batchedUpdates(()=>{dt==null||dt(Nt),v({type:"onDragMove",event:Nt})})},[fe.x,fe.y]),g.useEffect(()=>{const{active:dt,activatorEvent:le,collisions:Ie,droppableContainers:Ge,scrollAdjustedTranslate:nt}=W.current;if(!dt||D.current==null||!le||!nt)return;const{onDragOver:Nt}=Y.current,ge=Ge.get(Le),st=ge&&ge.rect.current?{id:ge.id,rect:ge.rect.current,data:ge.data,disabled:ge.disabled}:null,pt={active:dt,activatorEvent:le,collisions:Ie,delta:{x:nt.x,y:nt.y},over:st};fs.unstable_batchedUpdates(()=>{He(st),Nt==null||Nt(pt),v({type:"onDragOver",event:pt})})},[Le]),jl(()=>{W.current={activatorEvent:Q,active:O,activeNode:U,collisionRect:be,collisions:we,droppableRects:F,draggableNodes:N,draggingNode:ie,draggingNodeRect:me,droppableContainers:P,over:Oe,scrollableAncestors:Me,scrollAdjustedTranslate:fe},A.current={initial:me,translated:be}},[O,U,we,be,N,ie,me,F,P,Oe,Me,fe]),c$e({...pe,delta:E,draggingRect:be,pointerCoordinates:B,scrollableAncestors:Me,scrollableAncestorRects:Be});const Un=g.useMemo(()=>({active:O,activeNode:U,activeNodeRect:he,activatorEvent:Q,collisions:we,containerNodeRect:q,dragOverlay:te,draggableNodes:N,droppableContainers:P,droppableRects:F,over:Oe,measureDroppableContainers:R,scrollableAncestors:Me,scrollableAncestorRects:Be,measuringConfiguration:$,measuringScheduled:z,windowRect:je}),[O,U,he,Q,we,q,te,N,P,F,Oe,R,Me,Be,$,z,je]),Vt=g.useMemo(()=>({activatorEvent:Q,activators:Ut,active:O,activeNodeRect:he,ariaDescribedById:{draggable:H},dispatch:b,draggableNodes:N,over:Oe,measureDroppableContainers:R}),[Q,Ut,O,he,b,H,N,Oe,R]);return J.createElement(UY.Provider,{value:w},J.createElement(y2.Provider,{value:Vt},J.createElement(nX.Provider,{value:Un},J.createElement(rX.Provider,{value:bt},u)),J.createElement(P$e,{disabled:(l==null?void 0:l.restoreFocus)===!1})),J.createElement(MIe,{...l,hiddenTextDescribedById:H}));function Kt(){const dt=(I==null?void 0:I.autoScrollEnabled)===!1,le=typeof c=="object"?c.enabled===!1:c===!1,Ie=_&&!dt&&!le;return typeof c=="object"?{...c,enabled:Ie}:{enabled:Ie}}}),$$e=g.createContext(null),iF="button",L$e="Draggable";function F$e(t){let{id:e,data:n,disabled:r=!1,attributes:a}=t;const s=Hy(L$e),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:h}=g.useContext(y2),{role:p=iF,roleDescription:m="draggable",tabIndex:x=0}=a??{},y=(c==null?void 0:c.id)===e,b=g.useContext(y?rX:$$e),[v,w]=jk(),[j,k]=jk(),_=k$e(o,e),S=dy(n);jl(()=>(f.set(e,{id:e,key:s,node:v,activatorNode:j,data:S}),()=>{const E=f.get(e);E&&E.key===s&&f.delete(e)}),[f,e]);const N=g.useMemo(()=>({role:p,tabIndex:x,"aria-disabled":r,"aria-pressed":y&&p===iF?!0:void 0,"aria-roledescription":m,"aria-describedby":d.draggable}),[r,p,x,y,m,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:N,isDragging:y,listeners:r?void 0:_,node:v,over:h,setNodeRef:w,setActivatorNodeRef:k,transform:b}}function B$e(){return g.useContext(nX)}const z$e="Droppable",U$e={timeout:25};function V$e(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:a}=t;const s=Hy(z$e),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=g.useContext(y2),d=g.useRef({disabled:n}),f=g.useRef(!1),h=g.useRef(null),p=g.useRef(null),{disabled:m,updateMeasurementsFor:x,timeout:y}={...U$e,...a},b=dy(x??r),v=g.useCallback(()=>{if(!f.current){f.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{u(Array.isArray(b.current)?b.current:[b.current]),p.current=null},y)},[y]),w=x2({callback:v,disabled:m||!o}),j=g.useCallback((N,E)=>{w&&(E&&(w.unobserve(E),f.current=!1),N&&w.observe(N))},[w]),[k,_]=jk(j),S=dy(e);return g.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),g.useEffect(()=>(l({type:ra.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:h,data:S}}),()=>l({type:ra.UnregisterDroppable,key:s,id:r})),[r]),g.useEffect(()=>{n!==d.current.disabled&&(l({type:ra.SetDroppableDisabled,id:r,key:s,disabled:n}),d.current.disabled=n)},[r,s,n,l]),{active:o,rect:h,isOver:(c==null?void 0:c.id)===r,node:k,over:c,setNodeRef:_}}function GP(t,e,n){const r=t.slice();return r.splice(n<0?r.length+n:n,0,r.splice(e,1)[0]),r}function W$e(t,e){return t.reduce((n,r,a)=>{const s=e.get(r);return s&&(n[a]=s),n},Array(t.length))}function Pb(t){return t!==null&&t>=0}function H$e(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n{let{rects:e,activeIndex:n,overIndex:r,index:a}=t;const s=GP(e,r,n),o=e[a],l=s[a];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},Mb={scaleX:1,scaleY:1},q$e=t=>{var e;let{activeIndex:n,activeNodeRect:r,index:a,rects:s,overIndex:o}=t;const l=(e=s[n])!=null?e:r;if(!l)return null;if(a===n){const u=s[o];return u?{x:0,y:nn&&a<=o?{x:0,y:-l.height-c,...Mb}:a=o?{x:0,y:l.height+c,...Mb}:{x:0,y:0,...Mb}};function K$e(t,e,n){const r=t[e],a=t[e-1],s=t[e+1];return r?nr.map(_=>typeof _=="object"&&"id"in _?_.id:_),[r]),m=o!=null,x=o?p.indexOf(o.id):-1,y=u?p.indexOf(u.id):-1,b=g.useRef(p),v=!H$e(p,b.current),w=y!==-1&&x===-1||v,j=G$e(s);jl(()=>{v&&m&&d(p)},[v,p,m,d]),g.useEffect(()=>{b.current=p},[p]);const k=g.useMemo(()=>({activeIndex:x,containerId:f,disabled:j,disableTransforms:w,items:p,overIndex:y,useDragOverlay:h,sortedRects:W$e(p,c),strategy:a}),[x,f,j.draggable,j.droppable,w,p,y,c,h,a]);return J.createElement(iX.Provider,{value:k},e)}const X$e=t=>{let{id:e,items:n,activeIndex:r,overIndex:a}=t;return GP(n,r,a).indexOf(e)},J$e=t=>{let{containerId:e,isSorting:n,wasDragging:r,index:a,items:s,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=t;return!u||!r||l!==s&&a===o?!1:n?!0:o!==a&&e===c},Z$e={duration:200,easing:"ease"},oX="transform",Q$e=hy.Transition.toString({property:oX,duration:0,easing:"linear"}),eLe={roleDescription:"sortable"};function tLe(t){let{disabled:e,index:n,node:r,rect:a}=t;const[s,o]=g.useState(null),l=g.useRef(n);return jl(()=>{if(!e&&n!==l.current&&r.current){const c=a.current;if(c){const u=Bm(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[e,n,r,a]),g.useEffect(()=>{s&&o(null)},[s]),s}function nLe(t){let{animateLayoutChanges:e=J$e,attributes:n,disabled:r,data:a,getNewIndex:s=X$e,id:o,strategy:l,resizeObserverConfig:c,transition:u=Z$e}=t;const{items:d,containerId:f,activeIndex:h,disabled:p,disableTransforms:m,sortedRects:x,overIndex:y,useDragOverlay:b,strategy:v}=g.useContext(iX),w=rLe(r,p),j=d.indexOf(o),k=g.useMemo(()=>({sortable:{containerId:f,index:j,items:d},...a}),[f,a,j,d]),_=g.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:S,node:N,isOver:E,setNodeRef:P}=V$e({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:_,...c}}),{active:M,activatorEvent:A,activeNodeRect:O,attributes:D,setNodeRef:I,listeners:X,isDragging:Q,over:V,setActivatorNodeRef:Y,transform:H}=F$e({id:o,data:k,attributes:{...eLe,...n},disabled:w.draggable}),G=bIe(P,I),$=!!M,F=$&&!m&&Pb(h)&&Pb(y),R=!b&&Q,z=R&&F?H:null,ee=F?z??(l??v)({rects:x,activeNodeRect:O,activeIndex:h,overIndex:y,index:j}):null,pe=Pb(h)&&Pb(y)?s({id:o,items:d,activeIndex:h,overIndex:y}):j,re=M==null?void 0:M.id,he=g.useRef({activeId:re,items:d,newIndex:pe,containerId:f}),q=d!==he.current.items,W=e({active:M,containerId:f,isDragging:Q,isSorting:$,id:o,index:j,items:d,newIndex:he.current.newIndex,previousItems:he.current.items,previousContainerId:he.current.containerId,transition:u,wasDragging:he.current.activeId!=null}),ue=tLe({disabled:!W,index:j,node:N,rect:S});return g.useEffect(()=>{$&&he.current.newIndex!==pe&&(he.current.newIndex=pe),f!==he.current.containerId&&(he.current.containerId=f),d!==he.current.items&&(he.current.items=d)},[$,pe,f,d]),g.useEffect(()=>{if(re===he.current.activeId)return;if(re&&!he.current.activeId){he.current.activeId=re;return}const ie=setTimeout(()=>{he.current.activeId=re},50);return()=>clearTimeout(ie)},[re]),{active:M,activeIndex:h,attributes:D,data:k,rect:S,index:j,newIndex:pe,items:d,isOver:E,isSorting:$,isDragging:Q,listeners:X,node:N,overIndex:y,over:V,setNodeRef:G,setActivatorNodeRef:Y,setDroppableNodeRef:P,setDraggableNodeRef:I,transform:ue??ee,transition:te()};function te(){if(ue||q&&he.current.newIndex===j)return Q$e;if(!(R&&!zP(A)||!u)&&($||W))return hy.Transition.toString({...u,property:oX})}}function rLe(t,e){var n,r;return typeof t=="boolean"?{draggable:t,droppable:!1}:{draggable:(n=t==null?void 0:t.draggable)!=null?n:e.draggable,droppable:(r=t==null?void 0:t.droppable)!=null?r:e.droppable}}function Nk(t){if(!t)return!1;const e=t.data.current;return!!(e&&"sortable"in e&&typeof e.sortable=="object"&&"containerId"in e.sortable&&"items"in e.sortable&&"index"in e.sortable)}const aLe=[nn.Down,nn.Right,nn.Up,nn.Left],sLe=(t,e)=>{let{context:{active:n,collisionRect:r,droppableRects:a,droppableContainers:s,over:o,scrollableAncestors:l}}=e;if(aLe.includes(t.code)){if(t.preventDefault(),!n||!r)return;const c=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const h=a.get(f.id);if(h)switch(t.code){case nn.Down:r.toph.top&&c.push(f);break;case nn.Left:r.left>h.left&&c.push(f);break;case nn.Right:r.left1&&(d=u[1].id),d!=null){const f=s.get(n.id),h=s.get(d),p=h?a.get(h.id):null,m=h==null?void 0:h.node.current;if(m&&p&&f&&h){const y=g2(m).some((_,S)=>l[S]!==_),b=lX(f,h),v=iLe(f,h),w=y||!b?{x:0,y:0}:{x:v?r.width-p.width:0,y:v?r.height-p.height:0},j={x:p.left,y:p.top};return w.x&&w.y?j:fy(j,w)}}}};function lX(t,e){return!Nk(t)||!Nk(e)?!1:t.data.current.sortable.containerId===e.data.current.sortable.containerId}function iLe(t,e){return!Nk(t)||!Nk(e)||!lX(t,e)?!1:t.data.current.sortable.index_.value===t))==null?void 0:k.label)??t,b=(u?n.filter(_=>_.label.toLowerCase().includes(u.toLowerCase())||_.value.toLowerCase().includes(u.toLowerCase())):n).slice().sort((_,S)=>_.label.localeCompare(S.label));function v(){var S;const _=(S=p.current)==null?void 0:S.getBoundingClientRect();_&&(h({position:"fixed",top:_.bottom+4,left:_.left,minWidth:_.width,zIndex:9999}),c(!0))}g.useEffect(()=>{var _;l&&((_=x.current)==null||_.focus())},[l]),g.useEffect(()=>{if(!l)return;function _(N){var P,M;const E=N.target;!((P=p.current)!=null&&P.contains(E))&&!((M=m.current)!=null&&M.contains(E))&&w()}function S(N){N.key==="Escape"&&w()}return document.addEventListener("mousedown",_),document.addEventListener("keydown",S),()=>{document.removeEventListener("mousedown",_),document.removeEventListener("keydown",S)}},[l]);function w(){c(!1),d("")}function j(_){e(_),w()}return i.jsxs("div",{className:`relative ${r||(a?"block":"inline-block")}`,"data-cy":o,children:[i.jsxs("button",{ref:p,type:"button",disabled:s,onClick:()=>l?w():v(),className:a?`flex w-full items-center justify-between gap-2 text-left ${a}`:"cond-select flex w-full items-center justify-between gap-1 pr-2",style:{backgroundImage:"none",display:"flex",alignItems:"center"},"data-value":t,children:[i.jsx("span",{className:"min-w-0 truncate text-left",children:y||i.jsx("span",{className:"text-slate-500",children:"select..."})}),i.jsx(wn,{size:11,className:`shrink-0 text-slate-500 transition-transform duration-150 ${l?"rotate-180":""}`})]}),l&&fs.createPortal(i.jsxs("div",{ref:m,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"p-1.5 border-b border-slate-100 dark:border-[#1c1c24]",children:i.jsx("input",{ref:x,type:"text",value:u,onChange:_=>d(_.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(b.length*32+8,272)}px`},children:b.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):b.map(_=>i.jsx("button",{type:"button","data-value":_.value,onClick:()=>j(_.value),className:`w-full px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${_.value===t?"text-brand-600 dark:text-brand-400 font-medium bg-brand-50/50 dark:bg-brand-900/10":""}`,children:_.label},_.value))})]}),document.body)]})}function oLe({values:t,onChange:e,options:n,placeholder:r="Select…",className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useRef(null),m=l?n.filter(w=>w.label.toLowerCase().includes(l.toLowerCase())||w.value.toLowerCase().includes(l.toLowerCase())):n;function x(){var j;const w=(j=f.current)==null?void 0:j.getBoundingClientRect();w&&(d({position:"fixed",top:w.bottom+4,left:w.left,minWidth:w.width,zIndex:9999}),o(!0))}g.useEffect(()=>{var w;s&&((w=p.current)==null||w.focus())},[s]),g.useEffect(()=>{if(!s)return;function w(k){var S,N;const _=k.target;!((S=f.current)!=null&&S.contains(_))&&!((N=h.current)!=null&&N.contains(_))&&y()}function j(k){k.key==="Escape"&&y()}return document.addEventListener("mousedown",w),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",w),document.removeEventListener("keydown",j)}},[s]);function y(){o(!1),c("")}function b(w){e(t.includes(w)?t.filter(j=>j!==w):[...t,w])}function v(w,j){j.stopPropagation(),e(t.filter(k=>k!==w))}return i.jsxs("div",{className:`relative ${a}`,children:[i.jsxs("div",{ref:f,onClick:()=>s?y():x(),className:"flex w-full min-w-0 cursor-pointer flex-wrap items-center gap-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm dark:border-[#222226]",children:[t.length===0&&i.jsx("span",{className:"text-slate-500",children:r}),t.map(w=>{var k;const j=((k=n.find(_=>_.value===w))==null?void 0:k.label)??w;return i.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-brand-100 dark:bg-brand-500/20 border border-brand-200 dark:border-brand-500/40 px-1.5 py-0.5 font-medium text-brand-700 dark:text-brand-300",children:[j,i.jsx("button",{type:"button",onClick:_=>v(w,_),className:"text-brand-600 hover:text-brand-600 dark:hover:text-brand-200",children:i.jsx(Hr,{size:10})})]},w)}),i.jsx(wn,{size:11,className:`ml-auto shrink-0 text-slate-500 transition-transform duration-150 ${s?"rotate-180":""}`})]}),s&&fs.createPortal(i.jsxs("div",{ref:h,style:u,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"border-b border-slate-100 dark:border-[#1c1c24] p-1.5",children:i.jsx("input",{ref:p,type:"text",value:l,onChange:w=>c(w.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"max-h-52 overflow-y-auto py-0.5",children:m.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):m.map(w=>{const j=t.includes(w.value);return i.jsxs("button",{type:"button","data-value":w.value,onClick:()=>b(w.value),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${j?"text-brand-600 dark:text-brand-400":"text-slate-700 dark:text-[#c8d0de]"}`,children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${j?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#3a4258]"}`,children:j&&i.jsx("svg",{viewBox:"0 0 8 8",className:"h-2 w-2 fill-current",children:i.jsx("path",{d:"M1 4l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})})}),w.label]},w.value)})})]}),document.body)]})}const oF=272,lF=160,cF=12;function Gy({value:t,onChange:e,options:n,placeholder:r="Gateway name",className:a="",dataCy:s,onEnter:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(-1),[f,h]=g.useState({}),[p,m]=g.useState(oF),x=g.useRef(null),y=g.useRef(null),b=g.useRef(null),v=t.trim().toLowerCase(),w=v?n.filter(S=>S.name.toLowerCase().includes(v)):n;function j(){var M;const S=(M=y.current)==null?void 0:M.getBoundingClientRect();if(!S)return;const N=window.innerHeight-S.bottom-cF,E=S.top-cF,P=NN;m(Math.min(oF,Math.max(lF,P?E:N))),h({position:"fixed",left:S.left,minWidth:S.width,zIndex:9999,...P?{bottom:window.innerHeight-S.top+4}:{top:S.bottom+4}}),c(!0)}function k(){c(!1),d(-1)}g.useEffect(()=>{if(!l)return;function S(N){var P,M;const E=N.target;!((P=x.current)!=null&&P.contains(E))&&!((M=b.current)!=null&&M.contains(E))&&k()}return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[l]);function _(S){if(S.key==="ArrowDown"){if(S.preventDefault(),!l)return j();d(N=>w.length?(N+1)%w.length:-1)}else if(S.key==="ArrowUp"){if(S.preventDefault(),!l)return j();d(N=>w.length?N<=0?w.length-1:N-1:-1)}else S.key==="Enter"?(S.preventDefault(),l&&u>=0&&w[u]?(e(w[u].name,w[u]),k()):(k(),o==null||o())):S.key==="Escape"&&l&&(S.stopPropagation(),k())}return i.jsxs("div",{ref:x,className:`relative ${a}`,"data-cy":s,children:[i.jsx("input",{ref:y,value:t,onChange:S=>{e(S.target.value),d(-1),l||j()},onFocus:j,onBlur:k,onKeyDown:_,placeholder:r,role:"combobox","aria-expanded":l,"aria-autocomplete":"list",autoComplete:"off",className:"w-full rounded-lg border border-slate-200 bg-transparent py-2 pl-3 pr-8 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",tabIndex:-1,"aria-label":l?"Hide gateway list":"Show gateway list",onMouseDown:S=>{var N;S.preventDefault(),(N=y.current)==null||N.focus(),l?k():j()},className:"absolute inset-y-0 right-0 flex items-center px-2 text-slate-500 hover:text-slate-600 dark:hover:text-slate-200",children:i.jsx(wn,{size:13,className:`transition-transform duration-150 ${l?"rotate-180":""}`})}),l&&fs.createPortal(i.jsx("div",{ref:b,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#222226] dark:bg-[#111118]",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(Math.max(w.length,1)*(w.some(S=>S.gatewayId)?52:32)+8,p)}px`},children:w.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:t.trim()?i.jsxs(i.Fragment,{children:["No connector matches — ",i.jsx("span",{className:"font-mono",children:t.trim()})," is used as typed"]}):"No gateways"}):w.map((S,N)=>i.jsxs("button",{type:"button","data-value":S.name,onMouseDown:E=>E.preventDefault(),onMouseEnter:()=>d(N),onClick:()=>{var E;e(S.name,S),k(),(E=y.current)==null||E.focus()},className:`w-full px-3 py-2.5 text-left font-mono text-sm transition-colors ${N===u?"bg-slate-50 dark:bg-[#1c1c24]":""} ${S.name===t?"bg-brand-50/50 font-medium text-brand-600 dark:bg-brand-900/10 dark:text-brand-400":""}`,children:[S.name,S.gatewayId&&i.jsx("span",{"data-gateway-id":S.gatewayId,className:"mt-0.5 block truncate text-xs font-normal text-slate-500",children:S.gatewayId})]},S.gatewayId||S.name))})}),document.body)]})}function lLe({id:t,position:e,gatewayName:n,gatewayId:r,options:a,onEdit:s,onRemove:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(n),[f,h]=g.useState(r),{attributes:p,listeners:m,setNodeRef:x,transform:y,transition:b}=nLe({id:t,disabled:l}),v={transform:hy.Transform.toString(y),transition:b};function w(){d(n),h(r),c(!0)}function j(){const _=u.trim();_&&(s({gatewayName:_,gatewayId:f.trim()}),c(!1))}function k(){c(!1)}return l?i.jsxs("div",{ref:x,style:v,className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:_=>{_.key==="Escape"&&(_.preventDefault(),k()),_.key==="Enter"&&(_.preventDefault(),j())},children:[i.jsxs("span",{className:"w-5 shrink-0 text-center text-sm tabular-nums text-slate-500",children:[e,"."]}),i.jsx(Gy,{value:u,onChange:(_,S)=>{d(_),h((S==null?void 0:S.gatewayId)??"")},onEnter:j,options:a,className:"flex-1"}),i.jsx("input",{value:f,onChange:_=>h(_.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:j,disabled:!u.trim(),"aria-label":"Save gateway",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:k,"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{ref:x,style:v,className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsx("span",{...p,...m,className:"cursor-grab text-slate-500",children:i.jsx(LCe,{size:14})}),i.jsxs("button",{type:"button",onClick:w,"aria-label":`Edit ${n}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[e,". ",n,r?` (${r})`:""]}),i.jsx(El,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:o,"aria-label":`Remove ${n}`,className:"text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]})}function qP({gateways:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),l=RIe(K6(HP),K6(VP,{coordinateGetter:sLe}));function c(f){const{active:h,over:p}=f;if(p&&h.id!==p.id){const m=t.findIndex(y=>y.id===h.id),x=t.findIndex(y=>y.id===p.id);e(GP(t,m,x))}}function u(){r.trim()&&(e([...t,{id:crypto.randomUUID(),gatewayName:r.trim(),gatewayId:s.trim()}]),a(""),o(""))}const d=am(n,t.map(f=>f.gatewayName),t.map(f=>f.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[i.jsx(I$e,{sensors:l,collisionDetection:IIe,onDragEnd:c,children:i.jsx(Y$e,{items:t.map(f=>f.id),strategy:q$e,children:t.map((f,h)=>i.jsx(lLe,{id:f.id,position:h+1,gatewayName:f.gatewayName,gatewayId:f.gatewayId,options:am(n,t.filter(p=>p.id!==f.id).map(p=>p.gatewayName),t.filter(p=>p.id!==f.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===f.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==f.id))},f.id))})}),i.jsxs("div",{className:"flex gap-2",onBlur:f=>{f.currentTarget.contains(f.relatedTarget)||u()},children:[i.jsx(Gy,{value:r,onChange:(f,h)=>{a(f),o((h==null?void 0:h.gatewayId)??"")},onEnter:u,options:d,className:"flex-1"}),i.jsx("input",{value:s,onChange:f=>o(f.target.value),onKeyDown:f=>f.key==="Enter"&&(f.preventDefault(),u()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:u,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function cLe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),[l,c]=g.useState(""),u=t.reduce((h,p)=>h+p.split,0);function d(){!s.trim()||!r||(e([...t,{id:crypto.randomUUID(),split:Number(r),gatewayName:s.trim(),gatewayId:l.trim()}]),a(""),o(""),c(""))}const f=am(n,t.map(h=>h.gatewayName),t.map(h=>h.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[t.map(h=>i.jsx(uLe,{entry:h,options:am(n,t.filter(p=>p.id!==h.id).map(p=>p.gatewayName),t.filter(p=>p.id!==h.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===h.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==h.id))},h.id)),t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${u===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",u,"%",u!==100?" (must equal 100%)":" ✓"]}),i.jsxs("div",{className:"flex gap-2",onBlur:h=>{h.currentTarget.contains(h.relatedTarget)||d()},children:[i.jsx("input",{type:"number",value:r,onChange:h=>a(h.target.value),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-20 focus:outline-none focus:border-brand-500"}),i.jsx(Gy,{value:s,onChange:(h,p)=>{o(h),c((p==null?void 0:p.gatewayId)??"")},onEnter:d,options:f,className:"flex-1"}),i.jsx("input",{value:l,onChange:h=>c(h.target.value),onKeyDown:h=>h.key==="Enter"&&(h.preventDefault(),d()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:d,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function uLe({entry:t,options:e,onEdit:n,onRemove:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(String(t.split)),[c,u]=g.useState(t.gatewayName),[d,f]=g.useState(t.gatewayId);function h(){l(String(t.split)),u(t.gatewayName),f(t.gatewayId),s(!0)}function p(){const m=c.trim();m&&(n({split:Number(o)||0,gatewayName:m,gatewayId:d.trim()}),s(!1))}return a?i.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:m=>{m.key==="Escape"&&(m.preventDefault(),s(!1)),m.key==="Enter"&&(m.preventDefault(),p())},children:[i.jsx("input",{type:"number",value:o,onChange:m=>l(m.target.value),"aria-label":"Split percentage",className:"w-20 rounded-lg border border-slate-200 bg-transparent px-2 py-1 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(Gy,{value:c,onChange:(m,x)=>{u(m),f((x==null?void 0:x.gatewayId)??"")},onEnter:p,options:e,className:"flex-1"}),i.jsx("input",{value:d,onChange:m=>f(m.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:p,disabled:!c.trim(),"aria-label":"Save split",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:()=>s(!1),"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsxs("span",{className:"text-xs font-bold text-brand-600 w-10 shrink-0 tabular-nums",children:[t.split,"%"]}),i.jsxs("button",{type:"button",onClick:h,"aria-label":`Edit ${t.gatewayName}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[t.gatewayName,t.gatewayId?` (${t.gatewayId})`:""]}),i.jsx(El,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:r,"aria-label":`Remove ${t.gatewayName}`,className:"text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]})}function dLe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),s=t.reduce((c,u)=>c+u.split,0);function o(){r&&(e([...t,{id:crypto.randomUUID(),split:Number(r),gateways:[]}]),a(""))}function l(c,u){e(t.map(d=>d.id===c?{...d,...u}:d))}return i.jsxs("div",{className:"space-y-3",children:[t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${s===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",s,"%",s!==100?" (must equal 100%)":" ✓"]}),t.map((c,u)=>i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-slate-50 dark:bg-[#111118] border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsxs("span",{className:"text-xs text-slate-500 font-medium shrink-0",children:["Split ",u+1,":"]}),i.jsx("input",{type:"number",value:c.split,onChange:d=>l(c.id,{split:Number(d.target.value)}),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded px-2 py-0.5 text-xs w-16 focus:outline-none"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),i.jsx("button",{type:"button",onClick:()=>e(t.filter(d=>d.id!==c.id)),className:"ml-auto text-red-600 hover:text-red-600",children:i.jsx(Cn,{size:12})})]}),i.jsxs("div",{className:"p-3",children:[i.jsx("p",{className:"mb-2 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:"Priority list for this split"}),i.jsx(qP,{gateways:c.gateways,suggestions:n,onChange:d=>l(c.id,{gateways:d})})]})]},c.id)),i.jsxs("div",{className:"flex gap-2 items-center",onBlur:c=>{c.currentTarget.contains(c.relatedTarget)||o()},children:[i.jsx("input",{type:"number",value:r,onChange:c=>a(c.target.value),onKeyDown:c=>c.key==="Enter"&&(c.preventDefault(),o()),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-24 focus:outline-none focus:border-brand-500"}),i.jsxs(ke,{type:"button",size:"sm",variant:"secondary",onClick:o,children:[i.jsx(Qn,{size:13})," Add split"]})]})]})}function fLe({row:t,onChange:e,onRemove:n,routingKeys:r}){const a=r[t.lhs],s=(a==null?void 0:a.type)==="enum",o=(a==null?void 0:a.type)==="integer",l=(a==null?void 0:a.type)==="udf"||(a==null?void 0:a.type)==="global_ref",c=t.operator==="in"||t.operator==="not_in",u=o?[">","<",">=","<=","==","!="]:s?["==","!=","in","not_in"]:["==","!="],d=Array.isArray(t.value)?t.value:[];function f(h){const p=h==="in"||h==="not_in",m=t.operator==="in"||t.operator==="not_in";let x=t.value;p&&!Array.isArray(t.value)?x=t.value?[t.value]:[]:!p&&m&&(x=Array.isArray(t.value)?t.value[0]??"":""),e({...t,operator:h,value:x})}return i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Yo,{className:"w-[13.5rem] shrink-0",dataCy:"cond-lhs",value:t.lhs,onChange:h=>{var x;const p=r[h],m=(p==null?void 0:p.type)==="enum"?((x=p.values)==null?void 0:x[0])??"":"";e({...t,lhs:h,value:m,operator:"=="})},options:Object.keys(r).map(h=>({value:h,label:ic(h)}))}),i.jsx("select",{value:t.operator,onChange:h=>f(h.target.value),"aria-label":"Condition operator",className:"cond-select w-[10.5rem] shrink-0",children:u.map(h=>i.jsx("option",{value:h,children:AG[h]||h},h))}),i.jsx("div",{className:"flex items-center gap-2",children:s&&c?i.jsx("div",{"data-cy":"cond-val",className:"w-[14rem]",children:i.jsx(oLe,{values:d,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:ic(h)})),placeholder:"Select values…"})}):s?i.jsx(Yo,{className:"w-[12rem]",dataCy:"cond-val",value:t.value,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:ic(h)}))}):o?i.jsx("input",{type:"number",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-32"}):l?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"text",value:t.metadataKey||"",onChange:h=>e({...t,metadataKey:h.target.value}),placeholder:"key",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-40"}),i.jsx("span",{className:"shrink-0 text-sm text-slate-500 dark:text-slate-400 select-none",children:"="}),i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-44"})]}):i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-52"})}),i.jsx("button",{type:"button",onClick:n,"aria-label":"Remove condition",className:"shrink-0 text-red-600 transition-colors hover:text-red-600",children:i.jsx(Cn,{size:15})})]})}function cX({group:t,onChange:e,onRemove:n,canRemove:r,routingKeys:a,depth:s=0}){function o(){e({...t,conditions:[...t.conditions,OG(a)]})}function l(){e({...t,nested:[...t.nested,GT(a)]})}return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222733] bg-white dark:bg-[#0f141d]",children:[i.jsxs("div",{className:"space-y-0 divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[t.conditions.map((c,u)=>i.jsxs("div",{"data-testid":"condition-row",className:"flex items-center gap-3 px-4 py-3",children:[t.conditions.length>1&&i.jsx("span",{className:"w-10 shrink-0 text-[11px] font-bold uppercase tracking-widest text-sky-700 select-none leading-4",children:u===0?"IF":"AND"}),i.jsx(fLe,{row:c,routingKeys:a,onChange:d=>e({...t,conditions:t.conditions.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,conditions:t.conditions.length>1?t.conditions.filter(d=>d.id!==c.id):t.conditions})})]},c.id)),i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add condition"]}),s>0&&r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(Cn,{size:13})," Remove group"]})]})]}),s===0&&t.nested.length>0&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] px-3 pt-3 pb-2 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:[i.jsx(sL,{size:11}),"Then match any of (nested OR)"]}),t.nested.map((c,u)=>i.jsxs("div",{className:"pl-3 border-l-2 border-sky-200 dark:border-sky-800",children:[u>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx(cX,{group:c,routingKeys:a,canRemove:!0,depth:1,onChange:d=>e({...t,nested:t.nested.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,nested:t.nested.filter(d=>d.id!==c.id)})})]},c.id))]}),s===0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-4 border-t border-slate-100 px-4 py-2.5 dark:border-[#1c1c24]",children:[s===0&&i.jsxs("button",{type:"button",onClick:l,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(sL,{size:13})," Add nested branch"]}),r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(Cn,{size:13})," Remove group"]})]})]})}const uF={priority:"Priority",volume_split:"Volume Split"};function hLe({block:t,index:e,onChange:n,onRemove:r,routingKeys:a,gatewaySuggestions:s=[],error:o}){const[l,c]=g.useState(!1);g.useEffect(()=>{o&&c(!1)},[o]);function u(){n({...t,statements:[...t.statements,GT(a)]})}return i.jsxs("div",{className:`overflow-hidden rounded-xl border ${o?"border-red-300 dark:border-red-500/50":"border-slate-200 dark:border-[#1c1c24]"}`,children:[i.jsxs("div",{onClick:()=>c(!l),className:"flex cursor-pointer items-center justify-between gap-3 border-b border-slate-200 bg-slate-50 px-5 py-3 dark:border-[#1c1c24] dark:bg-[#111118]",children:[i.jsxs("div",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[i.jsx("input",{value:t.name,onChange:d=>n({...t,name:d.target.value}),onClick:d=>d.stopPropagation(),placeholder:"Rule name",className:"input-bare min-w-0 max-w-[16rem] flex-1 cursor-text text-[15px] font-semibold text-slate-800 focus:outline-none dark:text-slate-100 leading-[22px]"}),i.jsx("span",{className:"shrink-0 truncate text-xs text-slate-500 dark:text-[#78849a]",children:e===0?"(Highest priority matching check)":e!==void 0?`(Checked if rule ${e} does not match)`:""})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),r()},"aria-label":"Delete rule",className:"text-red-600 transition-colors hover:text-red-600",children:i.jsx(Cn,{size:15})}),i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),c(!l)},"aria-label":l?"Expand rule":"Collapse rule",className:"text-slate-500 transition-colors hover:text-slate-600",children:l?i.jsx(wn,{size:15}):i.jsx(Ds,{size:15})})]})]}),!l&&i.jsxs("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[i.jsxs("div",{className:"space-y-2.5 px-5 py-5",children:[i.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"If"}),t.statements.map((d,f)=>i.jsxs("div",{className:"space-y-2",children:[f>0&&i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"}),i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-sky-700 px-1 leading-4",children:"or"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"})]}),i.jsx(cX,{group:d,routingKeys:a,canRemove:t.statements.length>1,onChange:h=>n({...t,statements:t.statements.map(p=>p.id===d.id?h:p)}),onRemove:()=>n({...t,statements:t.statements.filter(h=>h.id!==d.id)})})]},d.id)),i.jsxs("button",{type:"button",onClick:u,className:"mt-1 flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add OR group"]})]}),i.jsxs("div",{"data-cy":"then-section",className:"px-5 py-5",children:[i.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[i.jsx("p",{className:"shrink-0 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Then route"}),i.jsx("div",{className:"flex overflow-hidden rounded-lg border border-slate-200 text-xs dark:border-[#222226]",children:Object.keys(uF).map(d=>i.jsx("button",{type:"button",onClick:()=>n({...t,outputType:d}),className:`px-2.5 py-1 transition-colors ${t.outputType===d?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:uF[d]},d))})]}),t.outputType==="priority"&&i.jsx(qP,{gateways:t.priorityGateways,suggestions:s,onChange:d=>n({...t,priorityGateways:d})}),t.outputType==="volume_split"&&i.jsx(cLe,{entries:t.volumeSplitEntries,suggestions:s,onChange:d=>n({...t,volumeSplitEntries:d})}),t.outputType==="volume_split_priority"&&i.jsx(dLe,{entries:t.volumeSplitPriorityEntries,suggestions:s,onChange:d=>n({...t,volumeSplitPriorityEntries:d})}),i.jsx(ek,{message:o})]})]})]})}function dF(t,e,n,r){return JSON.stringify([t.trim(),e,n,r])}function fF(){const t=Ro(),e=Kr(),{id:n}=f7(),[r]=Nl(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=Er(),{routingKeysConfig:l,isLoading:c,error:u}=MT(),d=l,f=Object.keys(d).length>0,h=!c&&(!f||!!u),[p,m]=g.useState(""),[x,y]=g.useState(""),[b,v]=g.useState([]),[w,j]=g.useState({priorityGateways:[]}),[k,_]=g.useState("visual"),[S,N]=g.useState(""),[E,P]=g.useState(null),[M,A]=g.useState(!1),[O,D]=g.useState(null),[I,X]=g.useState(null),[Q,V]=g.useState({}),Y=g.useRef(null),{data:H,mutate:G}=ut(o?`/routing/list/${o}`:null,()=>Ve(`/routing/list/${o}`)),{data:$}=ut(o?`/routing/list/active/${o}`:null,()=>Ve(`/routing/list/active/${o}`)),F=n||a,R=F?(H||[]).find(je=>je.id===F):void 0,z=s&&($||[]).some(je=>je.id===n),U=s&&!$,ee=g.useRef(null),pe=g.useRef(null);g.useEffect(()=>{if(!R||ee.current===R.id)return;ee.current=R.id;const{ruleBlocks:je,defaultOutput:Me}=cOe(R);m(s?R.name:`copy-of-${R.name}`),y(R.description&&R.description!=="N/A"?R.description:""),v(je),j(Me),_("visual"),pe.current=dF(s?R.name:`copy-of-${R.name}`,R.description&&R.description!=="N/A"?R.description:"",je,Me)},[R,s]);const re=pe.current!==null&&pe.current!==dF(p,x,b,w),he=R&&p.trim()===R.name?`copy-of-${R.name}`:p.trim(),q=Array.from(new Set([...b.flatMap(je=>[...je.priorityGateways.map(Me=>Me.gatewayName),...je.volumeSplitEntries.map(Me=>Me.gatewayName),...je.volumeSplitPriorityEntries.flatMap(Me=>Me.gateways.map(Be=>Be.gatewayName))]),...w.priorityGateways.map(je=>je.gatewayName)].filter(Boolean))),W=oOe(b,w,d);function ue(){m(""),y(""),v([]),j({priorityGateways:[]}),_("visual"),N(""),P(null),D(null),X(null),V({})}async function te(je){var tt;if(je.preventDefault(),!o){D("Set a Merchant ID first.");return}if(h){D("Routing key config is unavailable. Ensure backend /config/routing-keys is reachable and valid.");return}const Me=p.trim()?null:"Rule name is required.",Be={};if(b.forEach(B=>{(B.outputType==="priority"&&B.priorityGateways.length===0||B.outputType==="volume_split"&&B.volumeSplitEntries.length===0||B.outputType==="volume_split_priority"&&B.volumeSplitPriorityEntries.length===0)&&(Be[B.id]="Add at least one destination gateway to route to.")}),X(Me),V(Be),Me||Object.keys(Be).length||E){D(E&&!Me&&!Object.keys(Be).length?"Fix the syntax error in the code editor before saving.":"Fix the highlighted fields before saving."),Me&&((tt=Y.current)==null||tt.focus());return}A(!0),D(null);try{const B={type:"advanced",data:W};s&&!z?await Ve("/routing/update",{created_by:o,routing_algorithm_id:n,name:p.trim(),description:x,algorithm:B}):await Ve("/routing/create",{name:z?he:p.trim(),description:x,created_by:o,algorithm_for:(R==null?void 0:R.algorithm_for)??"payment",algorithm:B}),await G(),e("/routing/rules")}catch(B){D(String(B))}finally{A(!1)}}function ie(){v(je=>[...je,{id:crypto.randomUUID(),name:`Rule ${je.length+1}`,statements:[GT(d)],outputType:"priority",priorityGateways:[],volumeSplitEntries:[],volumeSplitPriorityEntries:[]}])}function me(){b.length>0?N(sIe(b)):S.trim()||N(LY),P(null),_("code")}function ve(){_("visual")}function Ne(je){if(N(je),!je.trim()){P(null),v([]);return}const Me=uIe(je);Me.error?(P(Me.error),v([])):Me.rules!==null&&(P(null),v(Me.rules))}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/rules"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Rule-Based Routing"]}),i.jsx(qr,{title:s?"Edit Payment Rule":"Create Payment Rule",description:"Create precise cascading routing paths for card transactions using conditional flags.",className:"truncate"})]}),i.jsxs("div",{className:"flex shrink-0 rounded-lg border border-slate-200 text-xs dark:border-[#222226] overflow-hidden",children:[i.jsx("button",{type:"button",onClick:ve,className:`px-3 py-1.5 transition-colors ${k==="visual"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Visual Builder"}),i.jsx("button",{type:"button",onClick:me,className:`px-3 py-1.5 transition-colors ${k==="code"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Code"})]})]}),s&&!R&&H&&i.jsx(_t,{error:"That rule no longer exists for this merchant."}),z&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:he||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:te,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"rule-name",ref:Y,value:p,onChange:je=>{m(je.target.value),I&&X(null)},placeholder:"my-rule","aria-invalid":!!I,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${PG(!!I)}`}),i.jsx(ek,{message:I})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"rule-description",value:x,onChange:je=>y(je.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Configured Rules"}),c&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),h&&i.jsx(_t,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Builder is disabled until this is fixed."}),k==="visual"?i.jsxs(i.Fragment,{children:[b.map((je,Me)=>i.jsx(hLe,{block:je,index:Me,routingKeys:d,gatewaySuggestions:q,error:Q[je.id],onChange:Be=>{v(tt=>tt.map(B=>B.id===je.id?Be:B)),Q[je.id]&&V(({[je.id]:tt,...B})=>B)},onRemove:()=>{v(Be=>Be.filter(tt=>tt.id!==je.id)),V(({[je.id]:Be,...tt})=>tt)}},je.id)),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",onClick:ie,disabled:h,children:[i.jsx(Qn,{size:14})," Add Rule"]})]}):i.jsx(vIe,{value:S,onChange:Ne,parseError:E,routingKeys:d,gatewaySuggestions:q})]}),i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-300 px-4 py-4 dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-200 leading-[22px]",children:"Default Fallback Gateway"}),i.jsxs("p",{className:"mb-4 mt-1 text-[13px] text-slate-500 dark:text-[#8d96a8] leading-[18px]",children:["This gateway handles any transactions that do not match the custom rules configured above. Per-request overrides are possible via ",i.jsx("code",{className:"font-mono",children:"fallback_output"}),"."]}),i.jsx(qP,{gateways:w.priorityGateways,suggestions:q,onChange:je=>j({...w,priorityGateways:je})})]})]})}),i.jsx(_t,{error:O}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{type:"submit",disabled:M||h||!t||U||z&&!re,title:z&&!re?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:M?"Saving...":z?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(ke,{type:"button",variant:"secondary",size:"sm",onClick:ue,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/rules"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx(pLe,{ruleName:p,ruleBlocks:b,algorithmData:W})]})]})}function pLe({ruleName:t,ruleBlocks:e,algorithmData:n}){const r={id:"preview",name:t,description:"",created_by:"",algorithm:{type:"advanced",data:n}};return i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:t.trim()||"Untitled rule"})]}),e.length===0?i.jsx("p",{className:"text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96a8]",children:"No conditions yet — every payment will take the default fallback."}):i.jsx(YT,{algo:r})]})})})})}function uX(t){return{type:"volume_split",data:t.map(e=>({split:e.split,output:{gateway_name:e.gatewayName.trim(),gateway_id:e.gatewayId.trim()||null}}))}}function mLe(t,e){var n;return{name:t.ruleName.trim(),description:((n=t.description)==null?void 0:n.trim())??"",created_by:e,algorithm_for:"payment",metadata:{},algorithm:uX(t.gateways)}}function gLe(t){return t.map((e,n)=>{var r,a,s;return{id:`${((r=e.output)==null?void 0:r.gateway_name)||"gateway"}-${n}`,gatewayName:((a=e.output)==null?void 0:a.gateway_name)||"",gatewayId:((s=e.output)==null?void 0:s.gateway_id)||"",split:e.split}})}function v2(t){const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="volume_split")return null;const n=e.data||[];return{id:t.id,name:t.name,description:t.description,createdAt:t.created_at,gateways:gLe(n)}}var hn;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function n(a){throw new Error}t.assertNever=n,t.arrayToEnum=a=>{const s={};for(const o of a)s[o]=o;return s},t.getValidEnumValues=a=>{const s=t.objectKeys(a).filter(l=>typeof a[a[l]]!="number"),o={};for(const l of s)o[l]=a[l];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(s){return a[s]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&s.push(o);return s},t.find=(a,s)=>{for(const o of a)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function r(a,s=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(hn||(hn={}));var hF;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(hF||(hF={}));const ht=hn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hc=t=>{switch(typeof t){case"undefined":return ht.undefined;case"string":return ht.string;case"number":return Number.isNaN(t)?ht.nan:ht.number;case"boolean":return ht.boolean;case"function":return ht.function;case"bigint":return ht.bigint;case"symbol":return ht.symbol;case"object":return Array.isArray(t)?ht.array:t===null?ht.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ht.promise:typeof Map<"u"&&t instanceof Map?ht.map:typeof Set<"u"&&t instanceof Set?ht.set:typeof Date<"u"&&t instanceof Date?ht.date:ht.object;default:return ht.unknown}},Fe=hn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class bc extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},a=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;cn.message){const n={},r=[];for(const a of this.issues)if(a.path.length>0){const s=a.path[0];n[s]=n[s]||[],n[s].push(e(a))}else r.push(e(a));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}bc.create=t=>new bc(t);const $5=(t,e)=>{let n;switch(t.code){case Fe.invalid_type:t.received===ht.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Fe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,hn.jsonStringifyReplacer)}`;break;case Fe.unrecognized_keys:n=`Unrecognized key(s) in object: ${hn.joinValues(t.keys,", ")}`;break;case Fe.invalid_union:n="Invalid input";break;case Fe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${hn.joinValues(t.options)}`;break;case Fe.invalid_enum_value:n=`Invalid enum value. Expected ${hn.joinValues(t.options)}, received '${t.received}'`;break;case Fe.invalid_arguments:n="Invalid function arguments";break;case Fe.invalid_return_type:n="Invalid function return type";break;case Fe.invalid_date:n="Invalid date";break;case Fe.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:hn.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Fe.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Fe.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Fe.custom:n="Invalid input";break;case Fe.invalid_intersection_types:n="Intersection results could not be merged";break;case Fe.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Fe.not_finite:n="Number must be finite";break;default:n=e.defaultError,hn.assertNever(t)}return{message:n}};let xLe=$5;function yLe(){return xLe}const vLe=t=>{const{data:e,path:n,errorMaps:r,issueData:a}=t,s=[...n,...a.path||[]],o={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:e,defaultError:l}).message;return{...a,path:s,message:l}};function et(t,e){const n=yLe(),r=vLe({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===$5?void 0:$5].filter(a=>!!a)});t.common.issues.push(r)}class xi{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const a of n){if(a.status==="aborted")return Dt;a.status==="dirty"&&e.dirty(),r.push(a.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const a of n){const s=await a.key,o=await a.value;r.push({key:s,value:o})}return xi.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const a of n){const{key:s,value:o}=a;if(s.status==="aborted"||o.status==="aborted")return Dt;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(r[s.value]=o.value)}return{status:e.value,value:r}}}const Dt=Object.freeze({status:"aborted"}),ox=t=>({status:"dirty",value:t}),eo=t=>({status:"valid",value:t}),pF=t=>t.status==="aborted",mF=t=>t.status==="dirty",sm=t=>t.status==="valid",Ck=t=>typeof Promise<"u"&&t instanceof Promise;var xt;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(xt||(xt={}));class Fu{constructor(e,n,r,a){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const gF=(t,e)=>{if(sm(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new bc(t.common.issues);return this._error=n,this._error}}};function Wt(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:a}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,l)=>{const{message:c}=t;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:a}}class un{get description(){return this._def.description}_getType(e){return Hc(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:Hc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new xi,ctx:{common:e.parent.common,data:e.data,parsedType:Hc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(Ck(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)},a=this._parseSync({data:e,path:r.path,parent:r});return gF(r,a)}"~validate"(e){var r,a;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return sm(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(a=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>sm(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hc(e)},a=this._parse({data:e,path:r.path,parent:r}),s=await(Ck(a)?a:Promise.resolve(a));return gF(r,s)}refine(e,n){const r=a=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(a):n;return this._refinement((a,s)=>{const o=e(a),l=()=>s.addIssue({code:Fe.custom,...r(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(e,n){return this._refinement((r,a)=>e(r)?!0:(a.addIssue(typeof n=="function"?n(r,a):n),!1))}_refinement(e){return new yf({schema:this,typeName:$t.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Su.create(this,this._def)}nullable(){return lm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bl.create(this)}promise(){return Tk.create(this,this._def)}or(e){return Ak.create([this,e],this._def)}and(e){return Ok.create(this,e,this._def)}transform(e){return new yf({...Wt(this._def),schema:this,typeName:$t.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new F5({...Wt(this._def),innerType:this,defaultValue:n,typeName:$t.ZodDefault})}brand(){return new ULe({typeName:$t.ZodBranded,type:this,...Wt(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new B5({...Wt(this._def),innerType:this,catchValue:n,typeName:$t.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return KP.create(this,e)}readonly(){return z5.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const bLe=/^c[^\s-]{8,}$/i,wLe=/^[0-9a-z]+$/,kLe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jLe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,SLe=/^[a-z0-9_-]{21}$/i,_Le=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,NLe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,CLe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ELe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Q_;const ALe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,OLe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,TLe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,PLe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,MLe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,RLe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dX="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",DLe=new RegExp(`^${dX}$`);function fX(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function ILe(t){return new RegExp(`^${fX(t)}$`)}function $Le(t){let e=`${dX}T${fX(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function LLe(t,e){return!!((e==="v4"||!e)&&ALe.test(t)||(e==="v6"||!e)&&TLe.test(t))}function FLe(t,e){if(!_Le.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(r));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function BLe(t,e){return!!((e==="v4"||!e)&&OLe.test(t)||(e==="v6"||!e)&&PLe.test(t))}class nc extends un{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ht.string){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.string,received:s.parsedType}),Dt}const r=new xi;let a;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(a=this._getOrReturnCtx(e,a),et(a,{code:Fe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const o=e.data.length>s.value,l=e.data.lengthe.test(a),{validation:n,code:Fe.invalid_string,...xt.errToObj(r)})}_addCheck(e){return new nc({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...xt.errToObj(e)})}url(e){return this._addCheck({kind:"url",...xt.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...xt.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...xt.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...xt.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...xt.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...xt.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...xt.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...xt.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...xt.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...xt.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...xt.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...xt.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...xt.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...xt.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...xt.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...xt.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...xt.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...xt.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...xt.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...xt.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...xt.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...xt.errToObj(n)})}nonempty(e){return this.min(1,xt.errToObj(e))}trim(){return new nc({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new nc({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new nc({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew nc({checks:[],typeName:$t.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...Wt(t)});function zLe(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,a=n>r?n:r,s=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return s%o/10**a}class mf extends un{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ht.number){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.number,received:s.parsedType}),Dt}let r;const a=new xi;for(const s of this._def.checks)s.kind==="int"?hn.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?zLe(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_finite,message:s.message}),a.dirty()):hn.assertNever(s);return{status:a.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,xt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,xt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,xt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,xt.toString(n))}setLimit(e,n,r,a){return new mf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:xt.toString(a)}]})}_addCheck(e){return new mf({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:xt.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:xt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:xt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:xt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:xt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:xt.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:xt.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:xt.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:xt.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&hn.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew mf({checks:[],typeName:$t.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...Wt(t)});class gf extends un{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ht.bigint)return this._getInvalidInput(e);let r;const a=new xi;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),et(r,{code:Fe.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):hn.assertNever(s);return{status:a.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return et(n,{code:Fe.invalid_type,expected:ht.bigint,received:n.parsedType}),Dt}gte(e,n){return this.setLimit("min",e,!0,xt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,xt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,xt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,xt.toString(n))}setLimit(e,n,r,a){return new gf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:xt.toString(a)}]})}_addCheck(e){return new gf({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:xt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:xt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:xt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:xt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:xt.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew gf({checks:[],typeName:$t.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...Wt(t)});class Ek extends un{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ht.boolean){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.boolean,received:r.parsedType}),Dt}return eo(e.data)}}Ek.create=t=>new Ek({typeName:$t.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...Wt(t)});class im extends un{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ht.date){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_type,expected:ht.date,received:s.parsedType}),Dt}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return et(s,{code:Fe.invalid_date}),Dt}const r=new xi;let a;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(a=this._getOrReturnCtx(e,a),et(a,{code:Fe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):hn.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new im({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:xt.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:xt.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew im({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:$t.ZodDate,...Wt(t)});class xF extends un{_parse(e){if(this._getType(e)!==ht.symbol){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.symbol,received:r.parsedType}),Dt}return eo(e.data)}}xF.create=t=>new xF({typeName:$t.ZodSymbol,...Wt(t)});class yF extends un{_parse(e){if(this._getType(e)!==ht.undefined){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.undefined,received:r.parsedType}),Dt}return eo(e.data)}}yF.create=t=>new yF({typeName:$t.ZodUndefined,...Wt(t)});class vF extends un{_parse(e){if(this._getType(e)!==ht.null){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.null,received:r.parsedType}),Dt}return eo(e.data)}}vF.create=t=>new vF({typeName:$t.ZodNull,...Wt(t)});class bF extends un{constructor(){super(...arguments),this._any=!0}_parse(e){return eo(e.data)}}bF.create=t=>new bF({typeName:$t.ZodAny,...Wt(t)});class wF extends un{constructor(){super(...arguments),this._unknown=!0}_parse(e){return eo(e.data)}}wF.create=t=>new wF({typeName:$t.ZodUnknown,...Wt(t)});class Bu extends un{_parse(e){const n=this._getOrReturnCtx(e);return et(n,{code:Fe.invalid_type,expected:ht.never,received:n.parsedType}),Dt}}Bu.create=t=>new Bu({typeName:$t.ZodNever,...Wt(t)});class kF extends un{_parse(e){if(this._getType(e)!==ht.undefined){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.void,received:r.parsedType}),Dt}return eo(e.data)}}kF.create=t=>new kF({typeName:$t.ZodVoid,...Wt(t)});class bl extends un{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),a=this._def;if(n.parsedType!==ht.array)return et(n,{code:Fe.invalid_type,expected:ht.array,received:n.parsedType}),Dt;if(a.exactLength!==null){const o=n.data.length>a.exactLength.value,l=n.data.lengtha.maxLength.value&&(et(n,{code:Fe.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>a.type._parseAsync(new Fu(n,o,n.path,l)))).then(o=>xi.mergeArray(r,o));const s=[...n.data].map((o,l)=>a.type._parseSync(new Fu(n,o,n.path,l)));return xi.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new bl({...this._def,minLength:{value:e,message:xt.toString(n)}})}max(e,n){return new bl({...this._def,maxLength:{value:e,message:xt.toString(n)}})}length(e,n){return new bl({...this._def,exactLength:{value:e,message:xt.toString(n)}})}nonempty(e){return this.min(1,e)}}bl.create=(t,e)=>new bl({type:t,minLength:null,maxLength:null,exactLength:null,typeName:$t.ZodArray,...Wt(e)});function uh(t){if(t instanceof Ur){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=Su.create(uh(r))}return new Ur({...t._def,shape:()=>e})}else return t instanceof bl?new bl({...t._def,type:uh(t.element)}):t instanceof Su?Su.create(uh(t.unwrap())):t instanceof lm?lm.create(uh(t.unwrap())):t instanceof xf?xf.create(t.items.map(e=>uh(e))):t}class Ur extends un{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=hn.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==ht.object){const u=this._getOrReturnCtx(e);return et(u,{code:Fe.invalid_type,expected:ht.object,received:u.parsedType}),Dt}const{status:r,ctx:a}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof Bu&&this._def.unknownKeys==="strip"))for(const u in a.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=s[u],f=a.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Fu(a,f,a.path,u)),alwaysSet:u in a.data})}if(this._def.catchall instanceof Bu){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:a.data[d]}});else if(u==="strict")l.length>0&&(et(a,{code:Fe.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const f=a.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Fu(a,f,a.path,d)),alwaysSet:d in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const f=await d.key,h=await d.value;u.push({key:f,value:h,alwaysSet:d.alwaysSet})}return u}).then(u=>xi.mergeObjectSync(r,u)):xi.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return xt.errToObj,new Ur({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,o;const a=((o=(s=this._def).errorMap)==null?void 0:o.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:xt.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new Ur({...this._def,unknownKeys:"strip"})}passthrough(){return new Ur({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ur({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ur({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:$t.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new Ur({...this._def,catchall:e})}pick(e){const n={};for(const r of hn.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Ur({...this._def,shape:()=>n})}omit(e){const n={};for(const r of hn.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new Ur({...this._def,shape:()=>n})}deepPartial(){return uh(this)}partial(e){const n={};for(const r of hn.objectKeys(this.shape)){const a=this.shape[r];e&&!e[r]?n[r]=a:n[r]=a.optional()}return new Ur({...this._def,shape:()=>n})}required(e){const n={};for(const r of hn.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Su;)s=s._def.innerType;n[r]=s}return new Ur({...this._def,shape:()=>n})}keyof(){return hX(hn.objectKeys(this.shape))}}Ur.create=(t,e)=>new Ur({shape:()=>t,unknownKeys:"strip",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});Ur.strictCreate=(t,e)=>new Ur({shape:()=>t,unknownKeys:"strict",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});Ur.lazycreate=(t,e)=>new Ur({shape:t,unknownKeys:"strip",catchall:Bu.create(),typeName:$t.ZodObject,...Wt(e)});class Ak extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function a(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=s.map(l=>new bc(l.ctx.common.issues));return et(n,{code:Fe.invalid_union,unionErrors:o}),Dt}if(n.common.async)return Promise.all(r.map(async s=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(a);{let s;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!s&&(s={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const l=o.map(c=>new bc(c));return et(n,{code:Fe.invalid_union,unionErrors:l}),Dt}}get options(){return this._def.options}}Ak.create=(t,e)=>new Ak({options:t,typeName:$t.ZodUnion,...Wt(e)});function L5(t,e){const n=Hc(t),r=Hc(e);if(t===e)return{valid:!0,data:t};if(n===ht.object&&r===ht.object){const a=hn.objectKeys(e),s=hn.objectKeys(t).filter(l=>a.indexOf(l)!==-1),o={...t,...e};for(const l of s){const c=L5(t[l],e[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===ht.array&&r===ht.array){if(t.length!==e.length)return{valid:!1};const a=[];for(let s=0;s{if(pF(s)||pF(o))return Dt;const l=L5(s.value,o.value);return l.valid?((mF(s)||mF(o))&&n.dirty(),{status:n.value,value:l.data}):(et(r,{code:Fe.invalid_intersection_types}),Dt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>a(s,o)):a(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Ok.create=(t,e,n)=>new Ok({left:t,right:e,typeName:$t.ZodIntersection,...Wt(n)});class xf extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.array)return et(r,{code:Fe.invalid_type,expected:ht.array,received:r.parsedType}),Dt;if(r.data.lengththis._def.items.length&&(et(r,{code:Fe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Fu(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>xi.mergeArray(n,o)):xi.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new xf({...this._def,rest:e})}}xf.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xf({items:t,typeName:$t.ZodTuple,rest:null,...Wt(e)})};class jF extends un{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.map)return et(r,{code:Fe.invalid_type,expected:ht.map,received:r.parsedType}),Dt;const a=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:a._parse(new Fu(r,l,r.path,[u,"key"])),value:s._parse(new Fu(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return Dt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return Dt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}jF.create=(t,e,n)=>new jF({valueType:e,keyType:t,typeName:$t.ZodMap,...Wt(n)});class my extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==ht.set)return et(r,{code:Fe.invalid_type,expected:ht.set,received:r.parsedType}),Dt;const a=this._def;a.minSize!==null&&r.data.sizea.maxSize.value&&(et(r,{code:Fe.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),n.dirty());const s=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return Dt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>s._parse(new Fu(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(e,n){return new my({...this._def,minSize:{value:e,message:xt.toString(n)}})}max(e,n){return new my({...this._def,maxSize:{value:e,message:xt.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}my.create=(t,e)=>new my({valueType:t,minSize:null,maxSize:null,typeName:$t.ZodSet,...Wt(e)});class SF extends un{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}SF.create=(t,e)=>new SF({getter:t,typeName:$t.ZodLazy,...Wt(e)});class _F extends un{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return et(n,{received:n.data,code:Fe.invalid_literal,expected:this._def.value}),Dt}return{status:"valid",value:e.data}}get value(){return this._def.value}}_F.create=(t,e)=>new _F({value:t,typeName:$t.ZodLiteral,...Wt(e)});function hX(t,e){return new om({values:t,typeName:$t.ZodEnum,...Wt(e)})}class om extends un{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return et(n,{expected:hn.joinValues(r),received:n.parsedType,code:Fe.invalid_type}),Dt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return et(n,{received:n.data,code:Fe.invalid_enum_value,options:r}),Dt}return eo(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return om.create(e,{...this._def,...n})}exclude(e,n=this._def){return om.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}}om.create=hX;class NF extends un{_parse(e){const n=hn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==ht.string&&r.parsedType!==ht.number){const a=hn.objectValues(n);return et(r,{expected:hn.joinValues(a),received:r.parsedType,code:Fe.invalid_type}),Dt}if(this._cache||(this._cache=new Set(hn.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const a=hn.objectValues(n);return et(r,{received:r.data,code:Fe.invalid_enum_value,options:a}),Dt}return eo(e.data)}get enum(){return this._def.values}}NF.create=(t,e)=>new NF({values:t,typeName:$t.ZodNativeEnum,...Wt(e)});class Tk extends un{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==ht.promise&&n.common.async===!1)return et(n,{code:Fe.invalid_type,expected:ht.promise,received:n.parsedType}),Dt;const r=n.parsedType===ht.promise?n.data:Promise.resolve(n.data);return eo(r.then(a=>this._def.type.parseAsync(a,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Tk.create=(t,e)=>new Tk({type:t,typeName:$t.ZodPromise,...Wt(e)});class yf extends un{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$t.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),a=this._def.effect||null,s={addIssue:o=>{et(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const o=a.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return Dt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?Dt:c.status==="dirty"||n.value==="dirty"?ox(c.value):c});{if(n.value==="aborted")return Dt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?Dt:l.status==="dirty"||n.value==="dirty"?ox(l.value):l}}if(a.type==="refinement"){const o=l=>{const c=a.refinement(l,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?Dt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?Dt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(a.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!sm(o))return Dt;const l=a.transform(o.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>sm(o)?Promise.resolve(a.transform(o.value,s)).then(l=>({status:n.value,value:l})):Dt);hn.assertNever(a)}}yf.create=(t,e,n)=>new yf({schema:t,typeName:$t.ZodEffects,effect:e,...Wt(n)});yf.createWithPreprocess=(t,e,n)=>new yf({schema:e,effect:{type:"preprocess",transform:t},typeName:$t.ZodEffects,...Wt(n)});class Su extends un{_parse(e){return this._getType(e)===ht.undefined?eo(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Su.create=(t,e)=>new Su({innerType:t,typeName:$t.ZodOptional,...Wt(e)});class lm extends un{_parse(e){return this._getType(e)===ht.null?eo(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}lm.create=(t,e)=>new lm({innerType:t,typeName:$t.ZodNullable,...Wt(e)});class F5 extends un{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===ht.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}F5.create=(t,e)=>new F5({innerType:t,typeName:$t.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Wt(e)});class B5 extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},a=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ck(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new bc(r.common.issues)},input:r.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new bc(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}B5.create=(t,e)=>new B5({innerType:t,typeName:$t.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Wt(e)});class CF extends un{_parse(e){if(this._getType(e)!==ht.nan){const r=this._getOrReturnCtx(e);return et(r,{code:Fe.invalid_type,expected:ht.nan,received:r.parsedType}),Dt}return{status:"valid",value:e.data}}}CF.create=t=>new CF({typeName:$t.ZodNaN,...Wt(t)});class ULe extends un{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class KP extends un{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Dt:s.status==="dirty"?(n.dirty(),ox(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const a=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Dt:a.status==="dirty"?(n.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:r.path,parent:r})}}static create(e,n){return new KP({in:e,out:n,typeName:$t.ZodPipeline})}}class z5 extends un{_parse(e){const n=this._def.innerType._parse(e),r=a=>(sm(a)&&(a.value=Object.freeze(a.value)),a);return Ck(n)?n.then(a=>r(a)):r(n)}unwrap(){return this._def.innerType}}z5.create=(t,e)=>new z5({innerType:t,typeName:$t.ZodReadonly,...Wt(e)});var $t;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})($t||($t={}));const qd=nc.create,Rd=mf.create;gf.create;Ek.create;im.create;Bu.create;const pX=bl.create,b2=Ur.create;Ak.create;Ok.create;xf.create;om.create;Tk.create;Su.create;lm.create;const Dd=yf.createWithPreprocess,mX={string:t=>nc.create({...t,coerce:!0}),number:t=>mf.create({...t,coerce:!0}),boolean:t=>Ek.create({...t,coerce:!0}),bigint:t=>gf.create({...t,coerce:!0}),date:t=>im.create({...t,coerce:!0})},VLe=b2({id:qd().min(1),gatewayName:qd().trim().min(1,"Gateway name is required"),gatewayId:qd().trim(),split:Rd().min(0).max(100)});b2({ruleName:qd().trim().min(1,"Enter a rule name"),gateways:pX(VLe).min(1,"Add at least one gateway")});function WLe(t){return!!(t.ruleName||t.total||Object.keys(t.gateways).length)}function HLe(t){const e={gateways:{}};if(t.ruleName.trim()||(e.ruleName="Enter a rule name"),!t.gateways.length)return e.total="Add at least one gateway.",e;t.gateways.forEach(r=>{r.gatewayName.trim()||(e.gateways[r.id]="Choose a gateway.")});const n=t.gateways.reduce((r,a)=>r+a.split,0);return n!==100&&(e.total=`Splits must sum to 100 (currently ${n}).`),e}const cu=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function gX({gateways:t}){const e=t.filter(r=>r.gatewayName.trim());if(e.length===0)return i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No gateways yet — add at least one to split traffic across."});const n=e.reduce((r,a)=>r+a.split,0);return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex h-3 w-full gap-0.5 overflow-hidden rounded-full",children:e.map((r,a)=>i.jsx("div",{className:"h-full",style:{flex:`${n>0?r.split:1} 1 0`,backgroundColor:cu[a%cu.length]},title:`${r.gatewayName}: ${r.split}%`},r.id))}),i.jsx("div",{className:"space-y-1.5",children:e.map((r,a)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:cu[a%cu.length]}}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-700 dark:text-slate-200",title:r.gatewayName,children:r.gatewayName}),r.gatewayId&&i.jsx("span",{className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-[#78849a] leading-4",title:r.gatewayId,children:r.gatewayId}),i.jsxs("span",{className:"ml-auto shrink-0 pl-2 font-semibold tabular-nums text-slate-700 dark:text-slate-200",children:[r.split,"%"]})]},r.id))}),n!==100&&i.jsxs("p",{className:"text-[11px] font-medium text-amber-700 dark:text-amber-400 leading-4",children:["Splits total ",n,"% — must add up to 100%."]})]})}function Pk(){return Math.random().toString(36).slice(2)}function EF(){return[{id:Pk(),gatewayName:"",gatewayId:"",split:50},{id:Pk(),gatewayName:"",gatewayId:"",split:50}]}function xX(t){return Number.isNaN(t)?0:Math.min(100,Math.max(0,Math.round(t)))}function eN(t){if(t.length===0)return t;const e=t.slice(0,-1),n=e.reduce((s,o)=>s+o.split,0),r=xX(100-n),a=t[t.length-1];return[...e,{...a,split:r}]}function AF(){var R;const t=Ro(),e=Kr(),{id:n}=f7(),[r]=Nl(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=Er(),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(()=>EF()),[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState({gateways:{}}),w=g.useRef(null),{data:j,mutate:k}=ut(o?`/routing/list/${o}`:null,()=>Ve(`/routing/list/${o}`)),{data:_}=ut(o?`/routing/list/active/${o}`:null,()=>Ve(`/routing/list/active/${o}`)),S=n||a,N=S?(j||[]).find(z=>z.id===S):void 0,E=s&&(_||[]).some(z=>z.id===n),P=s&&!_,M=g.useRef(null),A=g.useRef(null);g.useEffect(()=>{if(!N||M.current===N.id)return;const z=v2(N);z&&(M.current=N.id,c(s?z.name:`copy-of-${z.name}`),d(z.description&&z.description!=="N/A"?z.description:""),z.gateways.length>0&&h(z.gateways),A.current=JSON.stringify([(s?z.name:`copy-of-${z.name}`).trim(),z.description&&z.description!=="N/A"?z.description:"",z.gateways.length>0?z.gateways:f]))},[N,s]);const O=A.current!==null&&A.current!==JSON.stringify([l.trim(),u,f]),D=N&&l.trim()===N.name?`copy-of-${N.name}`:l.trim(),I=((R=f[f.length-1])==null?void 0:R.id)??null,X=I?f.filter(z=>z.id!==I).reduce((z,U)=>z+U.split,0):0,Q=Math.max(0,X-100),V=f.reduce((z,U)=>z+U.split,0);function Y(z,U,ee){h(pe=>eN(pe.map(re=>re.id!==z?re:U==="split"?{...re,split:xX(Number(ee))}:{...re,[U]:ee})))}function H(){h(z=>eN([...z,{id:Pk(),gatewayName:"",gatewayId:"",split:0}]))}function G(z){h(U=>{const ee=U.filter(pe=>pe.id!==z);return eN(ee.length?ee:[{id:Pk(),gatewayName:"",gatewayId:"",split:100}])})}function $(){c(""),d(""),h(EF()),y(null),v({gateways:{}})}async function F(z){var ee;if(z.preventDefault(),!o){y("Set a merchant ID first");return}const U=HLe({ruleName:l,gateways:f});if(v(U),WLe(U)){y("Fix the highlighted fields before saving."),U.ruleName&&((ee=w.current)==null||ee.focus());return}m(!0),y(null);try{s&&!E?await Ve("/routing/update",{created_by:o,routing_algorithm_id:n,name:l.trim(),description:u,algorithm:uX(f)}):await Ve("/routing/create",mLe({ruleName:E?D:l,description:u,gateways:f},o)),await k(),e("/routing/volume")}catch(pe){y(pe instanceof Error?pe.message:"Failed to save rule")}finally{m(!1)}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/volume"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Split Routing"]}),i.jsx(qr,{title:s?"Edit Volume Split Rule":"Create Volume Split Rule",description:"Divide traffic across gateways by percentage. The last row absorbs whatever the others leave.",className:"truncate"})]}),s&&!N&&j&&i.jsx(_t,{error:"That rule no longer exists for this merchant."}),E&&i.jsxs(Fa,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:D||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:F,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"volume-rule-name",ref:w,value:l,onChange:z=>{c(z.target.value),b.ruleName&&v(U=>({...U,ruleName:void 0}))},placeholder:"e.g. ab-test-split","aria-invalid":!!b.ruleName,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${PG(!!b.ruleName)}`}),i.jsx(ek,{message:b.ruleName})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"volume-rule-description",value:u,onChange:z=>d(z.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Traffic Distribution"}),i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] gap-3 px-1 text-xs font-medium text-slate-500 md:grid",children:[i.jsx("span",{children:"Gateway Name"}),i.jsx("span",{children:"Gateway ID"}),i.jsx("span",{children:"Split %"}),i.jsx("span",{})]}),f.map((z,U)=>{const ee=z.id===I,pe=z.gatewayName.trim()||`Gateway ${U+1}`;return i.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] md:items-center",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx(Gy,{value:z.gatewayName,onChange:(re,he)=>{Y(z.id,"gatewayName",re),Y(z.id,"gatewayId",(he==null?void 0:he.gatewayId)??""),b.gateways[z.id]&&v(q=>{const{[z.id]:W,...ue}=q.gateways;return{...q,gateways:ue}})},placeholder:"e.g. stripe",options:am([],f.filter(re=>re.id!==z.id).map(re=>re.gatewayName),f.filter(re=>re.id!==z.id).map(re=>re.gatewayId)),className:"min-w-0"}),i.jsx(ek,{message:b.gateways[z.id]})]}),i.jsx("input",{value:z.gatewayId,onChange:re=>Y(z.id,"gatewayId",re.target.value),placeholder:"optional gateway_id",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-lg border border-slate-200 bg-transparent px-2.5 py-2 focus-within:border-brand-500 dark:border-[#222226]",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:cu[U%cu.length]}}),i.jsx("input",{type:"range",min:0,max:100,value:z.split,disabled:ee,onChange:re=>Y(z.id,"split",Number(re.target.value)),"aria-label":`${pe} allocation slider`,className:"h-2 min-w-0 flex-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",style:{accentColor:cu[U%cu.length]}}),i.jsx("input",{type:"number",min:0,max:100,value:z.split,onChange:re=>Y(z.id,"split",Number(re.target.value)),disabled:ee,"aria-label":`${pe} split percentage`,className:"w-12 border-0 bg-transparent p-0 text-right text-sm tabular-nums focus:outline-none disabled:cursor-not-allowed disabled:opacity-70"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),ee&&f.length>1&&i.jsx("span",{className:"rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-600 dark:bg-[#1a1a22] dark:text-slate-300 leading-4",children:"Auto"})]}),i.jsx("button",{type:"button",onClick:()=>G(z.id),disabled:f.length===1,"aria-label":`Remove ${pe}`,className:"text-slate-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(Cn,{size:15})})]},z.id)}),i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("button",{type:"button",onClick:H,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:14})," Add Gateway"]}),i.jsxs("span",{role:b.total?"alert":void 0,className:`text-xs font-medium ${V===100?"text-emerald-700":"text-red-600"}`,children:["Total: ",V,"%",Q?` (reduce fixed splits by ${Q}%)`:V!==100?" (must be 100)":""]})]})]})]})}),i.jsx(_t,{error:x}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{type:"submit",disabled:p||!o||!t||P||E&&!O,title:E&&!O?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):E?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(ke,{type:"button",variant:"secondary",size:"sm",onClick:$,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/volume"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:l.trim()||"Untitled rule"})]}),i.jsx(gX,{gateways:f})]})})})})]})]})}const GLe={"15m":{detail:"Last 15 mins",badge:"Live 15m"},"1h":{detail:"Last hour",badge:"Live 1h"},"12h":{detail:"Last 12 hours",badge:"Live 12h"},"1d":{detail:"Last 1 day",badge:"Live 1d"},"1w":{detail:"Last 1 week",badge:"Live 1w"}};function Mg(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:t&&t<100?1:0}).format(t||0)}function OF(t){return t==null||Number.isNaN(t)?"0%":`${t.toFixed(t>=100?0:1)}%`}function qLe(t){const e=Date.now()-t;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}function KLe(t){return t>=.85?{dot:"bg-emerald-500",text:"text-emerald-700 dark:text-emerald-400"}:t>=.7?{dot:"bg-amber-500",text:"text-amber-700 dark:text-amber-400"}:{dot:"bg-red-500",text:"text-red-600 dark:text-red-400"}}function YLe(){return i.jsxs("div",{className:"grid gap-5 lg:grid-cols-[1.1fr_0.9fr]",children:[i.jsxs(Te,{className:"p-7",children:[i.jsx(an,{children:"Merchant session required"}),i.jsx("h2",{className:"mt-4 max-w-xl text-3xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Sign in with a merchant account to turn this into a live overview."}),i.jsx("p",{className:"mt-4 max-w-xl text-sm leading-7 text-slate-600 dark:text-[#b2bdd1]",children:"Analytics use your signed-in merchant account. After sign-in, the overview shows service health, active routing, request count, and gateway activity."})]}),i.jsx(Te,{className:"p-7",children:i.jsx("div",{className:"space-y-5",children:[{icon:Gp,title:"System status",text:"Check whether the service is reachable."},{icon:qj,title:"Routing setup",text:"See whether a strategy is configured."},{icon:Oo,title:"Gateway activity",text:"View recent request distribution by gateway."}].map(t=>i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-3 dark:border-[#2a303a] dark:bg-[#161b24]",children:i.jsx(t.icon,{className:"h-5 w-5 text-brand-600 dark:text-sky-300"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:t.title}),i.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600 dark:text-[#b2bdd1]",children:t.text})]})]},t.title))})})]})}function XLe(){var $,F,R,z,U,ee,pe,re,he,q,W,ue;const{merchantId:t}=Er(),e=xr(te=>{var ie;return((ie=te.user)==null?void 0:ie.merchantId)||""}),n=t||e,[r,a]=g.useState("1d"),[s,o]=g.useState(()=>Fs(au("1d").start_ms)),[l,c]=g.useState(()=>Fs(Date.now())),u=g.useMemo(()=>r==="custom"?Yp(s,l):void 0,[l,s,r]),{data:d}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`),{shouldRetryOnError:!1}),{data:f}=ut(n?["/rule/get","successRate",n]:null,()=>Ve("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1}),h=Iy(n),p=Al(n||void 0),m=r==="custom"?u?`range=1h&start_ms=${u.start_ms}&end_ms=${u.end_ms}`:null:`range=${r}`,x=m?`/analytics/overview?${m}`:null,y=m?`/analytics/routing-stats?${m}`:null,b=ut(x,Lt,{shouldRetryOnError:!1,keepPreviousData:!0}),v=ut(y,Lt,{shouldRetryOnError:!1,keepPreviousData:!0}),w=(d==null?void 0:d[0])||null,j=(d||[]).some(te=>{var ie;return((ie=te.algorithm_data||te.algorithm)==null?void 0:ie.type)==="advanced"}),_=((F=((($=b.data)==null?void 0:$.route_hits)||[]).find(te=>te.route==="/decide_gateway"))==null?void 0:F.count)||0,S=((z=(R=b.data)==null?void 0:R.top_errors)==null?void 0:z.reduce((te,ie)=>te+ie.count,0))||0,N=((U=b.data)==null?void 0:U.top_errors)||[],E=g.useMemo(()=>{var ie;const te=new Map;for(const me of((ie=b.data)==null?void 0:ie.top_scores)||[]){const ve=te.get(me.gateway)??{scoreSum:0,txSum:0};ve.scoreSum+=me.score_value*me.transaction_count,ve.txSum+=me.transaction_count,te.set(me.gateway,ve)}return Array.from(te.entries()).map(([me,ve])=>({gateway:me,score:ve.txSum>0?ve.scoreSum/ve.txSum:0,txCount:ve.txSum})).sort((me,ve)=>ve.txCount-me.txCount)},[b.data]),P=g.useMemo(()=>{var me;const te=new Map;for(const ve of((me=v.data)==null?void 0:me.gateway_share)||[])te.set(ve.gateway,(te.get(ve.gateway)||0)+ve.count);const ie=Array.from(te.values()).reduce((ve,Ne)=>ve+Ne,0);return Array.from(te.entries()).map(([ve,Ne])=>({gateway:ve,count:Ne,share:ie?Ne/ie*100:0})).sort((ve,Ne)=>Ne.count-ve.count)},[v.data]),M=((ee=P[0])==null?void 0:ee.gateway)||((he=(re=(pe=b.data)==null?void 0:pe.top_scores)==null?void 0:re[0])==null?void 0:he.gateway),A=r==="custom"?{detail:u?`${Qw(u.start_ms)} — ${Qw(u.end_ms)}`:"Custom window",badge:"Custom"}:GLe[r],O=!!(((q=f==null?void 0:f.config)==null?void 0:q.type)==="successRate"&&f.config.data&&f.merchant_id===n),D=p.isEnabled("autopilot"),I=O||D,X=h.isEnabled,Q=[!!w,I,j,X].filter(Boolean).length,V=[{label:"Routing strategy",description:w?w.name:"None configured",state:w?"Configured":"Not set",icon:qj,required:!0,href:"../routing"},{label:"Multi-objective config",description:D?"Autopilot mode enabled":O?"Configured":"Not configured",state:D?"Auto-pilot":O?"Configured":"Not set",icon:Kj,required:!0,href:"../routing/sr"},{label:"Rule-based routing",description:j?"Enabled":"Not enabled",state:j?"Enabled":"Optional",icon:Wj,required:!1,href:"../routing/rules"},{label:"Debit routing",description:h.isLoading?"Checking…":X?"Enabled":"Not enabled",state:h.isLoading?"Checking":X?"Enabled":"Optional",icon:Oo,required:!1,href:"../routing/debit"}],Y=!b.data&&b.isLoading||!v.data&&v.isLoading,H=!Y&&(b.isValidating||v.isValidating),G=["#38bdf8","#60a5fa","#22c55e","#f59e0b"];return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsxs("header",{className:"relative flex flex-wrap items-start justify-between gap-4",children:[i.jsx(qr,{title:"Overview",badge:(W=b.data)!=null&&W.merchant_id||n?i.jsx(Pe,{variant:"blue",children:((ue=b.data)==null?void 0:ue.merchant_id)||n}):null}),i.jsx("div",{className:"flex flex-wrap items-center gap-2 md:justify-end",children:i.jsx(ET,{range:r,customStart:s,customEnd:l,onRangeChange:te=>{if(a(te),te!=="custom"){const ie=au(te);o(Fs(ie.start_ms)),c(Fs(ie.end_ms))}},onCustomChange:(te,ie)=>{o(te),c(ie)}})}),i.jsx("div",{className:`absolute bottom-0 left-0 right-0 h-[2px] overflow-hidden transition-opacity duration-500 ${Y||H?"opacity-100":"opacity-0"}`,children:i.jsx("div",{className:"h-full origin-left animate-[analytics-progress_1.8s_ease-in-out_infinite] bg-brand-500"})})]}),n?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:`grid gap-4 sm:grid-cols-3 transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-5",children:[i.jsx(an,{children:"Requests"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:Mg(_)}),i.jsxs("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:["/decide-gateway · ",A.detail.toLowerCase()]})]}),i.jsxs(Te,{className:`p-5 transition-colors ${S>0?"border-red-300/60 dark:border-red-500/30":""}`,children:[i.jsx(an,{children:"Errors"}),i.jsx("p",{className:`mt-3 text-[2rem] font-semibold leading-none tracking-tight ${S>0?"text-red-600 dark:text-red-400":"text-slate-950 dark:text-white"}`,children:Mg(S)}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:S>0?"Issues detected in window":"No issues in window"})]}),i.jsxs(Te,{className:"p-5",children:[i.jsx(an,{children:"Top gateway"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:(M==null?void 0:M.toUpperCase())||"—"}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa] max-w-[57ch]",children:P[0]?`${OF(P[0].share)} of traffic`:"No activity yet"})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-[1.1fr_0.9fr] transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Gateway activity"}),i.jsx(Pe,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-6 space-y-3",children:P.length?P.slice(0,4).map((te,ie)=>i.jsxs("div",{className:"rounded-[20px] border border-slate-200 bg-slate-50/80 p-4 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-2.5 w-2.5 flex-shrink-0 rounded-full",style:{backgroundColor:G[ie]||G[0]}}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:te.gateway.toUpperCase()}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#98a3b8]",children:[Mg(te.count)," requests"]})]})]}),i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:OF(te.share)})]}),i.jsx("div",{className:"mt-3 h-1.5 rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(4,te.share)}%`,backgroundColor:G[ie]||G[0]}})})]},te.gateway)):i.jsxs("div",{className:"rounded-[20px] border border-dashed border-slate-200 px-5 py-12 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No gateway activity yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#a6b0c3]",children:"Traffic by gateway will appear here once requests flow through."})]})})]}),i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Setup"}),i.jsxs(Pe,{variant:Q>=2?"green":"orange",children:[Q,"/4 ready"]})]}),i.jsx("div",{className:"mt-4 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full bg-emerald-500 transition-all duration-500",style:{width:`${Q/4*100}%`}})}),i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:V.map(te=>{const ie=te.state==="Live"||te.state==="Configured"||te.state==="Enabled"||te.state==="Auto-pilot",me=te.state==="Issue"?"text-red-600":ie?"text-emerald-700":"text-slate-500 dark:text-[#78849a]",ve=ie?"green":te.state==="Issue"?"red":te.state==="Checking"?"gray":te.required?"orange":"gray",Ne=i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[i.jsx(te.icon,{className:`h-4 w-4 flex-shrink-0 ${me}`}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:te.label}),i.jsx("p",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.description})]})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[i.jsx(Pe,{variant:ve,children:te.state}),te.href&&i.jsx(Xi,{className:"h-3.5 w-3.5 text-slate-500 dark:text-[#78849a]"})]})]}),je="flex items-center justify-between gap-3 py-3.5 rounded-lg -mx-2 px-2";return te.href?i.jsx(ef,{to:te.href,relative:"path",className:`${je} transition-colors hover:bg-slate-50 dark:hover:bg-[#13192a]`,children:Ne},te.label):i.jsx("div",{className:je,children:Ne},te.label)})})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-2 transition-opacity duration-200 ${H?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Gateway health"}),i.jsx(Pe,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-5 space-y-2",children:E.length?E.slice(0,5).map(te=>{const ie=KLe(te.score);return i.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsx("span",{className:`h-2 w-2 flex-shrink-0 rounded-full ${ie.dot}`}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-slate-950 dark:text-white",children:te.gateway.toUpperCase()}),i.jsxs("span",{className:`text-sm font-semibold tabular-nums ${ie.text}`,children:[(te.score*100).toFixed(1),"%"]})]},te.gateway)}):i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No score data yet"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"SR scores appear once gateways handle traffic."})]})})]}),i.jsxs(Te,{className:`p-6 transition-colors ${S>0?"border-red-300/40 dark:border-red-500/20":""}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(an,{children:"Recent errors"}),S>0?i.jsxs(Pe,{variant:"red",children:[Mg(S)," total"]}):i.jsx(Pe,{variant:"green",children:"Clean"})]}),N.length?i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:N.slice(0,5).map((te,ie)=>i.jsxs("div",{className:"flex items-start justify-between gap-3 py-3",children:[i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"rounded bg-red-50 px-1.5 py-0.5 font-mono text-[11px] font-medium text-red-700 dark:bg-red-500/10 dark:text-red-400 leading-4",children:te.error_code}),i.jsx("span",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.route})]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:te.error_message})]}),i.jsxs("div",{className:"flex-shrink-0 text-right",children:[i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Mg(te.count)}),i.jsx("p",{className:"text-[11px] text-slate-500 dark:text-[#78849a] leading-4",children:qLe(te.last_seen_ms)})]})]},ie))}):i.jsxs("div",{className:"mt-5 flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx(Gp,{className:"h-8 w-8 text-emerald-700"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:"No errors in window"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"All requests resolved without errors."})]})]})]})]}):i.jsx(YLe,{})]})}function qy({text:t,label:e,size:n=10,className:r=""}){const[a,s]=g.useState(!1);function o(l){l.stopPropagation(),navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),2e3)}return i.jsx("button",{type:"button",onClick:o,title:a?"Copied!":e??"Copy to clipboard",className:`shrink-0 transition-colors text-slate-500 hover:text-slate-500 dark:text-[#78849a] dark:hover:text-[#8090a8] ${r}`,children:a?i.jsx(gi,{size:n,className:"text-emerald-700"}):i.jsx(lf,{size:n})})}const JLe=[{value:"",label:"Any status"},{value:"success",label:"Success"},{value:"failure",label:"Failure"}],ZLe=[{value:"",label:"Any route"},{value:"decide_gateway",label:"Decide Gateway"},{value:"update_gateway_score",label:"Update Gateway"},{value:"routing_evaluate",label:"Rule Evaluate"}],QLe=["summary","input","response","raw"],e8e={summary:"Summary",input:"Request",response:"Response",raw:"Raw JSON"},YP="NTW_BASED_ROUTING",TF={transactions:"Multi-objective",rule_based:"Rule based / Volume based",debit_routing:"Debit routing"},PF={paymentId:"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""};function vd(t){const e=t.paymentId.trim()||t.requestId.trim(),n=t8e(e)?e:"";return{paymentId:n?"":e,requestId:n,gateway:t.gateway.trim(),route:t.route,status:t.status,flowType:t.flowType.trim(),errorCode:t.errorCode.trim()}}function t8e(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^req[_-]/i.test(t)}function XP(t){return t.flow_type||""}function n8e(t){return t.endsWith("_error")}function yX(t){return t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"}function vX(t){return t==="decide_gateway_rule_hit"}function r8e(t){return t.startsWith("update_gateway_score_")||t.startsWith("update_score_legacy_")}function bX(t){return t.startsWith("decide_gateway_")&&!vX(t)}function U5(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function MF(t,e,n,r,a,s,o,l){const c=vd(a),u={range:e==="custom"?"1h":e,page:n,page_size:r,start_ms:s==null?void 0:s.start_ms,end_ms:s==null?void 0:s.end_ms,payment_id:c.paymentId||void 0,request_id:c.requestId||void 0,gateway:c.gateway||void 0,route:c.route||void 0,status:c.status||void 0,flow_type:c.flowType||void 0,routing_approach:o,exclude_routing_approach:l,error_code:c.errorCode||void 0},d=U5(u);return d?`${t}?${d}`:t}function a8e(t){return t==="debit_routing"?"debit_routing":t==="rule_based"?"rule_based":"transactions"}function RF(t){return t==="debit_routing"?YP:void 0}function DF(t){return t==="transactions"?YP:void 0}function s8e(t){return vd({paymentId:t.get("payment_id")||t.get("request_id")||"",requestId:"",gateway:t.get("gateway")||"",route:t.get("route")||"",status:t.get("status")||"",flowType:t.get("flow_type")||t.get("event_type")||"",errorCode:t.get("error_code")||""})}function i8e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function IF(t){const e=Math.max(0,Math.round((Date.now()-t)/6e4));if(e<1)return"just now";if(e<60)return`${e}m ago`;const n=Math.round(e/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`}function Id(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function o8e(t){return t.filter(Boolean).join(" · ")}function l8e(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Id(t):"Unknown route"}function tN(t){const e=XP(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||yX(e)?"Decision Result":n8e(e)?"Errors":Id(t.event_stage||e)}function c8e(t){const e=XP(t);return bX(e)||t.event_stage==="gateway_decided"?"Decide Gateway":vX(e)||t.event_stage==="rule_applied"?"Rule Evaluate":yX(e)||t.event_stage==="preview_evaluated"?"Rule Decision":r8e(e)||t.event_stage==="score_updated"?"Update Gateway":"Errors"}function u8e(t){const e=XP(t);return bX(e)||t.event_stage==="gateway_decided"}function dh(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":e==="HIT"?"purple":"gray"}function d8e(t){const e=dh(t);return e==="green"?"bg-emerald-500":e==="red"?"bg-red-500":e==="purple"?"bg-purple-500":"bg-slate-300 dark:bg-[#3a4150]"}function f8e(t){const e=(t.gateways||[]).filter(Boolean);return e.length<2?null:(t.latest_gateway&&e.includes(t.latest_gateway)?[...e.filter(r=>r!==t.latest_gateway),t.latest_gateway]:e).join(" → ")}function nN({tone:t,label:e,detail:n}){return i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#a7b2c6]",title:n||void 0,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t}`}),e]})}function rN({label:t,value:e}){return i.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[t,":"]}),i.jsx("span",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:e})]})}function bd(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function aN(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function h8e(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function p8e(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function V5(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7] dark:placeholder:text-[#555f6e]"}function sN(){return`${V5()} appearance-none pr-9 bg-[url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")] bg-no-repeat bg-[right_12px_center]`}function ip({title:t,body:e}){return i.jsxs(bA,{className:"!rounded-2xl border-dashed border-slate-200 bg-slate-50/70 px-5 py-8 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#b2bdd1] leading-[18px]",children:e})]})}function wX({rows:t}){return t.length?i.jsx("div",{className:"grid gap-x-8 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0",children:t.map(e=>i.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-slate-100 py-3 dark:border-[#1b2029]",children:[i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e.label}),i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:e.value}),e.copyText&&i.jsx(qy,{text:e.copyText,size:12})]})]},`${e.label}-${e.value}`))}):null}function JP({value:t}){return i.jsx("pre",{className:"overflow-x-auto rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 font-mono text-[13px] leading-[21px] text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:h8e(t)})}function gy({title:t,children:e}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),e]})}function Rb({title:t,value:e,emptyMessage:n}){return i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})})}function m8e(t){if(!bd(t))return null;const e=Object.keys(t),n=Object.entries(t).filter(r=>typeof r[1]=="number"&&Number.isFinite(r[1]));return n.length&&n.length===e.length?n:null}function g8e(t){if(!bd(t))return null;const e=Object.entries(t);return e.length&&e.every(([,r])=>r===null||["string","number","boolean"].includes(typeof r))?e:null}function x8e(t){return t===null?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?t.toLocaleString(void 0,{maximumFractionDigits:6}):t}function y8e({title:t,value:e,emptyMessage:n,selectedGateway:r}){const a=m8e(e);if(!a)return i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})});const s=[...a].sort((d,f)=>f[1]-d[1]),o=Math.max(...s.map(([,d])=>d)),l=o<=1,c=l?1:o||1,u=r&&s.some(([d])=>d===r)?r:s[0][0];return i.jsx(gy,{title:t,children:i.jsx("div",{className:"space-y-3 rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0b1017]",children:s.map(([d,f])=>{const h=d===u,p=Number((f/c*100).toFixed(1)),m=Math.max(3,Math.min(100,p));return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:d}),h?i.jsx("span",{className:"shrink-0 rounded-md bg-brand-500/10 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-brand-600 dark:text-brand-300 leading-4",children:"Selected"}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] font-semibold tabular-nums text-slate-700 dark:text-[#d8e1ef] leading-[18px]",children:l?`${(f*100).toFixed(1)}%`:f.toLocaleString(void 0,{maximumFractionDigits:4})})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-200/70 dark:bg-[#1e2330]",children:i.jsx("div",{className:"h-full rounded-full transition-all",style:{width:`${m}%`,backgroundColor:h?"#0069ED":"#94a3b8"}})})]},d)})})})}function v8e({title:t,value:e,emptyMessage:n}){const r=g8e(e);return r?i.jsx(gy,{title:t,children:i.jsx(wX,{rows:r.map(([a,s])=>({label:Id(a),value:x8e(s)}))})}):i.jsx(gy,{title:t,children:e?i.jsx(JP,{value:e}):i.jsx(ip,{title:`No ${t.toLowerCase()} captured`,body:n})})}function b8e(t){if(!t)return null;const e=bd(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??aN({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??aN({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=bd(n)?n:null,o=bd(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:c8e(t)},{label:"Route",value:l8e(t.route)},...t.payment_id?[{label:"Payment ID",value:t.payment_id,copyText:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id,copyText:t.request_id}]:[]],d=aN(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:bd(r)&&!Object.keys(r).length?null:r,responsePayload:bd(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function w8e(){var Ut,Un,Vt,Kt,dt,le,Ie,Ge,nt,Nt;const[t,e]=Nl(),n=t.get("routing_approach")===YP?"debit_routing":a8e(t.get("mode")),r=t.get("start_ms")&&t.get("end_ms")?"custom":UEe(t.get("range")),a=s8e(t),s=Math.max(1,Number(t.get("page")||"1")),o=t.get("selected")||"",l=Number(t.get("start_ms")||"0"),c=Number(t.get("end_ms")||"0"),u=l>0&&c>l?{start_ms:l,end_ms:c}:au("1d"),[d,f]=g.useState(n),[h,p]=g.useState(r),[m,x]=g.useState(a),[y,b]=g.useState(a),[v,w]=g.useState(s),[j,k]=g.useState(o),[_,S]=g.useState(!!o),[N,E]=g.useState(null),[P,M]=g.useState("summary"),[A,O]=g.useState(!1),[D,I]=g.useState(()=>Fs(u.start_ms)),[X,Q]=g.useState(()=>Fs(u.end_ms)),V=12,Y=g.useMemo(()=>h==="custom"?Yp(D,X):void 0,[X,D,h]),H=d==="rule_based"?"/analytics/preview-trace":"/analytics/payment-audit",G=RF(d),$=DF(d),F=h!=="custom"||Y?MF(H,h,v,V,y,Y,G,$):null,R=ut(F,Lt,{revalidateOnFocus:!1,dedupingInterval:5e3}),z=h!=="custom"||Y?`/analytics/gateway-scores?${U5({range:h==="custom"?"1h":h,start_ms:Y==null?void 0:Y.start_ms,end_ms:Y==null?void 0:Y.end_ms})}`:null,U=ut(z,Lt,{revalidateOnFocus:!1,dedupingInterval:6e4}),ee=g.useMemo(()=>{var st;const ge=((st=R.data)==null?void 0:st.results)||[];return ge.find(pt=>pt.lookup_key===j)||ge[0]||null},[(Ut=R.data)==null?void 0:Ut.results,j]);g.useEffect(()=>{var st,pt;if(ee!=null&&ee.lookup_key){k(ee.lookup_key);return}const ge=(pt=(st=R.data)==null?void 0:st.results)==null?void 0:pt[0];ge!=null&&ge.lookup_key&&k(ge.lookup_key)},[(Un=R.data)==null?void 0:Un.results,ee==null?void 0:ee.lookup_key]);const pe=g.useMemo(()=>ee?{paymentId:ee.payment_id||ee.request_id||"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""}:null,[ee]),re=pe?MF(H,h,1,50,pe,Y,G,$):null,he=ut(re,Lt,{revalidateOnFocus:!1,dedupingInterval:5e3}),q=((Vt=he.data)==null?void 0:Vt.timeline)||[],W=g.useMemo(()=>q.find(ge=>ge.id===N)||q[0]||null,[N,q]);g.useEffect(()=>{if(W!=null&&W.id){E(W.id);return}const ge=q[0];ge!=null&&ge.id&&E(ge.id)},[W==null?void 0:W.id,q]);const ue=g.useMemo(()=>b8e(W),[W]),te=W?u8e(W):!1,ie=((Kt=R.error)==null?void 0:Kt.message)||((dt=he.error)==null?void 0:dt.message)||null,me=R.isLoading,ve=((le=R.data)==null?void 0:le.results)||[],Ne=((Ie=R.data)==null?void 0:Ie.total_results)||0,je=q.length,Me=((Ge=R.data)==null?void 0:Ge.total_success)??ve.filter(ge=>dh(ge.latest_status)==="green").length,Be=((nt=R.data)==null?void 0:nt.total_failure)??ve.filter(ge=>dh(ge.latest_status)==="red").length,tt=Array.from(new Set(ve.flatMap(ge=>{var st;return(st=ge.gateways)!=null&&st.length?ge.gateways.filter(Boolean):ge.latest_gateway?[ge.latest_gateway]:[]}))),B=tt.length,se=Object.values(m).some(Boolean),de=Array.from(new Set([...(((Nt=U.data)==null?void 0:Nt.snapshots)||[]).map(ge=>ge.gateway),...tt,y.gateway].filter(Boolean))).sort((ge,st)=>ge.localeCompare(st)),Ce=d==="rule_based"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a decision from the left column to see the full rule evaluation trace.",noMatchesTitle:"No matching decisions found",noMatchesBody:"Try widening the time range or searching by a decision payment ID, request ID, or gateway."}:d==="debit_routing"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a debit-routing payment from the left column to see the full decision trail.",noMatchesTitle:"No debit-routing decisions found",noMatchesBody:"Run the Debit Routing tab in Decision Explorer, or widen the time range."}:{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a payment from the left column to see the full transaction trail.",noMatchesTitle:"No matching payments found",noMatchesBody:"Try widening the time range or searching by a single payment ID, request ID, or error code."};function fe(ge,st,pt,Ht,gn,sn){const xn=vd(Ht),_a=U5({mode:ge==="transactions"?void 0:ge,range:st,page:pt>1?pt:void 0,start_ms:st==="custom"?sn==null?void 0:sn.start_ms:void 0,end_ms:st==="custom"?sn==null?void 0:sn.end_ms:void 0,payment_id:xn.paymentId||void 0,request_id:xn.requestId||void 0,gateway:xn.gateway||void 0,route:xn.route||void 0,status:xn.status||void 0,flow_type:xn.flowType||void 0,routing_approach:RF(ge),exclude_routing_approach:DF(ge),error_code:xn.errorCode||void 0,selected:gn||void 0});e(_a)}function be(ge,st){x(pt=>vd({...pt,[ge]:st}))}function we(){const st=vd({...m,route:d==="transactions"?m.route:""});w(1),S(!1),E(null),x(st),b(st),fe(d,h,1,st,void 0,Y)}function Le(ge,st){const Ht=vd({...m,[ge]:st});w(1),S(!1),E(null),x(Ht),b(Ht),fe(d,h,1,Ht,void 0,Y)}function Oe(){const st={...PF,route:d==="transactions"?PF.route:""};w(1),S(!1),E(null),x(st),b(st),fe(d,h,1,st,void 0,Y)}function He(){R.mutate(),he.mutate()}function vt(ge){const pt=ge==="custom"?(()=>{const Ht=G0(D),gn=G0(X),sn=Date.now();return Ht!==null&&gn!==null&&gn>Ht&&Ht<=sn&&gn<=sn?{start_ms:Ht,end_ms:gn}:void 0})():void 0;if(p(ge),w(1),S(!1),E(null),ge!=="custom"){const Ht=au(ge);I(Fs(Ht.start_ms)),Q(Fs(Ht.end_ms))}fe(d,ge,1,y,j,pt)}function bt(ge,st){I(ge),Q(st),w(1),S(!1),E(null),fe(d,"custom",1,y,j,Yp(ge,st))}function Bt(ge,st){k(ge),E(null),st!==1&&S(!0),fe(d,h,v,y,ge,Y)}function wt(){S(!1),E(null),fe(d,h,v,y,void 0,Y)}function zt(ge){const pt=vd({...m,route:ge==="transactions"?m.route:""});f(ge),w(1),k(""),E(null),S(!1),x(pt),b(pt),fe(ge,h,1,pt,void 0,Y)}return i.jsxs("div",{className:"flex min-h-[620px] flex-col gap-5 xl:h-[calc(100vh-140px)]",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx(qr,{title:Ce.title}),i.jsx("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:Object.keys(TF).map(ge=>i.jsx(ke,{size:"sm",variant:"secondary",className:p8e(d===ge),onClick:()=>zt(ge),children:TF[ge]},ge))}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(ET,{range:h,customStart:D,customEnd:X,onRangeChange:vt,onCustomChange:bt}),i.jsx(ke,{size:"sm",variant:"secondary",onClick:He,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(As,{className:"h-4 w-4"})})]})]}),i.jsxs("form",{className:"flex flex-wrap items-center gap-3",onSubmit:ge=>{ge.preventDefault(),we()},children:[i.jsxs("div",{className:`relative ${A?"min-w-[240px] flex-1":"min-w-[300px] flex-[1.618]"}`,children:[i.jsx(Kp,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-[#78849a]"}),i.jsx("input",{className:`${V5()} pl-11 ${se?"pr-20":""}`,value:m.paymentId||m.requestId,onChange:ge=>be("paymentId",ge.target.value),placeholder:d==="rule_based"?"Search by decision payment ID or request ID…":"Search by payment ID or request ID…","aria-label":d==="rule_based"?"Decision payment ID":"Payment ID"}),se?i.jsx("button",{type:"button",onClick:Oe,className:"absolute right-4 top-1/2 -translate-y-1/2 text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:"Clear"}):null]}),i.jsxs("div",{className:"flex min-w-[300px] flex-1 items-center gap-3",children:[A&&d==="transactions"?i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:sN(),value:m.route,onChange:ge=>Le("route",ge.target.value),"aria-label":"Route",children:ZLe.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}):null,A?i.jsx("div",{className:"flex-1",children:i.jsx("input",{className:V5(),value:m.errorCode,onChange:ge=>be("errorCode",ge.target.value),placeholder:"Error code","aria-label":"Error code"})}):null,i.jsx("div",{className:"flex-1",children:i.jsxs("select",{className:sN(),value:m.gateway,onChange:ge=>Le("gateway",ge.target.value),"aria-label":"Gateway",children:[i.jsx("option",{value:"",children:"Any gateway"}),de.map(ge=>i.jsx("option",{value:ge,children:ge},ge))]})}),i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:sN(),value:m.status,onChange:ge=>Le("status",ge.target.value),"aria-label":"Status",children:JLe.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}),i.jsx(ke,{type:"button",variant:"secondary",onClick:()=>O(ge=>!ge),"aria-label":"More filters",title:"More filters",className:`h-11 !px-3 ${A?"!text-brand-600 dark:!text-brand-600":""}`,children:i.jsx(Hi,{className:"h-4 w-4"})})]}),i.jsx("button",{type:"submit",className:"sr-only",children:"Search"})]}),i.jsx(_t,{error:ie}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-[13px] leading-[18px]",children:[me?i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(mt,{size:14}),"Loading decision audit data…"]}):i.jsxs("span",{className:"font-semibold text-slate-900 dark:text-white",children:[Ne.toLocaleString()," ",Ne===1?"match":"matches"," found"]}),R.data?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"h-4 w-px bg-slate-200 dark:bg-[#2a303a]"}),i.jsx(nN,{tone:"bg-emerald-500",label:`${Me.toLocaleString()} successful ${Me===1?"selection":"selections"}`}),i.jsx(nN,{tone:"bg-red-500",label:`${Be.toLocaleString()} ${Be===1?"failure":"failures"}`}),i.jsx(nN,{tone:"bg-brand-500",label:`${B} ${B===1?"connector":"connectors"}`,detail:tt.slice(0,3).join(", ")})]}):null]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-5 xl:grid-cols-[minmax(360px,1fr)_minmax(0,1.618fr)]",children:[i.jsxs(Te,{className:"h-full overflow-hidden !rounded-2xl",children:[_?i.jsxs("div",{className:"shrink-0 border-b border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:wt,className:"mb-3",children:[i.jsx(Hp,{className:"h-3.5 w-3.5"}),"Back to results"]}),i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:(ee==null?void 0:ee.payment_id)||(ee==null?void 0:ee.request_id)||(ee==null?void 0:ee.lookup_key)||"Selected payment"}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[je," event",je===1?"":"s"]}),ee!=null&&ee.latest_status?i.jsx(Pe,{variant:dh(ee.latest_status),children:Id(ee.latest_status)}):null]})]})]}):null,_?i.jsx("div",{className:"min-h-0 flex-1 space-y-1.5 overflow-y-auto p-3",children:q.length?q.map((ge,st)=>{const pt=(W==null?void 0:W.id)===ge.id;return i.jsxs("button",{type:"button",onClick:()=>{E(ge.id),M("summary")},className:`relative w-full overflow-hidden rounded-2xl px-4 py-3 text-left transition-all ${pt?"bg-brand-50 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[pt&&i.jsx("span",{className:"absolute inset-y-2.5 left-0 w-[3px] rounded-full bg-brand-500"}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[13px] font-bold ${pt?"bg-brand-500/15 text-brand-500 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1e2330] dark:text-[#8a8a93]"} leading-[18px]`,children:st+1}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:tN(ge)}),i.jsx("p",{className:"mt-2 truncate text-[13px] text-slate-500 dark:text-[#78849a] max-w-[57ch] leading-[18px]",children:o8e([ge.gateway||null,ge.routing_approach||null,ge.payment_method_type||null])}),ge.error_message?i.jsx("p",{className:"mt-2 truncate text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:ge.error_message}):null]}),i.jsxs("div",{className:"shrink-0 space-y-1 text-right",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:IF(ge.created_at_ms)}),ge.status?i.jsx(Pe,{variant:dh(ge.status),children:Id(ge.status)}):null]})]})]},ge.id)}):i.jsx(ip,{title:"No timeline selected yet",body:Ce.summaryEmpty})}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 flex items-center justify-between gap-3 px-5 pb-3 pt-5",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Ce.matchingLabel}),i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[ve.length," of ",Ne.toLocaleString()]})]}),i.jsx("div",{className:"min-h-0 flex-1 divide-y divide-slate-100 overflow-y-auto border-t border-slate-100 dark:divide-[#1b2029] dark:border-[#1b2029]",children:ve.length>0?ve.map(ge=>{const st=(ee==null?void 0:ee.lookup_key)===ge.lookup_key,pt=f8e(ge);return i.jsxs("button",{type:"button",onClick:()=>Bt(ge.lookup_key,ge.event_count),className:`relative w-full px-5 py-3 text-left transition-colors ${st?"bg-brand-50/70 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[st&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-[3px] bg-brand-500"}),i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate font-mono text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:ge.payment_id||ge.request_id||ge.lookup_key}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:IF(ge.last_seen_ms)})]}),i.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${d8e(ge.latest_status)}`,title:Id(ge.latest_status)||"Unknown"}),ge.latest_gateway?i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#a7b2c6] leading-[18px]",children:ge.latest_gateway}):null,i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["· ",ge.event_count," event",ge.event_count===1?"":"s"]})]}),pt?i.jsx("span",{className:"shrink-0 truncate rounded-md bg-orange-500/10 px-2 py-0.5 text-[13px] font-medium text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300 leading-[18px]",children:pt}):null]})]},ge.lookup_key)}):i.jsx("div",{className:"p-5",children:i.jsx(ip,{title:Ce.noMatchesTitle,body:Ce.noMatchesBody})})}),i.jsxs("div",{className:"shrink-0 flex items-center gap-2 border-t border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsx(ke,{size:"sm",variant:"secondary",disabled:v<=1,onClick:()=>{const ge=Math.max(1,v-1);w(ge),S(!1),fe(d,h,ge,y,j)},children:"Prev"}),i.jsx(ke,{size:"sm",variant:"secondary",disabled:ve.length{const ge=v+1;w(ge),S(!1),fe(d,h,ge,y,j)},children:"Next"}),i.jsxs("span",{className:"ml-auto text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["Page ",v]})]})]})]}),i.jsx(Te,{className:"h-full overflow-hidden !rounded-2xl",children:W&&ue?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 space-y-2 px-5 pb-0 pt-5",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("h2",{className:"truncate font-mono text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:W.payment_id||W.request_id||tN(W)}),W.payment_id||W.request_id?i.jsx(qy,{text:W.payment_id||W.request_id||"",size:14}):null]}),W.status?i.jsx(Pe,{variant:dh(W.status),children:Id(W.status)}):null]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[i.jsx(rN,{label:"Gateway",value:W.gateway||"Unknown"}),i.jsx(rN,{label:"Stage",value:tN(W)}),i.jsx(rN,{label:"Time",value:i8e(W.created_at_ms)})]}),i.jsx("div",{className:"!mt-5 flex flex-wrap items-center gap-5 border-b border-slate-200 dark:border-[#2a303a]",children:QLe.map(ge=>i.jsx("button",{type:"button",onClick:()=>M(ge),className:`-mb-px border-b-2 pb-3 text-[13px] font-medium transition ${P===ge?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-900 dark:text-[#a7b2c6] dark:hover:text-white"} leading-[18px]`,children:e8e[ge]},ge))})]}),i.jsxs("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-5",children:[P==="summary"?i.jsxs("div",{className:"space-y-5",children:[te?i.jsx(y8e,{title:"Connector scores",value:ue.scoreContext,selectedGateway:W.gateway,emptyMessage:"No connector score map was captured for this event."}):null,ue.summaryRows.length?i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:"Decision metadata"}),i.jsx(wX,{rows:ue.summaryRows})]}):null,i.jsx(v8e,{title:"Selection reason",value:ue.selectionReason,emptyMessage:"No explicit selection reason was captured for this event."}),te?i.jsx(Rb,{title:"Details",value:ue.signalRecord,emptyMessage:"This event did not capture additional scoring or rule metadata."}):null]}):null,P==="input"?i.jsx(Rb,{title:"Request",value:ue.requestPayload,emptyMessage:"No dedicated request payload was captured for this event."}):null,P==="response"?i.jsx(Rb,{title:"Response",value:ue.responsePayload,emptyMessage:"No dedicated response payload was captured for this event."}):null,P==="raw"?i.jsx(Rb,{title:"Raw JSON",value:ue.rawEvent,emptyMessage:"No raw payload is available for this event."}):null]})]}):i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4",children:i.jsx(ip,{title:"No event selected",body:"Select a timeline event to view scores, routing details, request payload, and response payload."})})})]})]})}const k8e=[{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"}],W5={leader_changed:{label:"Leader change",badge:"blue",icon:V0},calibration_applied:{label:"Autopilot tuning",badge:"purple",icon:Hi}},$F=Object.keys(W5);function j8e(t){return new Date(t).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function S8e(t){return[t.payment_method_type,t.payment_method].filter(Boolean).join(" / ")||"all"}function _8e(){const[t,e]=g.useState("12h"),[n,r]=g.useState(new Set($F)),{events:a,isLoading:s,isUnavailable:o,markAllSeen:l,unseenCount:c}=FT(t),u=g.useMemo(()=>a.filter(f=>n.has(f.event_type)),[a,n]);function d(f){r(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsx("div",{children:i.jsx(qr,{title:"Routing events",description:"Live changes in success-rate based routing — leader flips, plus autopilot retunes where self-tuning is on."})}),i.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&i.jsxs("button",{onClick:l,className:"text-[13px] font-medium text-brand-600 hover:underline leading-[18px]",children:["Mark all read (",c,")"]}),i.jsx("select",{value:t,onChange:f=>e(f.target.value),className:"h-9 rounded-lg border border-[#e6e6ee] bg-white px-3 text-[13px] font-medium text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 leading-[18px]",children:k8e.map(f=>i.jsx("option",{value:f.value,children:f.label},f.value))})]})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:$F.map(f=>{const h=W5[f];if(!h)return null;const p=n.has(f);return i.jsxs("button",{onClick:()=>d(f),className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors ${p?"border-brand-600/40 bg-brand-50 text-brand-700 dark:border-sky-400/40 dark:bg-sky-400/10 dark:text-sky-200":"border-[#e6e6ee] bg-white text-slate-500 hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-400 dark:hover:bg-[#18181f]"} leading-4`,children:[i.jsx(h.icon,{size:13}),h.label]},f)})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:[u.length," event",u.length===1?"":"s"]}),i.jsx("p",{className:"text-[12px] text-slate-500 leading-4",children:"Refreshes every 30 seconds"})]})}),i.jsx(ze,{className:"p-0",children:s?i.jsx("div",{className:"flex items-center justify-center py-16",children:i.jsx(mt,{})}):o?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(Zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"Routing events are unavailable"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 leading-[18px]",children:"The analytics pipeline (Kafka → ClickHouse) is offline or disabled for this environment."})]}):u.length===0?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(Zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"No routing events in this window"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 mx-auto max-w-[57ch] leading-[18px]",children:"Events appear once success-rate feedback flows through update-gateway-score and gateway scores start shifting."})]}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1f2a]",children:u.map(f=>{const h=W5[f.event_type];return h?i.jsxs("li",{className:"flex items-start gap-4 px-6 py-4",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Pe,{variant:h.badge,children:h.label})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-800 dark:text-slate-200",children:BT(f)}),i.jsxs("p",{className:"mt-0.5 text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[j8e(f.bucket_ms)," · dimension ",S8e(f),f.transaction_count!=null&&` · ${f.transaction_count} txns in SR window`]})]})]},f.id):null})})})]})]})}const LF={"auth-rate":"Multi-Objective Configuration",rules:"Rule-Based Routing",volume:"Volume Split Routing",debit:"Debit Routing","ab-test":"A/B Testing"};function N8e(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(t)}function Qf(t){var e;return((e=(t==null?void 0:t.algorithm_data)||(t==null?void 0:t.algorithm))==null?void 0:e.type)||""}function FF(t){return t==="advanced"||t==="priority"||t==="single"}function BF(t){return t==="configured"?"Configured":t==="autopilot"?"Auto-pilot":"Enabled"}function C8e(){var $,F;const{mutate:t}=ej(),e=Er(R=>R.merchantId),n=xr(R=>{var z;return((z=R.user)==null?void 0:z.merchantId)||""}),r=e||n,a=Iy(r),s=Al(r||void 0),[o,l]=g.useState(null),[c,u]=g.useState(null),[d,f]=g.useState(null),[h,p]=g.useState(null),{data:m,isLoading:x,mutate:y}=ut(r?`/routing/list/active/${r}`:null,()=>Ve(`/routing/list/active/${r}`)),{data:b,isLoading:v,mutate:w}=ut(r?["/rule/get","successRate",r]:null,()=>Ve("/rule/get",{merchant_id:r,algorithm:"successRate"})),{data:j}=ut(r?"/analytics/overview?range=1d":null,Lt,{shouldRetryOnError:!1}),k=m==null?void 0:m[0],_=(($=b==null?void 0:b.config)==null?void 0:$.data)??(b==null?void 0:b.data),S=!!_,N=s.isEnabled("autopilot"),E=(m||[]).some(R=>FF(Qf(R))),P=(m||[]).some(R=>Qf(R)==="volume_split"),M=a.isEnabled,A=(m||[]).some(R=>Qf(R)==="ab_test"),O=x||v||a.isLoading||s.isLoading,D=(m||[]).find(R=>FF(Qf(R))),I=(m||[]).find(R=>Qf(R)==="volume_split");async function X(R){r&&u(R)}async function Q(R){l(R),f(null),p(null);try{R==="auth-rate"?(S&&(await Ve("/rule/delete",{merchant_id:r,algorithm:"successRate"}),await w(void 0,{revalidate:!1})),N&&(await s.setFeatureEnabled("autopilot",!1),await s.setFeatureEnabled("elimination",!1),await s.setFeatureEnabled("multi-objective-routing",!1),await s.setFeatureEnabled("auto-calibration",!1))):R==="rules"&&D?(await Ve("/routing/deactivate",{created_by:r,routing_algorithm_id:D.id}),await Promise.all([y(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):R==="volume"&&I?(await Ve("/routing/deactivate",{created_by:r,routing_algorithm_id:I.id}),await Promise.all([y(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):R==="debit"&&await a.setDebitRoutingEnabled(!1),f(`${LF[R]} deactivated.`)}catch(z){p(z instanceof Error?z.message:String(z))}finally{l(null)}}const V=[{id:"auth-rate",title:"Multi-objective",description:"Steers traffic toward the best authorization rate using live connector score signals.",useCase:"Use when you want automatic gateway selection driven by real-time success-rate data.",icon:Kj,state:S?"configured":N?"autopilot":"not_set",canDeactivate:S||N,href:"sr"},{id:"rules",title:"Rule based",description:"Evaluates explicit business conditions before traffic reaches connector selection.",useCase:"Use for BIN, network, country, amount, metadata, or merchant policy overrides.",icon:Wj,state:E?"enabled":"not_set",canDeactivate:!!D,href:"rules"},{id:"volume",title:"Volume split",description:"Distributes payments by configured percentages across gateways.",useCase:"Use for ramp-ups, new gateway rollout, traffic balancing, or controlled migrations.",icon:cf,state:P?"enabled":"not_set",canDeactivate:!!I,href:"volume"},{id:"debit",title:"Debit routing",description:"Enables debit-network decisions for co-badged card payment flows.",useCase:"Use when debit network cost, issuer country, or regulated-card behavior matters.",icon:Oo,state:M?"enabled":"not_set",canDeactivate:M,href:"debit"},{id:"ab-test",title:"A/B Testing",description:"Tests two routing strategies against each other with statistical significance reporting.",useCase:"Use when validating a new algorithm, rule, or gateway before full rollout.",icon:qp,state:A?"enabled":"not_set",canDeactivate:!1,href:"ab-testing"}],Y=V.filter(R=>R.state!=="not_set"),H=(j==null?void 0:j.top_rules)||[],G=k!=null&&k.name?k:null;return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsx(qs,{open:c!==null,title:`Deactivate ${c?LF[c]:""}?`,description:"This will stop routing decisions from using this strategy. You can reactivate it at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const R=c;u(null),Q(R)},onCancel:()=>u(null)}),i.jsx("header",{children:i.jsx(qr,{title:"Routing Hub"})}),h&&i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-sm text-red-600 dark:text-red-400",children:h}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:d}),i.jsxs("div",{className:"grid gap-6 xl:grid-cols-[1.3fr_0.7fr]",children:[i.jsx(Te,{children:i.jsxs(ze,{className:"p-0",children:[i.jsx("div",{className:"px-6 pt-5",children:i.jsx(an,{children:"Routing strategies"})}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:V.map(R=>{const z=R.icon,U=R.state!=="not_set";return i.jsxs("div",{className:`flex items-center gap-4 px-6 py-4 ${U?"bg-emerald-500/[0.04] dark:bg-emerald-500/[0.06]":""}`,children:[i.jsx("div",{className:`rounded-xl border p-2.5 flex-shrink-0 ${U?"border-emerald-200/60 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400":"border-slate-200 bg-slate-50 text-slate-500 dark:border-[#273141] dark:bg-[#0c1119] dark:text-[#6d778a]"}`,children:i.jsx(z,{size:17})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:R.title}),R.state!=="not_set"?i.jsx(Pe,{variant:"green",children:BF(R.state)}):i.jsx(Pe,{variant:"gray",children:"Not set"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:R.description}),i.jsx("p",{className:"mt-0.5 text-xs leading-5 text-slate-500 dark:text-[#78849a]",children:R.useCase})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[R.canDeactivate&&i.jsxs(ke,{size:"sm",variant:"danger",onClick:()=>X(R.id),disabled:o===R.id,children:[i.jsx(Tm,{size:13}),o===R.id?"Deactivating":"Deactivate"]}),i.jsxs(ef,{to:R.href,className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#2a303a] dark:bg-[#11151d] dark:text-[#c4cfdf] dark:hover:bg-[#161b26]",children:["Configure",i.jsx(Xi,{size:13,className:"text-slate-500 dark:text-[#78849a]"})]})]})]},R.id)})})]})}),i.jsx(Te,{children:i.jsxs(ze,{className:"p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx(an,{children:"Active strategies"}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:Y.length>0?Y.map(R=>{const z=R.icon;return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2.5",children:[i.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[i.jsx(z,{size:14,className:"flex-shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:R.title})]}),i.jsx(Pe,{variant:"green",children:BF(R.state)})]},R.id)}):i.jsx("p",{className:"py-2 text-sm text-slate-500 dark:text-[#8d96aa]",children:O?"Checking…":"No active strategies yet"})})]}),G&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsx(an,{children:"Running algorithm"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:G.name}),G.description&&i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:G.description}),i.jsx("div",{className:"mt-2",children:i.jsx(Pe,{variant:"blue",children:Qf(G).replace(/_/g," ")})})]}),i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(an,{children:"Rules triggered"}),i.jsx(Pe,{variant:"blue",children:"Last 24h"})]}),H.length>0?i.jsx("div",{className:"mt-3 space-y-2",children:H.slice(0,5).map(R=>i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("span",{className:"truncate text-xs text-slate-700 dark:text-[#c4cfdf]",children:R.rule_name}),i.jsx("span",{className:"flex-shrink-0 text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:N8e(R.count)})]},R.rule_name))}):i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:"No rule hits in the last 24 hours."})]}),S&&_&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(an,{children:"Multi-objective config"}),i.jsx(Pe,{variant:"green",children:"Configured"})]}),i.jsxs("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:[i.jsx(ud,{label:"Score window",value:`${_.defaultBucketSize} requests`}),_.defaultHedgingPercent!=null&&i.jsx(ud,{label:"Hedging",value:`${_.defaultHedgingPercent}%`}),_.margin!=null&&i.jsx(ud,{label:"Margin",value:`${_.margin*100}%`}),_.defaultLatencyThreshold!=null&&i.jsx(ud,{label:"Latency threshold",value:`${_.defaultLatencyThreshold} ms`}),_.defaultLowerResetFactor!=null&&i.jsx(ud,{label:"Lower reset",value:String(_.defaultLowerResetFactor)}),_.defaultUpperResetFactor!=null&&i.jsx(ud,{label:"Upper reset",value:String(_.defaultUpperResetFactor)}),(((F=_.subLevelInputConfig)==null?void 0:F.length)??0)>0&&i.jsx(ud,{label:"Payment method overrides",value:`${_.subLevelInputConfig.length}`})]})]})]})})]})]})}function ud({label:t,value:e}){return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:t}),i.jsx("span",{className:"text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:e})]})}var Ky=t=>t.type==="checkbox",$d=t=>t instanceof Date,Os=t=>t==null;const kX=t=>typeof t=="object";var $r=t=>!Os(t)&&!Array.isArray(t)&&kX(t)&&!$d(t),E8e=t=>$r(t)&&t.target?Ky(t.target)?t.target.checked:t.target.value:t,A8e=(t,e)=>e.split(".").some((n,r,a)=>!isNaN(Number(n))&&t.has(a.slice(0,r).join("."))),O8e=t=>{const e=t.constructor&&t.constructor.prototype;return $r(e)&&e.hasOwnProperty("isPrototypeOf")},ZP=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function rr(t){if(t instanceof Date)return new Date(t);const e=typeof FileList<"u"&&t instanceof FileList;if(ZP&&(t instanceof Blob||e))return t;const n=Array.isArray(t);if(!n&&!($r(t)&&O8e(t)))return t;const r=n?[]:Object.create(Object.getPrototypeOf(t));for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=rr(t[a]));return r}var w2=t=>/^\w*$/.test(t),Ln=t=>t===void 0,k2=t=>Array.isArray(t)?t.filter(Boolean):[],QP=t=>k2(t.replace(/["|']|\]/g,"").split(/\.|\[/)),Je=(t,e,n)=>{if(!e||!$r(t))return n;const r=(w2(e)?[e]:QP(e)).reduce((a,s)=>Os(a)?a:a[s],t);return Ln(r)||r===t?Ln(t[e])?n:t[e]:r},Xo=t=>typeof t=="boolean",bo=t=>typeof t=="function",jn=(t,e,n)=>{let r=-1;const a=w2(e)?[e]:QP(e),s=a.length,o=s-1;for(;++rJ.useContext(SX);var P8e=(t,e,n,r=!0)=>{const a={defaultValues:e._defaultValues};for(const s in t)Object.defineProperty(a,s,{get:()=>{const o=s;return e._proxyFormState[o]!==Ii.all&&(e._proxyFormState[o]=!r||Ii.all),t[o]}});return a};const _X=typeof window<"u"?J.useLayoutEffect:J.useEffect;var ds=t=>typeof t=="string",M8e=(t,e,n,r,a)=>ds(t)?(r&&e.watch.add(t),Je(n,t,a)):Array.isArray(t)?t.map(s=>(r&&e.watch.add(s),Je(n,s))):(r&&(e.watchAll=!0),n),H5=t=>Os(t)||!kX(t);function Jc(t,e,n=new WeakSet){if(H5(t)||H5(e))return Object.is(t,e);if($d(t)&&$d(e))return Object.is(t.getTime(),e.getTime());const r=Object.keys(t),a=Object.keys(e);if(r.length!==a.length)return!1;if(n.has(t)||n.has(e))return!0;n.add(t),n.add(e);for(const s of r){const o=t[s];if(!a.includes(s))return!1;if(s!=="ref"){const l=e[s];if($d(o)&&$d(l)||($r(o)||Array.isArray(o))&&($r(l)||Array.isArray(l))?!Jc(o,l,n):!Object.is(o,l))return!1}}return!0}const R8e=J.createContext(null);R8e.displayName="HookFormContext";var NX=(t,e,n,r,a)=>e?{...n[t],types:{...n[t]&&n[t].types?n[t].types:{},[r]:a||!0}}:{},zs=t=>Array.isArray(t)?t:[t],zF=()=>{let t=[];return{get observers(){return t},next:a=>{for(const s of t)s.next&&s.next(a)},subscribe:a=>(t.push(a),{unsubscribe:()=>{t=t.filter(s=>s!==a)}}),unsubscribe:()=>{t=[]}}};function CX(t,e){const n={};for(const r in t)if(t.hasOwnProperty(r)){const a=t[r],s=e[r];if(a&&$r(a)&&s){const o=CX(a,s);$r(o)&&(n[r]=o)}else t[r]&&(n[r]=s)}return n}var Ga=t=>$r(t)&&!Object.keys(t).length,eM=t=>t.type==="file",Mk=t=>{if(!ZP)return!1;const e=t?t.ownerDocument:0;return t instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},EX=t=>t.type==="select-multiple",tM=t=>t.type==="radio",D8e=t=>tM(t)||Ky(t),oN=t=>Mk(t)&&t.isConnected;function I8e(t,e){const n=e.slice(0,-1).length;let r=0;for(;r{for(const e in t)if(bo(t[e]))return!0;return!1};function AX(t){return Array.isArray(t)||$r(t)&&!L8e(t)}function G5(t,e={}){for(const n in t){const r=t[n];AX(r)?(e[n]=Array.isArray(r)?[]:{},G5(r,e[n])):Ln(r)||(e[n]=!0)}return e}function lx(t,e,n){n||(n=G5(e));for(const r in t){const a=t[r];if(AX(a))Ln(e)||H5(n[r])?n[r]=G5(a,Array.isArray(a)?[]:{}):lx(a,Os(e)?{}:e[r],n[r]);else{const s=e[r];n[r]=!Jc(a,s)}}return n}const UF={value:!1,isValid:!1},VF={value:!0,isValid:!0};var OX=t=>{if(Array.isArray(t)){if(t.length>1){const e=t.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:e,isValid:!!e.length}}return t[0].checked&&!t[0].disabled?t[0].attributes&&!Ln(t[0].attributes.value)?Ln(t[0].value)||t[0].value===""?VF:{value:t[0].value,isValid:!0}:VF:UF}return UF},TX=(t,{valueAsNumber:e,valueAsDate:n,setValueAs:r})=>Ln(t)?t:e?t===""?NaN:t&&+t:n&&ds(t)?new Date(t):r?r(t):t;const WF={isValid:!1,value:null};var PX=t=>Array.isArray(t)?t.reduce((e,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:e,WF):WF;function HF(t){const e=t.ref;return eM(e)?e.files:tM(e)?PX(t.refs).value:EX(e)?[...e.selectedOptions].map(({value:n})=>n):Ky(e)?OX(t.refs).value:TX(Ln(e.value)?t.ref.value:e.value,t)}var F8e=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,B8e=(t,e,n,r)=>{const a={};for(const s of t){const o=Je(e,s);o&&jn(a,s,o._f)}return{criteriaMode:n,names:[...t],fields:a,shouldUseNativeValidation:r}},Rk=t=>t instanceof RegExp,Rg=t=>Ln(t)?t:Rk(t)?t.source:$r(t)?Rk(t.value)?t.value.source:t.value:t,Lh=t=>({isOnSubmit:!t||t===Ii.onSubmit,isOnBlur:t===Ii.onBlur,isOnChange:t===Ii.onChange,isOnAll:t===Ii.all,isOnTouch:t===Ii.onTouched});const GF="AsyncFunction";var z8e=t=>!!t&&!!t.validate&&!!(bo(t.validate)&&t.validate.constructor.name===GF||$r(t.validate)&&Object.values(t.validate).find(e=>e.constructor.name===GF)),U8e=t=>t.mount&&(t.required||t.min||t.max||t.maxLength||t.minLength||t.pattern||t.validate),q5=(t,e,n)=>!n&&(e.watchAll||e.watch.has(t)||[...e.watch].some(r=>t.startsWith(r)&&/^\.\w+/.test(t.slice(r.length))));const op=(t,e,n,r)=>{for(const a of n||Object.keys(t)){const s=Je(t,a);if(s){const{_f:o,...l}=s;if(o){if(o.refs&&o.refs[0]&&e(o.refs[0],a)&&!r)return!0;if(o.ref&&e(o.ref,o.name)&&!r)return!0;if(op(l,e))break}else if($r(l)&&op(l,e))break}}};function qF(t,e,n){const r=Je(t,n);if(r||w2(n))return{error:r,name:n};const a=n.split(".");for(;a.length;){const s=a.join("."),o=Je(e,s),l=Je(t,s);if(o&&!Array.isArray(o)&&n!==s)return{name:n};if(l&&l.type)return{name:s,error:l};if(l&&l.root&&l.root.type)return{name:`${s}.root`,error:l.root};a.pop()}return{name:n}}var V8e=(t,e,n,r)=>{n(t);const{name:a,...s}=t;return Ga(s)||Object.keys(s).length>=Object.keys(e).length||Object.keys(s).find(o=>e[o]===(!r||Ii.all))},W8e=(t,e,n)=>!t||!e||t===e||zs(t).some(r=>r&&(n?r===e:r.startsWith(e)||e.startsWith(r))),H8e=(t,e,n,r,a)=>a.isOnAll?!1:!n&&a.isOnTouch?!(e||t):(n?r.isOnBlur:a.isOnBlur)?!t:(n?r.isOnChange:a.isOnChange)?t:!0,G8e=(t,e)=>!k2(Je(t,e)).length&&Pr(t,e),MX=(t,e,n)=>{const r=zs(Je(t,n));return jn(r,jX,e[n]),jn(t,n,r),t};function KF(t,e,n="validate"){if(ds(t)||Array.isArray(t)&&t.every(ds)||Xo(t)&&!t)return{type:n,message:ds(t)?t:"",ref:e}}var th=t=>$r(t)&&!Rk(t)?t:{value:t,message:""},K5=async(t,e,n,r,a,s)=>{const{ref:o,refs:l,required:c,maxLength:u,minLength:d,min:f,max:h,pattern:p,validate:m,name:x,valueAsNumber:y,mount:b}=t._f,v=Je(n,x);if(!b||e.has(x))return{};const w=l?l[0]:o,j=A=>{a&&w.reportValidity&&(w.setCustomValidity(Xo(A)?"":A||""),w.reportValidity())},k={},_=tM(o),S=Ky(o),N=_||S,E=(y||eM(o))&&Ln(o.value)&&Ln(v)||Mk(o)&&o.value===""||v===""||Array.isArray(v)&&!v.length,P=NX.bind(null,x,r,k),M=(A,O,D,I=fo.maxLength,X=fo.minLength)=>{const Q=A?O:D;k[x]={type:A?I:X,message:Q,ref:o,...P(A?I:X,Q)}};if(s?!Array.isArray(v)||!v.length:c&&(!N&&(E||Os(v))||Xo(v)&&!v||S&&!OX(l).isValid||_&&!PX(l).isValid)){const{value:A,message:O}=ds(c)?{value:!!c,message:c}:th(c);if(A&&(k[x]={type:fo.required,message:O,ref:w,...P(fo.required,O)},!r))return j(O),k}if(!E&&(!Os(f)||!Os(h))){let A,O;const D=th(h),I=th(f);if(!Os(v)&&!isNaN(v)){const X=o.valueAsNumber||v&&+v;Os(D.value)||(A=X>D.value),Os(I.value)||(O=Xnew Date(new Date().toDateString()+" "+H),V=o.type=="time",Y=o.type=="week";ds(D.value)&&v&&(A=V?Q(v)>Q(D.value):Y?v>D.value:X>new Date(D.value)),ds(I.value)&&v&&(O=V?Q(v)+A.value,I=!Os(O.value)&&v.length<+O.value;if((D||I)&&(M(D,A.message,O.message),!r))return j(k[x].message),k}if(p&&!E&&ds(v)){const{value:A,message:O}=th(p);if(Rk(A)&&!v.match(A)&&(k[x]={type:fo.pattern,message:O,ref:o,...P(fo.pattern,O)},!r))return j(O),k}if(m){if(bo(m)){const A=await m(v,n),O=KF(A,w);if(O&&(k[x]={...O,...P(fo.validate,O.message)},!r))return j(O.message),k}else if($r(m)){let A={};for(const O in m){if(!Ga(A)&&!r)break;const D=KF(await m[O](v,n),w,O);D&&(A={...D,...P(O,D.message)},j(D.message),r&&(k[x]=A))}if(!Ga(A)&&(k[x]={ref:w,...A},!r))return k}}return j(!0),k};const q8e={mode:Ii.onSubmit,reValidateMode:Ii.onChange,shouldFocusError:!0};function K8e(t={}){let e={...q8e,...t},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:bo(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},r={},a=$r(e.defaultValues)||$r(e.values)?rr(e.defaultValues||e.values)||{}:{},s=e.shouldUnregister?{}:rr(a),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,u=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},f={...d};let h={...f};const p={array:zF(),state:zF()},m=e.criteriaMode===Ii.all,x=B=>se=>{clearTimeout(u),u=setTimeout(B,se)},y=async B=>{if(!o.keepIsValid&&!e.disabled&&(f.isValid||h.isValid||B)){let se;e.resolver?(se=Ga((await E()).errors),b()):se=await A({fields:r,onlyCheckValid:!0,eventType:eh.VALID}),se!==n.isValid&&p.state.next({isValid:se})}},b=(B,se)=>{!e.disabled&&(f.isValidating||f.validatingFields||h.isValidating||h.validatingFields)&&((B||Array.from(l.mount)).forEach(de=>{de&&(se?jn(n.validatingFields,de,se):Pr(n.validatingFields,de))}),p.state.next({validatingFields:n.validatingFields,isValidating:!Ga(n.validatingFields)}))},v=B=>{const se=lx(a,s),de=F8e(B);jn(n.dirtyFields,de,Je(se,de))},w=(B,se=[],de,Ce,fe=!0,be=!0)=>{if(Ce&&de&&!e.disabled){if(o.action=!0,be&&Array.isArray(Je(r,B))){const we=de(Je(r,B),Ce.argA,Ce.argB);fe&&jn(r,B,we)}if(be&&Array.isArray(Je(n.errors,B))){const we=de(Je(n.errors,B),Ce.argA,Ce.argB);fe&&jn(n.errors,B,we),G8e(n.errors,B)}if((f.touchedFields||h.touchedFields)&&be&&Array.isArray(Je(n.touchedFields,B))){const we=de(Je(n.touchedFields,B),Ce.argA,Ce.argB);fe&&jn(n.touchedFields,B,we)}(f.dirtyFields||h.dirtyFields)&&v(B),p.state.next({name:B,isDirty:D(B,se),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else jn(s,B,se)},j=(B,se)=>{jn(n.errors,B,se),p.state.next({errors:n.errors})},k=B=>{n.errors=B,p.state.next({errors:n.errors,isValid:!1})},_=(B,se,de,Ce)=>{const fe=Je(r,B);if(fe){const be=Je(s,B,Ln(de)?Je(a,B):de);Ln(be)||Ce&&Ce.defaultChecked||se?jn(s,B,se?be:HF(fe._f)):Q(B,be),o.mount&&!o.action&&y()}},S=(B,se,de,Ce,fe)=>{let be=!1,we=!1;const Le={name:B};if(!e.disabled){if(!de||Ce){(f.isDirty||h.isDirty)&&(we=n.isDirty,n.isDirty=Le.isDirty=D(),be=we!==Le.isDirty);const Oe=Jc(Je(a,B),se);we=!!Je(n.dirtyFields,B),Oe?Pr(n.dirtyFields,B):jn(n.dirtyFields,B,!0),Le.dirtyFields=n.dirtyFields,be=be||(f.dirtyFields||h.dirtyFields)&&we!==!Oe}if(de){const Oe=Je(n.touchedFields,B);Oe||(jn(n.touchedFields,B,de),Le.touchedFields=n.touchedFields,be=be||(f.touchedFields||h.touchedFields)&&Oe!==de)}be&&fe&&p.state.next(Le)}return be?Le:{}},N=(B,se,de,Ce)=>{const fe=Je(n.errors,B),be=(f.isValid||h.isValid)&&Xo(se)&&n.isValid!==se;if(e.delayError&&de?(c=x(()=>j(B,de)),c(e.delayError)):(clearTimeout(u),c=null,de?jn(n.errors,B,de):Pr(n.errors,B)),(de?!Jc(fe,de):fe)||!Ga(Ce)||be){const we={...Ce,...be&&Xo(se)?{isValid:se}:{},errors:n.errors,name:B};n={...n,...we},p.state.next(we)}},E=async B=>(b(B,!0),await e.resolver(s,e.context,B8e(B||l.mount,r,e.criteriaMode,e.shouldUseNativeValidation))),P=async B=>{const{errors:se}=await E(B);if(b(B),B)for(const de of B){const Ce=Je(se,de);Ce?jn(n.errors,de,Ce):Pr(n.errors,de)}else n.errors=se;return se},M=async({name:B,eventType:se})=>{if(t.validate){const de=await t.validate({formValues:s,formState:n,name:B,eventType:se});if($r(de))for(const Ce in de)de[Ce]&&U(`${iN}.${Ce}`,{message:ds(de.message)?de.message:"",type:fo.validate});else ds(de)||!de?U(iN,{message:de||"",type:fo.validate}):z(iN);return de}return!0},A=async({fields:B,onlyCheckValid:se,name:de,eventType:Ce,context:fe={valid:!0,runRootValidation:!1}})=>{if(t.validate&&(fe.runRootValidation=!0,!await M({name:de,eventType:Ce})&&(fe.valid=!1,se)))return fe.valid;for(const be in B){const we=B[be];if(we){const{_f:Le,...Oe}=we;if(Le){const He=l.array.has(Le.name),vt=we._f&&z8e(we._f);vt&&f.validatingFields&&b([Le.name],!0);const bt=await K5(we,l.disabled,s,m,e.shouldUseNativeValidation&&!se,He);if(vt&&f.validatingFields&&b([Le.name]),bt[Le.name]&&(fe.valid=!1,se)||(!se&&(Je(bt,Le.name)?He?MX(n.errors,bt,Le.name):jn(n.errors,Le.name,bt[Le.name]):Pr(n.errors,Le.name)),t.shouldUseNativeValidation&&bt[Le.name]))break}!Ga(Oe)&&await A({context:fe,onlyCheckValid:se,fields:Oe,name:be,eventType:Ce})}}return fe.valid},O=()=>{for(const B of l.unMount){const se=Je(r,B);se&&(se._f.refs?se._f.refs.every(de=>!oN(de)):!oN(se._f.ref))&&he(B)}l.unMount=new Set},D=(B,se)=>!e.disabled&&(B&&se&&jn(s,B,se),!Jc(F(),a)),I=(B,se,de)=>M8e(B,l,{...o.mount?s:Ln(se)?a:ds(B)?{[B]:se}:se},de,se),X=B=>k2(Je(o.mount?s:a,B,e.shouldUnregister?Je(a,B,[]):[])),Q=(B,se,de={})=>{const Ce=Je(r,B);let fe=se;if(Ce){const be=Ce._f;be&&(!be.disabled&&jn(s,B,TX(se,be)),fe=Mk(be.ref)&&Os(se)?"":se,EX(be.ref)?[...be.ref.options].forEach(we=>we.selected=fe.includes(we.value)):be.refs?Ky(be.ref)?be.refs.forEach(we=>{(!we.defaultChecked||!we.disabled)&&(Array.isArray(fe)?we.checked=!!fe.find(Le=>Le===we.value):we.checked=fe===we.value||!!fe)}):be.refs.forEach(we=>we.checked=we.value===fe):eM(be.ref)?be.ref.value="":(be.ref.value=fe,be.ref.type||p.state.next({name:B,values:rr(s)})))}(de.shouldDirty||de.shouldTouch)&&S(B,fe,de.shouldTouch,de.shouldDirty,!0),de.shouldValidate&&$(B)},V=(B,se,de)=>{for(const Ce in se){if(!se.hasOwnProperty(Ce))return;const fe=se[Ce],be=B+"."+Ce,we=Je(r,be);(l.array.has(B)||$r(fe)||we&&!we._f)&&!$d(fe)?V(be,fe,de):Q(be,fe,de)}},Y=(B,se,de={})=>{const Ce=Je(r,B),fe=l.array.has(B),be=rr(se);jn(s,B,be),fe?(p.array.next({name:B,values:rr(s)}),(f.isDirty||f.dirtyFields||h.isDirty||h.dirtyFields)&&de.shouldDirty&&(v(B),p.state.next({name:B,dirtyFields:n.dirtyFields,isDirty:D(B,be)}))):Ce&&!Ce._f&&!Os(be)?V(B,be,de):Q(B,be,de),q5(B,l)?p.state.next({...n,name:B,values:rr(s)}):p.state.next({name:o.mount?B:void 0,values:rr(s)})},H=async B=>{o.mount=!0;const se=B.target;let de=se.name,Ce=!0;const fe=Je(r,de),be=Oe=>{Ce=Number.isNaN(Oe)||$d(Oe)&&isNaN(Oe.getTime())||Jc(Oe,Je(s,de,Oe))},we=Lh(e.mode),Le=Lh(e.reValidateMode);if(fe){let Oe,He;const vt=se.type?HF(fe._f):E8e(B),bt=B.type===eh.BLUR||B.type===eh.FOCUS_OUT,Bt=!U8e(fe._f)&&!t.validate&&!e.resolver&&!Je(n.errors,de)&&!fe._f.deps||H8e(bt,Je(n.touchedFields,de),n.isSubmitted,Le,we),wt=q5(de,l,bt);jn(s,de,vt),bt?(!se||!se.readOnly)&&(fe._f.onBlur&&fe._f.onBlur(B),c&&c(0)):fe._f.onChange&&fe._f.onChange(B);const zt=S(de,vt,bt),Ut=!Ga(zt)||wt;if(!bt&&p.state.next({name:de,type:B.type,values:rr(s)}),Bt)return(f.isValid||h.isValid)&&(e.mode==="onBlur"?bt&&y():bt||y()),Ut&&p.state.next({name:de,...wt?{}:zt});if(!e.resolver&&t.validate&&await M({name:de,eventType:B.type}),!bt&&wt&&p.state.next({...n}),e.resolver){const{errors:Un}=await E([de]);if(b([de]),be(vt),Ce){const Vt=qF(n.errors,r,de),Kt=qF(Un,r,Vt.name||de);Oe=Kt.error,de=Kt.name,He=Ga(Un)}}else b([de],!0),Oe=(await K5(fe,l.disabled,s,m,e.shouldUseNativeValidation))[de],b([de]),be(vt),Ce&&(Oe?He=!1:(f.isValid||h.isValid)&&(He=await A({fields:r,onlyCheckValid:!0,name:de,eventType:B.type})));Ce&&(fe._f.deps&&(!Array.isArray(fe._f.deps)||fe._f.deps.length>0)&&$(fe._f.deps),N(de,He,Oe,zt))}},G=(B,se)=>{if(Je(n.errors,se)&&B.focus)return B.focus(),1},$=async(B,se={})=>{let de,Ce;const fe=zs(B);if(e.resolver){const be=await P(Ln(B)?B:fe);de=Ga(be),Ce=B?!fe.some(we=>Je(be,we)):de}else B?(Ce=(await Promise.all(fe.map(async be=>{const we=Je(r,be);return await A({fields:we&&we._f?{[be]:we}:we,eventType:eh.TRIGGER})}))).every(Boolean),!(!Ce&&!n.isValid)&&y()):Ce=de=await A({fields:r,name:B,eventType:eh.TRIGGER});return p.state.next({...!ds(B)||(f.isValid||h.isValid)&&de!==n.isValid?{}:{name:B},...e.resolver||!B?{isValid:de}:{},errors:n.errors}),se.shouldFocus&&!Ce&&op(r,G,B?fe:l.mount),Ce},F=(B,se)=>{let de={...o.mount?s:a};return se&&(de=CX(se.dirtyFields?n.dirtyFields:n.touchedFields,de)),Ln(B)?de:ds(B)?Je(de,B):B.map(Ce=>Je(de,Ce))},R=(B,se)=>({invalid:!!Je((se||n).errors,B),isDirty:!!Je((se||n).dirtyFields,B),error:Je((se||n).errors,B),isValidating:!!Je(n.validatingFields,B),isTouched:!!Je((se||n).touchedFields,B)}),z=B=>{const se=B?zs(B):void 0;se==null||se.forEach(de=>Pr(n.errors,de)),se?se.forEach(de=>{p.state.next({name:de,errors:n.errors})}):p.state.next({errors:{}})},U=(B,se,de)=>{const Ce=(Je(r,B,{_f:{}})._f||{}).ref,fe=Je(n.errors,B)||{},{ref:be,message:we,type:Le,...Oe}=fe;jn(n.errors,B,{...Oe,...se,ref:Ce}),p.state.next({name:B,errors:n.errors,isValid:!1}),de&&de.shouldFocus&&Ce&&Ce.focus&&Ce.focus()},ee=(B,se)=>bo(B)?p.state.subscribe({next:de=>"values"in de&&B(I(void 0,se),de)}):I(B,se,!0),pe=B=>p.state.subscribe({next:se=>{W8e(B.name,se.name,B.exact)&&V8e(se,B.formState||f,Me,B.reRenderRoot)&&B.callback({values:{...s},...n,...se,defaultValues:a})}}).unsubscribe,re=B=>(o.mount=!0,h={...h,...B.formState},pe({...B,formState:{...d,...B.formState}})),he=(B,se={})=>{for(const de of B?zs(B):l.mount)l.mount.delete(de),l.array.delete(de),se.keepValue||(Pr(r,de),Pr(s,de)),!se.keepError&&Pr(n.errors,de),!se.keepDirty&&Pr(n.dirtyFields,de),!se.keepTouched&&Pr(n.touchedFields,de),!se.keepIsValidating&&Pr(n.validatingFields,de),!e.shouldUnregister&&!se.keepDefaultValue&&Pr(a,de);p.state.next({values:rr(s)}),p.state.next({...n,...se.keepDirty?{isDirty:D()}:{}}),!se.keepIsValid&&y()},q=({disabled:B,name:se})=>{if(Xo(B)&&o.mount||B||l.disabled.has(se)){const fe=l.disabled.has(se)!==!!B;B?l.disabled.add(se):l.disabled.delete(se),fe&&o.mount&&!o.action&&y()}},W=(B,se={})=>{let de=Je(r,B);const Ce=Xo(se.disabled)||Xo(e.disabled),fe=!l.registerName.has(B)&&de&&!de._f.mount;return jn(r,B,{...de||{},_f:{...de&&de._f?de._f:{ref:{name:B}},name:B,mount:!0,...se}}),l.mount.add(B),de&&!fe?q({disabled:Xo(se.disabled)?se.disabled:e.disabled,name:B}):_(B,!0,se.value),{...Ce?{disabled:se.disabled||e.disabled}:{},...e.progressive?{required:!!se.required,min:Rg(se.min),max:Rg(se.max),minLength:Rg(se.minLength),maxLength:Rg(se.maxLength),pattern:Rg(se.pattern)}:{},name:B,onChange:H,onBlur:H,ref:be=>{if(be){l.registerName.add(B),W(B,se),l.registerName.delete(B),de=Je(r,B);const we=Ln(be.value)&&be.querySelectorAll&&be.querySelectorAll("input,select,textarea")[0]||be,Le=D8e(we),Oe=de._f.refs||[];if(Le?Oe.find(He=>He===we):we===de._f.ref)return;jn(r,B,{_f:{...de._f,...Le?{refs:[...Oe.filter(oN),we,...Array.isArray(Je(a,B))?[{}]:[]],ref:{type:we.type,name:B}}:{ref:we}}}),_(B,!1,void 0,we)}else de=Je(r,B,{}),de._f&&(de._f.mount=!1),(e.shouldUnregister||se.shouldUnregister)&&!(A8e(l.array,B)&&o.action)&&l.unMount.add(B)}}},ue=()=>e.shouldFocusError&&op(r,G,l.mount),te=B=>{Xo(B)&&(p.state.next({disabled:B}),op(r,(se,de)=>{const Ce=Je(r,de);Ce&&(se.disabled=Ce._f.disabled||B,Array.isArray(Ce._f.refs)&&Ce._f.refs.forEach(fe=>{fe.disabled=Ce._f.disabled||B}))},0,!1))},ie=(B,se)=>async de=>{let Ce;de&&(de.preventDefault&&de.preventDefault(),de.persist&&de.persist());let fe=rr(s);if(p.state.next({isSubmitting:!0}),e.resolver){const{errors:be,values:we}=await E();b(),n.errors=be,fe=rr(we)}else await A({fields:r,eventType:eh.SUBMIT});if(l.disabled.size)for(const be of l.disabled)Pr(fe,be);if(Pr(n.errors,jX),Ga(n.errors)){p.state.next({errors:{}});try{await B(fe,de)}catch(be){Ce=be}}else se&&await se({...n.errors},de),ue(),setTimeout(ue);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Ga(n.errors)&&!Ce,submitCount:n.submitCount+1,errors:n.errors}),Ce)throw Ce},me=(B,se={})=>{Je(r,B)&&(Ln(se.defaultValue)?Y(B,rr(Je(a,B))):(Y(B,se.defaultValue),jn(a,B,rr(se.defaultValue))),se.keepTouched||Pr(n.touchedFields,B),se.keepDirty||(Pr(n.dirtyFields,B),n.isDirty=se.defaultValue?D(B,rr(Je(a,B))):D()),se.keepError||(Pr(n.errors,B),f.isValid&&y()),p.state.next({...n}))},ve=(B,se={})=>{const de=B?rr(B):a,Ce=rr(de),fe=Ga(B),be=fe?a:Ce;if(se.keepDefaultValues||(a=de),!se.keepValues){if(se.keepDirtyValues){const we=new Set([...l.mount,...Object.keys(lx(a,s))]);for(const Le of Array.from(we)){const Oe=Je(n.dirtyFields,Le),He=Je(s,Le),vt=Je(be,Le);Oe&&!Ln(He)?jn(be,Le,He):!Oe&&!Ln(vt)&&Y(Le,vt)}}else{if(ZP&&Ln(B))for(const we of l.mount){const Le=Je(r,we);if(Le&&Le._f){const Oe=Array.isArray(Le._f.refs)?Le._f.refs[0]:Le._f.ref;if(Mk(Oe)){const He=Oe.closest("form");if(He){He.reset();break}}}}if(se.keepFieldsRef)for(const we of l.mount)Y(we,Je(be,we));else r={}}s=e.shouldUnregister?se.keepDefaultValues?rr(a):{}:rr(be),p.array.next({values:{...be}}),p.state.next({values:{...be}})}l={mount:se.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!f.isValid||!!se.keepIsValid||!!se.keepDirtyValues||!e.shouldUnregister&&!Ga(be),o.watch=!!e.shouldUnregister,o.keepIsValid=!!se.keepIsValid,o.action=!1,se.keepErrors||(n.errors={}),p.state.next({submitCount:se.keepSubmitCount?n.submitCount:0,isDirty:fe?!1:se.keepDirty?n.isDirty:!!(se.keepDefaultValues&&!Jc(B,a)),isSubmitted:se.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:fe?{}:se.keepDirtyValues?se.keepDefaultValues&&s?lx(a,s):n.dirtyFields:se.keepDefaultValues&&B?lx(a,B):se.keepDirty?n.dirtyFields:{},touchedFields:se.keepTouched?n.touchedFields:{},errors:se.keepErrors?n.errors:{},isSubmitSuccessful:se.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:a})},Ne=(B,se)=>ve(bo(B)?B(s):B,{...e.resetOptions,...se}),je=(B,se={})=>{const de=Je(r,B),Ce=de&&de._f;if(Ce){const fe=Ce.refs?Ce.refs[0]:Ce.ref;fe.focus&&setTimeout(()=>{fe.focus(),se.shouldSelect&&bo(fe.select)&&fe.select()})}},Me=B=>{n={...n,...B}},tt={control:{register:W,unregister:he,getFieldState:R,handleSubmit:ie,setError:U,_subscribe:pe,_runSchema:E,_updateIsValidating:b,_focusError:ue,_getWatch:I,_getDirty:D,_setValid:y,_setFieldArray:w,_setDisabledField:q,_setErrors:k,_getFieldArray:X,_reset:ve,_resetDefaultValues:()=>bo(e.defaultValues)&&e.defaultValues().then(B=>{Ne(B,e.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:O,_disableForm:te,_subjects:p,_proxyFormState:f,get _fields(){return r},get _formValues(){return s},get _state(){return o},set _state(B){o=B},get _defaultValues(){return a},get _names(){return l},set _names(B){l=B},get _formState(){return n},get _options(){return e},set _options(B){e={...e,...B}}},subscribe:re,trigger:$,register:W,handleSubmit:ie,watch:ee,setValue:Y,getValues:F,reset:Ne,resetField:me,clearErrors:z,unregister:he,setError:U,setFocus:je,getFieldState:R};return{...tt,formControl:tt}}var $c=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=(Math.random()*16+t)%16|0;return(e=="x"?n:n&3|8).toString(16)})},lN=(t,e,n={})=>n.shouldFocus||Ln(n.shouldFocus)?n.focusName||`${t}.${Ln(n.focusIndex)?e:n.focusIndex}.`:"",cN=(t,e)=>[...t,...zs(e)],uN=t=>Array.isArray(t)?t.map(()=>{}):void 0;function dN(t,e,n){return[...t.slice(0,e),...zs(n),...t.slice(e)]}var fN=(t,e,n)=>Array.isArray(t)?(Ln(t[n])&&(t[n]=void 0),t.splice(n,0,t.splice(e,1)[0]),t):[],hN=(t,e)=>[...zs(e),...zs(t)];function Y8e(t,e){let n=0;const r=[...t];for(const a of e)r.splice(a-n,1),n++;return k2(r).length?r:[]}var pN=(t,e)=>Ln(e)?[]:Y8e(t,zs(e).sort((n,r)=>n-r)),mN=(t,e,n)=>{[t[e],t[n]]=[t[n],t[e]]},YF=(t,e,n)=>(t[e]=n,t);function X8e(t){const e=T8e(),{control:n=e,name:r,keyName:a="id",shouldUnregister:s,rules:o}=t,[l,c]=J.useState(n._getFieldArray(r)),u=J.useRef(n._getFieldArray(r).map($c)),d=J.useRef(!1);n._names.array.add(r),J.useMemo(()=>o&&l.length>=0&&n.register(r,o),[n,r,l.length,o]),_X(()=>n._subjects.array.subscribe({next:({values:j,name:k})=>{if(k===r||!k){const _=Je(j,r);Array.isArray(_)&&(c(_),u.current=_.map($c))}}}).unsubscribe,[n,r]);const f=J.useCallback(j=>{d.current=!0,n._setFieldArray(r,j)},[n,r]),h=(j,k)=>{const _=zs(rr(j)),S=cN(n._getFieldArray(r),_);n._names.focus=lN(r,S.length-1,k),u.current=cN(u.current,_.map($c)),f(S),c(S),n._setFieldArray(r,S,cN,{argA:uN(j)})},p=(j,k)=>{const _=zs(rr(j)),S=hN(n._getFieldArray(r),_);n._names.focus=lN(r,0,k),u.current=hN(u.current,_.map($c)),f(S),c(S),n._setFieldArray(r,S,hN,{argA:uN(j)})},m=j=>{const k=pN(n._getFieldArray(r),j);u.current=pN(u.current,j),f(k),c(k),!Array.isArray(Je(n._fields,r))&&jn(n._fields,r,void 0),n._setFieldArray(r,k,pN,{argA:j})},x=(j,k,_)=>{const S=zs(rr(k)),N=dN(n._getFieldArray(r),j,S);n._names.focus=lN(r,j,_),u.current=dN(u.current,j,S.map($c)),f(N),c(N),n._setFieldArray(r,N,dN,{argA:j,argB:uN(k)})},y=(j,k)=>{const _=n._getFieldArray(r);mN(_,j,k),mN(u.current,j,k),f(_),c(_),n._setFieldArray(r,_,mN,{argA:j,argB:k},!1)},b=(j,k)=>{const _=n._getFieldArray(r);fN(_,j,k),fN(u.current,j,k),f(_),c(_),n._setFieldArray(r,_,fN,{argA:j,argB:k},!1)},v=(j,k)=>{const _=rr(k),S=YF(n._getFieldArray(r),j,_);u.current=[...S].map((N,E)=>!N||E===j?$c():u.current[E]),f(S),c([...S]),n._setFieldArray(r,S,YF,{argA:j,argB:_},!0,!1)},w=j=>{const k=zs(rr(j));u.current=k.map($c),f([...k]),c([...k]),n._setFieldArray(r,[...k],_=>_,{},!0,!1)};return J.useEffect(()=>{if(n._state.action=!1,q5(r,n._names)&&n._subjects.state.next({...n._formState}),d.current&&(!Lh(n._options.mode).isOnSubmit||n._formState.isSubmitted)&&!Lh(n._options.reValidateMode).isOnSubmit)if(n._options.resolver)n._runSchema([r]).then(j=>{n._updateIsValidating([r]);const k=Je(j.errors,r),_=Je(n._formState.errors,r);(_?!k&&_.type||k&&(_.type!==k.type||_.message!==k.message):k&&k.type)&&(k?jn(n._formState.errors,r,k):Pr(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{const j=Je(n._fields,r);j&&j._f&&!(Lh(n._options.reValidateMode).isOnSubmit&&Lh(n._options.mode).isOnSubmit)&&K5(j,n._names.disabled,n._formValues,n._options.criteriaMode===Ii.all,n._options.shouldUseNativeValidation,!0).then(k=>!Ga(k)&&n._subjects.state.next({errors:MX(n._formState.errors,k,r)}))}n._subjects.state.next({name:r,values:rr(n._formValues)}),n._names.focus&&op(n._fields,(j,k)=>{if(n._names.focus&&k.startsWith(n._names.focus)&&j.focus)return j.focus(),1}),n._names.focus="",n._setValid(),d.current=!1},[l,r,n]),J.useEffect(()=>(!Je(n._formValues,r)&&n._setFieldArray(r),()=>{const j=(k,_)=>{const S=Je(n._fields,k);S&&S._f&&(S._f.mount=_)};n._options.shouldUnregister||s?n.unregister(r):j(r,!1)}),[r,n,a,s]),{swap:J.useCallback(y,[f,r,n]),move:J.useCallback(b,[f,r,n]),prepend:J.useCallback(p,[f,r,n]),append:J.useCallback(h,[f,r,n]),remove:J.useCallback(m,[f,r,n]),insert:J.useCallback(x,[f,r,n]),update:J.useCallback(v,[f,r,n]),replace:J.useCallback(w,[f,r,n]),fields:J.useMemo(()=>l.map((j,k)=>({...j,[a]:u.current[k]||$c()})),[l,a])}}function J8e(t={}){const e=J.useRef(void 0),n=J.useRef(void 0),[r,a]=J.useState({isDirty:!1,isValidating:!1,isLoading:bo(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,isReady:!1,defaultValues:bo(t.defaultValues)?void 0:t.defaultValues});if(!e.current)if(t.formControl)e.current={...t.formControl,formState:r},t.defaultValues&&!bo(t.defaultValues)&&t.formControl.reset(t.defaultValues,t.resetOptions);else{const{formControl:o,...l}=K8e(t);e.current={...l,formState:r}}const s=e.current.control;return s._options=t,_X(()=>{const o=s._subscribe({formState:s._proxyFormState,callback:()=>a({...s._formState}),reRenderRoot:!0});return a(l=>({...l,isReady:!0})),s._formState.isReady=!0,o},[s]),J.useEffect(()=>s._disableForm(t.disabled),[s,t.disabled]),J.useEffect(()=>{t.mode&&(s._options.mode=t.mode),t.reValidateMode&&(s._options.reValidateMode=t.reValidateMode)},[s,t.mode,t.reValidateMode]),J.useEffect(()=>{t.errors&&(s._setErrors(t.errors),s._focusError())},[s,t.errors]),J.useEffect(()=>{t.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,t.shouldUnregister]),J.useEffect(()=>{if(s._proxyFormState.isDirty){const o=s._getDirty();o!==r.isDirty&&s._subjects.state.next({isDirty:o})}},[s,r.isDirty]),J.useEffect(()=>{var o;t.values&&!Jc(t.values,n.current)?(s._reset(t.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((o=s._options.resetOptions)===null||o===void 0)&&o.keepIsValid||s._setValid(),n.current=t.values,a(l=>({...l}))):s._resetDefaultValues()},[s,t.values]),J.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),e.current.formState=J.useMemo(()=>P8e(r,s),[s,r]),e.current}const XF=(t,e,n)=>{if(t&&"reportValidity"in t){const r=Je(n,e);t.setCustomValidity(r&&r.message||""),t.reportValidity()}},RX=(t,e)=>{for(const n in e.fields){const r=e.fields[n];r&&r.ref&&"reportValidity"in r.ref?XF(r.ref,n,t):r.refs&&r.refs.forEach(a=>XF(a,n,t))}},Z8e=(t,e)=>{e.shouldUseNativeValidation&&RX(t,e);const n={};for(const r in t){const a=Je(e.fields,r),s=Object.assign(t[r]||{},{ref:a&&a.ref});if(Q8e(e.names||Object.keys(t),r)){const o=Object.assign({},Je(n,r));jn(o,"root",s),jn(n,r,o)}else jn(n,r,s)}return n},Q8e=(t,e)=>t.some(n=>n.startsWith(e+"."));var e6e=function(t,e){for(var n={};t.length;){var r=t[0],a=r.code,s=r.message,o=r.path.join(".");if(!n[o])if("unionErrors"in r){var l=r.unionErrors[0].errors[0];n[o]={message:l.message,type:l.code}}else n[o]={message:s,type:a};if("unionErrors"in r&&r.unionErrors.forEach(function(d){return d.errors.forEach(function(f){return t.push(f)})}),e){var c=n[o].types,u=c&&c[r.code];n[o]=NX(o,e,n,a,u?[].concat(u,r.message):r.message)}t.shift()}return n},t6e=function(t,e,n){return n===void 0&&(n={}),function(r,a,s){try{return Promise.resolve(function(o,l){try{var c=Promise.resolve(t[n.mode==="sync"?"parse":"parseAsync"](r,e)).then(function(u){return s.shouldUseNativeValidation&&RX({},s),{errors:{},values:n.raw?r:u}})}catch(u){return l(u)}return c&&c.then?c.then(void 0,l):c}(0,function(o){if(function(l){return Array.isArray(l==null?void 0:l.errors)}(o))return{values:{},errors:Z8e(e6e(o.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw o}))}catch(o){return Promise.reject(o)}}};const JF=[420,260,180,140,130,210,480,950,1700,2400,2900,3200,3400,3300,3100,2950,3050,3350,3600,3450,2800,1900,1100,640],n6e=t=>Math.round(t/25)*25;function ZF(t,e,n,r){return n<=1||t<=0?100:Math.max(100,n6e(5*Math.sqrt(t*e/(n-1))))}function QF(t,e,n,r){const a=(.1+.2*n)/Math.max(1,r-1),s=e*n,o=s>0?t/s:a;return Math.max(.01,Math.min(o,a))}function e9(t){return Number.isFinite(t)?t<=60?"text-emerald-700":t<=120?"text-amber-700":"text-red-600":"text-slate-500"}function t9(t){const e=t.filter(n=>Number.isFinite(n)&&n>=0);if(e.length===24)return{hours:e,note:"Loaded 24 hourly values."};if(e.length>24&&e.length%24===0){const n=e.length/24;return{hours:Array.from({length:24},(a,s)=>{let o=0;for(let l=0;l24?{hours:e.slice(0,24),note:`Using first 24 of ${e.length} values.`}:{error:`Expected 24 values — found ${e.length}. Paste one day (row/column) or N×24.`}}function r6e(t){const e=t.trim();if(!e)return{error:"Paste hourly volumes or upload a CSV."};const n=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>/\d/.test(r));if(n.length>=12){const r=n.map(a=>{const s=a.match(/-?\d+(?:\.\d+)?/g);return s?Number(s[s.length-1]):NaN}).filter(a=>Number.isFinite(a));return t9(r)}return t9((e.match(/-?\d+(?:\.\d+)?/g)||[]).map(Number))}async function a6e(t,e){const n=t.stream().pipeThrough(new TextDecoderStream).getReader();let r=!1,a=!1,s=[],o="",l=0,c=!0,u=-1,d=-1,f=!1,h="",p="";const m=new Map;let x=0;const y=E=>a&&(E===u||E===d),b=()=>{a?l===u?h=o:l===d&&(p=o):s.push(o),o=""},v=()=>{if(!a)u=s.indexOf("Booking Date"),d=s.indexOf("Record Type"),f=u>=0&&d>=0,a=!0,s=[];else if(f){if(x++,p==="Received"&&h.length>=13){const E=(h.charCodeAt(11)-48)*10+(h.charCodeAt(12)-48);if(E>=0&&E<24){const P=h.slice(0,10);let M=m.get(P);M||(M=new Array(24).fill(0),m.set(P,M)),M[E]++}}x%2e5===0&&e(x)}l=0,c=!a||y(0),h="",p=""};for(;;){const{done:E,value:P}=await n.read();if(E)break;const M=P;for(let A=0;A0)&&(b(),v()),!f)return{error:'Not a PAR export (no "Booking Date" / "Record Type" columns).'};if(m.size===0)return{error:'PAR parsed, but found no "Received" rows.'};const w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j=E=>new Date(`${E}T00:00:00Z`).getUTCDay();let k="",_=new Array(24).fill(0),S=-1,N=!1;for(const[E,P]of m){const M=P.reduce((D,I)=>D+I,0),A=j(E)>=1&&j(E)<=5;(S<0||A&&!N||A===N&&M>S)&&(k=E,_=P,S=M,N=A)}return{hours:_.slice(),note:`PAR detected — busiest weekday ${k} (${w[j(k)]}): ${S.toLocaleString()} Received attempts (of ${m.size} day(s) scanned).`}}function s6e(){const[t,e]=g.useState(3),[n,r]=g.useState(100),a=5,s=0,[o,l]=g.useState(JF),[c,u]=g.useState("bucket"),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null),[y,b]=g.useState("Sample day"),[v,w]=g.useState(null),j=g.useRef(null),k=Math.min(1,Math.max(0,n/100)),_=()=>{l(JF),b("Sample day"),w(null),x(null)},S=g.useMemo(()=>{const O=o,D=Math.max(1,t-1),I=O.map((te,ie)=>({v:te,h:ie})).filter(({v:te})=>te>0&&te>=s),X=I.length?Math.min(...I.map(te=>te.v)):0,Q=I.length?Math.min(...I.map(te=>ZF(te.v,k,t))):100,V=QF(Q,X||1,k,t),Y=(te,ie,me)=>{const ve=me*k,Ne=ie*D,je=ve*Math.max(0,1-Ne),Me=ve*ie;return{bucket:te,h:ie,noise:Math.sqrt(1875/te),bestRefresh:je>0?te/je*60:1/0,worstRefresh:Me>0?te/Me*60:1/0,hedged:ve*Ne}},H=O.map((te,ie)=>{const me=te>0&&te>=s,ve=me?ZF(te,k,t):Q,Ne=me?QF(ve,te,k,t):V;return{v:te,hour:ie,on:me,static:Y(Q,V,te),auto:Y(ve,Ne,te)}}),G=H.filter(te=>te.on),$=te=>G.reduce((ie,me)=>ie+te(me),0),F=$(te=>te.v),R=te=>F>0?$(ie=>ie.v*ie[te].noise)/F:0,z=te=>$(ie=>ie[te].hedged),U=G.map(te=>te.auto.bucket),ee=G.map(te=>te.auto.h),pe=z("static"),re=z("auto"),he=pe-re,q=he*(Math.max(0,a)/100/2),W=O.reduce((te,ie)=>te+ie,0),ue=O.reduce((te,ie,me)=>ie>te.v?{v:ie,h:me}:te,{v:0,h:0});return{rows:H,staticB:Q,staticH:V,autoBMin:U.length?Math.min(...U):Q,autoBMax:U.length?Math.max(...U):Q,autoHMin:ee.length?Math.min(...ee):V,autoHMax:ee.length?Math.max(...ee):V,staticNoise:R("static"),autoNoise:R("auto"),staticHedged:pe,autoHedged:re,hedgedSaved:he,recovered:q,nHedged:D,totalDay:W,avgV:O.length?W/O.length:0,peak:ue,activeCount:G.length,hoursCount:O.length}},[o,t,k,a,s]),N=async O=>{w(null);let D=!1;try{const X=((await O.slice(0,65536).text()).split(/\r?\n/,1)[0]??"").split(",").map(Q=>Q.trim());D=X.includes("Booking Date")&&X.includes("Record Type")}catch{D=!1}if(D){x("Crunching PAR…");try{const I=await a6e(O,X=>x(`Crunching PAR… ${X.toLocaleString()} rows`));"hours"in I?(l(I.hours.map(X=>Math.round(X))),b(I.note)):w(I.error)}catch{w("Could not read the file (too large for the browser? try a smaller slice).")}finally{x(null)}return}if(x(null),O.size>2e6){w("Unrecognised large file — expected a PAR export or a small 24-value CSV.");return}try{const I=r6e(await O.text());"hours"in I?(l(I.hours),b(`Loaded ${O.name}`)):w(I.error)}catch{w("Could not read the file.")}},E=S.rows.map(O=>({hour:`${String(O.hour).padStart(2,"0")}`,volume:O.v,staticBucket:O.static.bucket,autoBucket:O.auto.bucket,staticHedge:O.static.h*100,autoHedge:O.auto.h*100,staticNoise:O.static.noise,autoNoise:O.auto.noise})),P={bucket:{label:"Bucket B",staticKey:"staticBucket",autoKey:"autoBucket",unit:"",fmt:O=>O.toFixed(0)},hedge:{label:"Hedge %/PG",staticKey:"staticHedge",autoKey:"autoHedge",unit:"%",fmt:O=>O.toFixed(1)},noise:{label:"Noise ±pp",staticKey:"staticNoise",autoKey:"autoNoise",unit:"pp",fmt:O=>O.toFixed(2)}},M=P[c],A="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100";return i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsx("div",{className:"mb-3",children:i.jsx("h3",{className:"text-sm font-semibold text-slate-800 dark:text-white",children:"Auto-tuning — Static vs Automatic"})}),i.jsxs("div",{className:"flex flex-wrap items-end gap-4",children:[i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(an,{children:"Processors (N)"}),i.jsx("input",{type:"number",min:2,max:12,value:t,onChange:O=>e(Math.max(2,Math.min(12,parseInt(O.target.value||"2",10)))),className:`${A} w-[90px]`})]}),i.jsx("button",{type:"button",onClick:()=>p(O=>!O),className:"self-end pb-1.5 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:h?"▾ Advanced":"▸ Advanced"}),h&&i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(an,{children:"SRV3 split %"}),i.jsx("input",{type:"number",min:1,max:100,value:n,onChange:O=>r(Math.max(1,Math.min(100,parseInt(O.target.value||"100",10)))),className:`${A} w-[90px]`})]})]}),i.jsxs("div",{className:"mt-4 flex flex-col gap-3 sm:flex-row sm:items-stretch",children:[i.jsxs("div",{onClick:()=>{var O;return(O=j.current)==null?void 0:O.click()},onDragOver:O=>O.preventDefault(),onDrop:O=>{var I;O.preventDefault();const D=(I=O.dataTransfer.files)==null?void 0:I[0];D&&N(D)},className:"flex flex-1 cursor-pointer flex-col items-center justify-center gap-1 rounded-xl border border-dashed border-slate-300 bg-slate-50/60 px-4 py-4 text-center text-xs text-slate-500 hover:border-brand-400 hover:bg-brand-50/30 dark:border-[#222226] dark:bg-[#0b0b10] dark:text-slate-400",children:[i.jsx("input",{ref:j,type:"file",accept:".csv,.txt,text/csv,text/plain",className:"hidden",onChange:O=>{var I;const D=(I=O.target.files)==null?void 0:I[0];D&&N(D)}}),i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:"Drop a CSV or click to browse"}),i.jsx("span",{children:"A raw PAR export (auto-detected — busiest weekday), or any 24-value layout — row, column, N×24, time-column."}),m&&i.jsx("span",{className:"mt-1 font-medium text-amber-700 dark:text-amber-400",children:m})]}),i.jsx("button",{type:"button",onClick:_,className:"shrink-0 rounded-xl border border-slate-200 px-4 py-2 text-sm font-medium text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-slate-300 dark:hover:bg-[#0d0d13] sm:self-stretch",children:"Load sample day"})]}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:v?i.jsx("span",{className:"text-red-600",children:v}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:y})," · ","Total ",S.totalDay.toLocaleString()," · avg ",S.avgV.toFixed(0),"/hr · peak ",S.peak.v.toLocaleString()," @ ",S.peak.h,"h · active ",S.activeCount,"/",S.hoursCount,"h"]})})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"mb-2 flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:["Daily volume & ",M.label.toLowerCase()]}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:"Bars = traffic. Lines = the static (flat) vs automatic (per-hour) value — watch automatic track the volume."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:["bucket","hedge","noise"].map(O=>i.jsx("button",{type:"button",onClick:()=>u(O),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${c===O?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:P[O].label},O))})]}),i.jsx("div",{className:"h-[300px] w-full",children:i.jsx(Li,{width:"100%",height:"100%",children:i.jsxs(Jw,{data:E,margin:{top:8,right:8,bottom:4,left:0},children:[i.jsx(ko,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(Ia,{dataKey:"hour",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:16}),i.jsx(wa,{yAxisId:"vol",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:48,tickFormatter:O=>O>=1e3?`${(O/1e3).toFixed(1)}k`:`${O}`}),i.jsx(wa,{yAxisId:"ov",orientation:"right",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:44,tickFormatter:O=>`${M.fmt(O)}${M.unit}`}),i.jsx(Vr,{formatter:(O,D)=>D==="Volume"?[Math.round(O).toLocaleString(),D]:[`${M.fmt(O)}${M.unit}`,D],labelFormatter:O=>`${O}:00`,contentStyle:{fontSize:12,borderRadius:8}}),i.jsx(ml,{wrapperStyle:{fontSize:11}}),i.jsx(xs,{yAxisId:"vol",dataKey:"volume",name:"Volume",fill:"#c7d2fe",radius:[3,3,0,0],isAnimationActive:!1}),i.jsx(fi,{yAxisId:"ov",dataKey:M.staticKey,name:`Static ${M.label}`,stroke:"#94a3b8",strokeWidth:2,strokeDasharray:"5 4",dot:!1,isAnimationActive:!1}),i.jsx(fi,{yAxisId:"ov",dataKey:M.autoKey,name:`Auto ${M.label}`,stroke:"#10b981",strokeWidth:2.5,dot:!1,isAnimationActive:!1})]})})})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-white px-4 py-3 dark:border-[#1c1c24] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-slate-600 dark:text-slate-300 leading-[18px]",children:"Static"}),i.jsx("span",{className:"rounded bg-slate-100 px-2 py-0.5 text-[11px] font-medium text-slate-500 dark:bg-[#1f1f29] dark:text-slate-400 leading-4",children:"sized for leanest hour"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:S.staticB}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(S.staticH*100).toFixed(1),"% ",i.jsxs("span",{className:"text-slate-500",children:["(tot ",(S.staticH*S.nHedged*100).toFixed(0),"%)"]})]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(S.staticHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",S.staticNoise.toFixed(2),"pp"]})]})]}),i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50/40 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/20",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-emerald-700 dark:text-emerald-300 leading-[18px]",children:"Automatic"}),i.jsx("span",{className:"rounded bg-emerald-100 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-200 leading-4",children:"per-hour sizing"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:S.autoBMin===S.autoBMax?S.autoBMin:`${S.autoBMin}–${S.autoBMax}`}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(S.autoHMin*100).toFixed(1),"–",(S.autoHMax*100).toFixed(1),"%"]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(S.autoHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",S.autoNoise.toFixed(2),"pp"]})]})]})]}),i.jsxs("div",{className:"mt-3 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 text-sm text-slate-700 dark:border-[#1c1c24] dark:bg-[#0b0b10] dark:text-slate-200",children:["Automatic trims ",i.jsx("strong",{className:"font-mono",children:Math.round(S.hedgedSaved).toLocaleString()})," hedged txns/day (≈ ",i.jsx("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:Math.round(S.recovered).toLocaleString()})," recovered approvals) and cuts volume-weighted noise from",i.jsxs("strong",{className:"font-mono",children:[" ±",S.staticNoise.toFixed(2),"pp"]})," → ",i.jsxs("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:["±",S.autoNoise.toFixed(2),"pp"]})," by enlarging buckets in busy hours."," ","Lean-hour refresh is volume-limited, so both stay equal there — the win is the over-hedge trim and busy-hour accuracy."]}),i.jsxs("button",{type:"button",onClick:()=>f(O=>!O),className:"mt-3 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:[d?"Hide":"Show"," per-hour breakdown"]}),d&&i.jsx("div",{className:"mt-2 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-right text-xs tabular-nums",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Hour"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"B (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"h% (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Noise (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Worst refresh (S→A)"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-slate-300",children:S.rows.filter(O=>O.on).map(O=>i.jsxs("tr",{className:"border-b border-slate-100 dark:border-[#141418]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left font-mono",children:[String(O.hour).padStart(2,"0"),":00"]}),i.jsx("td",{className:"py-1 pr-3 font-mono",children:Math.round(O.v).toLocaleString()}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[O.static.bucket," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:O.auto.bucket})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[(O.static.h*100).toFixed(1)," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:(O.auto.h*100).toFixed(1)})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:["±",O.static.noise.toFixed(1)," → ",i.jsxs("span",{className:"text-slate-800 dark:text-slate-100",children:["±",O.auto.noise.toFixed(1)]})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[i.jsx("span",{className:e9(O.static.worstRefresh),children:O.static.worstRefresh.toFixed(0)})," → ",i.jsx("span",{className:e9(O.auto.worstRefresh),children:O.auto.worstRefresh.toFixed(0)}),i.jsx("span",{className:"text-slate-500",children:" min"})]})]},O.hour))})]})})]})})]})}function i6e({merchantId:t}){const{coverage:e,error:n,isLoading:r}=Zj(t),a=!!e&&e.total_clusters>0;return t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-2 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading breakdown…"]}):n?i.jsx("p",{className:"text-sm text-red-600",children:"Failed to load coverage."}):!a||!e?i.jsx("p",{className:"text-sm text-slate-500",children:"The breakdown appears once a settlement report has been fitted."}):i.jsx("div",{className:"space-y-4",children:i.jsx(o6e,{coverage:e})})}function o6e({coverage:t}){const e=[{verdict:"GOOD",note:"trustworthy cost model",dot:"bg-emerald-500",txns:t.good_txns,gross:t.good_gross},{verdict:"Tiered",note:"priced per amount tier — capped or tiered interchange",dot:"bg-sky-500",txns:t.tiered_txns,gross:t.tiered_gross,hideWhenEmpty:!0},{verdict:"THIN",note:"too few txns — safe fallback",dot:"bg-slate-400",txns:t.thin_txns,gross:t.thin_gross},{verdict:"Poor fit",note:"no single rate and no clean tiers — set a contract rate",dot:"bg-amber-500",txns:t.non_linear_txns,gross:t.non_linear_gross,hideWhenEmpty:!0}].filter(a=>!a.hideWhenEmpty||a.txns>0||a.gross>0),n=a=>t.total_txns>0?a/t.total_txns*100:0,r=a=>t.total_gross>0?a/t.total_gross*100:0;return i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[520px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Verdict"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txn %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Vol %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Avg ticket"})]})}),i.jsx("tbody",{children:e.map(a=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsxs("td",{className:"py-2 pr-3",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx("span",{className:`h-2 w-2 rounded-full ${a.dot}`}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-[#c7cfdd]",children:a.verdict})]}),i.jsx("span",{className:"ml-4 text-xs text-slate-500",children:a.note})]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns.toLocaleString()}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[n(a.txns).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:l6e(a.gross)}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[r(a.gross).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns>0?c6e(a.gross/a.txns):"—"})]},a.verdict))})]})})}function l6e(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function c6e(t){return t.toLocaleString(void 0,{maximumFractionDigits:0})}const u6e=[{key:"card_network",label:"Network"},{key:"variant",label:"Program"},{key:"funding",label:"Type"},{key:"issuer_country",label:"Country"},{key:"currency",label:"Currency"},{key:"ic_category",label:"Category"},{key:"verdict",label:"Fit"}],d6e="flex w-full items-center justify-between gap-1 rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-700 hover:border-slate-300 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-[#c7cede] dark:hover:border-[#2e3545]",f6e="w-full rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white dark:placeholder:text-[#5c6577]";function h6e({label:t,selected:e,options:n,onChange:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(""),c=g.useRef(null);g.useEffect(()=>{if(!a)return;function h(m){c.current&&!c.current.contains(m.target)&&s(!1)}function p(m){m.key==="Escape"&&s(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[a]);const u=g.useMemo(()=>{const h=o.trim().toLowerCase(),p=h?n.filter(y=>y.value.toLowerCase().includes(h)):n,m=new Set(e);return[...e.filter(y=>!p.some(b=>b.value===y)).map(y=>({dim:"",value:y,txns:0})),...p].slice(0,300).map(y=>({...y,on:m.has(y.value)}))},[n,o,e]);function d(h){r(e.includes(h)?e.filter(p=>p!==h):[...e,h])}const f=e.length===0?t:e.length===1?`${t}: ${e[0]}`:`${t} · ${e.length}`;return i.jsxs("div",{className:"relative",ref:c,children:[i.jsxs("button",{type:"button",className:d6e,"aria-label":`Filter by ${t}`,"aria-expanded":a,onClick:()=>s(h=>!h),children:[i.jsx("span",{className:`truncate ${e.length?"font-medium":"text-slate-500 dark:text-[#78849a]"}`,children:f}),i.jsx(wn,{size:13,className:"shrink-0 opacity-60"})]}),a&&i.jsxs("div",{className:"absolute z-30 mt-1 w-[260px] rounded-lg border border-slate-200 bg-white p-2 shadow-lg dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("input",{autoFocus:!0,className:f6e,value:o,placeholder:`Search ${t.toLowerCase()}…`,onChange:h=>l(h.target.value)}),e.length>0&&i.jsxs("button",{type:"button",className:"mt-1 w-full rounded px-1 py-0.5 text-left text-[11px] text-brand-600 hover:underline dark:text-brand-400 leading-4",onClick:()=>r([]),children:["Clear ",e.length," selected"]}),i.jsxs("div",{className:"mt-1 max-h-56 overflow-y-auto",children:[u.length===0&&i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matching values."}),u.map(h=>i.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 rounded px-1 py-1 text-left text-[12px] text-slate-700 hover:bg-slate-100 dark:text-[#c7cede] dark:hover:bg-[#141a24] leading-4",onClick:()=>d(h.value),children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${h.on?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#39414f]"}`,children:h.on&&i.jsx(gi,{size:10,strokeWidth:3})}),i.jsx("span",{className:"min-w-0 flex-1 truncate",title:h.value,children:h.value}),h.txns>0&&i.jsx("span",{className:"shrink-0 text-[11px] text-slate-500 leading-4",children:h.txns.toLocaleString()})]},h.value))]})]})]})}function DX({filters:t,facets:e,onChange:n,rightSlot:r}){const a=IT(t);return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a>0&&i.jsxs(ke,{variant:"ghost",onClick:()=>n({}),children:[i.jsx(Hr,{size:14})," Clear ",a," filter",a===1?"":"s"]}),r]}),i.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-7",children:u6e.map(s=>i.jsx(h6e,{label:s.label,selected:t[s.key]??[],options:e[s.key]??[],onChange:o=>n({...t,[s.key]:o})},s.key))})]})}const n9=[{value:"adyen",label:"Adyen"},{value:"braintree",label:"Braintree"},{value:"chase",label:"Chase"},{value:"checkout",label:"Checkout"},{value:"stripe",label:"Stripe"}],Us="w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function _o({label:t,hint:e,children:n}){return i.jsxs("label",{className:"block space-y-1.5",children:[i.jsx("span",{className:ts,children:t}),n,e&&i.jsx("span",{className:`block ${ku}`,children:e})]})}const p6e={blue:"bg-blue-50 text-blue-600 dark:bg-blue-500/12 dark:text-blue-300",purple:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300",teal:"bg-teal-50 text-teal-700 dark:bg-teal-500/12 dark:text-teal-300",orange:"bg-orange-50 text-orange-700 dark:bg-orange-500/12 dark:text-orange-300",red:"bg-rose-50 text-rose-600 dark:bg-rose-500/12 dark:text-rose-300",gray:"bg-slate-100 text-slate-600 dark:bg-white/[0.06] dark:text-slate-300"};function IX({variant:t,children:e}){return i.jsx("span",{className:`inline-flex max-w-full items-center truncate rounded-md px-2 py-0.5 text-xs font-semibold ${p6e[t]}`,children:e})}const Gc="w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white disabled:opacity-50",m6e={adyen:"blue",stripe:"purple",checkout:"green","checkout.com":"green",braintree:"orange",authorizenet:"teal","authorize.net":"teal",chase:"blue",paypal:"blue",worldpay:"red"},g6e={visa:"blue",mastercard:"red",amex:"purple","american express":"purple",discover:"orange",ideal:"orange",jcb:"green",diners:"gray",rupay:"green",unionpay:"red"},r9=["blue","purple","green","teal","orange","red"];function x6e(t){let e=0;for(let n=0;n>>0;return r9[e%r9.length]}function y6e(t){const e=t.toLowerCase().trim();return m6e[e]??x6e(e)}function v6e(t){return g6e[t.toLowerCase().trim()]??"gray"}const b6e={usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",inr:"₹",jpy:"¥",aed:"AED "};function Yy(t){return t?b6e[t.toLowerCase()]??`${t.toUpperCase()} `:"$"}function nM(t){return t.interchange_bps+t.scheme_bps+t.markup_bps}function _u(t){return`${(t/100).toFixed(2)}%`}function rM(t){return Number.isFinite(t)?Math.round(t/100*1e4)/1e4:0}function aM(t){return Number.isFinite(t)?Math.round(t*100*100)/100:0}function $X(t,e){const n=_u(nM(t));return t.fixed?`${n} + ${Yy(t.transaction_currency)}${t.fixed.toFixed(2)}`:n}function uu(t,e,{currency:n,perTxn:r=!1}={}){if(t==null&&e==null)return"—";const a=_u(t??0);return e&&e>0?`${a} + ${Yy(n)}${e.toFixed(2)}${r?"/txn":""}`:a}const w6e=["standard","premium","ultra_premium","commercial"];function k6e(t){return{psp:t,card_network:"",payment_method_type:"",card_type:"",transaction_currency:"",card_issuing_country:"",interchange_bps:0,scheme_bps:0,markup_bps:0,fixed:0,label:"",example_amount:null,is_default:!1,effective_pct_bps:0}}function j6e({row:t,busy:e,disabled:n,onEdit:r}){var a;return i.jsxs("tr",{className:"border-b border-slate-100 transition-colors last:border-0 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"px-5 py-3 text-slate-700 dark:text-[#c7cfdd]",children:t.is_default?i.jsx(Pe,{variant:"gray",children:"Default"}):t.label||"—"}),i.jsx("td",{className:"py-3 pr-3",children:t.card_network?i.jsx(IX,{variant:v6e(t.card_network),children:t.card_network}):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.payment_method_type||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_type?t.card_type.replace(/_/g," "):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((a=t.transaction_currency)==null?void 0:a.toUpperCase())||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_issuing_country||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.interchange_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.scheme_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:_u(t.markup_bps)}),i.jsxs("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[Yy(t.transaction_currency),t.fixed.toFixed(2)]}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right tabular-nums font-semibold text-brand-700 dark:bg-brand-500/[0.1] dark:text-brand-300",children:$X(t)}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-5 text-right dark:bg-brand-500/[0.1]",children:i.jsx("button",{type:"button",onClick:r,disabled:n||e,title:"Edit scenario","aria-label":"Edit scenario",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-emerald-600 transition-colors hover:bg-emerald-500/10 disabled:opacity-40 dark:text-emerald-400",children:i.jsx(El,{size:14})})})]})}function S6e({initial:t,isNew:e,busy:n,saveError:r,onSave:a,onRemove:s,onClose:o}){const[l,c]=g.useState(t),[u,d]=g.useState(null),f=g.useRef(null),h=m=>c(x=>({...x,...m}));g.useEffect(()=>{var x;(x=f.current)==null||x.focus();function m(y){y.key==="Escape"&&!n&&o()}return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[n,o]);function p(){if(!l.psp.trim()){d("Enter a connector (PSP).");return}for(const m of[l.interchange_bps,l.scheme_bps,l.markup_bps,l.fixed])if(!Number.isFinite(m)||m<0){d("Fees must be non-negative numbers.");return}d(null),a(l)}return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!n&&o()}),i.jsxs("div",{ref:f,tabIndex:-1,className:"relative w-full max-w-lg rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e?"Add scenario":"Edit scenario"}),i.jsx("button",{type:"button",onClick:o,disabled:n,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Hr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(uo,{label:"Scenario name",children:l.is_default?i.jsx("div",{className:"flex h-[34px] items-center",children:i.jsx(Pe,{variant:"gray",children:"Default"})}):i.jsx("input",{className:Gc,value:l.label??"",placeholder:"e.g. Visa credit — US",onChange:m=>h({label:m.target.value})})}),i.jsx(uo,{label:"PSP",children:i.jsx("div",{className:"flex h-[34px] items-center",children:l.psp?i.jsx(IX,{variant:y6e(l.psp),children:l.psp}):"—"})})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Applies to ",i.jsx("span",{className:"font-normal text-slate-500",children:"(blank = any card)"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(uo,{label:"Network",children:i.jsx("input",{className:Gc,value:l.card_network??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_network:m.target.value})})}),i.jsx(uo,{label:"Funding",children:i.jsx("input",{className:Gc,value:l.payment_method_type??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({payment_method_type:m.target.value})})}),i.jsx(uo,{label:"Program",children:i.jsxs("select",{className:Gc,value:l.card_type??"",disabled:l.is_default,onChange:m=>h({card_type:m.target.value}),children:[i.jsx("option",{value:"",children:"any"}),w6e.map(m=>i.jsx("option",{value:m,children:m},m))]})}),i.jsx(uo,{label:"Currency",children:i.jsx("input",{className:`${Gc} uppercase`,value:l.transaction_currency??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({transaction_currency:m.target.value})})}),i.jsx(uo,{label:"Region",children:i.jsx("input",{className:Gc,value:l.card_issuing_country??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_issuing_country:m.target.value})})})]})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Fees ",i.jsx("span",{className:"font-normal text-slate-500",children:"(rates in %, fixed per transaction)"})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[i.jsx(uo,{label:"Interchange",children:i.jsx(v1,{bps:l.interchange_bps,onChange:m=>h({interchange_bps:m})})}),i.jsx(uo,{label:"Scheme",children:i.jsx(v1,{bps:l.scheme_bps,onChange:m=>h({scheme_bps:m})})}),i.jsx(uo,{label:"Markup",children:i.jsx(v1,{bps:l.markup_bps,onChange:m=>h({markup_bps:m})})}),i.jsx(uo,{label:"Fixed",children:i.jsx(_6e,{value:l.fixed,step:.01,onChange:m=>h({fixed:m})})})]})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg bg-slate-50 px-3 py-2 text-sm dark:bg-[#0b1017]",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#8d96aa]",children:"Effective rate"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-white",children:$X(l)})]}),i.jsx(_t,{error:u??r})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e?i.jsx("span",{}):i.jsxs(ke,{variant:"danger",size:"sm",onClick:s,disabled:n,children:[i.jsx(Cn,{size:13})," Remove"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:o,disabled:n,children:"Cancel"}),i.jsxs(ke,{variant:"primary",size:"sm",onClick:p,disabled:n,children:[n?i.jsx(mt,{size:13}):null," Save"]})]})]})]})]})}function uo({label:t,children:e}){return i.jsxs("label",{className:"block space-y-1",children:[i.jsx("span",{className:"block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),e]})}function _6e({value:t,step:e=1,onChange:n}){return i.jsx("input",{className:`${Gc} text-right tabular-nums`,type:"number",min:"0",step:e,value:Number.isFinite(t)?t:0,onChange:r=>{const a=parseFloat(r.target.value);n(Number.isFinite(a)?a:0)}})}function v1({bps:t,onChange:e}){const n=rM(t);return i.jsxs("div",{className:"relative",children:[i.jsx("input",{className:`${Gc} pr-6 text-right tabular-nums`,type:"number",min:"0",step:.01,value:n,onChange:r=>{e(aM(parseFloat(r.target.value)))}}),i.jsx("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-500",children:"%"})]})}const N6e=["adyen","stripe","checkout","worldpay","braintree","chase","cybersource"],C6e=2e3,Db=10,Y5={mc:"Mastercard",mastercard:"Mastercard",visa:"Visa",amex:"Amex",mada:"Mada",diners:"Diners",discover:"Discover",jcb:"JCB"};function wl(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function E6e(t){const e=Number(t);return!t||!Number.isFinite(e)||e<=0?"—":_u(e)}function A6e(t){return Y5[t.toLowerCase()]??t.toUpperCase()}function O6e(t){var r;if((r=t.card_network)!=null&&r.trim())return A6e(t.card_network);const e=(t.variant??"").trim().toLowerCase();if(!e)return"—";const n=Object.keys(Y5).find(a=>e.startsWith(a));return n?Y5[n]:wl(e)}function cx(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function a9(t){const e=t.toUpperCase();return e==="GOOD"?"green":e==="THIN"?"orange":"red"}function LX(t){var e;return(e=t.find(({row:n})=>n.is_default)??t[0])==null?void 0:e.row}function FX(t,e){return(t==null?void 0:t.source)==="override"?"override":(t==null?void 0:t.model_pct_bps)!=null?"reports":e?"contract":"none"}const BX={override:"MANUAL OVERRIDE",reports:"FROM REPORTS",contract:"CONTRACT BASELINE",none:"NO FEE SET"},T6e={indigo:"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/12 dark:text-indigo-300",violet:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",slate:"bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-slate-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300"};function j2({tone:t,children:e}){return i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-md px-2 py-1 text-[11px] font-semibold uppercase tracking-wide ${T6e[t]} leading-4`,children:e})}const zX={override:"violet",reports:"indigo",contract:"slate",none:"slate"};function P6e({merchantId:t}){const{fees:e,isLoading:n,error:r,mutate:a}=dG(t),[s,o]=g.useState({}),{clusters:l,mutate:c}=$T(t,{limit:C6e,order:"gross_sum",filters:s}),{facets:u}=fG(t),{rows:d,error:f,mutate:h}=pG(t),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(null),[k,_]=g.useState(!1),[S,N]=g.useState(null),[E,P]=g.useState(!1),M=g.useMemo(()=>{const q=new Map;for(const W of l){const ue=q.get(W.connector);ue?ue.push(W):q.set(W.connector,[W])}return q},[l]),A=g.useMemo(()=>{const q=new Map;return d.forEach((W,ue)=>{const te=q.get(W.psp);te?te.push({row:W,index:ue}):q.set(W.psp,[{row:W,index:ue}])}),q},[d]),O=e.map(q=>q.connector),D=new Set(O),I=Array.from(A.keys()).filter(q=>q&&!D.has(q)),X=[...O,...I],Q=new Set([...D,...A.keys()]),V=N6e.filter(q=>!Q.has(q)),Y=p&&X.includes(p)?p:X[0]??null,H=e.find(q=>q.connector===Y),G=Y?A.get(Y)??[]:[],$=Y?M.get(Y)??[]:[];async function F(){await Promise.all([a(),c(),h()])}function R(q){m(q),y(null)}async function z(q){if(t){_(!0),N(null);try{await r5e(t,q),await h(),j(null)}catch(W){N(W instanceof Error?W.message:"Failed to save contract rates")}finally{_(!1)}}}function U(q){if(!w)return;const W=w.index===null?[...d,q]:d.map((ue,te)=>te===w.index?q:ue);z(W)}function ee(){!w||w.index===null||z(d.filter((q,W)=>W!==w.index))}async function pe(){if(t){P(!0),N(null);try{await a5e(t),await h()}catch(q){N(q instanceof Error?q.message:"Failed to reset contract rates")}finally{P(!1)}}}function re(q){const W=e.find(te=>te.connector===q),ue=LX(A.get(q)??[]);v({connector:q,isNew:!1,initialPctBps:(W==null?void 0:W.override_pct_bps)??(W==null?void 0:W.model_pct_bps)??(ue?nM(ue):0),initialFixed:(W==null?void 0:W.override_fixed)??(W==null?void 0:W.model_fixed)??(ue==null?void 0:ue.fixed)??0,canClear:(W==null?void 0:W.source)==="override"})}const he=d.length>0;return i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Costs"}),i.jsx("p",{className:"mt-1 max-w-2xl text-sm text-slate-500 dark:text-[#9ca7ba]",children:"What each connector costs at decide time, and where that number comes from. Pick a connector to override a learned fee or edit its contract baseline."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[t&&he&&i.jsxs(ke,{variant:"secondary",size:"sm",onClick:pe,disabled:E,children:[E?i.jsx(mt,{size:13}):i.jsx(bH,{size:13})," Reset contract rates"]}),t&&V.length>0&&i.jsxs(ke,{variant:"primary",size:"sm",onClick:()=>v({connector:V[0],connectors:V,isNew:!0,initialPctBps:0,initialFixed:0,canClear:!1}),children:[i.jsx(Qn,{size:14})," Add connector"]})]})]}),i.jsx(M6e,{}),t?n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading connectors…"]}):X.length===0?i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500 max-w-[57ch]",children:"No connectors yet. Add one to set its fee or contract baseline, or configure ingestion below to learn fees from settlement reports."})}):i.jsxs(i.Fragment,{children:[i.jsx(Te,{className:"!rounded-2xl overflow-hidden",children:i.jsx("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c23]",children:X.map(q=>{const W=e.find(te=>te.connector===q),ue=A.get(q)??[];return i.jsx(R6e,{connector:q,fee:W,clusters:M.get(q)??[],seedRows:ue,isSelected:q===Y,onSelect:()=>R(q),onEditFee:()=>re(q)},q)})})}),Y&&i.jsx(D6e,{merchantId:t,connector:Y,fee:H,clusters:$,seedRows:G,filters:s,facets:u,onFiltersChange:o,editingKey:x,setEditingKey:y,onRefresh:F,onAddScenario:()=>{N(null),j({connector:Y,index:null,row:k6e(Y)})},onEditScenario:q=>{N(null),j({connector:Y,index:q,row:{...d[q]}})}})]}):i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500",children:"Set a merchant ID to view connector costs."})}),i.jsx("p",{className:"px-1 text-xs text-slate-500 max-w-[57ch]",children:"Rates are a percentage of the transaction amount; fit error stays in basis points (100 bps = 1%) because it is a residual, not a rate. Contract-baseline rates are the last-resort fallback used when a connector has no learned or overridden fee."}),i.jsx(_t,{error:S??(r instanceof Error?r.message:r?"Failed to load connectors":null)??(f instanceof Error?f.message:f?"Failed to load contract rates":null)}),b&&t&&i.jsx(L6e,{merchantId:t,state:b,onClose:()=>v(null),onSaved:async()=>{v(null),await F()}}),w&&i.jsx(S6e,{initial:w.row,isNew:w.index===null,busy:k,saveError:S,onSave:U,onRemove:ee,onClose:()=>{j(null),N(null)}})]})}function M6e(){const t=["override","reports","contract"];return i.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa]",children:"Active fee"}),i.jsx("span",{className:"text-sm font-semibold text-slate-400 dark:text-[#5c6577]",children:"="}),t.map((e,n)=>i.jsxs(g.Fragment,{children:[n>0&&i.jsx(Au,{size:13,"aria-hidden":"true",className:"text-slate-300 dark:text-[#3a3a44]"}),i.jsx(j2,{tone:zX[e],children:BX[e]})]},e)),i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:"— the first one set wins."})]})}function R6e({connector:t,fee:e,clusters:n,seedRows:r,isSelected:a,onSelect:s,onEditFee:o}){var h;const l=LX(r),c=FX(e,r.length>0),u=(e==null?void 0:e.effective_pct_bps)??(l?nM(l):null),d=(e==null?void 0:e.effective_fixed)??(l==null?void 0:l.fixed)??null,f=(l==null?void 0:l.transaction_currency)||((h=n[0])==null?void 0:h.currency)||null;return i.jsxs("div",{role:"button",tabIndex:0,"aria-pressed":a,onClick:s,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),s())},className:`relative flex cursor-pointer items-center gap-3 px-5 py-3.5 transition-colors ${a?"bg-brand-500/[0.06] dark:bg-brand-500/[0.09]":"hover:bg-slate-50 dark:hover:bg-[#0f131b]"}`,children:[a&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-1 bg-brand-500","aria-hidden":!0}),i.jsx("p",{className:"w-28 shrink-0 truncate text-sm font-semibold text-slate-900 dark:text-white",children:wl(t)}),i.jsx(j2,{tone:zX[c],children:BX[c]}),(e==null?void 0:e.account)&&i.jsxs("p",{className:"hidden min-w-0 truncate text-xs text-slate-500 dark:text-[#8d96aa] sm:block",children:["Account ",e.account]}),i.jsx("span",{className:"ml-auto shrink-0 tabular-nums text-sm font-semibold text-slate-900 dark:text-white",children:uu(u,d,{currency:f,perTxn:!0})}),i.jsx("button",{type:"button",onClick:p=>{p.stopPropagation(),o()},title:"Set a manual override for this connector","aria-label":`Set a manual override for ${wl(t)}`,className:"shrink-0 rounded-md border border-transparent p-1 text-slate-400 transition-colors hover:border-brand-500/40 hover:bg-brand-500/10 hover:text-brand-600 dark:text-[#78849a] dark:hover:text-brand-400",children:i.jsx(El,{size:14})}),i.jsx(Xi,{size:16,"aria-hidden":"true",className:`shrink-0 ${a?"text-brand-500":"text-slate-300 dark:text-[#3a3a44]"}`})]})}function D6e({merchantId:t,connector:e,fee:n,clusters:r,seedRows:a,filters:s,facets:o,onFiltersChange:l,editingKey:c,setEditingKey:u,onRefresh:d,onAddScenario:f,onEditScenario:h}){const[p,m]=g.useState(null),x=p??(r.length>0?"reports":"contract"),[y,b]=g.useState(0);g.useEffect(()=>{m(null),b(0)},[e]),g.useEffect(()=>{b(0)},[x]);const v=FX(n,a.length>0),w=x==="reports"?r.length:a.length,j=Math.max(1,Math.ceil(w/Db)),k=Math.min(y,j-1),_=k*Db,S=r.slice(_,_+Db),N=a.slice(_,_+Db),E=r.reduce((D,I)=>D+I.gross_sum,0),P=r.reduce((D,I)=>D+I.n,0),M=x==="reports"?S.length:N.length,A=x==="reports"?"active learned fees":"contract scenarios",O=w===0?`No ${A}`:j>1?`Showing ${_+1}–${_+M} of ${w} ${A}`:`Showing ${w} ${A}`;return i.jsxs(Te,{className:"!rounded-2xl overflow-hidden",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("span",{className:"h-4 w-1 rounded-full bg-brand-500","aria-hidden":!0}),i.jsxs("h3",{className:"text-base font-semibold text-slate-900 dark:text-white",children:[wl(e)," Detail"]}),i.jsx(j2,{tone:v==="none"?"slate":"green",children:v==="none"?"NO FEE":"ACTIVE"}),r.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:[cx(E)," settled · ",P.toLocaleString()," txns"]})]}),i.jsxs("div",{className:"flex items-center gap-1 rounded-lg border border-slate-200 bg-slate-50 p-1 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsxs(s9,{active:x==="reports",onClick:()=>m("reports"),children:["From reports (",r.length,")"]}),i.jsxs(s9,{active:x==="contract",onClick:()=>m("contract"),children:["Contract baseline (",a.length,")"]})]})]}),x==="reports"?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:i.jsx(DX,{filters:s,facets:o,onChange:l})}),r.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:bg-[#0e131b] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"w-16 py-2 pl-5 pr-3"}),i.jsx("th",{className:"w-28 py-2 pr-3 text-left font-semibold",children:"Network"}),i.jsx("th",{className:"w-24 py-2 pr-3 text-left font-semibold",children:"Type"}),i.jsx("th",{className:"w-16 py-2 pr-3 text-left font-semibold",children:"Country"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-left font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 text-left font-semibold",children:"Category"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),i.jsx("th",{className:"py-2 pr-5"})]})}),i.jsx("tbody",{children:S.map(D=>i.jsx($6e,{merchantId:t,c:D,isEditing:c===D.key,editingActive:c!==null,onEdit:()=>u(D.key),onCancel:()=>u(null),onSaved:async()=>{u(null),await d()}},D.key))})]})}):i.jsx("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:IT(s)>0?"No segments match these filters — clear one to widen the search.":`No settlement data yet for ${wl(e)}. Ingest a report below to learn its fees, or set a contract baseline.`})]}):i.jsx(I6e,{connector:e,rows:N,onAdd:f,onEdit:h}),i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:O}),j>1&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:["Page ",k+1," of ",j]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>b(k-1),disabled:k===0,children:"Previous"}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:()=>b(k+1),disabled:k>=j-1,children:"Next"})]})]})]})}function s9({active:t,onClick:e,children:n}){return i.jsx("button",{type:"button",onClick:e,"aria-current":t?"true":void 0,className:`rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors ${t?"bg-white text-brand-600 shadow-sm dark:bg-[#161c26] dark:text-brand-400":"text-slate-500 hover:text-slate-700 dark:text-[#8d96aa] dark:hover:text-white"} leading-[18px]`,children:n})}function I6e({connector:t,rows:e,onAdd:n,onEdit:r}){return i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#232833]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-2.5",children:[i.jsxs("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:["Your contract rate per card scenario — the last-resort fallback when ",wl(t)," ","has no learned or overridden fee. A blank dimension matches any card."]}),i.jsxs(ke,{variant:"secondary",size:"sm",onClick:n,children:[i.jsx(Qn,{size:13})," Add scenario"]})]}),e.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[12px] font-semibold text-slate-500 dark:border-[#232833] dark:bg-[#0b0e14] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"px-5 py-3",children:"Scenario"}),i.jsx("th",{className:"py-3 pr-3",children:"Network"}),i.jsx("th",{className:"py-3 pr-3",children:"Funding"}),i.jsx("th",{className:"py-3 pr-3",children:"Program"}),i.jsx("th",{className:"py-3 pr-3",children:"Currency"}),i.jsx("th",{className:"py-3 pr-3",children:"Region"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Interchange"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Scheme"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Markup"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Fixed"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right dark:bg-brand-500/[0.1]",children:"Total rate"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-5 dark:bg-brand-500/[0.1]"})]})}),i.jsx("tbody",{children:e.map(({row:a,index:s})=>i.jsx(j6e,{row:a,busy:!1,disabled:!1,onEdit:()=>r(s)},s))})]})}):i.jsxs("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:["No contract baseline for ",wl(t)," yet. Add a scenario to price it when no learned data is available."]})]})}function $6e({merchantId:t,c:e,isEditing:n,editingActive:r,onEdit:a,onCancel:s,onSaved:o}){var E,P,M;const l=e.source==="override",c=(((E=e.segments)==null?void 0:E.length)??0)>0,u=()=>String(rM(e.effective_pct_bps??e.override_pct_bps??e.model_pct_bps??0)),d=()=>String(e.effective_fixed??e.override_fixed??e.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(!1),[k,_]=g.useState(!1);g.useEffect(()=>{n&&(h(u()),m(d()),v(null))},[n]);async function S(){const A=parseFloat(f),O=parseFloat(p);if(!isFinite(A)||A<0||!isFinite(O)||O<0){v("Enter non-negative numbers for the rate and fixed fee.");return}y("save"),v(null);try{await hG(t,e.key,{pct_bps:aM(A),fixed:O}),await o()}catch(D){v(D instanceof Error?D.message:"Failed to save fee")}finally{y(null)}}async function N(){y("clear"),v(null);try{await n5e(t,e.key),await o()}catch(A){v(A instanceof Error?A.message:"Failed to clear override")}finally{y(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 hover:bg-slate-50/70 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"w-16 py-3.5 pl-5 pr-3",children:i.jsx("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-lg bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-[#8d96aa]",children:i.jsx(MCe,{size:15})})}),i.jsx("td",{className:"w-28 py-3.5 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:O6e(e)}),i.jsx("td",{className:"w-24 py-3.5 pr-3 font-semibold capitalize text-slate-800 dark:text-white",children:e.funding||"—"}),i.jsx("td",{className:"w-16 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((P=e.issuer_country)==null?void 0:P.toUpperCase())||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((M=e.currency)==null?void 0:M.toUpperCase())||"—"}),i.jsx("td",{className:"py-3.5 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:e.ic_category||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 text-right tabular-nums font-medium text-slate-600 dark:text-[#9ca7ba]",children:e.n.toLocaleString()}),i.jsx("td",{className:"py-3.5 pr-3 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${i9} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:A=>h(A.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${i9} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:A=>m(A.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[c&&i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[e.segments.length," tiers"]}),l&&i.jsx(j2,{tone:"indigo",children:"OVERRIDE"}),i.jsxs("div",{children:[i.jsx("span",{className:`block tabular-nums font-semibold ${l?"text-brand-600 dark:text-brand-400":"text-slate-800 dark:text-[#c7cfdd]"}`,children:uu(e.effective_pct_bps,e.effective_fixed,{currency:e.currency})}),l&&e.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:uu(e.model_pct_bps,e.model_fixed,{currency:e.currency})})]})]})}),i.jsx("td",{className:"w-[120px] py-3.5 pr-5 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:S,disabled:x!==null,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(mt,{size:13}):i.jsx(gi,{size:14})}),l&&i.jsx("button",{type:"button",onClick:N,disabled:x!==null,title:"Remove override","aria-label":"Remove override",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-rose-50 hover:text-rose-600 disabled:opacity-40 dark:hover:bg-rose-500/10",children:x==="clear"?i.jsx(mt,{size:13}):i.jsx(Hr,{size:14})}),!l&&i.jsx("button",{type:"button",onClick:s,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Hr,{size:14})})]}):i.jsxs("div",{className:"flex items-center justify-end gap-0.5",children:[i.jsx(gN,{title:"Edit segment fee",disabled:r,onClick:a,icon:i.jsx(El,{size:15})}),i.jsx(gN,{title:"Show the evidence behind this fee",expanded:k,onClick:()=>_(A=>!A),icon:i.jsx(Ef,{size:15})}),c&&i.jsx(gN,{title:"Show per-segment rates",expanded:w,onClick:()=>j(A=>!A),icon:w?i.jsx(wn,{size:16,className:"text-brand-600 dark:text-brand-400"}):i.jsx(Xi,{size:16,className:"text-brand-600 dark:text-brand-400"})})]})})]}),k&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsx("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:i.jsxs("div",{className:"flex flex-wrap gap-x-10 gap-y-3 rounded-lg border border-slate-200 bg-white px-4 py-3 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx(Dg,{label:"Learned",value:uu(e.model_pct_bps,e.model_fixed,{currency:e.currency})}),i.jsx(Dg,{label:"Override",value:e.override_pct_bps!=null?uu(e.override_pct_bps,e.override_fixed,{currency:e.currency}):"—"}),i.jsx(Dg,{label:"Txns",value:e.n.toLocaleString()}),i.jsx(Dg,{label:"Volume",value:cx(e.gross_sum)}),i.jsx(Dg,{label:"Program",value:E6e(e.card_product)}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fit"}),i.jsx("div",{className:"mt-1",children:e.verdict?i.jsx(Pe,{variant:a9(e.verdict),children:e.verdict}):i.jsx("span",{className:"text-[13px] text-slate-500 leading-[18px]",children:"no fitted rate"})})]})]})})}),w&&c&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsxs("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:[i.jsx("p",{className:"mb-0.5 text-sm font-semibold text-slate-700 dark:text-[#c7cfdd]",children:"Per-segment rates"}),i.jsx("p",{className:"mb-2 text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:"Optimized tiers dynamically calculated based on historical card activity and fit-error thresholds."}),i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 bg-white dark:border-[#232833] dark:bg-[#0b0e14]",children:i.jsxs("table",{className:"w-full min-w-[560px] text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Amount range"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:e.segments.map(A=>i.jsxs("tr",{className:"border-b border-slate-100 tabular-nums text-slate-600 last:border-0 dark:border-[#1c1c23] dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"px-3 py-2 text-left",children:[cx(A.lo)," - ",cx(A.hi)]}),i.jsx("td",{className:"py-2 pr-3 text-right font-medium",children:A.pct_bps!=null?_u(A.pct_bps):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.fixed!=null?`${Yy(e.currency)}${A.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.n.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right",children:cx(A.gross_sum)}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.bps_rmse!=null?A.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:i.jsx(Pe,{variant:a9(A.verdict),children:A.verdict})})]},A.seg_idx))})]})})]})}),n&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:9,className:"px-5 pb-2",children:i.jsx(_t,{error:b})})})]})}function gN({title:t,icon:e,onClick:n,disabled:r=!1,expanded:a}){return i.jsx("button",{type:"button",onClick:n,disabled:r,title:t,"aria-label":t,"aria-expanded":a,className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:opacity-40 dark:hover:bg-[#121214] dark:hover:text-white",children:e})}function Dg({label:t,value:e}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("p",{className:"mt-1 truncate text-[13px] tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd] leading-[18px]",children:e})]})}const i9="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function L6e({merchantId:t,state:e,onClose:n,onSaved:r}){const[a,s]=g.useState(e.connector),[o,l]=g.useState(e.initialPctBps),[c,u]=g.useState(String(e.initialFixed)),[d,f]=g.useState(null),[h,p]=g.useState(null);g.useEffect(()=>{function v(w){w.key==="Escape"&&!d&&n()}return document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)},[d,n]);async function m(){const v=parseFloat(c);if(o<0||!isFinite(v)||v<0){p("Enter non-negative numbers for the rate and fixed fee.");return}f("save"),p(null);try{await e5e(t,a,{pct_bps:o,fixed:v}),await r()}catch(w){p(w instanceof Error?w.message:"Failed to save fee")}finally{f(null)}}async function x(){f("clear"),p(null);try{await t5e(t,a),await r()}catch(v){p(v instanceof Error?v.message:"Failed to clear override")}finally{f(null)}}const y="block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa]";return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!d&&n()}),i.jsxs("div",{className:"relative w-full max-w-md rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e.isNew?"Add connector fee":`${wl(a)} manual override`}),i.jsx("button",{type:"button",onClick:n,disabled:d!==null,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Hr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-4",children:[e.isNew&&e.connectors&&i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Connector"}),i.jsx("select",{className:`${Us} mt-1`,value:a,onChange:v=>s(v.target.value),children:e.connectors.map(v=>i.jsx("option",{value:v,children:wl(v)},v))})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Rate"}),i.jsx("div",{className:"mt-1",children:i.jsx(v1,{bps:o,onChange:l})})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:y,children:"Fixed per txn"}),i.jsx("input",{className:"mt-1 w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",type:"number",step:"0.01",min:"0",value:c,onChange:v=>u(v.target.value)})]})]}),i.jsxs("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:["Applied to every economic-value calculation for ",wl(a)," from now on, overriding the learned model and contract baseline for this connector."]}),i.jsx(_t,{error:h})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.canClear?i.jsxs(ke,{variant:"danger",size:"sm",onClick:x,disabled:d!==null,children:[d==="clear"?i.jsx(mt,{size:13}):null," Remove override"]}):i.jsx("span",{}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ke,{variant:"secondary",size:"sm",onClick:n,disabled:d!==null,children:"Cancel"}),i.jsxs(ke,{variant:"primary",size:"sm",onClick:m,disabled:d!==null,children:[d==="save"?i.jsx(mt,{size:13}):null," Save fee"]})]})]})]})]})}function F6e({merchantId:t}){const{sources:e,mutate:n}=s5e(t),[r,a]=g.useState("adyen"),[s,o]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(null);function k(){c(""),d("")}function _(){h(null),o(""),k()}const S=r==="checkout",N=S?"Checkout":"Adyen",E=t?qCe(`/webhooks/settlement/${encodeURIComponent(t)}/${r}`):null;async function P(){if(!t){v("Set a merchant ID first");return}if(!s||!l||!u){v("Account, webhook secret and download auth are all required");return}const O={account:s,webhook_secret:l,download_auth:u};m(!0),v(null),j(null);try{await i5e(t,r,O),j(`Saved credentials for ${r} / ${s}.`),_(),await n()}catch(D){v(D instanceof Error?D.message:"Failed to save credentials")}finally{m(!1)}}function M(O){h(O),a(O.connector),o(O.account),c(""),d(""),v(null),j(null)}async function A(O){if(!t||!window.confirm(`Delete credentials for ${O.connector} / ${O.account}?`))return;const D=`${O.connector}:${O.account}`;y(D),v(null),j(null);try{await o5e(t,O.connector,O.account),f&&s===O.account&&r===O.connector&&_(),await n()}catch(I){v(I instanceof Error?I.message:"Failed to delete credentials")}finally{y(null)}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(yT,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Settlement report access"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsx(_o,{label:"Connector",children:i.jsxs("select",{className:Us,value:r,onChange:O=>{a(O.target.value),v(null)},children:[i.jsx("option",{value:"adyen",children:"Adyen"}),i.jsx("option",{value:"checkout",children:"Checkout"})]})}),E&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("span",{className:`block ${ts}`,children:"Webhook URL"}),i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsx("code",{className:"min-w-0 flex-1 break-all font-mono text-[13px] text-slate-700 dark:text-[#c7cfdd]",children:E}),i.jsx(qy,{text:E,size:14,label:"Copy webhook URL",className:"mt-0.5"})]}),i.jsxs("span",{className:`block ${ku}`,children:["Register this in your ",N," dashboard as the settlement-report notification endpoint. It's public - deliveries are authenticated by the webhook secret below."]})]}),i.jsx(_o,{label:"Account",hint:f?"Editing an existing source — account is locked":S?"Checkout entity id the report relates to (ent_…)":"Connector-side account (e.g. Adyen merchantAccountCode)",children:i.jsx("input",{className:Us,value:s,onChange:O=>o(O.target.value),placeholder:S?"ent_r7nge7vl53crsa3ozjxzoiykj4":"AcmeMerchantEU",disabled:f!==null})}),i.jsx(_o,{label:"Webhook secret",hint:f?"Enter a new value to replace the stored secret":S?"Checkout webhook signature key (HMAC-SHA256 over the raw body, sent as Cko-Signature)":"Used to verify inbound webhook signatures (HMAC key)",children:i.jsx("input",{className:Us,type:"password",value:l,onChange:O=>c(O.target.value),placeholder:(f==null?void 0:f.webhook_secret_hint)||"••••••••"})}),i.jsx(_o,{label:"Report download auth",hint:f?"Enter a new value to replace the stored auth":S?'Checkout secret key (sk_…). Or JSON {"secret_key":"sk_…","api_base_url":"…"} for a sandbox/regional host.':"Report-user Basic auth as user:password, or a Report Service API key on its own",children:i.jsx("input",{className:Us,type:"password",value:u,onChange:O=>d(O.target.value),placeholder:(f==null?void 0:f.download_auth_hint)||"••••••••"})}),i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(ke,{onClick:P,disabled:!t||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Saving..."]}):f?"Update credentials":"Save credentials"}),f&&i.jsx(ke,{variant:"ghost",size:"sm",onClick:_,disabled:p,children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:"Secrets are encrypted at rest."})]}),i.jsx(_t,{error:b}),w&&i.jsx("p",{className:"text-sm text-emerald-700",children:w}),e.length>0&&i.jsxs("div",{className:"mt-2 border-t border-slate-100 pt-4 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Configured"}),i.jsx("ul",{className:"mt-2 space-y-1 text-sm text-slate-600 dark:text-[#9ca7ba]",children:e.map(O=>{const D=`${O.connector}:${O.account}`;return i.jsxs("li",{className:"flex items-center justify-between gap-2 py-0.5",children:[i.jsxs("span",{children:[O.connector," · ",O.account]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",title:"Edit credentials",onClick:()=>M(O),className:"rounded p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(El,{size:14})}),i.jsx("button",{type:"button",title:"Delete credentials",disabled:x===D,onClick:()=>A(O),className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:x===D?i.jsx(mt,{size:14}):i.jsx(Cn,{size:14})})]})]},D)})})]})]})]})}function B6e({merchantId:t,connector:e,account:n,preflight:r,sampleText:a,truncated:s,initialMapping:o,onSaved:l,onCancel:c}){const[u,d]=g.useState(o??{}),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(!1),[b,v]=g.useState(null),[w,j]=g.useState(!1),k=g.useMemo(()=>U6e(a,r.found),[a,r.found]);g.useEffect(()=>{if(o&&Object.keys(o).length>0)return;const A=new Set,O={};for(const D of r.missing){const I=V6e(D,r.found,A);I&&(O[D]=I,A.add(I))}Object.keys(O).length>0&&d(D=>({...O,...D}))},[r.missing,r.found,o]);const _=r.missing.filter(A=>!u[A]),S=_.length===0,N=g.useCallback((A,O)=>{h(null),v(null),d(D=>{const I={...D};return O?I[A]=O:delete I[A],I})},[]),E=new Set(Object.values(u));async function P(){m(!0),v(null);try{h(await u5e(t,e,u,a,s))}catch(A){h(null),v(A instanceof Error?A.message:"Could not preview this mapping")}finally{m(!1)}}async function M(){y(!0),v(null);try{await f5e(t,e,n,u,a,s),l()}catch(A){v(A instanceof Error?A.message:"Could not save this mapping")}finally{y(!1)}}return i.jsxs("div",{className:"space-y-4 rounded-lg border border-amber-200 bg-amber-50/50 p-4 dark:border-amber-900/40 dark:bg-amber-950/20",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(Pm,{size:16,className:"mt-0.5 shrink-0 text-amber-700"}),i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-slate-800 dark:text-white",children:["This file's columns don't match ",e]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#9ca7ba] max-w-[57ch]",children:[r.missing.length," required"," ",r.missing.length===1?"column is":"columns are"," missing. Map them to the matching columns in your file below — we'll remember this mapping for future"," ",e," / ",n," reports."]})]})]}),r.suggested_connectors.length>0&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-900/40 dark:bg-blue-950/30",children:[i.jsx(Qu,{size:15,className:"mt-0.5 shrink-0 text-blue-600"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-300",children:["This file matches all"," ",r.suggested_connectors[0].matched_required," columns of"," ",i.jsx("strong",{children:r.suggested_connectors[0].connector}),". If it's a"," ",r.suggested_connectors[0].connector," report, switch the connector above instead of mapping columns — mapping it as ",e," would produce a wrong cost model."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] gap-3 px-1 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:[i.jsx("span",{children:"Your column"}),i.jsx("span",{}),i.jsxs("span",{children:["Maps to (",e,")"]})]}),r.missing.map(A=>{const O=u[A]??"",D=O?k[O]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Us,value:O,onChange:I=>N(A,I.target.value),children:[i.jsx("option",{value:"",children:"— Select your column —"}),r.found.map(I=>i.jsx("option",{value:I,disabled:E.has(I)&&I!==O,children:I},I))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:O?D?`e.g. ${D}`:"no example value in this file":" "})]}),i.jsx(Au,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm font-medium text-slate-700 dark:border-[#232833] dark:bg-[#141a24] dark:text-[#c7cfdd]",children:A}),i.jsx("p",{className:"mt-1 text-xs text-amber-700 dark:text-amber-500",children:"Required"})]})]},A)})]}),r.optional_missing.length>0&&i.jsxs("details",{className:"rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("summary",{className:"cursor-pointer text-sm text-slate-600 dark:text-[#9ca7ba]",children:[r.optional_missing.length," optional"," ",r.optional_missing.length===1?"column is":"columns are"," also missing — not required, but they improve the model"]}),i.jsx("div",{className:"mt-3 space-y-2",children:r.optional_missing.map(A=>{const O=u[A]??"",D=O?k[O]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-100 p-2 dark:border-[#1a1f29]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Us,value:O,onChange:I=>N(A,I.target.value),children:[i.jsx("option",{value:"",children:"— Not in my file —"}),r.found.map(I=>i.jsx("option",{value:I,disabled:E.has(I)&&I!==O,children:I},I))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:O&&D?`e.g. ${D}`:" "})]}),i.jsx(Au,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx(Fa,{tone:"info",children:A}),i.jsx("p",{className:"mt-1 text-xs text-slate-500",children:"Optional"})]})]},A)})})]}),r.matched.length>0&&i.jsxs("div",{children:[i.jsxs("button",{type:"button",onClick:()=>j(A=>!A),className:"flex items-center gap-1.5 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(gi,{size:14,className:"text-emerald-700"}),r.matched.length," required"," ",r.matched.length===1?"column":"columns"," already matched",i.jsx("span",{className:"text-xs",children:w?"▲":"▼"})]}),w&&i.jsx("ul",{className:"mt-2 grid gap-1 sm:grid-cols-2",children:r.matched.map(A=>i.jsxs("li",{className:"flex items-center gap-2 rounded-md bg-white px-2.5 py-1.5 text-xs text-slate-600 dark:bg-[#0b1017] dark:text-[#9ca7ba]",children:[i.jsx(gi,{size:12,className:"shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate",children:A})]},A))})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[i.jsx(ke,{variant:"secondary",onClick:P,disabled:!S||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Checking…"]}):"Preview result"}),i.jsx(ke,{onClick:M,disabled:!f||x,children:x?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Saving…"]}):"Save mapping"}),i.jsx("button",{type:"button",onClick:c,className:"text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:S?f?"Applied to this and future reports for this account":"Preview your mapping before saving":`${_.length} still to map`})]}),i.jsx(_t,{error:b}),f&&i.jsx(z6e,{preview:f})]})}function z6e({preview:t}){return i.jsxs("div",{className:"space-y-2 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium text-slate-700 dark:text-[#c7cfdd]",children:"Result of this mapping"}),t.median_effective_pct!=null&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#9ca7ba]",children:["median effective fee"," ",i.jsxs("strong",{className:"text-slate-700 dark:text-white",children:[t.median_effective_pct.toFixed(3),"%"]})]})]}),t.warning&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-900/40 dark:bg-red-950/30",children:[i.jsx(Pm,{size:15,className:"mt-0.5 shrink-0 text-red-600"}),i.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:t.warning})]}),t.rows.length>0?i.jsxs("div",{className:"overflow-x-auto",children:[i.jsxs("table",{className:"w-full text-left text-xs",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{children:[i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Network"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Currency"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Gross"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fee"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Effective"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-[#c7cfdd]",children:t.rows.map((e,n)=>i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1f29]",children:[i.jsx("td",{className:"py-1 pr-3",children:e.card_network||"—"}),i.jsx("td",{className:"py-1 pr-3",children:e.currency||"—"}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.gross.toFixed(2)}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.total_fee.toFixed(2)}),i.jsxs("td",{className:"py-1 text-right tabular-nums",children:[e.effective_pct.toFixed(3),"%"]})]},n))})]}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 max-w-[57ch]",children:"Gross, Fee and Effective are derived from the columns you mapped — check they look right for your business before saving."})]}):i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba]",children:"No rows were produced from this file sample."})]})}function U6e(t,e){const n={};if(e.length===0)return n;const r=t.split(/\r?\n/),a=r.findIndex(o=>{const l=o9(o);return l.length===e.length&&l[0]===e[0]});if(a<0)return n;const s=o9(r[a+1]??"");return e.forEach((o,l)=>{const c=(s[l]??"").trim();c&&(n[o]=c.length>40?`${c.slice(0,40)}…`:c)}),n}function o9(t){const e=[];let n="",r=!1;for(let a=0;a0&&(e[0]=e[0].replace(/^/,"")),e}function V6e(t,e,n){const r=l9(t);if(r.length===0)return;let a,s=0;for(const o of e){if(n.has(o))continue;const l=new Set(l9(o)),u=r.filter(d=>l.has(d)).length/r.length;u>s&&(s=u,a=o)}return s>.5?a:void 0}function l9(t){return t.toLowerCase().replace(/\(.*?\)/g," ").split(/[^a-z0-9]+/).filter(e=>e.length>1)}const W6e="development".trim().toLowerCase(),sM=W6e==="production",iM=!sM,oM=!sM,c9=!sM;function H6e({merchantId:t}){var U;const{mutate:e}=Zj(t),{ingestions:n,mutate:r}=LT(t),a=g.useRef(null),[s,o]=g.useState(c9?"sample":"upload"),[l,c]=g.useState("adyen"),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,y]=g.useState(0),[b,v]=g.useState(null),[w,j]=g.useState(null),[k,_]=g.useState(null),[S,N]=g.useState(""),[E,P]=g.useState(!1),[M,A]=g.useState(!1),[O,D]=g.useState(!1),{connectors:I}=d5e(),X=(I.length>0?I.map(ee=>ee.id):n9.map(ee=>ee.value)).map(ee=>{var pe;return{value:ee,label:((pe=n9.find(re=>re.value===ee))==null?void 0:pe.label)??ee.charAt(0).toUpperCase()+ee.slice(1)}}),Q=((U=X.find(ee=>ee.value===l))==null?void 0:U.label)??l,V=w!=null?n.find(ee=>ee.id===w):void 0;g.useEffect(()=>{(V==null?void 0:V.status)==="completed"&&e()},[V==null?void 0:V.status,e]),g.useEffect(()=>{f&&Y(f)},[l,u]);const Y=g.useCallback(async ee=>{if(t){D(!0),_(null),v(null);try{const pe=ee.slice(0,FL),re=await pe.text();N(re),P(ee.size>FL),A(!1),_(await c5e(t,l,pe,u||void 0))}catch(pe){_(null),v(pe instanceof Error?pe.message:"Could not check this file’s columns")}finally{D(!1)}}},[t,l,u]);function H(ee){h(ee),_(null),N(""),A(!1),v(null),ee&&Y(ee)}async function G(){if(!t){v("Set a merchant ID first");return}if(!u||!f){v("Account and a report file are both required");return}m(!0),y(0),v(null),j(null);try{const ee=await l5e(t,l,u,f,pe=>{pe.phase==="uploading"?y(pe.total?Math.round(pe.loaded/pe.total*100):0):y(100)});j(ee.id),h(null),a.current&&(a.current.value=""),await r()}catch(ee){v(ee instanceof Error?ee.message:"Failed to upload report")}finally{m(!1)}}async function $(){if(!t){v("Set a merchant ID first");return}m(!0),y(100),v(null),j(null);try{const ee=await h5e(t,l);j(ee.id),await r()}catch(ee){const pe=ee instanceof Error?ee.message:"";v(/404|not found|no sample/i.test(pe)?`No sample report available for ${Q}.`:pe||"Failed to run sample report")}finally{m(!1)}}const F=(V==null?void 0:V.status)==="processing",R=(V==null?void 0:V.status)==="completed",z=(V==null?void 0:V.status)==="failed";return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(_H,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Upload a settlement report"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[c9&&i.jsx("div",{className:"inline-flex rounded-lg border border-slate-200 p-0.5 dark:border-[#2a3344]",children:[["sample","Use a sample file"],["upload","Upload a file"]].map(([ee,pe])=>i.jsx("button",{type:"button",onClick:()=>{o(ee),v(null)},className:"rounded-md px-3 py-1.5 text-sm font-medium transition-colors "+(s===ee?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white"),children:pe},ee))}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:s==="upload"?"Upload a settlement report file directly - no webhook needed. Processing runs in the background (the upload won't hang on large files). Watch progress below and in the history.":`No report file? Run a curated ${Q} sample report through the exact same fit, so you can see the ingest → cost-coverage flow end to end. Progress shows below and in the history.`}),i.jsx(_o,{label:"Connector",children:i.jsx("select",{className:Us,value:l,onChange:ee=>c(ee.target.value),children:X.map(ee=>i.jsx("option",{value:ee.value,children:ee.label},ee.value))})}),s==="upload"&&i.jsxs(i.Fragment,{children:[i.jsx(_o,{label:"Account",hint:"Connector-side account the report belongs to",children:i.jsx("input",{className:Us,value:u,onChange:ee=>d(ee.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(_o,{label:"Report file",hint:"The connector's settlement / PAR report (CSV)",children:i.jsx("input",{ref:a,type:"file",accept:".csv,text/csv,text/plain",className:Us,onChange:ee=>{var pe;return H(((pe=ee.target.files)==null?void 0:pe[0])??null)}})}),O&&i.jsxs("p",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx(mt,{size:14}),"Checking this file's columns…"]}),(k==null?void 0:k.ok)&&i.jsxs(Fa,{tone:"success",children:["All ",k.required.length," required columns found — this file is ready to upload."]}),k&&!k.ok&&!M&&t&&u&&i.jsx(B6e,{merchantId:t,connector:l,account:u,preflight:k,sampleText:S,truncated:E,onCancel:()=>A(!0),onSaved:()=>{f&&Y(f)}}),k&&!k.ok&&M&&u&&i.jsxs(Fa,{tone:"warning",children:["This file is still missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",", so it can't be uploaded."," ",i.jsx("button",{type:"button",onClick:()=>A(!1),className:"font-medium underline underline-offset-2",children:"Map columns"})," ","or choose a different file."]}),k&&!k.ok&&!u&&i.jsxs(Fa,{tone:"warning",children:["This file is missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",". Enter the account above to map your columns to ",l,"'s."]})]}),i.jsxs("div",{className:"flex items-center gap-3",children:[s==="upload"?i.jsx(ke,{onClick:G,disabled:!t||p||F||O||(k==null?void 0:k.ok)===!1,children:p||F?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),p?"Uploading…":"Processing…"]}):"Upload & fit"}):i.jsx(ke,{onClick:$,disabled:!t||p||F,children:p||F?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),p?"Starting…":"Processing…"]}):"Run sample"}),i.jsx("span",{className:"text-xs text-slate-500",children:s==="upload"?"Runs in the background after upload.":"Fetches the sample and runs in the background."})]}),s==="upload"&&p&&i.jsx(u9,{label:`Uploading report… ${x}%`,pct:x,showPct:!1}),F&&V&&i.jsx(u9,{label:`Processing — ${V.staged_rows.toLocaleString()} rows staged…`,pct:100,pulse:!0}),i.jsx(_t,{error:b}),R&&V&&i.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-900/40 dark:bg-emerald-950/30",children:[i.jsxs("p",{className:"text-sm font-medium text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:["Ingested ",V.staged_rows.toLocaleString()," rows for ",V.connector," /"," ",V.account,V.period_start&&V.period_end?` (${V.period_start} → ${V.period_end})`:"","."]}),i.jsxs("p",{className:"mt-1 text-sm text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:[V.good_clusters," of ",V.total_clusters," clusters graded GOOD ·"," ",V.currency_count," currencies · ",V.country_count," countries.",V.good_clusters===0&&" No trustworthy cost model yet — this volume still falls back to SR routing."]})]}),z&&V&&i.jsx(_t,{error:V.last_error||"Ingestion failed"})]})]})}function u9({label:t,pct:e,pulse:n,showPct:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex justify-between text-xs text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx("span",{children:t}),r&&i.jsxs("span",{children:[e,"%"]})]}),i.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full bg-brand-500 transition-all duration-200 ${n?"animate-pulse":""}`,style:{width:`${e}%`}})})]})}const G6e=[{value:"adyen",label:"Adyen"}];function lp(t,e,n=2){const r=e?{style:"currency",currency:e,maximumFractionDigits:n}:{maximumFractionDigits:n};try{return new Intl.NumberFormat(void 0,r).format(t)}catch{return`${t.toFixed(n)}${e?` ${e}`:""}`}}const q6e={flat_per_txn:"Flat per transaction",periodic:"Periodic / non-transactional",credit:"Credit",already_modeled:"Already in report",volume:"Turnover"};function K6e({merchantId:t}){const{addons:e,mutate:n}=m5e(t),r=g.useRef(null),[a,s]=g.useState("adyen"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(null),[h,p]=g.useState(!1),[m,x]=g.useState(null),[y,b]=g.useState(null);async function v(){if(!t)return x("Set a merchant ID first");if(!o||!d)return x("Account and an invoice file are both required");p(!0),x(null),b(null);try{const j=await g5e(t,a,o,d,c||void 0);b(j),f(null),r.current&&(r.current.value=""),await n()}catch(j){x(j instanceof Error?j.message:"Failed to process invoice")}finally{p(!1)}}async function w(j){if(t)try{await x5e(t,j),await n(),(y==null?void 0:y.connector)===j&&b(null)}catch(k){x(k instanceof Error?k.message:"Failed to remove add-on")}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(mH,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Upload a connector invoice"})})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:"The settlement report only carries a transaction's core fees, so our model was structurally missing ~9% of the true cost — flat per-transaction fees, periodic fees and credits that only appear on the monthly invoice. Upload that invoice and we'll identify those missing fees and start applying them to every routing decision."}),i.jsx(_o,{label:"Connector",children:i.jsx("select",{className:Us,value:a,onChange:j=>s(j.target.value),children:G6e.map(j=>i.jsx("option",{value:j.value,children:j.label},j.value))})}),i.jsx(_o,{label:"Account",hint:"Connector-side account the invoice covers",children:i.jsx("input",{className:Us,value:o,onChange:j=>l(j.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(_o,{label:"Invoice number",hint:"Optional — for your records",children:i.jsx("input",{className:Us,value:c,onChange:j=>u(j.target.value),placeholder:"NL2025…"})}),i.jsx(_o,{label:"Invoice file",hint:"The monthly invoice — a PDF (as downloaded from Adyen) or a CSV export",children:i.jsx("input",{ref:r,type:"file",accept:".pdf,application/pdf,.csv,text/csv,text/plain",className:Us,onChange:j=>{var k;return f(((k=j.target.files)==null?void 0:k[0])??null)}})}),i.jsx("div",{className:"flex items-center gap-3",children:i.jsx(ke,{onClick:v,disabled:!t||h,children:h?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14}),"Reading invoice…"]}):"Upload & identify fees"})}),i.jsx(_t,{error:m})]})]}),y&&i.jsx(Y6e,{result:y}),e.length>0&&i.jsx(J6e,{addons:e,onRemove:w})]})}function Y6e({result:t}){const e=t.currency,n=t.breakdown.filter(a=>a.added),r=t.breakdown.filter(a=>!a.added);return i.jsx(Te,{children:i.jsxs(ze,{className:"space-y-5",children:[i.jsxs("div",{className:"rounded-xl border border-brand-500/30 bg-brand-500/5 p-5",children:[i.jsxs("div",{className:"flex items-center gap-2 text-brand-600 dark:text-brand-400",children:[i.jsx(gi,{size:16}),i.jsx("span",{className:"text-sm font-medium",children:"We understood the fees missing from your settlement report"})]}),i.jsxs("p",{className:"mt-3 text-3xl font-semibold text-slate-900 dark:text-white",children:["+",lp(t.total_addon_per_txn,e,4),i.jsx("span",{className:"ml-2 text-base font-normal text-slate-500 dark:text-[#9ca7ba]",children:"additional cost per transaction"})]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#c7cfdd]",children:["Now applied on top of the learned model for"," ",i.jsxs("span",{className:"font-medium",children:[t.connector," / ",t.account]})," ","in every economic-value calculation."]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[i.jsxs(Ib,{children:["+",lp(t.fixed_addon,e,4)," flat / txn"]}),i.jsxs(Ib,{children:["+",t.pct_addon_bps.toFixed(3)," bps on amount"]}),t.subtotal_ex_tax!=null&&i.jsxs(Ib,{muted:!0,children:["Invoice subtotal ",lp(t.subtotal_ex_tax,e)]}),t.txn_count!=null&&i.jsxs(Ib,{muted:!0,children:[t.txn_count.toLocaleString()," transactions"]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-medium text-slate-800 dark:text-white",children:"Fees we identified and are now applying"}),i.jsx(d9,{lines:n,ccy:e,showPerTxn:!0})]}),r.length>0&&i.jsxs("details",{className:"group",children:[i.jsxs("summary",{className:"flex cursor-pointer items-center gap-2 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(Qu,{size:14}),r.length," line",r.length===1?"":"s"," already captured by your settlement report — ignored so nothing is double-counted"]}),i.jsx("div",{className:"mt-3",children:i.jsx(d9,{lines:r,ccy:e,showPerTxn:!1})})]})]})})}function d9({lines:t,ccy:e,showPerTxn:n}){return t.length===0?i.jsx("p",{className:"text-sm text-slate-500",children:"No lines in this group."}):i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Fee"}),i.jsx("th",{className:"px-3 py-2 font-medium",children:"Category"}),i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"On invoice"}),n&&i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"Per transaction"})]})}),i.jsx("tbody",{children:t.map((r,a)=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"px-3 py-2 capitalize text-slate-800 dark:text-[#e7ecf3]",children:r.description}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(X6e,{kind:r.kind,added:r.added})}),i.jsx("td",{className:"px-3 py-2 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:lp(r.amount,e)}),n&&i.jsx("td",{className:"px-3 py-2 text-right font-medium tabular-nums text-slate-900 dark:text-white",children:r.per_txn!==0?`${r.per_txn<0?"−":"+"}${lp(Math.abs(r.per_txn),e,4)}`:"—"})]},`${r.kind}-${r.description}-${a}`))})]})})}function X6e({kind:t,added:e}){const n=q6e[t]??t,r=e?"bg-brand-500/10 text-brand-600 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1c1c23] dark:text-[#9ca7ba]";return i.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${r}`,children:n})}function Ib({children:t,muted:e}){const n=e?"border-slate-200 text-slate-500 dark:border-[#232833] dark:text-[#9ca7ba]":"border-brand-500/30 text-brand-600 dark:text-brand-400";return i.jsx("span",{className:`rounded-full border px-2.5 py-1 font-medium ${n}`,children:t})}function J6e({addons:t,onRemove:e}){return i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h3",{className:La,children:"Active invoice add-ons"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Currently applied to routing."})]}),i.jsx(ze,{className:"space-y-2",children:t.map(n=>i.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-slate-200 px-3 py-2.5 dark:border-[#232833]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:n.connector}),i.jsxs("p",{className:"text-xs text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:["+",lp(n.fixed_addon,n.currency,4)," / txn · +",n.pct_addon_bps.toFixed(3)," bps",n.invoice_ref?` · invoice ${n.invoice_ref}`:""]})]}),i.jsxs("button",{type:"button",onClick:()=>e(n.connector),className:"flex shrink-0 items-center gap-1 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs text-slate-500 hover:border-rose-300 hover:text-rose-600 dark:border-[#232833] dark:hover:border-rose-900/50",children:[i.jsx(Cn,{size:13}),"Remove"]})]},n.connector))})]})}const f9="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",Z6e={mc:"Mastercard",visa:"Visa",amex:"Amex",diners:"Diners",discover:"Discover",jcb:"JCB"};function Fx(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function Q6e(t){return Z6e[t.toLowerCase()]??Fx(t)}const eFe=["world elite","ultra premium","superpremium","infinite","signature","platinum","purchasing","corporate","business","premium","classic","standard","world","gold"];function UX(t){var o,l;let e=(t.variant??"").toLowerCase();if(e.includes("_")){const c=e.split("_").slice(1).join(" ");return c.includes("apple")?"Apple Pay":c.includes("google")?"Google Pay":Fx(c)}const n=((o=t.card_network)==null?void 0:o.toLowerCase())??"",r=((l=t.funding)==null?void 0:l.toLowerCase())??"";if(n&&e.startsWith(n)&&(e=e.slice(n.length)),r&&e.endsWith(r)&&(e=e.slice(0,e.length-r.length)),e)return Fx(e);const a=(t.ic_category??"").toLowerCase(),s=eFe.find(c=>a.includes(c));return s?s.split(" ").map(Fx).join(" "):"—"}function tFe(t){const e=Number(t.card_product);if(!(!t.card_product||!Number.isFinite(e)||e<=0))return`Issuer BIN's dominant interchange rate: ${(e/100).toFixed(2)}%`}function $b(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const VX={GOOD:{label:"Good",variant:"green",hint:"Enough transactions and a tight fit — this rate is trusted at decide time."},THIN:{label:"Thin",variant:"orange",hint:"Too few transactions to pin the rate confidently. Override it with your contract rate."},NON_LINEAR:{label:"Poor fit",variant:"red",hint:"A single rate can't price this segment — its cost isn't one straight line, and no clean set of amount tiers could be recovered either. Override it with your contract rate."}};function nFe({merchantId:t,editable:e,limit:n=500,scope:r,defaultSort:a="gross_sum"}){const[s,o]=g.useState({}),l=IT(s),{clusters:c,isLoading:u,error:d,mutate:f}=$T(t,{limit:n,order:a,filters:s,...r}),{facets:h}=fG(t,r),[p,m]=g.useState(null),[x,y]=g.useState(a),[b,v]=g.useState("desc"),w=g.useMemo(()=>{const S=[...c];return S.sort((N,E)=>{const P=N[x]-E[x];return b==="desc"?-P:P}),S},[c,x,b]),j=g.useMemo(()=>c.some(S=>UX(S)!=="—"),[c]);function k(S){S===x?v(N=>N==="desc"?"asc":"desc"):(y(S),v("desc"))}const _=i.jsx(DX,{filters:s,facets:h,onChange:o,rightSlot:i.jsxs("span",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:[c.length.toLocaleString()," segment",c.length===1?"":"s",c.length>=n&&" (capped — narrow the filters to see the rest)"]})});return t&&u?i.jsxs("div",{className:"space-y-3",children:[_,i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16})," Loading segments…"]})]}):c.length?i.jsxs("div",{className:"space-y-3",children:[_,i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Network"}),j&&i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Program"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Type"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Country"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Category"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Fit"}),i.jsx(h9,{label:"Volume",active:x==="gross_sum",dir:b,onClick:()=>k("gross_sum")}),i.jsx(h9,{label:"Txns",active:x==="n",dir:b,onClick:()=>k("n")}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),e&&i.jsx("th",{className:"py-2 pr-3"})]})}),i.jsx("tbody",{children:w.map(S=>i.jsx(aFe,{c:S,editable:e,showProgram:j,merchantId:t,isEditing:p===S.key,onEdit:()=>m(S.key),onCancel:()=>m(null),onSaved:()=>{m(null),f()}},S.key))})]})}),i.jsx(_t,{error:d instanceof Error?d.message:d?"Failed to load segments":null})]}):i.jsxs("div",{className:"space-y-3",children:[_,i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:l>0?"No segments match these filters — clear one to widen the search.":"No fitted segments yet — they appear once a settlement report has been ingested."})]})}function rFe({verdict:t,segments:e}){const n=(e==null?void 0:e.length)??0;if(n>0){const a=e.filter(s=>{var o;return((o=s.verdict)==null?void 0:o.toUpperCase())!=="GOOD"}).length;return a===0?i.jsx("span",{title:`One rate couldn't price this segment, so it was split into ${n} amount tiers — each one fits tightly. The tiered rates are what the Fee column expands to.`,children:i.jsx(Pe,{variant:"green",children:"Tiered"})}):i.jsx("span",{title:`Split into ${n} amount tiers, but ${a} of them still don't fit well. Worth overriding with your contract rate.`,children:i.jsx(Pe,{variant:"orange",children:"Tiered"})})}const r=VX[(t==null?void 0:t.toUpperCase())??""];return r?i.jsx("span",{title:r.hint,children:i.jsx(Pe,{variant:r.variant,children:r.label})}):i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"—"})}function h9({label:t,active:e,dir:n,onClick:r}){return i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:i.jsxs("button",{type:"button",onClick:r,"aria-sort":e?n==="desc"?"descending":"ascending":"none",className:`inline-flex items-center gap-1 transition-colors hover:text-slate-600 dark:hover:text-slate-200 ${e?"text-slate-600 dark:text-slate-200":""}`,children:[t,e?n==="desc"?i.jsx(wn,{size:12}):i.jsx(Ds,{size:12}):i.jsx(wn,{size:12,className:"opacity-30"})]})})}function aFe({c:t,editable:e,showProgram:n,merchantId:r,isEditing:a,onEdit:s,onCancel:o,onSaved:l}){var S,N,E;const c=t.source==="override",u=()=>String(rM(t.effective_pct_bps??t.override_pct_bps??t.model_pct_bps??0)),d=()=>String(t.effective_fixed??t.override_fixed??t.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState(!1),k=(((S=t.segments)==null?void 0:S.length)??0)>0;g.useEffect(()=>{a&&(h(u()),m(d()),v(null))},[a]);async function _(){if(!r)return;const P=parseFloat(f),M=parseFloat(p);if(!isFinite(P)||P<0||!isFinite(M)||M<0){v("Enter non-negative numbers for the rate and fixed fee.");return}y("save"),v(null);try{await hG(r,t.key,{pct_bps:aM(P),fixed:M}),l()}catch(A){v(A instanceof Error?A.message:"Failed to save fee")}finally{y(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:Fx(t.connector)}),i.jsx("td",{className:"py-2 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:Q6e(t.card_network)}),n&&i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",title:tFe(t),children:UX(t)}),i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.funding||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((N=t.issuer_country)==null?void 0:N.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((E=t.currency)==null?void 0:E.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:t.ic_category||"—"}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(rFe,{verdict:t.verdict,segments:t.segments})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:t.gross_sum>0?$b(t.gross_sum):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:t.n>0?t.n.toLocaleString():"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${f9} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:P=>h(P.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${f9} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:P=>m(P.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):k?i.jsxs("button",{type:"button",onClick:()=>j(P=>!P),className:"ml-auto flex items-center justify-end gap-1.5",title:"Show per-segment rates","aria-expanded":w,children:[i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[t.segments.length," tiers"]}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:uu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})}),w?i.jsx(Ds,{size:12}):i.jsx(wn,{size:12})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[c&&i.jsx(Pe,{variant:"purple",children:"Override"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:uu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})})]}),c&&t.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:uu(t.model_pct_bps,t.model_fixed,{currency:t.currency})})]})}),e&&i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:_,disabled:x!==null||!r,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(mt,{size:13}):i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:o,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Hr,{size:14})})]}):i.jsxs(ke,{variant:"ghost",size:"sm",onClick:s,children:[i.jsx(El,{size:13})," Edit"]})})]}),w&&k&&i.jsx("tr",{className:"bg-slate-50/60 dark:bg-[#15151a]",children:i.jsxs("td",{colSpan:10+(n?1:0)+(e?1:0),className:"px-3 pb-3 pt-1",children:[i.jsx("div",{className:"mb-1 text-[11px] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Per-segment rates — this cluster’s interchange is capped or tiered, so one rate can’t price it. Each tier below is priced separately by transaction amount."}),i.jsxs("table",{className:"w-full text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-slate-500 dark:text-[#78849a]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Amount range"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:t.segments.map(P=>{var M,A;return i.jsxs("tr",{className:"tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left",children:[$b(P.lo),"–",$b(P.hi)]}),i.jsx("td",{className:"py-1 pr-3 text-right font-medium",children:P.pct_bps!=null?_u(P.pct_bps):"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.fixed!=null?`${Yy(t.currency)}${P.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.n.toLocaleString()}),i.jsx("td",{className:"py-1 pr-3 text-right",children:$b(P.gross_sum)}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.bps_rmse!=null?P.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-1 text-right text-slate-500 dark:text-[#9ca7ba]",children:((A=VX[((M=P.verdict)==null?void 0:M.toUpperCase())??""])==null?void 0:A.label)??P.verdict})]},P.seg_idx)})})]})]})}),a&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:10+(n?1:0)+(e?1:0),className:"pb-2 pr-3",children:i.jsx(_t,{error:b})})})]})}function sFe({merchantId:t}){const{ingestions:e,isLoading:n,mutate:r}=LT(t),{mutate:a}=Zj(t),[s,o]=g.useState(new Set),[l,c]=g.useState(null);function u(f){o(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}async function d(f){const h=f.period_start&&f.period_end?`${f.connector} / ${f.account} (${f.period_start} → ${f.period_end})`:`${f.connector} / ${f.account}`;if(!(!t||!window.confirm(`Delete this ingestion? + +${h} + +This removes its fitted cost models and staged rows. Coverage reverts to the previous snapshot. This cannot be undone.`))){c(f.id);try{await p5e(t,f.id),await Promise.all([r(),a()])}catch(p){window.alert(p instanceof Error?p.message:"Failed to delete ingestion")}finally{c(null)}}}return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(FCe,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:La,children:"Reports ingested"})})]})}),i.jsx(ze,{children:t&&n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(mt,{size:16}),"Loading history..."]}):e.length===0?i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:"No ingestions yet. Upload a report or configure a webhook connector."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-2 font-semibold"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Ingested"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Source"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector · Account"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Period"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Status"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Rows"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ccy"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ctry"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",title:"Segments whose fitted rate graded GOOD, out of all fitted segments. Expand a row to see every segment with its grade.",children:"GOOD"}),i.jsx("th",{className:"py-2 pr-2 font-semibold"})]})}),i.jsx("tbody",{children:e.map(f=>i.jsx(iFe,{merchantId:t,job:f,open:s.has(f.id),onToggle:()=>u(f.id),onDelete:()=>d(f),deleting:l===f.id},f.id))})]})})})]})}function iFe({merchantId:t,job:e,open:n,onToggle:r,onDelete:a,deleting:s}){const o=e.period_start&&e.period_end?`${e.period_start} → ${e.period_end}`:"—";return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"cursor-pointer border-b border-slate-100 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0b1017]",onClick:r,children:[i.jsx("td",{className:"py-2 pr-2 text-slate-500",children:n?i.jsx(wn,{size:14}):i.jsx(Xi,{size:14})}),i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:lFe(e.created_at)}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx("span",{className:"rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]",children:e.source})}),i.jsxs("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:[e.connector," · ",e.account]}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:o}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(oFe,{status:e.status})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.staged_rows.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.currency_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.country_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.status==="completed"?`${e.good_clusters}/${e.total_clusters}`:"—"}),i.jsx("td",{className:"py-2 pr-2 text-right",children:e.status!=="processing"&&i.jsx("button",{type:"button",title:"Delete ingestion",disabled:s,onClick:l=>{l.stopPropagation(),a()},className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:s?i.jsx(mt,{size:14}):i.jsx(Cn,{size:14})})})]}),n&&i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/60 dark:border-[#1c1c23] dark:bg-[#0b1017]",children:[i.jsx("td",{}),i.jsxs("td",{colSpan:10,className:"py-3 pr-3",children:[i.jsxs("dl",{className:"grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2",children:[i.jsx(Ig,{label:"Settled volume",value:cFe(e.total_gross)}),i.jsx(Ig,{label:"Report date",value:e.report_date??"—"}),i.jsx(Ig,{label:`Currencies (${e.currency_count})`,value:e.currencies.length?e.currencies.join(", "):"—"}),i.jsx(Ig,{label:`Countries (${e.country_count})`,value:e.countries.length?e.countries.join(", "):"—"}),e.last_error&&i.jsx(Ig,{label:"Error",value:e.last_error,error:!0})]}),e.status==="completed"&&e.report_date&&i.jsxs("div",{className:"mt-4 border-t border-slate-200 pt-3 dark:border-[#232833]",children:[i.jsx("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fitted segments (top by txns) — edit any rate to override it"}),i.jsx(nFe,{merchantId:t,editable:!1,limit:2e3,defaultSort:"n",scope:{connector:e.connector,account:e.account,reportDate:e.report_date,ingestionId:e.id}})]})]})]})]})}function Ig({label:t,value:e,error:n}){return i.jsxs("div",{children:[i.jsx("dt",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("dd",{className:`mt-0.5 break-words text-sm ${n?"text-red-600":"text-slate-600 dark:text-[#c7cfdd]"}`,children:e})]})}function oFe({status:t}){const e={completed:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/40 dark:text-emerald-400",processing:"bg-amber-100 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400 animate-pulse",failed:"bg-red-100 text-red-700 dark:bg-red-950/40 dark:text-red-400",pending:"bg-slate-100 text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]"},n=e[t]??e.pending;return i.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs ${n}`,children:t})}function lFe(t){const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}function cFe(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const uFe=["ingestion","data","costs"],WX=[{id:"automatic",label:"Automatic"},{id:"manual",label:"Manual"},{id:"invoice",label:"Invoice"}],dFe=[{id:"ingestion",icon:xA,title:"Data ingestion",blurb:"Connect a settlement source or upload a report"},{id:"data",icon:xH,title:"Ingested data",blurb:"What we learned — coverage & history"},{id:"costs",icon:pH,title:"Costs",blurb:"Effective fees per connector — overrides, learned rates & contract baseline"}];function fFe({merchantId:t}){const[e,n]=Nl(),r=e.get("section"),a=uFe.includes(r)?r:"costs",s=e.get("source"),o=a==="ingestion"&&WX.some(c=>c.id===s)?s:"automatic",l=(c,u=o)=>{n(d=>{const f=new URLSearchParams(d);return c==="costs"?f.delete("section"):f.set("section",c),c!=="ingestion"||u==="automatic"?f.delete("source"):f.set("source",u),f},{replace:!0})};return g.useEffect(()=>{(r!==(a==="costs"?null:a)||s!==(a==="ingestion"&&o!=="automatic"?o:null))&&l(a,o)},[a,r,o,s]),i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(hFe,{merchantId:t,active:a,onSelect:c=>l(c),ingestMode:o,onSelectIngestMode:c=>l("ingestion",c)}),i.jsxs("div",{className:"min-w-0",children:[a==="ingestion"&&i.jsx(mFe,{merchantId:t,mode:o}),a==="data"&&i.jsx(pFe,{merchantId:t}),a==="costs"&&i.jsx(P6e,{merchantId:t})]})]})}function hFe({merchantId:t,active:e,onSelect:n,ingestMode:r,onSelectIngestMode:a}){const{coverage:s}=Zj(t),{ingestions:o}=LT(t),l={ingestion:o.length>0?`${o.length} report${o.length===1?"":"s"}`:"Not set up",data:s&&s.total_clusters>0?`${s.priced_gross_pct.toFixed(1)}% volume covered`:"No data yet",costs:void 0};return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:dFe.map(({id:c,icon:u,title:d,blurb:f})=>{const h=e===c;return i.jsxs("div",{className:"shrink-0 lg:w-full",children:[i.jsxs("button",{type:"button",onClick:()=>n(c),"aria-current":h?"page":void 0,className:`flex w-full items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors ${h?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(u,{size:18,className:`mt-0.5 shrink-0 ${h?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:d}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:l[c]??f})]})]}),c==="ingestion"&&h&&i.jsx("div",{className:"ml-[1.3125rem] mt-1 flex flex-col gap-0.5 border-l border-slate-200 pl-2 dark:border-[#2a3344]",children:WX.map(p=>{const m=r===p.id;return i.jsx("button",{type:"button",onClick:()=>a(p.id),"aria-current":m?"true":void 0,className:`rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors ${m?"bg-brand-500/10 font-medium text-brand-600 dark:text-brand-400":"text-slate-500 hover:bg-slate-50 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:bg-[#141923] dark:hover:text-white"}`,children:p.label},p.id)})})]},c)})})}function HX({title:t,subtitle:e}){return i.jsxs("div",{className:"mb-5",children:[i.jsx("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-1 max-w-[57ch] text-sm text-slate-500 dark:text-[#9ca7ba]",children:e})]})}function pFe({merchantId:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx(HX,{title:"Ingested data",subtitle:"What your settlement reports taught us: how much volume we can cost accurately, and — inside each report below — the fee learned for every segment."}),!1,i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h3",{className:La,children:"Cost model coverage"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"How much volume we can cost accurately."})]}),i.jsx(ze,{children:i.jsx(i6e,{merchantId:t})})]}),i.jsx(sFe,{merchantId:t})]})}function mFe({merchantId:t,mode:e}){return i.jsxs("div",{children:[i.jsx(HX,{title:"Data ingestion",subtitle:"Connect a settlement source so reports flow in automatically, or upload a report file manually. Add the monthly invoice to also recover the fees the report can't carry."}),e==="automatic"&&i.jsx(F6e,{merchantId:t}),e==="manual"&&i.jsx(H6e,{merchantId:t}),e==="invoice"&&i.jsx(K6e,{merchantId:t})]})}const tr="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-brand-500 dark:border-[#222226]",gFe=["adyen","stripe","checkout","worldpay","braintree","paypal","chase","cybersource","globalpay","nuvei","rapyd","fiserv","authorizedotnet"],xFe=["USD","EUR","GBP","INR","JPY","AUD","CAD","SGD","AED","BHD","KWD"],yFe=["UTC","America/New_York","America/Chicago","America/Los_Angeles","Europe/London","Europe/Amsterdam","Europe/Berlin","Asia/Kolkata","Asia/Singapore","Asia/Tokyo","Australia/Sydney"],vFe={calendar_month:"Day of month the cycle starts (1–30)",calendar_quarter:"Month within the quarter the cycle starts (1–3)",calendar_year:"Month the cycle starts (1–12)",test_minutes:"Cycle length in minutes (2–240) — one minute per contract day"};let bFe=1;function GX(t){return{kind:"retroactive",bps:"",threshold:"",targeted:t,rebateLagDays:"0",rebateSettlement:"cash"}}function xN(){return{key:bFe++,id:"",connector:"",status:"active",cycleType:"calendar_month",anchor:"1",timezone:"UTC",archetype:"lumpsum",target:"",rewardKind:"flat",flatAmount:"",rebateBps:"",tiers:[GX(!0)]}}function Lb(t){return t.trim()}function wFe(t){const e=t.created_at?CG(t.created_at):0;if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}function kFe(t){var a,s;if(!((a=t==null?void 0:t.volume_contracts)!=null&&a.length))return[];const e=t.metric==="volume"?null:(s=t.currency)==null?void 0:s.denomination,n=o=>es(Number(o??0),e),r=o=>o.kind==="flat"?`${n(o.value.flat_amount)} flat`:`${o.value.rebate_bps/100}% rebate`;return t.volume_contracts.map(o=>{const l=o.status??"active";if(o.archetype==="lumpsum")return{connector:o.connector,promise:n(o.terms.target),reward:r(o.terms.reward),status:l};if(o.archetype==="tiered"){const c=o.terms.tiers.find(d=>d.targeted)??o.terms.tiers[0],u=c?"rebate_bps"in c.rate?c.rate.rebate_bps:c.rate.rate_bps:0;return{connector:o.connector,promise:c?n(c.threshold):"—",reward:`${u/100}% ${(c==null?void 0:c.kind)==="marginal"?"marginal":"retroactive"} · ${o.terms.tiers.length} tier${o.terms.tiers.length===1?"":"s"}`,status:l}}return{connector:o.connector,promise:n(o.terms.floor),reward:r(o.terms.reward),status:l}})}function jFe(t){var r,a;const e=t.metric==="volume"?null:(r=t.currency)==null?void 0:r.denomination,n=t.tolerance_bps??(t.tolerance?parseFloat(t.tolerance):void 0);return[{label:"Routing mode",value:t.routing_mode==="pace_guarded"?"Pace‑guarded (auth‑rate first)":"Volume‑commitment first"},{label:"Tolerance",value:n!=null?`${(n/100).toFixed(n%100?2:0)} pp`:"—"},{label:"Metric",value:t.metric==="volume"?"Transaction count":"GMV"},{label:"Currency",value:((a=t.currency)==null?void 0:a.denomination)??"—"},{label:"Expected daily traffic",value:es(Number(t.expected_daily_traffic??0),e)},{label:"Forecast interval",value:t.forecast_interval_secs?`${t.forecast_interval_secs}s`:"default"},{label:"Steering interval",value:t.steering_interval_secs?`${t.steering_interval_secs}s`:"default"},{label:"Billing cycle",value:qX(t)}]}function SFe(t){switch(t.type){case"test_minutes":return`${t.anchor}-minute test cycle`;case"calendar_month":return`Monthly from day ${t.anchor}`;case"calendar_quarter":return`Quarterly from month ${t.anchor}`;case"calendar_year":return`Yearly from month ${t.anchor}`;default:return String(t.type)}}function _Fe({config:t}){var o;const[e,n]=g.useState(!1);if(!t)return i.jsx("p",{className:"text-sm text-slate-500",children:"This document has no readable configuration."});const r=t.metric==="volume"?null:(o=t.currency)==null?void 0:o.denomination,a=l=>es(Number(l??0),r),s=kFe(t);return i.jsxs("div",{className:"space-y-4",children:[i.jsx("dl",{className:"grid grid-cols-2 gap-x-6 gap-y-3 sm:grid-cols-4 lg:grid-cols-8",children:jFe(t).map(l=>i.jsxs("div",{className:"min-w-0",children:[i.jsx("dt",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-400 dark:text-[#78849a]",children:l.label}),i.jsx("dd",{className:"mt-0.5 truncate text-sm text-slate-800 dark:text-slate-200",title:l.value,children:l.value})]},l.label))}),i.jsx("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330]",children:i.jsxs("table",{className:"w-full text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/70 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:bg-[#11151d] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-4 py-2.5",children:"PSP"}),i.jsx("th",{className:"px-4 py-2.5",children:"Promise"}),i.jsx("th",{className:"px-4 py-2.5",children:"Reward"}),i.jsx("th",{className:"px-4 py-2.5",children:"Cycle"}),i.jsx("th",{className:"px-4 py-2.5",children:"Timezone"}),i.jsx("th",{className:"px-4 py-2.5",children:"Status"})]})}),i.jsx("tbody",{children:t.volume_contracts.map((l,c)=>{const u=s[c];return i.jsxs("tr",{className:"border-b border-slate-100 last:border-b-0 dark:border-[#1e2330]",children:[i.jsx("td",{className:"px-4 py-2.5 font-medium text-slate-900 dark:text-white",children:l.connector}),i.jsx("td",{className:"px-4 py-2.5 tabular-nums text-slate-800 dark:text-slate-200",children:u==null?void 0:u.promise}),i.jsxs("td",{className:"px-4 py-2.5 text-slate-800 dark:text-slate-200",children:[u==null?void 0:u.reward,l.archetype==="tiered"&&i.jsx("span",{className:"mt-1 block text-xs text-slate-500 dark:text-[#8d96a8]",children:l.terms.tiers.map(d=>`${a(d.threshold)} → ${("rebate_bps"in d.rate?d.rate.rebate_bps:d.rate.rate_bps)/100}%${d.targeted?" (target)":""}`).join(" · ")})]}),i.jsx("td",{className:"px-4 py-2.5 text-slate-800 dark:text-slate-200",children:SFe(l.billing_cycle)}),i.jsx("td",{className:"px-4 py-2.5 text-slate-600 dark:text-[#8d96a8]",children:l.billing_cycle.timezone}),i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold leading-4 ${(l.status??"active")==="active"?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"}`,children:(l.status??"active")==="active"?"Active":"Inactive"})})]},l.id||l.connector)})})]})}),i.jsxs("div",{children:[i.jsx("button",{type:"button",onClick:()=>n(l=>!l),className:"text-xs font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:e?"Hide JSON":"Show JSON"}),e&&i.jsx("pre",{className:"mt-2 max-h-80 overflow-auto rounded-lg border border-slate-200 bg-white p-3 text-[11px] leading-relaxed text-slate-600 dark:border-[#1e2330] dark:bg-[#0a0d12] dark:text-[#9ca7ba]",children:JSON.stringify(t,null,2)})]})]})}function qX(t){var n,r;const e=(r=(n=t==null?void 0:t.volume_contracts)==null?void 0:n[0])==null?void 0:r.billing_cycle;if(!e)return"—";switch(e.type){case"test_minutes":return`${e.anchor}-minute test cycle`;case"calendar_month":return`Monthly from day ${e.anchor} (${e.timezone})`;case"calendar_quarter":return`Quarterly from month ${e.anchor} (${e.timezone})`;case"calendar_year":return`Yearly from month ${e.anchor} (${e.timezone})`;default:return String(e.type)}}function NFe({embedded:t=!1}={}){const e=Er(le=>le.merchantId),n=Ro(),{mutate:r}=ej(),{data:a,isLoading:s}=ut(e?`/routing/list/${e}`:null,le=>Ve(le),{revalidateOnFocus:!1}),{data:o}=ut(e?`/routing/list/active/${e}`:null,le=>Ve(le),{revalidateOnFocus:!1}),l=g.useMemo(()=>(a??[]).filter(le=>le.algorithm_for==="volume_commitment").sort((le,Ie)=>new Date(Ie.created_at??0).getTime()-new Date(le.created_at??0).getTime()),[a]),c=g.useMemo(()=>{var le;return((le=(o??[]).find(Ie=>Ie.algorithm_for==="volume_commitment"))==null?void 0:le.id)??null},[o]);function u(){r(`/routing/list/${e}`),r(`/routing/list/active/${e}`)}const[d,f]=g.useState(""),[h,p]=g.useState(""),[m,x]=g.useState("5"),[y,b]=g.useState("USD"),[v,w]=g.useState("major"),[j,k]=g.useState(""),[_,S]=g.useState(""),[N,E]=g.useState(""),[P,M]=g.useState([xN()]),A=e?`vc_merchant_settings_${e}`:null,O=g.useMemo(()=>{var Ie;const le=l.find(Ge=>Ge.id===c);return(Ie=(le==null?void 0:le.algorithm_data)??(le==null?void 0:le.algorithm))==null?void 0:Ie.data},[l,c]);function D(le){le.tolerancePp!=null&&x(le.tolerancePp),le.currency!=null&&b(le.currency),le.amountUnits&&w(le.amountUnits),le.expectedDailyTraffic!=null&&k(le.expectedDailyTraffic),le.forecastInterval!=null&&S(le.forecastInterval),le.steeringInterval!=null&&E(le.steeringInterval)}g.useEffect(()=>{var Ie,Ge;if(!A)return;let le=null;try{const nt=window.localStorage.getItem(A);le=nt?JSON.parse(nt):null}catch{le=null}if(le){D(le);return}if(O){const nt=O.tolerance_bps??(O.tolerance?parseFloat(O.tolerance):void 0);D({tolerancePp:nt!=null?String(nt/100):"5",currency:((Ie=O.currency)==null?void 0:Ie.denomination)??"USD",amountUnits:((Ge=O.currency)==null?void 0:Ge.amount_units)==="minor"?"minor":"major",expectedDailyTraffic:O.expected_daily_traffic!=null?String(O.expected_daily_traffic):"",forecastInterval:O.forecast_interval_secs!=null?String(O.forecast_interval_secs):"",steeringInterval:O.steering_interval_secs!=null?String(O.steering_interval_secs):""})}},[A,O]);function I(){if(!A)return;const le={tolerancePp:m,currency:y,amountUnits:v,expectedDailyTraffic:j,forecastInterval:_,steeringInterval:N};try{window.localStorage.setItem(A,JSON.stringify(le))}catch{}G("Merchant settings saved — every new contract document will use them."),Vt()}const[X,Q]=g.useState(!1),[V,Y]=g.useState(null),[H,G]=g.useState(null),[$,F]=Nl(),[R,z]=g.useState(""),[U,ee]=g.useState("all"),[pe,re]=g.useState(null),[he,q]=g.useState(null),[W,ue]=g.useState(null),[te,ie]=g.useState(null),[me,ve]=g.useState(null),[Ne,je]=g.useState(null),[Me,Be]=g.useState(null),[tt,B]=g.useState(null);function se(le,Ie){M(Ge=>Ge.map(nt=>nt.key===le?{...nt,...Ie}:nt))}function de(le,Ie,Ge){M(nt=>nt.map(Nt=>{if(Nt.key!==le)return Nt;const ge=Nt.tiers.map((st,pt)=>Ge.targeted===!0?pt===Ie?{...st,...Ge}:{...st,targeted:!1}:pt===Ie?{...st,...Ge}:st);return{...Nt,tiers:ge}}))}function Ce(){const le={schema_version:1,routing_mode:"pace_guarded",tolerance:`${Math.round(parseFloat(m||"0")*100)}bps`,metric:"gmv",currency:{denomination:y.trim().toUpperCase(),amount_units:v},expected_daily_traffic:Lb(j),volume_contracts:P.map(Ie=>{const Ge={id:Ie.id.trim(),connector:Ie.connector.trim(),status:Ie.status,billing_cycle:{type:Ie.cycleType,anchor:parseInt(Ie.anchor,10)||0,timezone:Ie.timezone.trim()}};return Ie.archetype==="lumpsum"?{...Ge,archetype:"lumpsum",terms:{target:Lb(Ie.target),reward:Ie.rewardKind==="flat"?{kind:"flat",value:{flat_amount:Lb(Ie.flatAmount)}}:{kind:"percentage",value:{rebate_bps:parseInt(Ie.rebateBps,10)||0}}}}:{...Ge,archetype:"tiered",terms:{tiers:Ie.tiers.map(nt=>({kind:nt.kind,rate:nt.kind==="retroactive"?{rebate_bps:parseInt(nt.bps,10)||0}:{rate_bps:parseInt(nt.bps,10)||0},threshold:Lb(nt.threshold),targeted:nt.targeted,rebate_lag_days:parseInt(nt.rebateLagDays,10)||0,rebate_settlement:nt.rebateSettlement}))}}})};return _.trim()&&(le.forecast_interval_secs=parseInt(_,10)),N.trim()&&(le.steering_interval_secs=parseInt(N,10)),le}function fe(){f(""),p(""),M([xN()])}async function be(){if(e){Q(!0),Y(null),G(null);try{const le={name:d.trim(),description:h.trim()||`Volume commitments for ${e}`,created_by:e,algorithm_for:"volume_commitment",algorithm:{type:"volume_contract",data:Ce()}};await Ve("/routing/create",le),G(`“${d.trim()}” created — activate it from the list to hand it to the routing engine.`),fe(),u(),Vt()}catch(le){Y(le instanceof Error?le.message:"Failed to create contract document")}finally{Q(!1)}}}async function we(le){q(le),B(null);try{await Ve("/routing/activate",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to activate")}finally{q(null)}}async function Le(le){ue(le),B(null);try{await Ve("/routing/deactivate",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to deactivate")}finally{ue(null)}}async function Oe(le){ie(le),B(null);try{await Ve("/routing/delete",{created_by:e,routing_algorithm_id:le}),u()}catch(Ie){B(Ie instanceof Error?Ie.message:"Failed to delete")}finally{ie(null)}}function He(le,Ie){return i.jsxs("div",{className:"mb-1.5 flex items-baseline justify-between gap-2",children:[i.jsx("span",{className:ts,children:le}),Ie?i.jsx("span",{className:"text-[11px] text-slate-400 dark:text-[#8d96aa]",children:Ie}):null]})}const vt=`${v} ${y.toUpperCase()} units`,bt=$.get("contract"),Bt=bt==="new",wt=bt==="settings";function zt(le){F(Ie=>{const Ge=new URLSearchParams(Ie);return Ge.set("contract",le),Ge})}function Ut(){zt("new")}function Un(){zt("settings")}function Vt(){F(le=>{const Ie=new URLSearchParams(le);return Ie.delete("contract"),Ie})}const Kt=l.filter(le=>{const Ie=le.id===c;if(U==="active"&&!Ie||U==="inactive"&&Ie)return!1;if(R.trim()){const Ge=R.trim().toLowerCase();if(!le.name.toLowerCase().includes(Ge)&&!le.id.toLowerCase().includes(Ge))return!1}return!0}),dt=i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[He("Routing mode","only supported mode"),i.jsx(Yo,{triggerClassName:tr,value:"pace_guarded",onChange:()=>{},disabled:!0,options:[{value:"pace_guarded",label:"Pace-guarded (auth-rate first)"}]})]}),i.jsxs("div",{children:[He("Tolerance","percentage points"),i.jsx("input",{className:tr,type:"number",min:0,step:.5,placeholder:"5",value:m,onChange:le=>x(le.target.value)})]}),i.jsxs("div",{children:[He("Metric","only supported metric"),i.jsx(Yo,{triggerClassName:tr,value:"gmv",onChange:()=>{},disabled:!0,options:[{value:"gmv",label:"GMV (money processed)"}]})]}),i.jsxs("div",{children:[He("Currency"),i.jsx(Cx,{className:tr,value:y,onChange:b,options:xFe,placeholder:"USD"})]}),i.jsxs("div",{children:[He("Amount units"),i.jsx(Yo,{triggerClassName:tr,value:v,onChange:le=>w(le),options:[{value:"major",label:"Major (6000000 = $6M)"},{value:"minor",label:"Minor (600000000 = $6M in cents)"}]})]}),i.jsxs("div",{children:[He("Expected daily traffic",vt),i.jsx("input",{className:tr,placeholder:"800000",value:j,onChange:le=>k(le.target.value)})]}),i.jsxs("div",{children:[He("Forecast interval","seconds, optional"),i.jsx("input",{className:tr,type:"number",min:60,placeholder:"engine default",value:_,onChange:le=>S(le.target.value)})]}),i.jsxs("div",{children:[He("Steering interval","seconds, optional"),i.jsx("input",{className:tr,type:"number",min:60,placeholder:"engine default",value:N,onChange:le=>E(le.target.value)})]})]});return wt?i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-start justify-between gap-4",children:i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:Vt,className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Contracts"]}),i.jsx(qr,{title:"Merchant Settings",description:"How the engine treats every volume contract for this merchant — routing mode, approval tolerance, units and expected traffic. Applied to each new contract document.",className:"truncate"})]})}),i.jsx(Te,{children:i.jsxs(ze,{children:[i.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[i.jsx(Hi,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ts,children:"Merchant-level settings"})]}),dt]})}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(ke,{onClick:I,disabled:!e||!n,children:"Save settings"}),i.jsx("button",{type:"button",onClick:Vt,className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"max-w-[57ch] text-sm text-slate-500 dark:text-[#78849a]",children:"Existing documents keep the settings they were created with."})]})]}):Bt?i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-start justify-between gap-4",children:i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:Vt,className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Hp,{size:16})," Volume Contracts"]}),i.jsx(qr,{title:"Create Contract Document",description:"Express PSP volume-commitment contracts — goals, rebates and billing cycles. Nothing here changes routing until the document is activated.",className:"truncate"})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsx(bA,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Hi,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ts,children:"Merchant-level settings"}),i.jsx("span",{className:"text-sm text-slate-500 dark:text-[#8d96aa]",children:j.trim()?"— applied to this document when it is created.":"— expected daily traffic is not set yet; the document cannot be created without it."})]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:Un,children:"Edit settings"})]})}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[He("Name"),i.jsx("input",{className:tr,placeholder:"q3_volume_contracts",value:d,onChange:le=>f(le.target.value)})]}),i.jsxs("div",{children:[He("Description"),i.jsx("input",{className:tr,placeholder:"Q3 PSP volume commitments",value:h,onChange:le=>p(le.target.value)})]})]}),i.jsxs("div",{className:"space-y-4",children:[P.map((le,Ie)=>i.jsxs(bA,{children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsxs("span",{className:ts,children:["Contract ",Ie+1]}),P.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>M(Ge=>Ge.filter(nt=>nt.key!==le.key)),"aria-label":"Remove contract",children:i.jsx(Cn,{size:14})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[He("Contract ID"),i.jsx("input",{className:tr,placeholder:"adyen_2026_lumpsum",value:le.id,onChange:Ge=>se(le.key,{id:Ge.target.value})})]}),i.jsxs("div",{children:[He("Connector","exact gateway name"),i.jsx(Cx,{className:tr,value:le.connector,onChange:Ge=>se(le.key,{connector:Ge}),options:gFe,placeholder:"adyen"})]}),i.jsxs("div",{children:[He("Status"),i.jsx(Yo,{triggerClassName:tr,value:le.status,onChange:Ge=>se(le.key,{status:Ge}),options:[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}]})]}),i.jsxs("div",{children:[He("Billing cycle"),i.jsx(Yo,{triggerClassName:tr,value:le.cycleType,onChange:Ge=>se(le.key,{cycleType:Ge}),options:[{value:"calendar_month",label:"Calendar month"},{value:"calendar_quarter",label:"Calendar quarter"},{value:"calendar_year",label:"Calendar year"},{value:"test_minutes",label:"Test cycle (minutes)"}]})]}),i.jsxs("div",{children:[He("Anchor",vFe[le.cycleType]),i.jsx("input",{className:tr,type:"number",min:1,value:le.anchor,onChange:Ge=>se(le.key,{anchor:Ge.target.value})})]}),le.cycleType==="test_minutes"&&i.jsx("div",{className:"sm:col-span-3",children:i.jsxs("p",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-400",children:["Testing only. The cycle lasts ",le.anchor||"?"," minutes and each minute counts as one contract day, so a full period — pacing, elimination, steering — plays out while you watch. Drive traffic at it from the Decision Simulator; timezone is ignored."]})}),i.jsxs("div",{children:[He("Timezone","IANA"),i.jsx(Cx,{className:tr,value:le.timezone,onChange:Ge=>se(le.key,{timezone:Ge}),options:yFe,placeholder:"UTC"})]})]}),i.jsxs("div",{className:"mt-4",children:[He("Archetype"),i.jsx("div",{className:"flex gap-2",children:[["lumpsum","Lumpsum — reward on hitting a target"],["tiered","Tiered — rebate ladder by threshold"]].map(([Ge,nt])=>i.jsx("button",{type:"button",onClick:()=>se(le.key,{archetype:Ge}),className:`rounded-full border px-4 py-1.5 text-xs font-medium transition-colors ${le.archetype===Ge?"border-brand-600 bg-brand-600 text-white":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-[#9ca7ba] dark:hover:bg-[#151518]"}`,children:nt},Ge))})]}),le.archetype==="lumpsum"?i.jsxs("div",{className:"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-3",children:[i.jsxs("div",{children:[He("Target",vt),i.jsx("input",{className:tr,placeholder:"6000000",value:le.target,onChange:Ge=>se(le.key,{target:Ge.target.value})})]}),i.jsxs("div",{children:[He("Reward kind"),i.jsx(Yo,{triggerClassName:tr,value:le.rewardKind,onChange:Ge=>se(le.key,{rewardKind:Ge}),options:[{value:"flat",label:"Flat amount"},{value:"percentage",label:"Percentage rebate"}]})]}),le.rewardKind==="flat"?i.jsxs("div",{children:[He("Flat amount",vt),i.jsx("input",{className:tr,placeholder:"15000",value:le.flatAmount,onChange:Ge=>se(le.key,{flatAmount:Ge.target.value})})]}):i.jsxs("div",{children:[He("Rebate","basis points"),i.jsx("input",{className:tr,type:"number",min:1,max:1e4,placeholder:"25",value:le.rebateBps,onChange:Ge=>se(le.key,{rebateBps:Ge.target.value})})]})]}):i.jsxs("div",{className:"mt-4 space-y-3",children:[le.tiers.map((Ge,nt)=>i.jsxs("div",{className:"rounded-xl border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] font-medium text-slate-600 dark:text-[#9ca7ba]",children:[i.jsx("input",{type:"radio",name:`targeted-${le.key}`,checked:Ge.targeted,onChange:()=>de(le.key,nt,{targeted:!0}),disabled:Ge.kind==="marginal"}),"Targeted tier (the goal the engine steers for)"]}),le.tiers.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>se(le.key,{tiers:le.tiers.filter((Nt,ge)=>ge!==nt)}),"aria-label":"Remove tier",children:i.jsx(Cn,{size:13})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-5",children:[i.jsxs("div",{children:[He("Kind"),i.jsx(Yo,{triggerClassName:tr,value:Ge.kind,onChange:Nt=>de(le.key,nt,{kind:Nt,...Nt==="marginal"?{targeted:!1}:{}}),options:[{value:"retroactive",label:"Retroactive (whole period)"},{value:"marginal",label:"Marginal (above threshold)"}]})]}),i.jsxs("div",{children:[He("Threshold",vt),i.jsx("input",{className:tr,placeholder:"8000000",value:Ge.threshold,onChange:Nt=>de(le.key,nt,{threshold:Nt.target.value})})]}),i.jsxs("div",{children:[He(Ge.kind==="retroactive"?"Rebate":"Rate","bps"),i.jsx("input",{className:tr,type:"number",min:1,max:1e4,placeholder:"20",value:Ge.bps,onChange:Nt=>de(le.key,nt,{bps:Nt.target.value})})]}),i.jsxs("div",{children:[He("Rebate lag","days"),i.jsx("input",{className:tr,type:"number",min:0,max:365,value:Ge.rebateLagDays,onChange:Nt=>de(le.key,nt,{rebateLagDays:Nt.target.value})})]}),i.jsxs("div",{children:[He("Settlement"),i.jsx(Yo,{triggerClassName:tr,value:Ge.rebateSettlement,onChange:Nt=>de(le.key,nt,{rebateSettlement:Nt}),options:[{value:"cash",label:"Cash"},{value:"credit_note",label:"Credit note"}]})]})]})]},nt)),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:()=>se(le.key,{tiers:[...le.tiers,GX(!1)]}),children:[i.jsx(Qn,{size:13})," Add tier"]})]})]},le.key)),i.jsxs(ke,{variant:"secondary",onClick:()=>M(le=>[...le,xN()]),children:[i.jsx(Qn,{size:14})," Add PSP contract"]})]})]}),i.jsx(_t,{error:V}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsxs(ke,{onClick:be,disabled:X||!e||!d.trim()||!j.trim()||!n,children:[X?i.jsx(mt,{size:14}):null," ",X?"Saving...":"Create Contract"]}),i.jsx(ke,{variant:"secondary",size:"sm",onClick:fe,disabled:X,children:"Clear"}),i.jsx("button",{type:"button",onClick:Vt,className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"max-w-[57ch] text-sm text-slate-500 dark:text-[#78849a]",children:j.trim()?"A new document is created inactive — activate it from the contracts list.":"Set the expected daily traffic under Merchant settings before creating a document."})]})]}):i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:t?i.jsx("p",{className:gc,children:"PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic."}):i.jsx(qr,{title:"Volume Contracts",description:"PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic."})}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(ke,{variant:"secondary",onClick:Un,disabled:!n,children:[i.jsx(Hi,{size:15})," Merchant settings"]}),i.jsxs(ke,{onClick:Ut,disabled:!n,children:[i.jsx(Qn,{size:15})," Create Contract"]})]})]}),tt&&i.jsx(_t,{error:tt}),H&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:H}),i.jsx(Te,{className:"!rounded-[18px]",children:e?s?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):l.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No contract documents yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase leading-4 tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Document Name & ID",value:R,onChange:z,ariaLabel:"Filter documents by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:U,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:le=>ee(le),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Billing Cycle"}),i.jsx("th",{className:"px-5 py-3.5",children:"Created"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Kt.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No documents match these filters."}),i.jsx("button",{type:"button",onClick:()=>{ee("all"),z("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Kt.map(le=>{var st,pt,Ht;const Ie=le.id===c,Ge=pe===le.id,nt=(st=le.algorithm_data??le.algorithm)==null?void 0:st.data,Nt=wFe(le),ge=Ie?"Deactivate this document first":n?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{onClick:()=>re(Ge?null:le.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${Ie?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4 align-top",children:i.jsxs("div",{className:"flex items-start gap-2",children:[Ge?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:le.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:le.id})]})]})}),i.jsx("td",{className:"px-5 py-4 align-top",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold leading-4 ${Ie?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"}`,children:Ie?"Active":"Inactive"})}),i.jsxs("td",{className:"max-w-[260px] px-5 py-4 align-top",children:[i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",children:qX(nt)}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#78849a]",children:[((pt=nt==null?void 0:nt.volume_contracts)==null?void 0:pt.length)??0," PSP commitment",(((Ht=nt==null?void 0:nt.volume_contracts)==null?void 0:Ht.length)??0)===1?"":"s"]})]}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 align-top text-[13px] leading-[18px] text-slate-500 dark:text-[#78849a]",children:Nt?i.jsxs("span",{title:Nt.full,children:[Nt.date,i.jsx("span",{className:"block text-[12px] leading-4 text-slate-500 dark:text-[#78849a]",children:Nt.time})]}):"—"}),i.jsx("td",{className:"px-5 py-4 align-top",onClick:gn=>gn.stopPropagation(),children:i.jsx(HT,{items:[Ie?{label:W===le.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>je(le.id),disabled:W===le.id||!n}:{label:he===le.id?"Activating…":"Activate",icon:bT,tone:"positive",onSelect:()=>c?ve(le.id):we(le.id),disabled:he===le.id||!n},{label:te===le.id?"Deleting…":"Delete",icon:Cn,tone:"danger",onSelect:()=>Be(le.id),disabled:!!ge||te===le.id,hint:ge}]})})]},le.id),Ge?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsx("td",{colSpan:5,className:"bg-slate-50/60 px-5 py-5 dark:bg-[#0d1017]",children:i.jsx(_Fe,{config:nt})})},`${le.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load contract documents."})}),i.jsx(qs,{open:me!=null,title:"Replace the active document?",description:"Another contract document is currently active. Activating this one hands the engine this document instead.",confirmLabel:"Activate",variant:"primary",onConfirm:()=>{me&&we(me),ve(null)},onCancel:()=>ve(null)}),i.jsx(qs,{open:Ne!=null,title:"Deactivate this document?",description:"The routing engine stops receiving volume-commitment configuration until another document is activated.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{Ne&&Le(Ne),je(null)},onCancel:()=>je(null)}),i.jsx(qs,{open:Me!=null,title:"Delete this document?",description:"This permanently removes the contract document. Only inactive documents can be deleted.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{Me&&Oe(Me),Be(null)},onCancel:()=>Be(null)})]})}const Bx="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function p9(t,e){return e&&!t.includes(e)?[e,...t]:[...t]}const CFe=[{key:"card_network",label:"Card network"},{key:"currency",label:"Currency"},{key:"country",label:"Country"},{key:"auth_type",label:"Auth type"},{key:"card_is_in",label:"Card BIN",note:"High cardinality — not auto-calibrated"}],EFe=["card_network","currency","country","auth_type"];async function AFe(t){var a,s;let e=[],n=[];try{const o=await Lt(`/config-sr-dimension/${t}`);e=((a=o==null?void 0:o.paymentInfo)==null?void 0:a.fields)??[],n=((s=o==null?void 0:o.paymentInfo)==null?void 0:s.udfs)??[]}catch{}const r=Array.from(new Set([...e,...EFe]));await Ve("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:n,fields:r}})}const $g=Dd(t=>t===""||t===null||t===void 0?null:t,qd().nullable()),OFe=b2({paymentMethodType:qd().min(1),paymentMethod:qd().min(1),cardNetwork:$g,currency:$g,country:$g,authType:$g,source:$g,bucketSize:mX.number().int().positive(),hedgingPercent:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),latencyThreshold:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable())}),TFe=b2({defaultBucketSize:mX.number().int().positive(),defaultSuccessRate:Dd(t=>t===""||t===null?null:Number(t),Rd().min(0).max(1).nullable()),defaultLatencyThreshold:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),defaultHedgingPercent:Dd(t=>t===""||t===null?null:Number(t),Rd().nullable()),margin:Dd(t=>t===""||t===null?null:Number(t),Rd().min(0).max(100).nullable()),subLevelInputConfig:pX(OFe)}),PFe=["autopilot","manual","flags","cost","volume"],MFe=["manual","cost","volume"],RFe=["scoring","elimination","dimensions"],DFe=[{id:"scoring",icon:Hi,title:"Scoring defaults",blurb:"Bucket size, hedging & per-payment-type overrides"},{id:"elimination",icon:dH,title:"Elimination",blurb:"Drop a PSP whose auth rate falls too low"},{id:"dimensions",icon:xT,title:"SR Dimensions",blurb:"Attributes scoring splits clusters on"}];function IFe(){const t=Er(R=>R.merchantId),e=xr(R=>{var z;return((z=R.user)==null?void 0:z.merchantId)||""}),n=t||e,a=Al(n??void 0).isEnabled("autopilot"),[s,o]=Nl(),l=s.get("tab"),c=PFe.includes(l)?l:"autopilot",u=R=>{o(z=>{const U=new URLSearchParams(z);return R==="autopilot"?U.delete("tab"):U.set("tab",R),U},{replace:!0})},d=s.get("section"),f=RFe.includes(d)?d:"scoring",h=R=>{o(z=>{const U=new URLSearchParams(z);return R==="scoring"?U.delete("section"):U.set("section",R),U},{replace:!0})};g.useEffect(()=>{if(c!=="manual")return;d!==(f==="scoring"?null:f)&&h(f)},[c,f,d]);const[p,m]=g.useState(!1),[x,y]=g.useState(null),[b,v]=g.useState(!1),[w,j]=g.useState(!1),{data:k,isLoading:_,mutate:S}=ut(n?["/rule/get","successRate",n]:null,()=>Ve("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{register:N,control:E,handleSubmit:P,reset:M,watch:A,formState:{errors:O}}=J8e({resolver:t6e(TFe),defaultValues:{defaultBucketSize:200,defaultSuccessRate:.5,defaultLatencyThreshold:null,defaultHedgingPercent:null,margin:null,subLevelInputConfig:[]}});g.useEffect(()=>{var R;if((R=k==null?void 0:k.config)!=null&&R.data){const z=k.config.data,U=(z.subLevelInputConfig??[]).map(ee=>({paymentMethodType:ee.paymentMethodType,paymentMethod:ee.paymentMethod,cardNetwork:ee.cardNetwork??null,currency:ee.currency??null,country:ee.country??null,authType:ee.authType??null,source:ee.source??null,bucketSize:ee.bucketSize,hedgingPercent:ee.hedgingPercent??null,latencyThreshold:ee.latencyThreshold??null}));M({defaultBucketSize:z.defaultBucketSize??200,defaultSuccessRate:z.defaultSuccessRate??.5,defaultLatencyThreshold:z.defaultLatencyThreshold??null,defaultHedgingPercent:z.defaultHedgingPercent??null,margin:z.margin!=null?z.margin*100:null,subLevelInputConfig:U}),j(U.length>0)}},[k,M]);const{fields:D,append:I,remove:X}=X8e({control:E,name:"subLevelInputConfig"}),Q=A("subLevelInputConfig"),V=w||D.length>0;function Y(){j(!0),I({paymentMethodType:"card",paymentMethod:"credit",cardNetwork:null,currency:null,country:null,authType:null,source:null,bucketSize:20,hedgingPercent:null,latencyThreshold:null})}function H(R){X(R),D.length<=1&&j(!1)}async function G(){try{await Ve("/merchant-account/create",{merchant_id:n,gateway_success_rate_based_decider_input:null})}catch{}}async function $(R){if(!n){y("Set a Merchant ID first.");return}m(!0),y(null),v(!1);try{k||await G(),await Ve(k?"/rule/update":"/rule/create",{merchant_id:n,config:{type:"successRate",data:{defaultBucketSize:R.defaultBucketSize,defaultSuccessRate:R.defaultSuccessRate,defaultLatencyThreshold:R.defaultLatencyThreshold,defaultHedgingPercent:R.defaultHedgingPercent,subLevelInputConfig:R.subLevelInputConfig.length>0?R.subLevelInputConfig:null}}}),v(!0),S()}catch(z){y(z instanceof Error?z.message:String(z))}finally{m(!1)}}const F=R=>`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${c===R?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-700 dark:hover:text-slate-300"}`;return i.jsxs("div",{className:`space-y-6 ${MFe.includes(c)?"w-full":"max-w-4xl"}`,children:[i.jsx("div",{children:i.jsx(qr,{title:"Multi Objective Routing",description:"Dynamic gateway scoring based on real-time success rates."})}),!n&&i.jsx(Fa,{tone:"warning",children:"Set a Merchant ID in the top bar to load and save configuration."}),i.jsx("div",{className:"border-b border-slate-200 dark:border-[#1c1c23]",children:i.jsxs("nav",{className:"-mb-px flex gap-1",children:[i.jsx("button",{type:"button",className:F("autopilot"),onClick:()=>u("autopilot"),children:"Autopilot"}),i.jsx("button",{type:"button",className:F("manual"),onClick:()=>u("manual"),children:"Manual"}),i.jsx("button",{type:"button",className:F("flags"),onClick:()=>u("flags"),children:"Feature Flags"}),i.jsx("button",{type:"button",className:F("cost"),onClick:()=>u("cost"),children:"Cost Estimation"}),i.jsxs("button",{type:"button",className:`${F("volume")} inline-flex items-center gap-1.5`,onClick:()=>u("volume"),children:["Volume Contracts",i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase leading-4 tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400",children:"Beta"})]})]})}),_?i.jsx("div",{className:"flex justify-center py-12",children:i.jsx(mt,{})}):i.jsxs(i.Fragment,{children:[c==="autopilot"&&i.jsx(FFe,{merchantId:n}),c==="manual"&&i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx($Fe,{active:f,onSelect:h}),i.jsxs("div",{className:"min-w-0 space-y-6",children:[f==="scoring"&&i.jsx("div",{className:"space-y-6",children:i.jsxs("form",{onSubmit:P($),className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"Scoring defaults"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Applied to every payment type unless an override below replaces them."})]}),i.jsxs(ze,{className:"grid gap-6 md:grid-cols-3",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Bucket size"}),i.jsx("input",{type:"number",placeholder:"50–200",...N("defaultBucketSize"),className:Bx}),O.defaultBucketSize&&i.jsx("p",{className:"text-[13px] text-red-600 leading-[18px]",children:O.defaultBucketSize.message}),i.jsx("p",{className:ku,children:"Recent payments per gateway score. Lower adapts faster, higher stays steadier."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Hedging %"}),i.jsx("input",{type:"number",step:"0.1",...N("defaultHedgingPercent"),placeholder:"10",className:Bx}),i.jsx("p",{className:ku,children:"Traffic share sent to non-top gateways to keep their scores fresh. Needs Explore-exploit on."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Latency threshold (s)"}),i.jsx("input",{type:"number",...N("defaultLatencyThreshold"),placeholder:"300",className:Bx}),i.jsx("p",{className:ku,children:"Timeouts inside this window count as outages, outside it as slow performance."})]})]})]}),i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h2",{className:La,children:"Sub-level overrides"}),i.jsx("p",{className:`mt-1 ${gc}`,children:"Optional per payment-method-type overrides for the settings above."})]}),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",onClick:Y,children:[i.jsx(Qn,{size:14})," Add Override"]})]}),V&&i.jsx(ze,{className:"overflow-x-auto p-0",children:D.length?i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] border-b border-slate-200 dark:border-[#1c1c24] bg-slate-50 dark:bg-[#0a0a0f] leading-4",children:[i.jsx("th",{className:"px-4 py-2",children:"Source"}),i.jsx("th",{className:"px-4 py-2",children:"Method Type"}),i.jsx("th",{className:"px-4 py-2",children:"Method"}),i.jsx("th",{className:"px-4 py-2",children:"Card Network"}),i.jsx("th",{className:"px-4 py-2",children:"Currency"}),i.jsx("th",{className:"px-4 py-2",children:"Country"}),i.jsx("th",{className:"px-4 py-2",children:"Auth Type"}),i.jsx("th",{className:"px-4 py-2",children:"Bucket Size"}),i.jsx("th",{className:"px-4 py-2",children:"Hedging %"}),i.jsx("th",{className:"px-4 py-2",children:"Latency Threshold (s)"}),i.jsx("th",{className:"px-4 py-2"})]})}),i.jsx("tbody",{children:D.map((R,z)=>{var ve,Ne,je,Me;const U=((ve=Q==null?void 0:Q[z])==null?void 0:ve.paymentMethodType)||"",ee=((Ne=Q==null?void 0:Q[z])==null?void 0:Ne.paymentMethod)||"",pe=CAe[U.toLowerCase()]||["credit","debit"],re=p9(NAe,U),he=p9(pe,ee),q=a&&((je=Q==null?void 0:Q[z])==null?void 0:je.source)==="autopilot",W=q?"Managed by Autopilot — turn Autopilot off to edit":void 0,ue="text-sm text-slate-600 dark:text-slate-300",te=Q==null?void 0:Q[z],ie=Be=>Be==null||Be===""?"Any":Be,me=Be=>Be==null||Be===""?"—":String(Be);return i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24] hover:bg-slate-50 dark:bg-[#0f0f16] transition-colors",children:[i.jsxs("td",{className:"px-4 py-2",children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.source`)}),((Me=Q==null?void 0:Q[z])==null?void 0:Me.source)==="autopilot"?i.jsx(Pe,{variant:"green",children:"Auto"}):i.jsx(Pe,{variant:"gray",children:"Manual"})]}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.paymentMethodType`)}),i.jsx("span",{className:ue,title:W,children:U||"—"})]}):i.jsx("select",{...N(`subLevelInputConfig.${z}.paymentMethodType`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:re.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.paymentMethod`)}),i.jsx("span",{className:ue,title:W,children:ee||"—"})]}):i.jsx("select",{...N(`subLevelInputConfig.${z}.paymentMethod`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:he.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.cardNetwork`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.cardNetwork)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.cardNetwork`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.currency`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.currency)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.currency`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.country`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.country)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.country`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.authType`)}),i.jsx("span",{className:ue,title:W,children:ie(te==null?void 0:te.authType)})]}):i.jsx("input",{type:"text",...N(`subLevelInputConfig.${z}.authType`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.bucketSize`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.bucketSize)})]}):i.jsx("input",{type:"number",...N(`subLevelInputConfig.${z}.bucketSize`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.hedgingPercent`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.hedgingPercent)})]}):i.jsx("input",{type:"number",step:"0.1",...N(`subLevelInputConfig.${z}.hedgingPercent`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...N(`subLevelInputConfig.${z}.latencyThreshold`)}),i.jsx("span",{className:ue,title:W,children:me(te==null?void 0:te.latencyThreshold)})]}):i.jsx("input",{type:"number",...N(`subLevelInputConfig.${z}.latencyThreshold`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:q?i.jsx("span",{className:"text-slate-500 dark:text-slate-400",title:"Managed by Autopilot — turn Autopilot off to remove",children:i.jsx(Cn,{size:14})}):i.jsx("button",{type:"button",onClick:()=>H(z),className:"text-slate-500 hover:text-red-600",children:i.jsx(Cn,{size:14})})})]},R.id)})})]}):i.jsx("div",{className:"px-4 py-6 text-sm text-slate-500",children:"No overrides yet — defaults apply to all payment types."})})]}),i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Configuration saved."}),i.jsx(ke,{type:"submit",disabled:p||!n,children:p?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save changes"})]})}),f==="elimination"&&i.jsx(UFe,{merchantId:n}),f==="dimensions"&&i.jsx(BFe,{merchantId:n})]})]}),c==="flags"&&i.jsx(zFe,{merchantId:n}),c==="cost"&&i.jsx(fFe,{merchantId:n}),c==="volume"&&i.jsx(NFe,{embedded:!0})]})]})}function $Fe({active:t,onSelect:e}){return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:DFe.map(({id:n,icon:r,title:a,blurb:s})=>{const o=t===n;return i.jsxs("button",{type:"button",onClick:()=>e(n),"aria-current":o?"page":void 0,className:`flex shrink-0 items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors lg:w-full ${o?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(r,{size:18,className:`mt-0.5 shrink-0 ${o?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:a}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:s})]})]},n)})})}function LFe({on:t,onClick:e,disabled:n}){return i.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:n,onClick:e,className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${t?"bg-brand-500":"bg-slate-300 dark:bg-slate-600"}`,children:i.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${t?"translate-x-6":"translate-x-1"}`})})}function FFe({merchantId:t}){const e=Al(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null),[c,u]=g.useState(!1),d=e.isEnabled("autopilot");async function f(p){r("master"),s(null),l(null);try{await e.setFeatureEnabled("autopilot",p),p?(await e.setFeatureEnabled("multi-objective-routing",!0),await e.setFeatureEnabled("auto-calibration",!0),t&&await AFe(t)):(await e.setFeatureEnabled("elimination",!1),await e.setFeatureEnabled("multi-objective-routing",!1),await e.setFeatureEnabled("auto-calibration",!1)),l(p?"Autopilot on — the engine self-tunes to your traffic (cost savings also enabled).":"Autopilot off — routing uses your Manual configuration.")}catch(m){s(m instanceof Error?m.message:String(m))}finally{r(null)}}const h=!t||e.isLoading;return i.jsxs("div",{className:"space-y-4",children:[a&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:a}),o&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:o}),i.jsx(Te,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:La,children:"Autopilot mode"}),d?i.jsx(Pe,{variant:"green",children:"On"}):i.jsx(Pe,{variant:"gray",children:"Off"}),d&&i.jsx("button",{type:"button",onClick:()=>u(p=>!p),"aria-expanded":c,"aria-label":"Show static vs automatic tuning illustration",className:`inline-flex items-center rounded-full p-0.5 transition-colors ${c?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300"}`,children:i.jsx(Qu,{className:"h-4 w-4"})})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb] max-w-[57ch]",children:"Let the engine self-tune routing to your traffic — it auto-configures the Learning window and Discovery share from your volume. Turn off to route purely by your Manual configuration."})]}),i.jsx(LFe,{on:d,disabled:h||n!==null,onClick:()=>f(!d)})]})}),i.jsx(Te,{className:d?"":"opacity-60",children:i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Always route to the best-performing PSP"}),i.jsx(Pe,{variant:"gray",children:"SRv3"}),i.jsx(Pe,{variant:"green",children:"Active"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb]",children:"Real-time success-rate routing. Always on — it is the base routing path."})]})})}),d&&c&&i.jsx(s6e,{})]})}const m9=[{feature:"gsm-scoring-filter",title:"GSM scoring filter",description:"Skip gateway penalization for failures classified by GSM as user or issuer-originated. Keeps gateway scores accurate by excluding faults that are not the gateway's responsibility."},{feature:"explore-exploit-srv3",title:"Explore-exploit on SRv3 (Card)",description:"Keeps all gateway ratings fresh by regularly sending a small share of payments to every gateway — not just the top performer. This ensures the system can quickly detect when a backup gateway becomes better than the current top, and reroute accordingly. The Hedging % setting controls how large this share is."},{feature:"ab-test-real-payments",title:"A/B test on real payments",description:"Routes live production traffic through the active A/B test algorithm. When enabled, each payment is deterministically assigned to a control or variant arm based on its payment ID. Disable at any time to fall back to standard SR routing with no impact on in-flight payments."},{feature:"multi-objective-routing",title:"Cost savings (optimize for economic value)",description:"Multi-objective routing: alongside approval rate, weighs each PSP's expected cost and picks the highest expected-value option. Works with either the Autopilot or Manual scoring config.",docsUrl:"https://docs.hyperswitch.io/integration-guide/workflows/intelligent-routing/routing-strategies/multi-objective-routing"},{feature:"sticky-routing",title:"Sticky routing (pin returning customers)",description:"Routes each returning customer to the connector of their last successful payment for that payment method. Successes are counted per customer and method from payment feedback; the pin only applies when that connector is eligible and healthy, and explicit priority rules always take precedence."},{feature:"volume-contracts",title:"Volume contracts (meet PSP commitments)",description:"Multi-objective routing: keeps approval-rate routing in charge, but when a contracted volume commitment is drifting behind pace, steers a little extra volume to that PSP — only onto payments where it approves about as well, so approvals barely move. Runs alongside Cost savings; when both are on, a behind-pace commitment takes priority for eligible payments."}];function BFe({merchantId:t}){const e=Ro(),{data:n,mutate:r}=ut(t?`/config-sr-dimension/${t}`:null,Lt,{revalidateOnFocus:!1,shouldRetryOnError:!1}),[a,s]=g.useState(null),[o,l]=g.useState([]),[c,u]=g.useState(!1),[d,f]=g.useState(null),[h,p]=g.useState(!1);g.useEffect(()=>{var b,v;n&&(s(((b=n.paymentInfo)==null?void 0:b.fields)??[]),l(((v=n.paymentInfo)==null?void 0:v.udfs)??[]))},[n]);const m=a??[];function x(b){p(!1),s(v=>{const w=v??[];return w.includes(b)?w.filter(j=>j!==b):[...w,b]})}async function y(){if(!(!t||a==null)){u(!0),f(null),p(!1);try{await Ve("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:o,fields:a}}),p(!0),r()}catch(b){f(b instanceof Error?b.message:String(b))}finally{u(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"SR scoring dimensions"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Attributes SR scoring splits clusters on. More dimensions = finer, more responsive scores, but more clusters (each needs its own volume to score well). Changing this re-buckets scores. Autopilot enables the low-cardinality dimensions automatically."})]}),i.jsx(ze,{className:"space-y-1",children:CFe.map(({key:b,label:v,note:w})=>i.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none py-1.5",children:[i.jsx("input",{type:"checkbox",checked:m.includes(b),onChange:()=>x(b),disabled:!t||a==null,className:"rounded border-slate-300 dark:border-slate-600 disabled:cursor-not-allowed"}),i.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-200",children:v}),w&&i.jsx("span",{className:"text-[11px] text-amber-700 leading-4",children:w})]},b))})]}),i.jsx(_t,{error:d}),h&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"SR dimensions saved."}),i.jsx(ke,{onClick:y,disabled:c||!t||a==null||!e,children:c?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save SR Dimensions"})]})}function zFe({merchantId:t}){const e=Al(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null);async function c(u,d){var f;r(u),s(null),l(null);try{await e.setFeatureEnabled(u,d);const h=((f=m9.find(p=>p.feature===u))==null?void 0:f.title)??u;s(`${h} ${d?"enabled":"disabled"}.`)}catch(h){l(h instanceof Error?h.message:String(h))}finally{r(null)}}return i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h2",{className:La,children:"Scoring behaviour flags"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Merchant-level toggles that affect how SR scores are computed and how traffic is explored."})]}),o&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:o}),a&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:a}),i.jsx(Te,{children:m9.map(({feature:u,title:d,description:f,docsUrl:h},p)=>{const m=e.isEnabled(u);return i.jsxs("div",{className:`flex flex-wrap items-center justify-between gap-4 px-5 py-4 ${p>0?"border-t border-slate-100 dark:border-[#222226]":""}`,children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:d}),h&&i.jsx("a",{href:h,target:"_blank",rel:"noreferrer","aria-label":`${d} — documentation`,title:"Learn more",className:"inline-flex items-center rounded-full p-0.5 text-slate-500 transition-colors hover:text-brand-600 dark:text-slate-400 dark:hover:text-brand-400",children:i.jsx(Qu,{className:"h-4 w-4"})}),e.isLoading?i.jsx(Pe,{variant:"gray",children:"Checking"}):m?i.jsx(Pe,{variant:"green",children:"Enabled"}):null]}),i.jsx("p",{className:`mt-1 ${ku} max-w-[68ch]`,children:f})]}),i.jsx("div",{children:m?i.jsxs(ke,{size:"sm",variant:"danger",onClick:()=>c(u,!1),disabled:!t||n===u||e.isLoading,children:[i.jsx(Tm,{size:13}),n===u?"Disabling":"Disable"]}):i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>c(u,!0),disabled:!t||n===u||e.isLoading,children:n===u?"Enabling":"Enable"})})]},u)})})]})}function UFe({merchantId:t}){var j;const e=Ro(),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),{data:y,mutate:b}=ut(t?["rule-elimination",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});g.useEffect(()=>{var k,_;if((k=y==null?void 0:y.config)!=null&&k.data){const S=y.config.data;r(String(S.threshold)),s(((_=S.txnLatency)==null?void 0:_.gatewayLatency)!=null?String(S.txnLatency.gatewayLatency):"")}},[y]);async function v(){if(!t)return;const k=parseFloat(n);if(isNaN(k)||k<0||k>1){u("Threshold must be a number between 0 and 1.");return}l(!0),u(null),f(!1);try{const _=y?"/rule/update":"/rule/create",S=a!==""?parseFloat(a):null;await Ve(_,{merchant_id:t,config:{type:"elimination",data:{threshold:k,txnLatency:S!=null?{gatewayLatency:S}:null}}}),f(!0),b()}catch(_){u(_ instanceof Error?_.message:String(_))}finally{l(!1)}}async function w(){if(t){p(!0);try{await Ve("/rule/delete",{merchant_id:t,algorithm:"elimination"}),r(""),s(""),b(void 0,{revalidate:!1})}catch(k){u(k instanceof Error?k.message:String(k))}finally{p(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[t&&((j=y==null?void 0:y.config)==null?void 0:j.data)&&i.jsxs(Te,{children:[i.jsxs(jt,{className:"flex flex-row items-center justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:La,children:"Elimination Configuration"}),i.jsxs("p",{className:`mt-1 ${gc}`,children:["Elimination routing is active · threshold ",y.config.data.threshold]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Pe,{variant:"green",children:"Active"}),i.jsxs(ke,{type:"button",variant:"ghost",size:"sm",onClick:()=>x(k=>!k),children:[i.jsx(Ef,{size:14,className:"mr-1"}),m?"Hide":"View"]}),i.jsxs(ke,{type:"button",variant:"secondary",size:"sm",disabled:h||!e,onClick:()=>{confirm("Clear the Elimination configuration?")&&w()},children:[i.jsx(Cn,{size:14,className:"mr-1"}),h?"Clearing…":"Clear"]})]})]}),m&&i.jsx(ze,{className:"border-t border-slate-100 dark:border-[#222226] text-xs text-slate-600 dark:text-[#b2bdd1]",children:i.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-3 font-mono text-xs dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef]",children:JSON.stringify(y.config,null,2)})})]}),i.jsxs(Te,{children:[i.jsxs(jt,{children:[i.jsx("h2",{className:La,children:"Elimination"}),i.jsx("p",{className:`mt-1 ${gc} max-w-[68ch]`,children:"Each gateway carries a health score that decays on consecutive failures and recovers on successes. Below the threshold, it drops out of routing until it recovers."})]}),i.jsxs(ze,{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsxs("span",{className:ts,children:["Threshold ",i.jsx("span",{className:"text-red-600",children:"*"})]}),i.jsx("input",{type:"number",step:"0.01",min:"0",max:"1",value:n,onChange:k=>r(k.target.value),placeholder:"0.05",className:Bx}),i.jsx("p",{className:ku,children:"Health score from 0 to 1, not success rate. Lower tolerates more failures before dropping a gateway."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ts,children:"Gateway latency threshold (ms)"}),i.jsx("input",{type:"number",value:a,onChange:k=>s(k.target.value),placeholder:"5000",className:Bx}),i.jsx("p",{className:ku,children:"Gateways slower than this are eliminated too. Leave blank to disable."})]})]})]}),i.jsx(_t,{error:c}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Elimination configuration saved successfully."}),i.jsx(ke,{onClick:v,disabled:o||!t||n===""||!e,children:o?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," Saving…"]}):"Save Elimination Config"})]})}function VFe(t){var r;const n=(((r=v2(t))==null?void 0:r.gateways)??[]).filter(a=>a.gatewayName.trim());return n.length===0?"No gateways configured":n.map(a=>`${a.gatewayName} ${a.split}%`).join(" / ")}function g9(t){var e;return(((e=v2(t))==null?void 0:e.gateways)??[]).map(n=>n.gatewayName.trim()).filter(Boolean)}function WFe(){const t=Ro(),e=Kr(),{merchantId:n}=Er(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,y]=g.useState(null),[b,v]=g.useState(null),[w,j]=g.useState("all"),[k,_]=g.useState("all"),[S,N]=g.useState(""),{data:E,mutate:P}=ut(n?`/routing/list/${n}`:null,()=>Ve(`/routing/list/${n}`)),{data:M,mutate:A}=ut(n?`/routing/list/active/${n}`:null,()=>Ve(`/routing/list/active/${n}`)),O=new Set((M||[]).map(R=>R.id)),D=(M||[]).find(R=>{var U;const z=(U=R.algorithm_data||R.algorithm)==null?void 0:U.type;return z&&z!=="volume_split"}),I=(E||[]).filter(R=>{var z;return((z=R.algorithm_data||R.algorithm)==null?void 0:z.type)==="volume_split"}).sort((R,z)=>K0(z)-K0(R)),X=Array.from(new Set(I.flatMap(g9))).sort(),Q=I.filter(R=>{if(w==="active"&&!O.has(R.id)||w==="inactive"&&O.has(R.id)||k!=="all"&&!g9(R).includes(k))return!1;if(S.trim()){const z=S.trim().toLowerCase();if(!R.name.toLowerCase().includes(z)&&!R.id.toLowerCase().includes(z))return!1}return!0});function V(R){a(z=>{const U=new Set(z);return U.has(R)?U.delete(R):U.add(R),U})}async function Y(R){if(n){if(D){o(R);return}await H(R)}}async function H(R){h(!0),y(null),v(null);try{await Ve("/routing/activate",{created_by:n,routing_algorithm_id:R}),v("Rule activated."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to activate")}finally{h(!1)}}async function G(R){m(R),y(null),v(null);try{await Ve("/routing/deactivate",{created_by:n,routing_algorithm_id:R}),v("Rule deactivated."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to deactivate")}finally{m(null)}}async function $(R){if(n){y(null),v(null);try{await Ve("/routing/delete",{created_by:n,routing_algorithm_id:R}),v("Rule deleted."),await Promise.all([P(),A()])}catch(z){y(z instanceof Error?z.message:"Failed to delete")}finally{d(null)}}}const F=I.find(R=>R.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(qs,{open:s!==null,title:"Switch to Volume Split Routing?",description:`"${D==null?void 0:D.name}" is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const R=s;o(null),H(R)},onCancel:()=>o(null)}),i.jsx(qs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const R=l;c(null),G(R)},onCancel:()=>c(null)}),i.jsx(qs,{open:u!==null,title:"Delete this rule?",description:`"${F==null?void 0:F.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>$(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(qr,{title:"Volume Split Routing",description:"Divide payment traffic across gateways by fixed percentages, independent of transaction attributes."})}),i.jsxs(ke,{onClick:()=>e("/routing/volume/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(_t,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?I.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No volume split rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(WT,{label:"Rule Name & ID",value:S,onChange:N,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:R=>j(R),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(q0,{label:"Distribution",value:k,options:[{value:"all",label:"All gateways"},...X.map(R=>({value:R,label:R}))],onChange:_,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Q.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),_("all"),N("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Q.map(R=>{var re;const z=O.has(R.id),U=r.has(R.id),ee=VFe(R),pe=z?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":R.name,onClick:()=>V(R.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${z?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[U?i.jsx(wn,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(Xi,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:R.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:R.id})]})]})}),i.jsx("td",{className:"px-5 py-4",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${z?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:z?"Active":"Inactive"})}),i.jsx("td",{className:"max-w-[320px] px-5 py-4",children:i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",title:ee,children:ee})}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const he=EG(R);return he?i.jsxs("span",{title:he.full,children:[he.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:he.time})]}):"—"})()}),i.jsx("td",{className:"px-5 py-4",onClick:he=>he.stopPropagation(),children:i.jsx(HT,{items:[z?{label:p===R.id?"Deactivating…":"Deactivate",icon:Tm,onSelect:()=>c(R.id),disabled:p===R.id||!t}:{label:"Activate",icon:bT,tone:"positive",onSelect:()=>Y(R.id),disabled:f||!t},{label:"Edit",icon:El,onSelect:()=>e(`/routing/volume/${R.id}/edit`),disabled:!!pe,hint:pe},{label:"Duplicate",icon:lf,onSelect:()=>e(`/routing/volume/new?cloneFrom=${R.id}`),disabled:!t},{label:"Delete",icon:Cn,tone:"danger",onSelect:()=>d(R.id),disabled:!!pe,hint:pe}]})})]},R.id),U?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:5,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[R.description&&R.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:R.description}),i.jsx(gX,{gateways:((re=v2(R))==null?void 0:re.gateways)??[]})]})},`${R.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs(Fa,{tone:"warning",children:[i.jsxs("strong",{children:["“",D.name,"” is active"]})," — activating a volume split rule will automatically deactivate it."]})]})}function HFe(t){if(!t.name.trim())return"Enter an experiment name";if(t.experimentType==="sr_config_tuning"){const e=t.variantSrConfig;if(e.hedgingPercent!==null&&(e.hedgingPercent<0||e.hedgingPercent>100))return"Hedging % must be between 0 and 100";if(e.eliminationThreshold!==null&&(e.eliminationThreshold<0||e.eliminationThreshold>1))return"Elimination threshold must be between 0 and 1";if(e.hedgingPercent===null&&e.eliminationThreshold===null)return"Set at least one parameter override for the variant arm"}else{if(!t.controlAlgorithmId)return"Select a control strategy";if(!t.variantAlgorithmId)return"Select a variant strategy";if(t.controlAlgorithmId===t.variantAlgorithmId)return"Control and variant must be different strategies"}return t.variantSplitPct<5||t.variantSplitPct>30?"Variant traffic must be between 5% and 30%":t.minSampleSize<100?"Minimum sample size must be at least 100 transactions":t.guardrailThresholdPp<=0||t.guardrailThresholdPp>20?"Guardrail threshold must be between 0.1 and 20 percentage points":null}function GFe(t){const e={};return t.hedgingPercent!==null&&(e.hedging_percent=t.hedgingPercent),t.eliminationThreshold!==null&&(e.elimination_threshold=t.eliminationThreshold),e}const qFe={sr_config_tuning:t=>`SR config tuning: ${t}% variant traffic`,algorithm_comparison:t=>`A/B test: ${t}% variant traffic`};function x9(t){switch(t){case"sr_auth":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!1}};case"sr_auth_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!0}};case"sr_mo_manual":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!1}};case"sr_mo_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!0}};default:return{id:t}}}function KFe(t,e){const n={variant_split_pct:t.variantSplitPct,min_sample_size:t.minSampleSize,guardrail_threshold_pp:t.guardrailThresholdPp};let r;if(t.experimentType==="sr_config_tuning")r={...n,control_algorithm_id:"sr_routing",variant_algorithm_id:"sr_routing",variant_sr_config:GFe(t.variantSrConfig)};else{const a=x9(t.controlAlgorithmId),s=x9(t.variantAlgorithmId);r={...n,control_algorithm_id:a.id,variant_algorithm_id:s.id,...a.config&&{control_sr_config:a.config},...s.config&&{variant_sr_config:s.config}}}return{name:t.name.trim(),description:qFe[t.experimentType](t.variantSplitPct),created_by:e,algorithm_for:"payment",metadata:{},algorithm:{type:"ab_test",data:r}}}const lM={sr_auth:"Maximize approvals · manual tuning",sr_auth_autopilot:"Maximize approvals · auto-tuned",sr_mo_manual:"Approvals + save on fees · manual",sr_mo_autopilot:"Approvals + save on fees · auto-tuned"},YFe={hedgingPercent:null,eliminationThreshold:null};function XFe(t){const e=t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function y9(t,e){return t!=="sr_routing"?t:(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth"}function v9(t){var r,a;const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="ab_test")return null;const n=e.data;return{name:t.name,experimentType:XFe(n),controlAlgorithmId:y9(n.control_algorithm_id,n.control_sr_config),variantAlgorithmId:y9(n.variant_algorithm_id,n.variant_sr_config),variantSplitPct:n.variant_split_pct,minSampleSize:n.min_sample_size,guardrailThresholdPp:n.guardrail_threshold_pp,variantSrConfig:{hedgingPercent:((r=n.variant_sr_config)==null?void 0:r.hedging_percent)??null,eliminationThreshold:((a=n.variant_sr_config)==null?void 0:a.elimination_threshold)??null}}}const b9=[1e3,5e3,1e4,5e4],JFe={algorithm_comparison:"Compare any two routing strategies — SR (auth), SR cost-aware (manual/autopilot), rule-based, or volume split.",sr_config_tuning:"Same SR algorithm, different hedging % or elimination threshold on the variant."};function KX(t){const e=t==null?void 0:t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function ZFe(t){var e,n;return((e=t==null?void 0:t.control_sr_config)==null?void 0:e.enable_multi_objective)===!0||((n=t==null?void 0:t.variant_sr_config)==null?void 0:n.enable_multi_objective)===!0}function QFe({kind:t}){return t==="sr_config_tuning"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-violet-100 text-violet-700 dark:bg-violet-900/30 dark:text-violet-300 leading-4",children:[i.jsx(kH,{size:9})," SR Config Tuning"]}):null}function xy(t,e,n){if(t==="sr_routing"){const r=(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth";return lM[r]}return n(t)}function X5({algorithmId:t,algorithms:e}){const n=e.find(o=>o.id===t);if(!n)return null;const r=n.algorithm_data||n.algorithm,a=r==null?void 0:r.type,s=r==null?void 0:r.data;if(a==="advanced")return i.jsx(YT,{algo:n});if(a==="priority"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-xs font-medium text-brand-700 dark:text-brand-300",children:[c+1,". ",l.gateway_name]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connectors configured."})}if(a==="volume_split"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300",children:[l.output.gateway_name," ",l.split,"%"]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No splits configured."})}if(a==="single"){const o=s;return o?i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-xs font-medium text-slate-600 dark:text-[#8090a8]",children:o.gateway_name}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connector configured."})}return null}function vf({text:t}){const[e,n]=g.useState(null);return i.jsxs("span",{tabIndex:0,"aria-label":t,className:"inline-flex cursor-help align-middle text-slate-500 hover:text-slate-600 focus:text-slate-600 focus:outline-none dark:text-slate-400 dark:hover:text-slate-300 dark:focus:text-slate-300 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-brand-500/60",onMouseEnter:r=>n({x:r.clientX,y:r.clientY}),onMouseLeave:()=>n(null),onFocus:r=>{const a=r.currentTarget.getBoundingClientRect();n({x:a.left+a.width/2,y:a.bottom})},onBlur:()=>n(null),children:[i.jsx(Qu,{size:12}),e&&fs.createPortal(i.jsx("span",{role:"tooltip",style:{position:"fixed",left:Math.min(e.x+14,window.innerWidth-252),top:e.y+16,maxWidth:240},className:"pointer-events-none z-[200] block w-max rounded-lg bg-slate-900 px-2.5 py-1.5 text-xs font-normal leading-snug text-white shadow-lg dark:bg-slate-700",children:t}),document.body)]})}function yN({children:t,hint:e,required:n}){return i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:[t,n&&i.jsx("span",{className:"text-slate-500",children:"*"}),e&&i.jsx(vf,{text:e})]})}const cp="border border-slate-200 bg-transparent rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function vN({children:t,divide:e}){return i.jsx("section",{className:`space-y-4 ${e?"border-t border-slate-200 dark:border-[#262d3a] pt-6":""}`,children:t})}const w9={advanced:"Rule-based",volume_split:"Volume split",priority:"Priority list",single:"Single connector"},YX=Object.keys(lM),Lg=t=>YX.includes(t);function k9({label:t,help:e,accent:n,algorithms:r,value:a,excludeId:s,allowedSrStrategies:o,liveSrConfig:l,onChange:c}){var b;const u=YX.filter(v=>o.includes(v)||a===v),d=v=>{var j;if(Lg(v))return v;const w=r.find(k=>k.id===v);return w?((j=w.algorithm_data||w.algorithm)==null?void 0:j.type)??"":""},[f,h]=g.useState(()=>d(a));g.useEffect(()=>{const v=d(a);v&&h(v)},[a,r]);const p=Array.from(new Set(r.map(v=>{var w;return(w=v.algorithm_data||v.algorithm)==null?void 0:w.type}).filter(Boolean))),m=f&&!Lg(f)?r.filter(v=>{var w;return((w=v.algorithm_data||v.algorithm)==null?void 0:w.type)===f}):[];function x(v){if(h(v),Lg(v)){c(v);return}if(!v){c("");return}const w=r.filter(j=>{var k;return((k=j.algorithm_data||j.algorithm)==null?void 0:k.type)===v});c(w.length===1?w[0].id:"")}const y=`w-full ${cp}`;return i.jsxs("div",{className:`rounded-xl border p-3 ${n?"border-brand-200 bg-brand-50/40 dark:border-brand-800/50 dark:bg-brand-900/10":"border-slate-200 bg-slate-50/50 dark:border-[#222226] dark:bg-[#0c0c10]"}`,children:[i.jsxs("div",{className:"mb-2 flex items-center gap-1.5",children:[i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:t}),i.jsx(vf,{text:e})]}),i.jsxs("select",{className:y,value:f,onChange:v=>x(v.target.value),children:[i.jsx("option",{value:"",children:"Select strategy"}),u.map(v=>i.jsx("option",{value:v,disabled:s===v,children:lM[v]},v)),p.map(v=>i.jsx("option",{value:v,children:w9[v]??v},v))]}),m.length>1&&i.jsxs("select",{className:`${y} mt-2`,value:a,onChange:v=>c(v.target.value),children:[i.jsxs("option",{value:"",children:["Select ",((b=w9[f])==null?void 0:b.toLowerCase())??"config"]}),m.map(v=>i.jsx("option",{value:v.id,disabled:v.id===s,children:v.name},v.id))]}),m.length===1&&i.jsxs("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:["Using ",i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:m[0].name})]}),a&&!Lg(a)&&i.jsx("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:i.jsx(X5,{algorithmId:a,algorithms:r})}),a&&Lg(a)&&i.jsxs("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] mb-1.5 leading-4",children:"Base SR config"}),i.jsx(n9e,{hedging:l.hedging,elimination:l.elimination,bucketSize:l.bucketSize,autopilotSegmentCount:l.autopilotSegmentCount,autopilotFeatureOn:l.autopilotFeatureOn,honorsAutopilot:a==="sr_mo_autopilot"||a==="sr_auth_autopilot"})]})]})}function j9(t){return`${t>0?"+":""}${t.toFixed(2)}pp`}function Fb(t){return`${(t*100).toFixed(2)}%`}function e9e({verdict:t}){return t==="collecting_data"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(hH,{size:11})," Collecting data"]}):t==="variant_wins"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[i.jsx(Gp,{size:11})," Variant wins"]}):t==="variant_loses"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Hj,{size:11})," Variant loses"]}):t==="guardrail_breached"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Pm,{size:11})," Guardrail breached"]}):t==="not_significant"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(Gp,{size:11})," No significant difference"]}):null}const t9e="autopilot";function XX(t){var r,a,s,o,l,c,u,d;const{data:e}=ut(t?["rule-sr-live",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{data:n}=ut(t?["rule-elim-live",t]:null,()=>Ve("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});return{liveHedging:((a=(r=e==null?void 0:e.config)==null?void 0:r.data)==null?void 0:a.defaultHedgingPercent)??null,liveElimination:((o=(s=n==null?void 0:n.config)==null?void 0:s.data)==null?void 0:o.threshold)??null,liveBucketSize:((c=(l=e==null?void 0:e.config)==null?void 0:l.data)==null?void 0:c.defaultBucketSize)??null,autopilotSegmentCount:(((d=(u=e==null?void 0:e.config)==null?void 0:u.data)==null?void 0:d.subLevelInputConfig)??[]).filter(f=>f.source===t9e).length}}function n9e({hedging:t,elimination:e,bucketSize:n,autopilotSegmentCount:r,honorsAutopilot:a,autopilotFeatureOn:s}){return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Hedging %"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:t!==null?`${t}%`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Elimination threshold"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:e!==null?`Drops below ${(e*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket size"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:n!==null?`${n} requests`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),a&&s&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-amber-700 dark:text-amber-400 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Auto-tunes bucket size and hedging % per segment, based on your traffic volume.",i.jsx(vf,{text:r>0?`Autopilot is tuning ${r} segment${r===1?"":"s"} (by payment method / network / currency / country) — bucket size and hedging % can differ per segment and over time, so the values above are just the base config.`:"Autopilot will start tuning bucket size and hedging % per segment once enough traffic flows through it. Until then, every transaction uses the base config shown above."})]}),a&&!s&&r>0&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-slate-500 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Autopilot is off — ",r," segment",r===1?"":"s"," from earlier tuning",i.jsx(vf,{text:`Autopilot (auto-calibration) is currently disabled for this merchant. ${r} segment${r===1?"":"s"} still carry values it tuned before being turned off, but nothing is being actively adjusted right now — every transaction uses the base config shown above.`})]})]})}function r9e(t){return t==="variant_wins"||t==="variant_loses"||t==="guardrail_breached"}function a9e({verdict:t}){return t==="not_significant"?i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-slate-300 bg-slate-50 px-4 py-3 dark:border-slate-600/40 dark:bg-slate-500/10",children:[i.jsx(Qu,{size:16,className:"mt-0.5 shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("p",{className:"text-[13px] text-slate-700 dark:text-slate-300 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-slate-900 dark:text-slate-100",children:"Sample target reached — no significant difference."})," ","Control and variant are statistically tied: the delta below sits within the 95% confidence interval, so neither strategy is a proven winner. Collecting more traffic won't change this unless the true gap is larger than the current split can detect — a wider variant allocation would tighten the interval faster."]})]}):i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(Pm,{size:16,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("p",{className:"text-[13px] text-amber-800 dark:text-amber-300/90 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-amber-900 dark:text-amber-200",children:"Not statistically significant yet."})," ","The deltas below are still within noise — let the experiment reach its sample target before drawing conclusions."]})]})}function Dk({label:t,pct:e,accent:n}){return i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:[t," · ",e,"%"]})}function s9e({abData:t,isTuning:e,controlPct:n,variantPct:r,live:a,autopilotOn:s,algorithmName:o,algorithms:l}){var x,y,b,v;const c=t.control_algorithm_id==="sr_routing",u=t.variant_algorithm_id==="sr_routing",d=w=>i.jsx("span",{className:"italic text-slate-500",children:w}),f=i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"—"}),h=w=>i.jsx("span",{className:"font-medium text-brand-600 dark:text-brand-400",children:w}),p=w=>`Drops below ${(w*100).toFixed(0)}% score`,m=[{label:"Strategy",control:xy(t.control_algorithm_id,t.control_sr_config,o),variant:xy(t.variant_algorithm_id,t.variant_sr_config,o)}];if(e){const w=(x=t.variant_sr_config)==null?void 0:x.hedging_percent,j=(y=t.variant_sr_config)==null?void 0:y.elimination_threshold;m.push({label:"Hedging %",control:a.hedging!=null?`${a.hedging}%`:d("Uses default"),variant:typeof w=="number"?h(`${w}%`):d("Same as control")}),m.push({label:"Elimination threshold",control:a.elimination!=null?p(a.elimination):d("Uses default"),variant:typeof j=="number"?h(p(j)):d("Same as control")})}else{if(c||u){const w=c&&((b=t.control_sr_config)==null?void 0:b.use_autopilot)!==!1&&s,j=u&&((v=t.variant_sr_config)==null?void 0:v.use_autopilot)!==!1&&s,k=(N,E)=>N?E?d("Auto-tuned per segment"):a.hedging!=null?`${a.hedging}%`:d("Uses default"):f,_=(N,E)=>N?E?d("Auto-tuned per segment"):a.bucketSize!=null?`${a.bucketSize} requests`:d("Uses default"):f,S=N=>N?a.elimination!=null?p(a.elimination):d("Uses default"):f;m.push({label:"Hedging %",control:k(c,w),variant:k(u,j)}),m.push({label:"Elimination threshold",control:S(c),variant:S(u)}),m.push({label:"Bucket size",control:_(c,w),variant:_(u,j)})}(!c||!u)&&m.push({label:"Routing rule",control:c?d("SR scoring"):i.jsx(X5,{algorithmId:t.control_algorithm_id,algorithms:l}),variant:u?d("SR scoring"):i.jsx(X5,{algorithmId:t.variant_algorithm_id,algorithms:l})})}return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"w-[28%] px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Attribute"}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(Dk,{label:"Control",pct:n})}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(Dk,{label:"Variant",pct:r,accent:!0})})]})}),i.jsx("tbody",{children:m.map((w,j)=>i.jsxs("tr",{className:j>0?"border-t border-slate-100 dark:border-[#1a1a22]":"",children:[i.jsx("td",{className:"px-4 py-2.5 align-top text-[13px] font-medium text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:w.label}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.control}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.variant})]},w.label))})]})})}function i9e({results:t,controlPct:e,variantPct:n,costKind:r,significant:a}){const s=t.control,o=t.variant,l=(o.auth_rate-s.auth_rate)*100,c=(o.first_attempt_auth_rate-s.first_attempt_auth_rate)*100,u=(o.total_cost_saved??0)-(s.total_cost_saved??0),d=p=>a?p>0?"text-emerald-700 dark:text-emerald-400":p<0?"text-red-600":"text-slate-500":"text-slate-500 dark:text-slate-400",f="px-4 py-2.5 text-right text-slate-700 dark:text-slate-200",h=(p,m)=>i.jsxs("td",{className:"px-4 py-2.5",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:p})," ",i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:m})]});return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm [font-variant-numeric:tabular-nums]",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Metric"}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(Dk,{label:"Control",pct:e})}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(Dk,{label:"Variant",pct:n,accent:!0})}),i.jsx("th",{className:"px-4 py-2.5 text-right text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Delta"})]})}),i.jsxs("tbody",{children:[i.jsxs("tr",{children:[h("Net auth rate","NAR"),i.jsx("td",{className:f,children:Fb(s.auth_rate)}),i.jsx("td",{className:f,children:Fb(o.auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(l)}`,children:j9(l)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("First-attempt rate","FAAR"),i.jsx("td",{className:f,children:Fb(s.first_attempt_auth_rate)}),i.jsx("td",{className:f,children:Fb(o.first_attempt_auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(c)}`,children:j9(c)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Transactions","count"),i.jsx("td",{className:f,children:s.transaction_count.toLocaleString()}),i.jsx("td",{className:f,children:o.transaction_count.toLocaleString()}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Outcome","success / fail"),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:s.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:s.failure_count.toLocaleString()})]}),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:o.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:o.failure_count.toLocaleString()})]}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),r&&i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Cost saved","TCS"),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:s.total_cost_saved!=null?s.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:o.total_cost_saved!=null?o.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(u)}`,children:`${u>0?"+":""}${u.toLocaleString(void 0,{maximumFractionDigits:2})}`})]})]})]})})}function o9e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t))}function l9e({algorithm:t,isActive:e,merchantId:n,algorithmName:r,algorithms:a,onActivate:s,onStop:o,onEdit:l,onDelete:c,onClone:u,realPaymentsOn:d}){var ee,pe;const f=Ro(),h=(ee=t.algorithm_data||t.algorithm)==null?void 0:ee.data,p=KX(h),m=p==="sr_config_tuning",x=ZFe(h),{liveHedging:y,liveElimination:b,liveBucketSize:v}=XX(n||void 0),w=Al(n||void 0),j=w.isEnabled("auto-calibration")||w.isEnabled("autopilot"),k=(pe=h==null?void 0:h.variant_sr_config)==null?void 0:pe.margin,_=h?`/analytics/experiment/${t.id}/results?min_sample_size=${h.min_sample_size}&guardrail_threshold_pp=${h.guardrail_threshold_pp}${k!==void 0?`&evaluation_margin=${k}`:""}`:null,{data:S,isLoading:N}=ut(n&&_?_:null,Lt,{refreshInterval:6e4}),E=20,[P,M]=g.useState(1),A=`/analytics/experiment/${t.id}/transactions?page_size=${E}&page=${P}`,{data:O,isLoading:D}=ut(n?A:null,Lt,{refreshInterval:6e4});function I(re){if(!h)return"—";const he=re==="control"?h.control_algorithm_id:h.variant_algorithm_id,q=re==="control"?h.control_sr_config:h.variant_sr_config;return he==="sr_routing"&&m?re==="variant"?"SR Routing (custom params)":"SR Routing (live config)":xy(he,q,r)}function X(re,he){if(!(he==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing"))return;const W=`/audit?range=1d&exclude_routing_approach=NTW_BASED_ROUTING&payment_id=${encodeURIComponent(re)}`;window.open(W,"_blank")}function Q(re,he){if(he<=7)return Array.from({length:he},(me,ve)=>ve+1);const W=Math.floor(5/2);let ue=re-W,te=re+W;ue<2&&(te+=2-ue,ue=2),te>he-1&&(ue-=te-(he-1),te=he-1),ue=Math.max(2,ue),te=Math.min(he-1,te);const ie=[1];ue>2&&ie.push(null);for(let me=ue;me<=te;me++)ie.push(me);return te{if(F!=="active"||V<=0||V>=Y)return null;const re=t.modified_at?Date.parse(t.modified_at):NaN;if(!Number.isFinite(re))return null;const he=Date.now()-re;if(he<=0)return null;const W=he/V*(Y-V)/36e5;if(!Number.isFinite(W)||W<=0)return null;const ue="at current volume";return W<1?`~${Math.max(1,Math.round(W*60))} min remaining ${ue}`:W<48?`~${Math.round(W)} hrs remaining ${ue}`:`~${Math.round(W/24)} days remaining ${ue}`})(),U=h?[{label:"Traffic split",value:`${G}% / ${$}%`},{label:"Sample target",value:`${Y.toLocaleString()} txns`},{label:"Guardrail",value:`${h.guardrail_threshold_pp}pp`}]:[];return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white px-5 py-5 dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx("div",{className:"min-w-0",children:i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h2",{className:"text-lg font-semibold tracking-tight text-slate-900 dark:text-white",children:t.name}),i.jsx(QFe,{kind:p}),F==="active"&&i.jsx(Pe,{variant:"green",children:"Active"}),F==="paused"&&i.jsx(Pe,{variant:"orange",children:"Not collecting"}),F==="inactive"&&i.jsx(Pe,{variant:"gray",children:"Inactive"})]})}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:e?i.jsxs(i.Fragment,{children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(lf,{size:13})," Duplicate"]}),i.jsxs(ke,{size:"sm",variant:"danger",onClick:o,disabled:!f,children:[i.jsx(Tm,{size:13})," Stop"]})]}):i.jsxs(i.Fragment,{children:[i.jsxs(ke,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(lf,{size:13})," Duplicate"]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:l,disabled:!f,children:[i.jsx(El,{size:13})," Edit"]}),i.jsxs(ke,{size:"sm",variant:"secondary",onClick:c,disabled:!f,children:[i.jsx(Cn,{size:13})," Delete"]}),i.jsx(ke,{size:"sm",variant:"primary",onClick:s,disabled:!f,children:"Activate"})]})})]}),U.length>0&&i.jsx("div",{className:"mt-4 flex flex-wrap gap-y-3",children:U.map((re,he)=>i.jsxs("div",{className:`min-w-[8rem] pr-6 ${he>0?"border-l border-slate-200 pl-6 dark:border-[#222226]":""}`,children:[i.jsx("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:re.label}),i.jsx("p",{className:"mt-0.5 text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:re.value})]},re.label))}),S&&i.jsxs("div",{className:"mt-5 space-y-2 border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"flex items-end justify-between",children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Transactions collected"}),i.jsxs("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:[V.toLocaleString()," ",i.jsxs("span",{className:"text-slate-500",children:["/ ",Y.toLocaleString()]})]})]}),i.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${R?"bg-emerald-500":"bg-brand-500"}`,style:{width:`${H}%`}})}),i.jsxs("p",{className:"text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[H,"% of the ",Y.toLocaleString(),"-transaction target",z?` · ${z}`:""]})]})]}),h&&i.jsxs("section",{className:"space-y-2.5 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsx("h3",{className:La,children:"Configuration"}),i.jsx(s9e,{abData:h,isTuning:m,controlPct:G,variantPct:$,live:{hedging:y,elimination:b,bucketSize:v},autopilotOn:j,algorithmName:r,algorithms:a})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:La,children:"Results"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:"Updates every 60 seconds"})]}),S&&i.jsx(e9e,{verdict:S.verdict})]}),N&&!S?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[i.jsx(mt,{size:14})," Loading stats…"]}):S?i.jsxs("div",{className:"space-y-4",children:[!R&&i.jsx(a9e,{verdict:S.verdict}),i.jsx(i9e,{results:S,controlPct:G,variantPct:$,costKind:x,significant:R}),S.verdict==="guardrail_breached"&&i.jsxs(Fa,{tone:"danger",children:[i.jsx(zCe,{size:12}),"Variant auth rate dropped ",Math.abs(S.delta_pp).toFixed(2),"pp below control — beyond the ",h==null?void 0:h.guardrail_threshold_pp,"pp guardrail. Consider stopping the experiment."]})]}):i.jsx("p",{className:"text-sm italic text-slate-500",children:"Stats unavailable — analytics pipeline may not be configured in this environment."})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:La,children:"Transactions"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:O?`${O.total.toLocaleString()} decisions`:"Loading…"})]}),D&&i.jsx(mt,{size:14})]}),i.jsxs("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:[i.jsx("table",{className:"w-full text-sm",children:i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-xs text-slate-500 bg-slate-50 dark:bg-[#0c0c10] border-b border-slate-200 dark:border-[#222226]",children:[i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Arm"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Routing"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Payment ID"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Gateway"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Status"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Time"})]})})}),i.jsxs("div",{className:"max-h-[400px] overflow-y-auto",children:[i.jsx("table",{className:"w-full text-base",children:i.jsx("tbody",{children:O!=null&&O.transactions.length?O.transactions.map((re,he)=>{const q=re.variant_arm==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing";return i.jsxs("tr",{onClick:()=>X(re.payment_id,re.variant_arm),title:q?"Open in Decision Audit":"Audit trail not available for static arm payments",className:`border-b border-slate-50 dark:border-[#131318] transition-colors ${q?"cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f16]":"cursor-default opacity-60"}`,children:[i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-semibold ${re.variant_arm==="control"?"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300":"bg-brand-100 text-brand-700 dark:bg-brand-900/30 dark:text-brand-300"} leading-4`,children:re.variant_arm==="control"?"Control":"Variant"})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 dark:text-slate-400 whitespace-nowrap",children:I(re.variant_arm)}),i.jsx("td",{className:"px-4 py-3 font-mono text-sm text-slate-600 dark:text-slate-400 max-w-[180px] truncate",children:re.payment_id}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-700 dark:text-slate-300",children:re.gateway??"—"}),i.jsx("td",{className:"px-4 py-3",children:re.status==="success"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400 leading-4",children:"success"}):re.status==="failure"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400 leading-4",children:"failure"}):i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 leading-4",title:"Payment was routed but no outcome was recorded — counted against auth rate",children:[i.jsx(hH,{size:9})," no outcome"]})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 whitespace-nowrap",children:o9e(re.created_at_ms)})]},`${re.payment_id}-${he}`)}):i.jsx("tr",{children:i.jsx("td",{colSpan:6,className:"px-4 py-8 text-base text-slate-500 text-center",children:D?"Loading…":"No transactions logged yet for this experiment."})})})}),O&&O.total>E&&(()=>{const re=Math.ceil(O.total/E);return i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-t border-slate-100 dark:border-[#1e2330]",children:[i.jsxs("p",{className:"text-sm text-slate-500",children:["Page ",P," of ",re," · ",O.total.toLocaleString()," total"]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",onClick:()=>M(he=>Math.max(1,he-1)),disabled:P===1||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"← Prev"}),Q(P,re).map((he,q)=>he===null?i.jsx("span",{className:"px-1 text-sm text-slate-500",children:"…"},`ellipsis-${q}`):i.jsx("button",{type:"button",onClick:()=>M(he),disabled:D,className:`min-w-[28px] px-2 py-1 rounded-md border text-sm transition-colors ${he===P?"border-brand-500 bg-brand-500 text-white":"border-slate-200 dark:border-[#222226] text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22]"}`,children:he},he)),i.jsx("button",{type:"button",onClick:()=>M(he=>Math.min(re,he+1)),disabled:P===re||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"Next →"})]})]})})()]})]})]})]})}function c9e({label:t,splitPct:e,config:n,onChange:r}){return i.jsxs("div",{className:"rounded-xl border border-brand-200 dark:border-brand-800/50 bg-brand-50/30 dark:bg-brand-900/10 px-4 py-4 space-y-3",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-brand-100 px-2 py-0.5 text-[11px] font-semibold text-brand-700 dark:bg-brand-900/40 dark:text-brand-300 leading-4",children:[t," (",e,"%)"]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:["Hedging %",i.jsx(vf,{text:"Share of traffic sent to non-top gateways to keep their scores fresh (the explore-exploit tradeoff)."})]}),i.jsx("input",{type:"number",min:0,max:100,step:1,value:n.hedgingPercent??"",placeholder:"e.g. 5",onChange:a=>r(s=>({...s,hedgingPercent:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${cp}`})]}),i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ts}`,children:["Elimination threshold (0–1)",i.jsx(vf,{text:"SR score (0–1) below which a gateway is dropped from routing."})]}),i.jsx("input",{type:"number",min:0,max:1,step:.01,value:n.eliminationThreshold??"",placeholder:"e.g. 0.70",onChange:a=>r(s=>({...s,eliminationThreshold:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${cp}`})]})]})]})}function S9({form:t,setForm:e,eligibleAlgorithms:n,saving:r,error:a,success:s,createdId:o,merchantId:l,isEditing:c,onCreate:u,onActivateCreated:d,onCancel:f}){const h=Ro(),p=Al(l||void 0),m=p.isEnabled("multi-objective-routing"),x=p.isEnabled("auto-calibration")||p.isEnabled("autopilot"),y=["sr_auth",...x?["sr_auth_autopilot"]:[],...m?["sr_mo_manual"]:[],...m&&x?["sr_mo_autopilot"]:[]],{liveHedging:b,liveElimination:v,liveBucketSize:w,autopilotSegmentCount:j}=XX(l||void 0),[k,_]=g.useState(!b9.includes(t.minSampleSize)),S=N=>`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors ${t.experimentType===N?"bg-white text-slate-900 shadow-sm dark:bg-[#2a3140] dark:text-white":"text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-white"}`;return i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsx("h2",{className:La,children:c?"Edit experiment":"New experiment"})}),i.jsxs(ze,{className:"space-y-6",children:[c&&i.jsxs("div",{children:[i.jsx(yN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${cp}`,value:t.name,onChange:N=>e(E=>({...E,name:N.target.value}))}),i.jsx("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:"Only the name can be changed. To test a different routing setup, create a new experiment."})]}),!c&&i.jsxs(i.Fragment,{children:[i.jsxs(vN,{children:[i.jsxs("div",{children:[i.jsx("label",{className:`mb-2 block ${ts}`,children:"Experiment type"}),i.jsxs("div",{className:"inline-flex rounded-lg border border-slate-200 bg-slate-100 p-0.5 dark:border-[#222226] dark:bg-[#14181f]",children:[i.jsxs("button",{type:"button",className:S("algorithm_comparison"),onClick:()=>e(N=>({...N,experimentType:"algorithm_comparison"})),children:[i.jsx($Ce,{size:13})," Algorithm comparison"]}),i.jsxs("button",{type:"button",className:S("sr_config_tuning"),onClick:()=>e(N=>({...N,experimentType:"sr_config_tuning"})),children:[i.jsx(kH,{size:13})," SR config tuning"]})]}),i.jsxs("div",{className:"mt-2.5 flex items-start gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-[#14181f]",children:[i.jsx(Qu,{size:14,className:"mt-0.5 shrink-0 text-slate-500"}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:JFe[t.experimentType]})]})]}),i.jsxs("div",{children:[i.jsx(yN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${cp}`,placeholder:t.experimentType==="sr_config_tuning"?"e.g. Hedging 10% vs 5%":"e.g. Stripe vs Checkout.com",value:t.name,onChange:N=>e(E=>({...E,name:N.target.value}))})]}),t.experimentType==="algorithm_comparison"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i.jsx(k9,{label:"Control",help:"Your current strategy — the baseline.",algorithms:n,value:t.controlAlgorithmId,excludeId:t.variantAlgorithmId,allowedSrStrategies:y,liveSrConfig:{hedging:b,elimination:v,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:N=>e(E=>({...E,controlAlgorithmId:N}))}),i.jsx(k9,{label:"Variant",help:"The new strategy you want to test.",accent:!0,algorithms:n,value:t.variantAlgorithmId,excludeId:t.controlAlgorithmId,allowedSrStrategies:y,liveSrConfig:{hedging:b,elimination:v,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:N=>e(E=>({...E,variantAlgorithmId:N}))})]}),t.experimentType==="sr_config_tuning"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-slate-50/50 dark:bg-[#0c0c10] px-4 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold text-slate-600 dark:bg-slate-700 dark:text-slate-200 leading-4",children:["Control (",100-t.variantSplitPct,"%)"]}),i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:"current config"})]}),i.jsxs("div",{className:"space-y-2.5",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Hedging %"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:b!==null?`${b}%`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Elimination threshold"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:v!==null?`Drops below ${(v*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]})]}),i.jsxs("p",{className:"text-[12px] text-slate-500 pt-1 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Edit in ",i.jsx("span",{className:"font-medium",children:"SR Routing → Scoring / Elimination"})]})]}),i.jsx(c9e,{label:"Variant",splitPct:t.variantSplitPct,config:t.variantSrConfig,onChange:N=>e(E=>({...E,variantSrConfig:N(E.variantSrConfig)}))})]})]}),i.jsxs(vN,{divide:!0,children:[i.jsxs("div",{children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("span",{className:ts,children:"Traffic allocation"}),i.jsxs("span",{className:"text-[13px] tabular-nums text-slate-500 dark:text-slate-400 leading-[18px]",children:[100-t.variantSplitPct,"% control",i.jsx("span",{className:"mx-1.5 text-slate-500 dark:text-slate-400",children:"/"}),i.jsxs("span",{className:"font-semibold text-brand-600 dark:text-brand-400",children:[t.variantSplitPct,"% variant"]})]})]}),i.jsxs("div",{className:"relative rounded-full py-2 focus-within:ring-2 focus-within:ring-brand-500/40",children:[i.jsxs("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full",children:[i.jsx("div",{className:"bg-slate-200 dark:bg-[#232833] transition-all duration-100",style:{width:`${100-t.variantSplitPct}%`}}),i.jsx("div",{className:"flex-1 bg-brand-500"})]}),i.jsx("div",{className:"pointer-events-none absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-brand-500 bg-white shadow-sm dark:bg-slate-900",style:{left:`${100-t.variantSplitPct}%`}}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:100-t.variantSplitPct,onChange:N=>{const E=Math.min(30,Math.max(5,100-Number(N.target.value)));e(P=>({...P,variantSplitPct:E}))},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":"Control traffic percentage"})]})]}),i.jsxs("div",{children:[i.jsx(yN,{hint:"Transactions the experiment collects before it reports a significance verdict.",children:"Sample target"}),i.jsxs("div",{className:"inline-flex flex-wrap items-center gap-0.5 rounded-lg border border-slate-200 p-0.5 dark:border-[#222226]",children:[b9.map(N=>{const E=!k&&t.minSampleSize===N;return i.jsx("button",{type:"button",onClick:()=>{_(!1),e(P=>({...P,minSampleSize:N}))},className:`rounded-md px-3 py-1.5 text-xs font-medium tabular-nums transition-colors ${E?"bg-brand-500 text-white":"text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white"}`,children:N.toLocaleString()},N)}),k?i.jsx("input",{type:"text",inputMode:"numeric",autoFocus:!0,placeholder:"Custom",className:"w-24 rounded-md bg-transparent px-2.5 py-1.5 text-xs tabular-nums focus:outline-none focus:border-brand-500",value:t.minSampleSize?t.minSampleSize.toLocaleString():"",onChange:N=>e(E=>({...E,minSampleSize:Number(N.target.value.replace(/[^\d]/g,""))}))}):i.jsx("button",{type:"button",onClick:()=>_(!0),className:"rounded-md px-3 py-1.5 text-xs font-medium text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",children:"Custom…"})]})]})]}),i.jsx(vN,{divide:!0,children:i.jsxs("label",{className:"flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-slate-700 dark:text-[#c7cfdd]",children:[i.jsx("span",{children:"Flag if variant auth drops by"}),i.jsx("input",{type:"number",min:.5,max:20,step:.5,className:`w-16 ${cp}`,value:t.guardrailThresholdPp,onChange:N=>e(E=>({...E,guardrailThresholdPp:Number(N.target.value)}))}),i.jsx("span",{children:"percentage points below control"}),i.jsx(vf,{text:"Percentage points, not percent — a 3 here flags the test when the variant's auth rate is 3+ points under control (say 89% vs 92%)."})]})})]}),i.jsx(_t,{error:a}),s&&i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-emerald-200 bg-emerald-50 px-5 py-4 text-base text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200",children:[i.jsx("span",{children:s}),o&&i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>d(o),disabled:!h,children:"Activate now"})]}),i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-slate-100 dark:border-[#1e2330] pt-5",children:[f&&i.jsx(ke,{variant:"secondary",onClick:f,disabled:r,children:"Cancel"}),i.jsx(ke,{variant:"primary",onClick:u,disabled:r||!l||!h,children:r?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:14})," ",c?"Saving…":"Creating…"]}):c?"Save changes":"Create experiment"})]})]})]})}const Fg={name:"",experimentType:"algorithm_comparison",controlAlgorithmId:"",variantAlgorithmId:"",variantSplitPct:10,minSampleSize:5e3,guardrailThresholdPp:3,variantSrConfig:{...YFe}};function u9e(){const t=Ro(),{merchantId:e}=Er(),{mutate:n}=ej(),{data:r,mutate:a}=ut(e?["routing-list",e]:null,()=>Ve(`/routing/list/${e}`)),{data:s,mutate:o}=ut(e?["active-routing",e]:null,()=>Ve(`/routing/list/active/${e}`)),l=Al(e||void 0),c=l.isEnabled("ab-test-real-payments"),u=s==null?void 0:s.find(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)==="ab_test"}),d=(r==null?void 0:r.filter(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)==="ab_test"}))??[],f=(r==null?void 0:r.filter(ie=>{var me;return((me=ie.algorithm_data||ie.algorithm)==null?void 0:me.type)!=="ab_test"}))??[],[h,p]=Nl(),m=h.get("experiment"),[x,y]=g.useState(!1),b=d.find(ie=>ie.id===m)??null,[v,w]=g.useState({...Fg}),[j,k]=g.useState(!1),[_,S]=g.useState(null),[N,E]=g.useState(null),[P,M]=g.useState(null),[A,O]=g.useState(null),[D,I]=g.useState(null),[X,Q]=g.useState(null),[V,Y]=g.useState(!1),[H,G]=g.useState(null);g.useEffect(()=>{!m&&!x&&u&&p({experiment:u.id},{replace:!0})},[u==null?void 0:u.id]);function $(ie){p({experiment:ie},{replace:!0}),y(!1)}function F(){p({},{replace:!0}),y(!0),G(null),w({...Fg}),E(null),S(null)}function R(ie){const me=v9(ie);me&&(w(me),G(ie.id),y(!0),E(null),S(null))}function z(ie){const me=v9(ie);me&&(p({},{replace:!0}),w({...me,name:`${me.name} (copy)`}),G(null),y(!0),E(null),S(null))}function U(){y(!1),G(null),w({...Fg}),S(null),E(null),u&&p({experiment:u.id},{replace:!0})}async function ee(){if(!e)return;if(H){if(!v.name.trim()){S("Enter an experiment name");return}const me=d.find(Ne=>Ne.id===H),ve=me&&(me.algorithm_data||me.algorithm);if(!me||!ve){S("Could not load the experiment to edit");return}k(!0),S(null),E(null);try{await Ve("/routing/update",{created_by:e,routing_algorithm_id:H,name:v.name.trim(),description:me.description??"",algorithm:ve}),await a(),E(`"${v.name.trim()}" updated.`),p({experiment:H},{replace:!0}),G(null),w({...Fg}),y(!1)}catch(Ne){S(Ne instanceof Error?Ne.message:"Failed to update experiment")}finally{k(!1)}return}const ie=HFe(v);if(ie){S(ie);return}k(!0),S(null),E(null);try{const me=KFe(v,e),ve=await Ve("/routing/create",me),Ne=ve.rule_id||ve.id;M(Ne),E(`"${v.name}" created.`),w({...Fg}),await a(),p({experiment:Ne},{replace:!0}),y(!1)}catch(me){S(me instanceof Error?me.message:"Failed to create experiment")}finally{k(!1)}}async function pe(ie){if(e)try{await Ve("/routing/delete",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a()]),m===ie&&p({},{replace:!0})}catch(me){S(me instanceof Error?me.message:"Failed to delete experiment")}finally{Q(null)}}async function re(ie){if(!!(u&&u.id!==ie)||!c){O(ie);return}await he(ie)}async function he(ie){if(e)try{c||await l.setFeatureEnabled("ab-test-real-payments",!0),await Ve("/routing/activate",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a()]),M(null),E(null)}catch(me){S(me instanceof Error?me.message:"Failed to activate experiment")}}async function q(ie){Y(!0),S(null);try{await l.setFeatureEnabled("ab-test-real-payments",ie)}catch(me){S(me instanceof Error?me.message:"Failed to enable A/B testing on live traffic")}finally{Y(!1)}}async function W(ie){if(e)try{await Ve("/routing/deactivate",{created_by:e,routing_algorithm_id:ie}),await Promise.all([o(),a(),n(["active-routing",e])])}catch(me){S(me instanceof Error?me.message:"Failed to stop experiment")}finally{I(null)}}function ue(ie){var me;return ie==="sr_routing"?"SR Routing (Dynamic)":((me=r==null?void 0:r.find(ve=>ve.id===ie))==null?void 0:me.name)??ie}const te=x?"create":b?"detail":d.length===0?"create":"empty";return i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("div",{children:i.jsx(qr,{title:"A/B Testing",description:"Compare routing strategies on live traffic with statistical significance."})}),te!=="create"&&i.jsxs(ke,{variant:"secondary",size:"sm",onClick:F,disabled:!t,children:[i.jsx(Qn,{size:14})," New experiment"]})]}),u&&l.data&&!c&&i.jsxs("div",{className:"flex flex-wrap items-start gap-3 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(Pm,{size:18,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-sm font-medium text-amber-900 dark:text-amber-200",children:["“",u.name,"” is active but not collecting results"]}),i.jsx("p",{className:"mt-0.5 text-[13px] text-amber-800/90 dark:text-amber-300/90 max-w-[57ch] leading-[18px]",children:"“A/B test on real payments” is off, so live traffic isn’t being split between the arms. Turn it back on to resume recording stats."})]}),i.jsx(ke,{size:"sm",variant:"primary",onClick:()=>q(!0),disabled:V,children:V?i.jsxs(i.Fragment,{children:[i.jsx(mt,{size:13})," Enabling…"]}):"Enable live-traffic testing"})]}),e&&r&&d.length===0?i.jsx("div",{className:"mx-auto w-full max-w-3xl",children:i.jsx(S9,{form:v,setForm:w,eligibleAlgorithms:f,saving:j,error:_,success:N,createdId:P,merchantId:e,isEditing:H!==null,onCreate:ee,onActivateCreated:ie=>re(ie)})}):i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[280px_1fr] gap-5",children:[i.jsx("div",{className:"space-y-1",children:e?r?i.jsx("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] overflow-hidden",children:d.map((ie,me)=>{var Be;const ve=(Be=ie.algorithm_data||ie.algorithm)==null?void 0:Be.data,Ne=(u==null?void 0:u.id)===ie.id,je=m===ie.id,Me=KX(ve);return i.jsxs("button",{type:"button",onClick:()=>$(ie.id),className:`relative w-full text-left pl-4 pr-3 py-3 transition-colors ${me>0?"border-t border-slate-100 dark:border-[#1e2330]":""} ${je?"bg-brand-50 dark:bg-brand-900/20":"hover:bg-slate-50 dark:hover:bg-[#0f0f16]"}`,children:[je&&i.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-brand-500"}),i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[i.jsx("p",{className:`truncate text-base font-medium ${je?"text-brand-700 dark:text-brand-300":"text-slate-800 dark:text-white"}`,children:ie.name}),Ne&&i.jsx("span",{className:"shrink-0 inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[11px] font-semibold bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 leading-4",children:"● Active"})]}),ve&&i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] mt-0.5 truncate max-w-[57ch] leading-[18px]",children:Me==="sr_config_tuning"?"SR config tuning":`${xy(ve.control_algorithm_id,ve.control_sr_config,ue)} → ${xy(ve.variant_algorithm_id,ve.variant_sr_config,ue)}`})]},ie.id)})}):i.jsx("p",{className:"px-2 py-2 text-sm text-slate-500",children:"Loading…"}):i.jsx("p",{className:"px-2 py-2 text-base text-slate-500",children:"Set merchant ID to load experiments."})}),i.jsxs("div",{children:[te==="detail"&&b&&e&&i.jsx(l9e,{algorithm:b,isActive:(u==null?void 0:u.id)===b.id,merchantId:e,algorithmName:ue,algorithms:r??[],onActivate:()=>re(b.id),onStop:()=>I(b.id),onEdit:()=>R(b),onClone:()=>z(b),onDelete:()=>Q(b.id),realPaymentsOn:c}),te==="create"&&i.jsx(S9,{form:v,setForm:w,eligibleAlgorithms:f,saving:j,error:_,success:N,createdId:P,merchantId:e,isEditing:H!==null,onCreate:ee,onActivateCreated:ie=>re(ie),onCancel:U}),te==="empty"&&i.jsxs("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 dark:border-[#222226] py-16 text-center",children:[i.jsx(qp,{size:26,className:"text-slate-500 dark:text-slate-400 mb-2"}),i.jsx("p",{className:"text-base text-slate-500",children:"Select an experiment to view details"})]})]})]}),(()=>{const ie=!!(A&&u&&u.id!==A),me=!c,ve=[ie?"An experiment is already running — activating this one replaces it.":null,me?"This also turns on “A/B test on real payments”, so live traffic is split between the arms and results start collecting. You can stop the experiment at any time to revert to standard routing.":null].filter(Boolean).join(" ");return i.jsx(qs,{open:A!==null,title:ie?"Switch active experiment?":"Route live traffic through this experiment?",description:ve,confirmLabel:me?"Enable & activate":"Yes, activate",variant:"primary",onConfirm:()=>{const Ne=A;O(null),he(Ne)},onCancel:()=>O(null)})})(),i.jsx(qs,{open:D!==null,title:"Stop experiment?",description:"This will deactivate the experiment and restore default routing. Results will remain available.",confirmLabel:"Stop experiment",variant:"danger",onConfirm:()=>{W(D)},onCancel:()=>I(null)}),i.jsx(qs,{open:X!==null,title:"Delete experiment?",description:"This permanently deletes the experiment definition. Any results already collected remain in analytics. This cannot be undone.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{pe(X)},onCancel:()=>Q(null)})]})}const JX="theme";function ZX(){if(typeof window>"u")return null;const t=window.localStorage.getItem(JX);return t==="dark"||t==="light"?t:null}function d9e(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function zm(){return ZX()??d9e()}function cM(t=zm()){typeof document>"u"||document.documentElement.classList.toggle("dark",t==="dark")}function Xy(t){typeof window<"u"&&window.localStorage.setItem(JX,t),cM(t)}function f9e(){const t=_l(),e=Kr(),{user:n,clearAuth:r}=xr(),[a,s]=g.useState(null),[o,l]=g.useState(()=>zm()==="dark"),[c,u]=g.useState(!1),d=g.useRef(null),f=a??t.pathname,h=n!=null&&n.email?n.email.slice(0,2).toUpperCase():"ME";g.useEffect(()=>{function x(y){d.current&&!d.current.contains(y.target)&&u(!1)}return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]),g.useEffect(()=>{if(typeof window.matchMedia!="function")return;const x=window.matchMedia("(prefers-color-scheme: dark)"),y=()=>{if(ZX())return;const b=x.matches;l(b),cM(b?"dark":"light")};return y(),x.addEventListener("change",y),()=>x.removeEventListener("change",y)},[]);async function p(){u(!1);try{await la("/auth/logout",{method:"POST"})}catch{}r(),e("/login",{replace:!0})}function m(){const x=o?"light":"dark";l(x==="dark"),Xy(x)}return g.useLayoutEffect(()=>{if(!a)return;(t.pathname===a||t.pathname.startsWith(`${a}/`))&&s(null)},[t.pathname,a]),i.jsxs("aside",{className:"relative z-20 flex h-screen w-64 shrink-0 flex-col border-r border-slate-200 bg-white transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d]",children:[i.jsx("div",{className:"flex h-[78px] shrink-0 items-center border-b border-slate-200 px-4 transition-colors duration-300 dark:border-[#22262f]",children:i.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 434 56",fill:"none",className:"h-14 w-auto","aria-label":"Juspay Decision Engine",role:"img",children:[i.jsx("defs",{children:i.jsx("style",{children:".de-brand{font-family:'Google Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:30px;dominant-baseline:central}.de-bold{font-weight:700;letter-spacing:-0.02em}.de-semi{font-weight:600;letter-spacing:-0.01em}"})}),i.jsxs("g",{transform:"translate(0, 1)",children:[i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2375 54.3079C25.9366 54.3441 24.6718 54.2355 23.3708 54.0545C19.8655 53.5477 16.577 52.4255 13.5414 50.5792C6.81987 46.5246 2.51952 40.6238 0.748782 32.8766C0.35127 31.139 0.170583 29.3651 0.170583 27.5912C0.134446 20.4957 2.44724 14.2691 7.1451 8.98363C11.2286 4.42224 16.2879 1.63472 22.2505 0.476271C23.9129 0.150457 25.5752 -0.0305508 27.2375 0.0418522C27.2375 2.75697 27.2375 5.43588 27.2375 8.15099C27.1652 8.18719 27.093 8.2234 27.0207 8.2958C26.045 8.98363 25.0693 9.70766 24.1297 10.4679C21.9976 12.2056 19.9739 14.0518 18.2754 16.2601C15.9988 19.1925 14.481 22.4144 14.2642 26.2156C14.1558 28.0256 14.3726 29.7995 14.9508 31.501C16.3601 35.7366 20.7328 40.1169 26.8761 40.2255C27.2375 40.2255 27.3098 40.298 27.3098 40.6962C27.2736 42.5424 27.2736 46.235 27.2736 46.235C27.2736 46.235 27.2736 46.4522 27.2736 46.5608C27.2375 49.1311 27.2375 51.7014 27.2375 54.3079Z",fill:"#0099FF"}),i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2368 8.11469C27.2368 8.11469 27.2368 2.72066 27.2368 0.00554404C28.7184 -0.0306575 30.1639 0.114149 31.6094 0.331358C34.3197 0.765776 36.9216 1.56221 39.379 2.82926C44.4743 5.47197 48.4856 9.23693 51.1959 14.3775C52.7498 17.3461 53.7617 20.4956 54.1592 23.7899C54.6289 27.6635 54.2676 31.5009 53.1112 35.2296C51.7741 39.4652 49.5336 43.194 46.3896 46.3435C42.5591 50.1447 38.0057 52.6064 32.7297 53.7286C30.9228 54.0906 29.0798 54.3078 27.2368 54.2716C27.2368 51.6651 27.2368 49.0948 27.2368 46.4883C27.2368 46.3797 27.2368 46.1987 27.2368 46.1987C27.2368 46.1987 27.3452 46.1263 27.3813 46.0901C30.2001 44.099 32.8742 41.9269 35.187 39.3204C36.7048 37.6189 38.0057 35.8088 38.9092 33.7092C40.174 30.7406 40.6799 27.6997 40.0294 24.4778C38.873 18.6131 33.6331 14.2327 27.5982 14.0879C27.2007 14.0879 27.2368 13.7621 27.2368 13.7621V8.11469Z",fill:"#0561E2"})]}),i.jsx("text",{x:"72",y:"28",className:"de-brand de-bold fill-[#0F172A] dark:fill-white",children:"JUSPAY"}),i.jsx("text",{x:"200",y:"28",className:"de-brand de-semi fill-[#475569] dark:fill-[#9CA3AF]",children:"Decision Engine"})]})}),i.jsxs("nav",{className:"flex-1 space-y-0.5 overflow-y-auto px-4 py-4",children:[i.jsx(ri,{to:"/",icon:gH,end:!0,selectedPath:f,onNavigate:s,children:"Overview"}),i.jsx(ri,{to:"/analytics",icon:a1,selectedPath:f,onNavigate:s,children:"Analytics"}),i.jsx(ri,{to:"/audit",icon:Xh,selectedPath:f,onNavigate:s,children:"Decision Audit"}),i.jsx(ri,{to:"/events",icon:Zw,selectedPath:f,onNavigate:s,children:"Routing Events"}),i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Routing"})}),i.jsx(ri,{to:"/routing",icon:qj,end:!0,selectedPath:f,onNavigate:s,children:"Routing Hub"}),i.jsx(ri,{to:"/routing/sr",icon:Kj,indent:!0,selectedPath:f,onNavigate:s,children:"Multi Objective"}),i.jsx(ri,{to:"/routing/rules",icon:Wj,indent:!0,selectedPath:f,onNavigate:s,children:"Rule-Based"}),i.jsx(ri,{to:"/routing/volume",icon:cf,indent:!0,selectedPath:f,onNavigate:s,children:"Volume Split"}),i.jsx(ri,{to:"/routing/debit",icon:Oo,indent:!0,selectedPath:f,onNavigate:s,children:"Debit Routing"}),i.jsx(ri,{to:"/routing/ab-testing",icon:qp,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"A/B Testing"}),oM?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Simulation"})}),i.jsx(ri,{to:"/decisions/simulator",icon:qp,selectedPath:f,onNavigate:s,children:"Decision Simulator"})]}):null,i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Settings"})}),i.jsx(ri,{to:"/members",icon:vT,selectedPath:f,onNavigate:s,children:"Members"}),i.jsx(ri,{to:"/api-keys",icon:gT,selectedPath:f,onNavigate:s,children:"API Keys"})]}),i.jsxs("div",{ref:d,className:"relative border-t border-slate-200 bg-white px-4 py-4 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#0a0d12]",children:[c?i.jsxs("div",{className:"absolute bottom-full left-4 right-4 mb-3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_20px_60px_-36px_rgba(15,23,42,0.35)] dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-3 py-3 dark:border-[#242b36]",children:[i.jsx("p",{className:"break-all text-sm font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Signed-in user"}),n!=null&&n.merchantId?i.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate text-xs text-slate-500 dark:text-[#8a8a93]",children:n.merchantId}),i.jsx(qy,{text:n.merchantId,label:"Copy merchant ID",size:13,className:"rounded-md p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:text-[#6d768a] dark:hover:bg-[#151b24] dark:hover:text-white"})]}):null]}),i.jsxs("button",{type:"button",onClick:()=>{u(!1),e("/account")},className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:text-slate-300 dark:hover:bg-white/5",children:[i.jsx(mT,{size:16}),"Change password"]}),i.jsxs("button",{type:"button",onClick:p,className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-red-600 transition-colors hover:bg-red-50 dark:text-red-300 dark:hover:bg-red-950/25",children:[i.jsx(yH,{size:16}),"Logout"]})]}):null,i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("button",{type:"button",onClick:()=>u(x=>!x),"aria-haspopup":"menu","aria-expanded":c,title:(n==null?void 0:n.email)||"Account",className:"flex min-w-0 flex-1 items-center gap-2 rounded-2xl px-1.5 py-2 text-left transition-colors hover:bg-slate-100 dark:hover:bg-[#151b24]",children:[i.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:h}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx("span",{className:"block truncate text-xs font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Account"})}),i.jsx(wn,{size:13,className:`shrink-0 text-slate-500 transition-transform ${c?"rotate-180":""}`})]}),i.jsx("button",{type:"button",onClick:m,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-[#1a1f2a] dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Dy,{size:15}):i.jsx(Ry,{size:15})})]})]})]})}function ri({to:t,icon:e,children:n,end:r,indent:a,beta:s,selectedPath:o,onNavigate:l}){const c=Kr(),u=r?o===t:o===t||o.startsWith(`${t}/`);return i.jsxs("button",{type:"button","aria-current":u?"page":void 0,onMouseDown:d=>{d.detail>0&&d.preventDefault()},onClick:d=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),l==null||l(t),d.currentTarget.blur(),c(t)},className:`group relative flex w-full appearance-none items-center gap-3 rounded-[16px] border-0 px-4 py-2.5 text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[#3b82f6]/40 focus-visible:ring-offset-0 ${a?"pl-8":""} ${u?"bg-transparent text-slate-950 dark:text-white":"bg-transparent text-slate-500 hover:bg-slate-900/[0.025] hover:text-slate-900 dark:text-[#8d96aa] dark:hover:bg-white/[0.035] dark:hover:text-white"} leading-5`,children:[i.jsx("span",{"aria-hidden":"true",className:`absolute left-1 top-1/2 h-7 w-[3px] -translate-y-1/2 rounded-full transition-all duration-150 ${u?"bg-brand-600 opacity-100 dark:bg-sky-300":"opacity-0"}`}),i.jsx(e,{size:18,className:`transition-colors duration-200 ${u?"text-brand-600 dark:text-sky-300":"text-slate-500 group-hover:text-slate-700 dark:text-[#78849a] dark:group-hover:text-white"}`,strokeWidth:u?2.5:2}),i.jsx("span",{className:"flex-1 text-left",children:n}),s&&i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400 leading-4",children:"Beta"})]})}const h9e={leader_changed:V0,gateway_entered_auth_band:jH,gateway_exited_auth_band:SH,calibration_applied:Hi},p9e={leader_changed:"text-sky-700 dark:text-sky-300",gateway_entered_auth_band:"text-emerald-700 dark:text-emerald-300",gateway_exited_auth_band:"text-amber-700 dark:text-amber-300",calibration_applied:"text-violet-600 dark:text-violet-300"};function m9e(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function g9e(){const t=Kr(),[e,n]=g.useState(!1),{events:r,unseenCount:a,markAllSeen:s,isUnavailable:o}=FT("1h",{enabled:e}),l=g.useRef(null);g.useEffect(()=>{function u(d){l.current&&!l.current.contains(d.target)&&n(!1)}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[]);const c=r.slice(0,8);return i.jsxs("div",{className:"relative shrink-0",ref:l,children:[i.jsxs("button",{onClick:()=>n(u=>!u),"aria-label":"Routing events",className:"relative flex items-center justify-center h-8 w-8 rounded-lg border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] hover:bg-slate-50 dark:hover:bg-[#18181f] transition-colors text-slate-700 dark:text-slate-300",children:[i.jsx(OCe,{size:14,className:"text-slate-500"}),a>0&&i.jsx("span",{className:"absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-brand-600 px-1 text-[11px] font-semibold text-white leading-4",children:a>99?"99+":a})]}),e&&i.jsxs("div",{className:"absolute right-0 top-10 w-96 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg py-1 z-50",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 leading-4",children:"Routing events"}),r.length>0&&i.jsx("button",{onClick:s,className:"text-[11px] font-medium text-brand-600 hover:underline leading-4",children:"Mark all read"})]}),c.length===0?i.jsx("p",{className:"px-3 py-4 text-[12px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-4",children:o?"Routing events are unavailable — analytics pipeline is offline.":"No routing events in the last hour."}):c.map(u=>{const d=h9e[u.event_type];return i.jsxs("div",{className:"flex items-start gap-2.5 px-3 py-2 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(d,{size:14,className:p9e[u.event_type]})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-[12px] text-slate-700 dark:text-slate-300 leading-4",children:BT(u)}),i.jsx("p",{className:"text-[11px] text-slate-500 leading-4",children:m9e(u.bucket_ms)})]})]},u.id)}),i.jsx("div",{className:"border-t border-[#e6e6ee] dark:border-[#1a1a24] mt-1 pt-1",children:i.jsx("button",{onClick:()=>{n(!1),t("/events")},className:"w-full px-3 py-2 text-left text-[13px] font-medium text-brand-600 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors leading-[18px]",children:"View all events"})})]})]})}var _9=1,x9e=.9,y9e=.8,v9e=.17,bN=.1,wN=.999,b9e=.9999,w9e=.99,k9e=/[\\\/_+.#"@\[\(\{&]/,j9e=/[\\\/_+.#"@\[\(\{&]/g,S9e=/[\s-]/,QX=/[\s-]/g;function J5(t,e,n,r,a,s,o){if(s===e.length)return a===t.length?_9:w9e;var l=`${a},${s}`;if(o[l]!==void 0)return o[l];for(var c=r.charAt(s),u=n.indexOf(c,a),d=0,f,h,p,m;u>=0;)f=J5(t,e,n,r,u+1,s+1,o),f>d&&(u===a?f*=_9:k9e.test(t.charAt(u-1))?(f*=y9e,p=t.slice(a,u-1).match(j9e),p&&a>0&&(f*=Math.pow(wN,p.length))):S9e.test(t.charAt(u-1))?(f*=x9e,m=t.slice(a,u-1).match(QX),m&&a>0&&(f*=Math.pow(wN,m.length))):(f*=v9e,a>0&&(f*=Math.pow(wN,u-a))),t.charAt(u)!==e.charAt(s)&&(f*=b9e)),(ff&&(f=h*bN)),f>d&&(d=f),u=n.indexOf(c,u+1);return o[l]=d,d}function N9(t){return t.toLowerCase().replace(QX," ")}function _9e(t,e,n){return t=n&&n.length>0?`${t+" "+n.join(" ")}`:t,J5(t,e,N9(t),N9(e),0,0,{})}var N9e=Object.defineProperty,Um=(t,e)=>N9e(t,"name",{value:e,configurable:!0}),eJ=!!(typeof window<"u"&&window.document&&window.document.createElement);function Kd(t,e,{checkForDefaultPrevented:n=!0}={}){return Um(function(a){if(t==null||t(a),n===!1||!a||!a.defaultPrevented)return e==null?void 0:e(a)},"handleEvent")}Um(Kd,"composeEventHandlers");function C9e(t){var e;if(!eJ)throw new Error("Cannot access window outside of the DOM");return((e=t==null?void 0:t.ownerDocument)==null?void 0:e.defaultView)??window}Um(C9e,"getOwnerWindow");function Z5(t){if(!eJ)throw new Error("Cannot access document outside of the DOM");return(t==null?void 0:t.ownerDocument)??document}Um(Z5,"getOwnerDocument");function tJ(t,e=!1){const{activeElement:n}=Z5(t);if(!(n!=null&&n.nodeName))return null;if(nJ(n)&&n.contentDocument)return tJ(n.contentDocument.body,e);if(e){const r=n.getAttribute("aria-activedescendant");if(r){const a=Z5(n).getElementById(r);if(a)return a}}return n}Um(tJ,"getActiveElement");function nJ(t){return t.tagName==="IFRAME"}Um(nJ,"isFrame");function C9(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function cm(...t){return e=>{let n=!1;const r=t.map(a=>{const s=C9(a,e);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{var b;const{scope:h,children:p,...m}=f,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,y=g.useMemo(()=>m,Object.values(m));return i.jsx(x.Provider,{value:y,children:p})};u.displayName=s+"Provider";function d(f,h,p={}){var b;const{optional:m=!1}=p,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,y=g.useContext(x);if(y)return y;if(o!==void 0)return o;if(!m)throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const a=()=>{const s=n.map(o=>g.createContext(o));return function(l){const c=(l==null?void 0:l[t])||s;return g.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,A9e(a,...e)]}function A9e(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const o=r.reduce((l,{useScope:c,scopeName:u})=>{const f=c(s)[`__scope${u}`];return{...l,...f}},{});return g.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var um=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},O9e=fm[" useId ".trim().toString()]||(()=>{}),T9e=0;function lc(t){const[e,n]=g.useState(O9e());return um(()=>{n(r=>r??String(T9e++))},[t]),e?`radix-${e}`:""}var E9=fm[" useEffectEvent ".trim().toString()],A9=fm[" useInsertionEffect ".trim().toString()];function P9e(t){if(typeof E9=="function")return E9(t);const e=g.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof A9=="function"?A9(()=>{e.current=t}):um(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var M9e=Object.defineProperty,Zy=(t,e)=>M9e(t,"name",{value:e,configurable:!0}),R9e=fm[" useInsertionEffect ".trim().toString()]||um;function rJ({prop:t,defaultProp:e,onChange:n=Zy(()=>{},"onChange"),caller:r}){const[a,s,o]=aJ({defaultProp:e,onChange:n}),l=t!==void 0,c=l?t:a,u=g.useCallback(d=>{var f;if(l){const h=sJ(d)?d(t):d;h!==t&&((f=o.current)==null||f.call(o,h))}else s(d)},[l,t,s,o]);return[c,u]}Zy(rJ,"useControllableState");function aJ({defaultProp:t,onChange:e}){const[n,r]=g.useState(t),a=g.useRef(n),s=g.useRef(e);return R9e(()=>{s.current=e},[e]),g.useEffect(()=>{var o;a.current!==n&&((o=s.current)==null||o.call(s,n),a.current=n)},[n,a]),[n,r,s]}Zy(aJ,"useUncontrolledState");function sJ(t){return typeof t=="function"}Zy(sJ,"isFunction");var O9=Symbol("RADIX:SYNC_STATE");function D9e(t,e,n,r){const{prop:a,defaultProp:s,onChange:o,caller:l}=e,c=a!==void 0,u=P9e(o),d=[{...n,state:s}];r&&d.push(r);const[f,h]=g.useReducer((y,b)=>{if(b.type===O9)return{...y,state:b.state};const v=t(y,b);return c&&!Object.is(v.state,y.state)&&u(v.state),v},...d),p=f.state,m=g.useRef(p);g.useEffect(()=>{m.current!==p&&(m.current=p,c||u(p))},[p,m,c]);const x=g.useMemo(()=>a!==void 0?{...f,state:a}:f,[f,a]);return g.useEffect(()=>{c&&!Object.is(a,f.state)&&h({type:O9,state:a})},[a,f.state,c]),[x,h]}Zy(D9e,"useControllableStateReducer");function iJ(t){const e=g.forwardRef((n,r)=>{let{children:a,...s}=n,o=null,l=!1;const c=[];T9(a)&&typeof Bb=="function"&&(a=Bb(a._payload)),g.Children.forEach(a,h=>{var p;if(B9e(h)){l=!0;const m=h;let x="child"in m.props?m.props.child:m.props.children;T9(x)&&typeof Bb=="function"&&(x=Bb(x._payload)),o=$9e(m,x),c.push((p=o==null?void 0:o.props)==null?void 0:p.children)}else c.push(h)}),o?o=g.cloneElement(o,void 0,c):!l&&g.Children.count(a)===1&&g.isValidElement(a)&&(o=a);const u=o?F9e(o):void 0,d=Jy(r,u);if(!o){if(a||a===0)throw new Error(l?W9e(t):V9e(t));return a}const f=L9e(s,o.props??{});return o.type!==g.Fragment&&(f.ref=r?d:u),g.cloneElement(o,f)});return e.displayName=`${t}.Slot`,e}var I9e=Symbol.for("radix.slottable"),$9e=(t,e)=>{if("child"in t.props){const n=t.props.child;return g.isValidElement(n)?g.cloneElement(n,void 0,t.props.children(n.props.children)):null}return g.isValidElement(e)?e:null};function L9e(t,e){const n={...e};for(const r in e){const a=t[r],s=e[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const c=s(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...t,...n}}function F9e(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function B9e(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===I9e}var z9e=Symbol.for("react.lazy");function T9(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===z9e&&"_payload"in t&&U9e(t._payload)}function U9e(t){return typeof t=="object"&&t!==null&&"then"in t}var V9e=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,W9e=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Bb=fm[" use ".trim().toString()],H9e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],to=H9e.reduce((t,e)=>{const n=iJ(`Primitive.${e}`),r=g.forwardRef((a,s)=>{const{asChild:o,...l}=a,c=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function G9e(t,e){t&&fs.flushSync(()=>t.dispatchEvent(e))}function yy(t){const e=g.useRef(t);return g.useEffect(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var q9e=Object.defineProperty,va=(t,e)=>q9e(t,"name",{value:e,configurable:!0}),Q5="dismissableLayer.update",K9e="dismissableLayer.pointerDownOutside",Y9e="dismissableLayer.focusOutside",P9,oJ=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),X9e=g.forwardRef(va(function(e,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...d}=e,f=g.useContext(oJ),[h,p]=g.useState(null),m=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=g.useState({}),y=Jy(n,p),b=Array.from(f.layers),[v]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),w=v?b.indexOf(v):-1,j=h?b.indexOf(h):-1,k=f.layersWithOutsidePointerEventsDisabled.size>0,_=j>=w,S=g.useRef(!1),N=cJ(A=>{o==null||o(A),c==null||c(A),A.defaultPrevented||u==null||u()},{ownerDocument:m,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:g.useCallback(A=>{if(!(A instanceof Node))return!1;const O=[...f.branches].some(D=>D.contains(A));return _&&!O},[f.branches,_])}),E=uJ(A=>{if(a&&S.current)return;const O=A.target;[...f.branches].some(I=>I.contains(O))||(l==null||l(A),c==null||c(A),A.defaultPrevented||u==null||u())},m),P=h?j===b.length-1:!1,M=yy(A=>{A.key==="Escape"&&(s==null||s(A),!A.defaultPrevented&&u&&(A.preventDefault(),u()))});return g.useEffect(()=>{if(P)return m.addEventListener("keydown",M,{capture:!0}),()=>m.removeEventListener("keydown",M,{capture:!0})},[m,P,M]),g.useEffect(()=>{if(h)return r&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(P9=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(h)),f.layers.add(h),eO(),()=>{r&&(f.layersWithOutsidePointerEventsDisabled.delete(h),f.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=P9))}},[h,m,r,f]),g.useEffect(()=>()=>{h&&(f.layers.delete(h),f.layersWithOutsidePointerEventsDisabled.delete(h),eO())},[h,f]),g.useEffect(()=>{const A=va(()=>x({}),"handleUpdate");return document.addEventListener(Q5,A),()=>document.removeEventListener(Q5,A)},[]),i.jsx(to.div,{...d,ref:y,style:{pointerEvents:k?_?"auto":"none":void 0,...e.style},onFocusCapture:Kd(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Kd(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Kd(e.onPointerDownCapture,N.onPointerDownCapture)})},"DismissableLayer"));function lJ(){const t=g.useContext(oJ),[e,n]=g.useState(null);return g.useEffect(()=>{if(e)return t.dismissableSurfaces.add(e),()=>{t.dismissableSurfaces.delete(e)}},[e,t.dismissableSurfaces]),n}va(lJ,"useDismissableLayerSurface");var J9e=va(()=>!0,"IS_TRUE");function cJ(t,e){const{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:a,dismissableSurfaces:s,shouldHandlePointerDownOutside:o=J9e}=e,l=yy(t),c=g.useRef(!1),u=g.useRef(!1),d=g.useRef(new Map),f=g.useRef(()=>{});return g.useEffect(()=>{function h(){u.current=!1,a.current=!1,d.current.clear()}va(h,"resetOutsideInteraction");function p(){return Array.from(d.current.values()).some(Boolean)}va(p,"isOutsideInteractionIntercepted");function m(w){if(!u.current)return;const j=w.target;j instanceof Node&&[...s].some(_=>_.contains(j))||d.current.set(w.type,!0),w.type==="click"&&window.setTimeout(()=>{u.current&&f.current()},0)}va(m,"handleInteractionCapture");function x(w){u.current&&d.current.set(w.type,!1)}va(x,"handleInteractionBubble");const y=va(w=>{if(w.target&&!c.current){let j=function(){n.removeEventListener("click",f.current);const _=p();h(),_||uM(K9e,l,k,{discrete:!0})};if(va(j,"handleAndDispatchPointerDownOutsideEvent"),!o(w.target)){n.removeEventListener("click",f.current),h(),c.current=!1;return}const k={originalEvent:w};u.current=!0,a.current=r&&w.button===0,d.current.clear(),!r||w.button!==0?j():(n.removeEventListener("click",f.current),f.current=j,n.addEventListener("click",f.current,{once:!0}))}else n.removeEventListener("click",f.current),h();c.current=!1},"handlePointerDown"),b=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const w of b)n.addEventListener(w,m,!0),n.addEventListener(w,x);const v=window.setTimeout(()=>{n.addEventListener("pointerdown",y)},0);return()=>{window.clearTimeout(v),n.removeEventListener("pointerdown",y),n.removeEventListener("click",f.current);for(const w of b)n.removeEventListener(w,m,!0),n.removeEventListener(w,x)}},[n,l,r,a,s,o]),{onPointerDownCapture:va(()=>c.current=!0,"onPointerDownCapture")}}va(cJ,"usePointerDownOutside");function uJ(t,e=globalThis==null?void 0:globalThis.document){const n=yy(t),r=g.useRef(!1);return g.useEffect(()=>{const a=va(s=>{s.target&&!r.current&&uM(Y9e,n,{originalEvent:s},{discrete:!1})},"handleFocus");return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:va(()=>r.current=!0,"onFocusCapture"),onBlurCapture:va(()=>r.current=!1,"onBlurCapture")}}va(uJ,"useFocusOutside");function eO(){const t=new CustomEvent(Q5);document.dispatchEvent(t)}va(eO,"dispatchUpdate");function uM(t,e,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),r?G9e(a,s):a.dispatchEvent(s)}va(uM,"handleAndDispatchCustomEvent");var Z9e=Object.defineProperty,ms=(t,e)=>Z9e(t,"name",{value:e,configurable:!0}),kN="focusScope.autoFocusOnMount",jN="focusScope.autoFocusOnUnmount",M9={bubbles:!1,cancelable:!0},Q9e=g.forwardRef(ms(function(e,n){const{loop:r=!1,trapped:a=!1,onMountAutoFocus:s,onUnmountAutoFocus:o,...l}=e,[c,u]=g.useState(null),d=yy(s),f=yy(o),h=g.useRef(null),p=Jy(n,u),m=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(a){let y=function(j){if(m.paused||!c)return;const k=j.target;c.contains(k)?h.current=k:Gl(h.current,{select:!0})},b=function(j){if(m.paused||!c)return;const k=j.relatedTarget;k!==null&&(c.contains(k)||Gl(h.current,{select:!0}))},v=function(j){if(document.activeElement===document.body)for(const _ of j)_.removedNodes.length>0&&Gl(c)};ms(y,"handleFocusIn"),ms(b,"handleFocusOut"),ms(v,"handleMutations"),document.addEventListener("focusin",y),document.addEventListener("focusout",b);const w=new MutationObserver(v);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),w.disconnect()}}},[a,c,m.paused]),g.useEffect(()=>{if(c){R9.add(m);const y=document.activeElement;if(!c.contains(y)){const v=new CustomEvent(kN,M9);c.addEventListener(kN,d),c.dispatchEvent(v),v.defaultPrevented||(dJ(gJ(dM(c)),{select:!0}),document.activeElement===y&&Gl(c))}return()=>{c.removeEventListener(kN,d),setTimeout(()=>{const v=new CustomEvent(jN,M9);c.addEventListener(jN,f),c.dispatchEvent(v),v.defaultPrevented||Gl(y??document.body,{select:!0}),c.removeEventListener(jN,f),R9.remove(m)},0)}}},[c,d,f,m]);const x=g.useCallback(y=>{if(!r&&!a||m.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,v=document.activeElement;if(b&&v){const w=y.currentTarget,[j,k]=fJ(w);j&&k?!y.shiftKey&&v===k?(y.preventDefault(),r&&Gl(j,{select:!0})):y.shiftKey&&v===j&&(y.preventDefault(),r&&Gl(k,{select:!0})):v===w&&y.preventDefault()}},[r,a,m.paused]);return i.jsx(to.div,{tabIndex:-1,...l,ref:p,onKeyDown:x})},"FocusScope"));function dJ(t,{select:e=!1}={}){const n=document.activeElement;for(const r of t)if(Gl(r,{select:e}),document.activeElement!==n)return}ms(dJ,"focusFirst");function fJ(t){const e=dM(t),n=tO(e,t),r=tO(e.reverse(),t);return[n,r]}ms(fJ,"getTabbableEdges");function dM(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:ms(r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)e.push(n.currentNode);return e}ms(dM,"getTabbableCandidates");function tO(t,e){const n=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const r of t)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):hJ(r,{upTo:e})))return r}ms(tO,"findVisible");function hJ(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}ms(hJ,"isHidden");function pJ(t){return t instanceof HTMLInputElement&&"select"in t}ms(pJ,"isSelectableInput");function Gl(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&pJ(t)&&e&&t.select()}}ms(Gl,"focus");var R9=mJ();function mJ(){let t=[];return{add(e){const n=t[0];e!==n&&(n==null||n.pause()),t=nO(t,e),t.unshift(e)},remove(e){var n;t=nO(t,e),(n=t[0])==null||n.resume()}}}ms(mJ,"createFocusScopesStack");function nO(t,e){const n=[...t],r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}ms(nO,"arrayRemove");function gJ(t){return t.filter(e=>e.tagName!=="A")}ms(gJ,"removeLinks");var eBe=Object.defineProperty,tBe=(t,e)=>eBe(t,"name",{value:e,configurable:!0}),nBe=g.forwardRef(tBe(function(e,n){var c;const{container:r,...a}=e,[s,o]=g.useState(!1);um(()=>o(!0),[]);const l=r||s&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?fs.createPortal(i.jsx(to.div,{...a,ref:n}),l):null},"Portal")),rBe=Object.defineProperty,wc=(t,e)=>rBe(t,"name",{value:e,configurable:!0});function xJ(t,e){return g.useReducer((n,r)=>e[n][r]??n,t)}wc(xJ,"useStateMachine");var fM=wc(t=>{const{present:e,children:n}=t,r=yJ(e),a=typeof n=="function"?n({present:r.isPresent}):g.Children.only(n),s=vJ(r.ref,bJ(a));return typeof n=="function"||r.isPresent?g.cloneElement(a,{ref:s}):null},"Presence");function yJ(t){const[e,n]=g.useState(),r=g.useRef(null),a=g.useRef(t),s=g.useRef("none"),o=g.useRef(void 0),l=t?"mounted":"unmounted",[c,u]=xJ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{c==="mounted"?(s.current=o.current??fh(r.current),o.current=void 0):s.current="none"},[c]),um(()=>{const d=r.current,f=a.current;if(f!==t){const p=s.current,m=fh(d);t?(o.current=m,u("MOUNT")):m==="none"||(d==null?void 0:d.display)==="none"?u("UNMOUNT"):u(f&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,u]),um(()=>{if(e){let d;const f=e.ownerDocument.defaultView??window,h=wc(m=>{const y=fh(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&y&&(u("ANIMATION_END"),!a.current)){const b=e.style.animationFillMode;e.style.animationFillMode="forwards",d=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=b)})}},"handleAnimationEnd"),p=wc(m=>{m.target===e&&(s.current=fh(r.current))},"handleAnimationStart");return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",h),e.addEventListener("animationend",h),()=>{f.clearTimeout(d),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",h),e.removeEventListener("animationend",h)}}else u("ANIMATION_END")},[e,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:g.useCallback(d=>{if(d){const f=getComputedStyle(d);r.current=f,o.current=fh(f)}else r.current=null;n(d)},[])}}wc(yJ,"usePresence");function rO(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}wc(rO,"setRef");function vJ(...t){const e=g.useRef(t);return e.current=t,g.useCallback(n=>{const r=e.current;let a=!1;const s=r.map(o=>{const l=rO(o,n);return!a&&typeof l=="function"&&(a=!0),l});if(a)return()=>{for(let o=0;o{Go||(Go={start:D9(),end:D9()});const{start:t,end:e}=Go;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),zb++,()=>{zb===1&&(Go==null||Go.start.remove(),Go==null||Go.end.remove(),Go=null),zb=Math.max(0,zb-1)}},[])}function D9(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var rl=function(){return rl=Object.assign||function(e){for(var n,r=1,a=arguments.length;r"u")return wBe;var e=kBe(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},SBe=SJ(),up="data-scroll-locked",_Be=function(t,e,n,r){var a=t.left,s=t.top,o=t.right,l=t.gap;return n===void 0&&(n="margin"),` + .`.concat(iBe,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(l,"px ").concat(r,`; + } + body[`).concat(up,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([e&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(o,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(l,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(b1,` { + right: `).concat(l,"px ").concat(r,`; + } + + .`).concat(w1,` { + margin-right: `).concat(l,"px ").concat(r,`; + } + + .`).concat(b1," .").concat(b1,` { + right: 0 `).concat(r,`; + } + + .`).concat(w1," .").concat(w1,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(up,`] { + `).concat(oBe,": ").concat(l,`px; + } +`)},$9=function(){var t=parseInt(document.body.getAttribute(up)||"0",10);return isFinite(t)?t:0},NBe=function(){g.useEffect(function(){return document.body.setAttribute(up,($9()+1).toString()),function(){var t=$9()-1;t<=0?document.body.removeAttribute(up):document.body.setAttribute(up,t.toString())}},[])},CBe=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,a=r===void 0?"margin":r;NBe();var s=g.useMemo(function(){return jBe(a)},[a]);return g.createElement(SBe,{styles:_Be(s,!e,a,n?"":"!important")})},aO=!1;if(typeof window<"u")try{var Ub=Object.defineProperty({},"passive",{get:function(){return aO=!0,!0}});window.addEventListener("test",Ub,Ub),window.removeEventListener("test",Ub,Ub)}catch{aO=!1}var nh=aO?{passive:!1}:!1,EBe=function(t){return t.tagName==="TEXTAREA"},_J=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!EBe(t)&&n[e]==="visible")},ABe=function(t){return _J(t,"overflowY")},OBe=function(t){return _J(t,"overflowX")},L9=function(t,e){var n=e.ownerDocument,r=e;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=NJ(t,r);if(a){var s=CJ(t,r),o=s[1],l=s[2];if(o>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},TBe=function(t){var e=t.scrollTop,n=t.scrollHeight,r=t.clientHeight;return[e,n,r]},PBe=function(t){var e=t.scrollLeft,n=t.scrollWidth,r=t.clientWidth;return[e,n,r]},NJ=function(t,e){return t==="v"?ABe(e):OBe(e)},CJ=function(t,e){return t==="v"?TBe(e):PBe(e)},MBe=function(t,e){return t==="h"&&e==="rtl"?-1:1},RBe=function(t,e,n,r,a){var s=MBe(t,window.getComputedStyle(e).direction),o=s*r,l=n.target,c=e.contains(l),u=!1,d=o>0,f=0,h=0;do{if(!l)break;var p=CJ(t,l),m=p[0],x=p[1],y=p[2],b=x-y-s*m;(m||b)&&NJ(t,l)&&(f+=b,h+=m);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!c&&l!==document.body||c&&(e.contains(l)||e===l));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Vb=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},F9=function(t){return[t.deltaX,t.deltaY]},B9=function(t){return t&&"current"in t?t.current:t},DBe=function(t,e){return t[0]===e[0]&&t[1]===e[1]},IBe=function(t){return` + .block-interactivity-`.concat(t,` {pointer-events: none;} + .allow-interactivity-`).concat(t,` {pointer-events: all;} +`)},$Be=0,rh=[];function LBe(t){var e=g.useRef([]),n=g.useRef([0,0]),r=g.useRef(),a=g.useState($Be++)[0],s=g.useState(SJ)[0],o=g.useRef(t);g.useEffect(function(){o.current=t},[t]),g.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var x=sBe([t.lockRef.current],(t.shards||[]).map(B9),!0).filter(Boolean);return x.forEach(function(y){return y.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var l=g.useCallback(function(x,y){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!o.current.allowPinchZoom;var b=Vb(x),v=n.current,w="deltaX"in x?x.deltaX:v[0]-b[0],j="deltaY"in x?x.deltaY:v[1]-b[1],k,_=x.target,S=Math.abs(w)>Math.abs(j)?"h":"v";if("touches"in x&&S==="h"&&_.type==="range")return!1;var N=window.getSelection(),E=N&&N.anchorNode,P=E?E===_||E.contains(_):!1;if(P)return!1;var M=L9(S,_);if(!M)return!0;if(M?k=S:(k=S==="v"?"h":"v",M=L9(S,_)),!M)return!1;if(!r.current&&"changedTouches"in x&&(w||j)&&(r.current=k),!k)return!0;var A=r.current||k;return RBe(A,y,x,A==="h"?w:j)},[]),c=g.useCallback(function(x){var y=x;if(!(!rh.length||rh[rh.length-1]!==s)){var b="deltaY"in y?F9(y):Vb(y),v=e.current.filter(function(k){return k.name===y.type&&(k.target===y.target||y.target===k.shadowParent)&&DBe(k.delta,b)})[0];if(v&&v.should){y.cancelable&&y.preventDefault();return}if(!v){var w=(o.current.shards||[]).map(B9).filter(Boolean).filter(function(k){return k.contains(y.target)}),j=w.length>0?l(y,w[0]):!o.current.noIsolation;j&&y.cancelable&&y.preventDefault()}}},[]),u=g.useCallback(function(x,y,b,v){var w={name:x,delta:y,target:b,should:v,shadowParent:FBe(b)};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(j){return j!==w})},1)},[]),d=g.useCallback(function(x){n.current=Vb(x),r.current=void 0},[]),f=g.useCallback(function(x){u(x.type,F9(x),x.target,l(x,t.lockRef.current))},[]),h=g.useCallback(function(x){u(x.type,Vb(x),x.target,l(x,t.lockRef.current))},[]);g.useEffect(function(){return rh.push(s),t.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",c,nh),document.addEventListener("touchmove",c,nh),document.addEventListener("touchstart",d,nh),function(){rh=rh.filter(function(x){return x!==s}),document.removeEventListener("wheel",c,nh),document.removeEventListener("touchmove",c,nh),document.removeEventListener("touchstart",d,nh)}},[]);var p=t.removeScrollBar,m=t.inert;return g.createElement(g.Fragment,null,m?g.createElement(s,{styles:IBe(a)}):null,p?g.createElement(CBe,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function FBe(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const BBe=pBe(jJ,LBe);var EJ=g.forwardRef(function(t,e){return g.createElement(S2,rl({},t,{ref:e,sideCar:BBe}))});EJ.classNames=S2.classNames;var zBe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},ah=new WeakMap,Wb=new WeakMap,Hb={},CN=0,AJ=function(t){return t&&(t.host||AJ(t.parentNode))},UBe=function(t,e){return e.map(function(n){if(t.contains(n))return n;var r=AJ(n);return r&&t.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},VBe=function(t,e,n,r){var a=UBe(e,Array.isArray(t)?t:[t]);Hb[n]||(Hb[n]=new WeakMap);var s=Hb[n],o=[],l=new Set,c=new Set(a),u=function(f){!f||l.has(f)||(l.add(f),u(f.parentNode))};a.forEach(u);var d=function(f){!f||c.has(f)||Array.prototype.forEach.call(f.children,function(h){if(l.has(h))d(h);else try{var p=h.getAttribute(r),m=p!==null&&p!=="false",x=(ah.get(h)||0)+1,y=(s.get(h)||0)+1;ah.set(h,x),s.set(h,y),o.push(h),x===1&&m&&Wb.set(h,!0),y===1&&h.setAttribute(n,"true"),m||h.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return d(e),l.clear(),CN++,function(){o.forEach(function(f){var h=ah.get(f)-1,p=s.get(f)-1;ah.set(f,h),s.set(f,p),h||(Wb.has(f)||f.removeAttribute(r),Wb.delete(f)),p||f.removeAttribute(n)}),CN--,CN||(ah=new WeakMap,ah=new WeakMap,Wb=new WeakMap,Hb={})}},WBe=function(t,e,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),a=zBe(t);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),VBe(r,a,n,"aria-hidden")):function(){return null}},HBe=Object.defineProperty,Nc=(t,e)=>HBe(t,"name",{value:e,configurable:!0}),hM="Dialog",[OJ]=E9e(hM),[GBe,Tf]=OJ(hM),qBe=Nc(t=>{const{__scopeDialog:e,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:o=!0}=t,l=g.useRef(null),c=g.useRef(null),[u,d]=rJ({prop:r,defaultProp:a??!1,onChange:s,caller:hM}),[f,h]=g.useState(0),[p,m]=g.useState(0);return i.jsx(GBe,{scope:e,triggerRef:l,contentRef:c,contentId:lc(),titleId:lc(),descriptionId:lc(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:h,setDescriptionCount:m,open:u,onOpenChange:d,onOpenToggle:g.useCallback(()=>d(x=>!x),[d]),modal:o,children:n})},"Dialog"),TJ="DialogPortal",[KBe,PJ]=OJ(TJ,{forceMount:void 0}),YBe=Nc(t=>{const{__scopeDialog:e,forceMount:n,children:r,container:a}=t,s=Tf(TJ,e);return i.jsx(KBe,{scope:e,forceMount:n,children:g.Children.map(r,o=>i.jsx(fM,{present:n||s.open,children:i.jsx(nBe,{asChild:!0,container:a,children:o})}))})},"DialogPortal"),sO="DialogOverlay",XBe=g.forwardRef(Nc(function(e,n){const r=PJ(sO,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Tf(sO,e.__scopeDialog);return o.modal?i.jsx(fM,{present:a||o.open,children:i.jsx(ZBe,{...s,ref:n})}):null},"DialogOverlay")),JBe=iJ("DialogOverlay.RemoveScroll"),ZBe=g.forwardRef(Nc(function(e,n){const{__scopeDialog:r,...a}=e,s=Tf(sO,r),o=lJ(),l=Jy(n,o);return i.jsx(EJ,{as:JBe,allowPinchZoom:!0,shards:[s.contentRef],children:i.jsx(to.div,{"data-state":pM(s.open),...a,ref:l,style:{pointerEvents:"auto",...a.style}})})},"DialogOverlayImpl")),vy="DialogContent",QBe=g.forwardRef(Nc(function(e,n){const r=PJ(vy,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Tf(vy,e.__scopeDialog);return i.jsx(fM,{present:a||o.open,children:o.modal?i.jsx(eze,{...s,ref:n}):i.jsx(tze,{...s,ref:n})})},"DialogContent")),eze=g.forwardRef(Nc(function(e,n){const r=Tf(vy,e.__scopeDialog),a=g.useRef(null),s=Jy(n,r.contentRef,a);return g.useEffect(()=>{const o=a.current;if(o)return WBe(o)},[]),i.jsx(MJ,{...e,ref:s,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Kd(e.onCloseAutoFocus,o=>{var l;o.preventDefault(),(l=r.triggerRef.current)==null||l.focus()}),onPointerDownOutside:Kd(e.onPointerDownOutside,o=>{const l=o.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&o.preventDefault()}),onFocusOutside:Kd(e.onFocusOutside,o=>o.preventDefault())})},"DialogContentModal")),tze=g.forwardRef(Nc(function(e,n){const r=Tf(vy,e.__scopeDialog),a=g.useRef(!1),s=g.useRef(!1);return i.jsx(MJ,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,o),o.defaultPrevented||(a.current||(c=r.triggerRef.current)==null||c.focus(),o.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:o=>{var u,d;(u=e.onInteractOutside)==null||u.call(e,o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const l=o.target;((d=r.triggerRef.current)==null?void 0:d.contains(l))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&s.current&&o.preventDefault()}})},"DialogContentNonModal")),MJ=g.forwardRef(Nc(function(e,n){const{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:o,...l}=e,c=Tf(vy,r);return aBe(),i.jsx(i.Fragment,{children:i.jsx(Q9e,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:o,children:i.jsx(X9e,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionPresent?c.descriptionId:void 0,"aria-labelledby":c.titlePresent?c.titleId:void 0,"data-state":pM(c.open),...l,ref:n,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})},"DialogContentImpl"));function pM(t){return t?"open":"closed"}Nc(pM,"getState");var Bg='[cmdk-group=""]',EN='[cmdk-group-items=""]',nze='[cmdk-group-heading=""]',RJ='[cmdk-item=""]',z9=`${RJ}:not([aria-disabled="true"])`,iO="cmdk-item-select",hh="data-value",rze=(t,e,n)=>_9e(t,e,n),DJ=g.createContext(void 0),Qy=()=>g.useContext(DJ),IJ=g.createContext(void 0),mM=()=>g.useContext(IJ),$J=g.createContext(void 0),LJ=g.forwardRef((t,e)=>{let n=ph(()=>{var $,F;return{search:"",value:(F=($=t.value)!=null?$:t.defaultValue)!=null?F:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=ph(()=>new Set),a=ph(()=>new Map),s=ph(()=>new Map),o=ph(()=>new Set),l=FJ(t),{label:c,children:u,value:d,onValueChange:f,filter:h,shouldFilter:p,loop:m,disablePointerSelection:x=!1,vimBindings:y=!0,...b}=t,v=lc(),w=lc(),j=lc(),k=g.useRef(null),_=pze();bf(()=>{if(d!==void 0){let $=d.trim();n.current.value=$,S.emit()}},[d]),bf(()=>{_(6,O)},[]);let S=g.useMemo(()=>({subscribe:$=>(o.current.add($),()=>o.current.delete($)),snapshot:()=>n.current,setState:($,F,R)=>{var z,U,ee,pe;if(!Object.is(n.current[$],F)){if(n.current[$]=F,$==="search")A(),P(),_(1,M);else if($==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(j);re?re.focus():(z=document.getElementById(v))==null||z.focus()}if(_(7,()=>{var re;n.current.selectedItemId=(re=D())==null?void 0:re.id,S.emit()}),R||_(5,O),((U=l.current)==null?void 0:U.value)!==void 0){let re=F??"";(pe=(ee=l.current).onValueChange)==null||pe.call(ee,re);return}}S.emit()}},emit:()=>{o.current.forEach($=>$())}}),[]),N=g.useMemo(()=>({value:($,F,R)=>{var z;F!==((z=s.current.get($))==null?void 0:z.value)&&(s.current.set($,{value:F,keywords:R}),n.current.filtered.items.set($,E(F,R)),_(2,()=>{P(),S.emit()}))},item:($,F)=>(r.current.add($),F&&(a.current.has(F)?a.current.get(F).add($):a.current.set(F,new Set([$]))),_(3,()=>{A(),P(),n.current.value||M(),S.emit()}),()=>{s.current.delete($),r.current.delete($),n.current.filtered.items.delete($);let R=D();_(4,()=>{A(),(R==null?void 0:R.getAttribute("id"))===$&&M(),S.emit()})}),group:$=>(a.current.has($)||a.current.set($,new Set),()=>{s.current.delete($),a.current.delete($)}),filter:()=>l.current.shouldFilter,label:c||t["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:v,inputId:j,labelId:w,listInnerRef:k}),[]);function E($,F){var R,z;let U=(z=(R=l.current)==null?void 0:R.filter)!=null?z:rze;return $?U($,n.current.search,F):0}function P(){if(!n.current.search||l.current.shouldFilter===!1)return;let $=n.current.filtered.items,F=[];n.current.filtered.groups.forEach(z=>{let U=a.current.get(z),ee=0;U.forEach(pe=>{let re=$.get(pe);ee=Math.max(re,ee)}),F.push([z,ee])});let R=k.current;I().sort((z,U)=>{var ee,pe;let re=z.getAttribute("id"),he=U.getAttribute("id");return((ee=$.get(he))!=null?ee:0)-((pe=$.get(re))!=null?pe:0)}).forEach(z=>{let U=z.closest(EN);U?U.appendChild(z.parentElement===U?z:z.closest(`${EN} > *`)):R.appendChild(z.parentElement===R?z:z.closest(`${EN} > *`))}),F.sort((z,U)=>U[1]-z[1]).forEach(z=>{var U;let ee=(U=k.current)==null?void 0:U.querySelector(`${Bg}[${hh}="${encodeURIComponent(z[0])}"]`);ee==null||ee.parentElement.appendChild(ee)})}function M(){let $=I().find(R=>R.getAttribute("aria-disabled")!=="true"),F=$==null?void 0:$.getAttribute(hh);S.setState("value",F||void 0)}function A(){var $,F,R,z;if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let U=0;for(let ee of r.current){let pe=(F=($=s.current.get(ee))==null?void 0:$.value)!=null?F:"",re=(z=(R=s.current.get(ee))==null?void 0:R.keywords)!=null?z:[],he=E(pe,re);n.current.filtered.items.set(ee,he),he>0&&U++}for(let[ee,pe]of a.current)for(let re of pe)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=U}function O(){var $,F,R;let z=D();z&&((($=z.parentElement)==null?void 0:$.firstChild)===z&&((R=(F=z.closest(Bg))==null?void 0:F.querySelector(nze))==null||R.scrollIntoView({block:"nearest"})),z.scrollIntoView({block:"nearest"}))}function D(){var $;return($=k.current)==null?void 0:$.querySelector(`${RJ}[aria-selected="true"]`)}function I(){var $;return Array.from((($=k.current)==null?void 0:$.querySelectorAll(z9))||[])}function X($){let F=I()[$];F&&S.setState("value",F.getAttribute(hh))}function Q($){var F;let R=D(),z=I(),U=z.findIndex(pe=>pe===R),ee=z[U+$];(F=l.current)!=null&&F.loop&&(ee=U+$<0?z[z.length-1]:U+$===z.length?z[0]:z[U+$]),ee&&S.setState("value",ee.getAttribute(hh))}function V($){let F=D(),R=F==null?void 0:F.closest(Bg),z;for(;R&&!z;)R=$>0?fze(R,Bg):hze(R,Bg),z=R==null?void 0:R.querySelector(z9);z?S.setState("value",z.getAttribute(hh)):Q($)}let Y=()=>X(I().length-1),H=$=>{$.preventDefault(),$.metaKey?Y():$.altKey?V(1):Q(1)},G=$=>{$.preventDefault(),$.metaKey?X(0):$.altKey?V(-1):Q(-1)};return g.createElement(to.div,{ref:e,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:$=>{var F;(F=b.onKeyDown)==null||F.call(b,$);let R=$.nativeEvent.isComposing||$.keyCode===229;if(!($.defaultPrevented||R))switch($.key){case"n":case"j":{y&&$.ctrlKey&&H($);break}case"ArrowDown":{H($);break}case"p":case"k":{y&&$.ctrlKey&&G($);break}case"ArrowUp":{G($);break}case"Home":{$.preventDefault(),X(0);break}case"End":{$.preventDefault(),Y();break}case"Enter":{$.preventDefault();let z=D();if(z){let U=new Event(iO);z.dispatchEvent(U)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:gze},c),_2(t,$=>g.createElement(IJ.Provider,{value:S},g.createElement(DJ.Provider,{value:N},$))))}),aze=g.forwardRef((t,e)=>{var n,r;let a=lc(),s=g.useRef(null),o=g.useContext($J),l=Qy(),c=FJ(t),u=(r=(n=c.current)==null?void 0:n.forceMount)!=null?r:o==null?void 0:o.forceMount;bf(()=>{if(!u)return l.item(a,o==null?void 0:o.id)},[u]);let d=BJ(a,s,[t.value,t.children,s],t.keywords),f=mM(),h=zu(_=>_.value&&_.value===d.current),p=zu(_=>u||l.filter()===!1?!0:_.search?_.filtered.items.get(a)>0:!0);g.useEffect(()=>{let _=s.current;if(!(!_||t.disabled))return _.addEventListener(iO,m),()=>_.removeEventListener(iO,m)},[p,t.onSelect,t.disabled]);function m(){var _,S;x(),(S=(_=c.current).onSelect)==null||S.call(_,d.current)}function x(){f.setState("value",d.current,!0)}if(!p)return null;let{disabled:y,value:b,onSelect:v,forceMount:w,keywords:j,...k}=t;return g.createElement(to.div,{ref:cm(s,e),...k,id:a,"cmdk-item":"",role:"option","aria-disabled":!!y,"aria-selected":!!h,"data-disabled":!!y,"data-selected":!!h,onPointerMove:y||l.getDisablePointerSelection()?void 0:x,onClick:y?void 0:m},t.children)}),sze=g.forwardRef((t,e)=>{let{heading:n,children:r,forceMount:a,...s}=t,o=lc(),l=g.useRef(null),c=g.useRef(null),u=lc(),d=Qy(),f=zu(p=>a||d.filter()===!1?!0:p.search?p.filtered.groups.has(o):!0);bf(()=>d.group(o),[]),BJ(o,l,[t.value,t.heading,c]);let h=g.useMemo(()=>({id:o,forceMount:a}),[a]);return g.createElement(to.div,{ref:cm(l,e),...s,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&g.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:u},n),_2(t,p=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?u:void 0},g.createElement($J.Provider,{value:h},p))))}),ize=g.forwardRef((t,e)=>{let{alwaysRender:n,...r}=t,a=g.useRef(null),s=zu(o=>!o.search);return!n&&!s?null:g.createElement(to.div,{ref:cm(a,e),...r,"cmdk-separator":"",role:"separator"})}),oze=g.forwardRef((t,e)=>{let{onValueChange:n,...r}=t,a=t.value!=null,s=mM(),o=zu(u=>u.search),l=zu(u=>u.selectedItemId),c=Qy();return g.useEffect(()=>{t.value!=null&&s.setState("search",t.value)},[t.value]),g.createElement(to.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:a?t.value:o,onChange:u=>{a||s.setState("search",u.target.value),n==null||n(u.target.value)}})}),lze=g.forwardRef((t,e)=>{let{children:n,label:r="Suggestions",...a}=t,s=g.useRef(null),o=g.useRef(null),l=zu(u=>u.selectedItemId),c=Qy();return g.useEffect(()=>{if(o.current&&s.current){let u=o.current,d=s.current,f,h=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let p=u.offsetHeight;d.style.setProperty("--cmdk-list-height",p.toFixed(1)+"px")})});return h.observe(u),()=>{cancelAnimationFrame(f),h.unobserve(u)}}},[]),g.createElement(to.div,{ref:cm(s,e),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:c.listId},_2(t,u=>g.createElement("div",{ref:cm(o,c.listInnerRef),"cmdk-list-sizer":""},u)))}),cze=g.forwardRef((t,e)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:o,...l}=t;return g.createElement(qBe,{open:n,onOpenChange:r},g.createElement(YBe,{container:o},g.createElement(XBe,{"cmdk-overlay":"",className:a}),g.createElement(QBe,{"aria-label":t.label,"cmdk-dialog":"",className:s},g.createElement(LJ,{ref:e,...l}))))}),uze=g.forwardRef((t,e)=>zu(n=>n.filtered.count===0)?g.createElement(to.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),dze=g.forwardRef((t,e)=>{let{progress:n,children:r,label:a="Loading...",...s}=t;return g.createElement(to.div,{ref:e,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},_2(t,o=>g.createElement("div",{"aria-hidden":!0},o)))}),sh=Object.assign(LJ,{List:lze,Item:aze,Input:oze,Group:sze,Separator:ize,Dialog:cze,Empty:uze,Loading:dze});function fze(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return n;n=n.nextElementSibling}}function hze(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return n;n=n.previousElementSibling}}function FJ(t){let e=g.useRef(t);return bf(()=>{e.current=t}),e}var bf=typeof window>"u"?g.useEffect:g.useLayoutEffect;function ph(t){let e=g.useRef();return e.current===void 0&&(e.current=t()),e}function zu(t){let e=mM(),n=()=>t(e.snapshot());return g.useSyncExternalStore(e.subscribe,n,n)}function BJ(t,e,n,r=[]){let a=g.useRef(),s=Qy();return bf(()=>{var o;let l=(()=>{var u;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(u=d.current.textContent)==null?void 0:u.trim():a.current}})(),c=r.map(u=>u.trim());s.value(t,l,c),(o=e.current)==null||o.setAttribute(hh,l),a.current=l}),a}var pze=()=>{let[t,e]=g.useState(),n=ph(()=>new Map);return bf(()=>{n.current.forEach(r=>r()),n.current=new Map},[t]),(r,a)=>{n.current.set(r,a),e({})}};function mze(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function _2({asChild:t,children:e},n){return t&&g.isValidElement(e)?g.cloneElement(mze(e),{ref:e.ref},n(e.props.children)):n(e)}var gze={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const U9=[{heading:"General",items:[{to:"/",label:"Overview",icon:gH,keywords:["home","dashboard"]},{to:"/analytics",label:"Analytics",icon:a1,keywords:["metrics","charts","stats"]},{to:"/analytics",label:"Multi-objective",hint:"Analytics",icon:a1,keywords:["sr","success rate","multi objective","transactions"]},{to:"/analytics?view=rule_based",label:"Rule & Volume",hint:"Analytics",icon:a1,keywords:["rule based","volume","rules","analytics"]},{to:"/audit",label:"Decision Audit",icon:Xh,keywords:["payment","inspect","logs","transactions"]},{to:"/audit",label:"Multi-objective",hint:"Decision Audit",icon:Xh,keywords:["sr","success rate","multi objective","transactions"]},{to:"/audit?mode=rule_based",label:"Rule & Volume",hint:"Decision Audit",icon:Xh,keywords:["rule based","volume","rules"]},{to:"/audit?mode=debit_routing",label:"Debit Routing",hint:"Decision Audit",icon:Oo,keywords:["debit","network","card"]},{to:"/events",label:"Routing Events",icon:Zw,keywords:["stream","live","feed"]}]},{heading:"Routing",items:[{to:"/routing",label:"Routing Hub",icon:qj,keywords:["strategies","algorithms","overview"]},{to:"/routing/sr",label:"Multi Objective",icon:Kj,keywords:["sr","success rate","auth rate"]},{to:"/routing/sr?tab=autopilot",label:"Autopilot",hint:"Multi Objective",icon:ICe,keywords:["sr","auto","automatic"]},{to:"/routing/sr?tab=manual",label:"Manual Config",hint:"Multi Objective",icon:Hi,keywords:["sr","weights","tuning"]},{to:"/routing/sr?tab=manual",label:"Scoring Defaults",hint:"Manual Config",icon:Hi,keywords:["sr","scoring","defaults","weights","bucket size","hedging","payment type override"]},{to:"/routing/sr?tab=manual§ion=elimination",label:"Elimination",hint:"Manual Config",icon:dH,keywords:["sr","eliminate","threshold","latency","auth rate","drop psp","remove gateway"]},{to:"/routing/sr?tab=manual§ion=dimensions",label:"SR Dimensions",hint:"Manual Config",icon:xT,keywords:["sr","dimensions","split","clusters","udf","card network","currency","country","bin"]},{to:"/routing/sr?tab=flags",label:"Feature Flags",hint:"Multi Objective",icon:UCe,keywords:["sr","toggles","settings"]},{to:"/routing/sr?tab=cost",label:"Cost Estimation",hint:"Multi Objective",icon:pH,keywords:["cost","pricing","fees","connectors","clusters"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Data Ingestion",hint:"Cost Estimation",icon:xA,keywords:["cost","ingest","connector","settlement","upload","report"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Automatic Ingestion",hint:"Data Ingestion",icon:xA,keywords:["cost","ingest","credentials","sftp","connector","automatic","scheduled"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=manual",label:"Manual Report Upload",hint:"Data Ingestion",icon:_H,keywords:["cost","ingest","upload","csv","settlement","report","par","sample","manual"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=invoice",label:"Invoice Upload",hint:"Data Ingestion",icon:mH,keywords:["cost","ingest","invoice","upload","monthly","scheme fees","billing"]},{to:"/routing/sr?tab=cost§ion=data",label:"Ingested Data",hint:"Cost Estimation",icon:xH,keywords:["cost","coverage","history","data"]},{to:"/routing/sr?tab=cost",label:"Costs",hint:"Cost Estimation",icon:Hi,keywords:["cost","override","blended fee","fee","contract","seed","baseline","interchange","scheme","markup","connector","psp"]},{to:"/routing/rules",label:"Rule Based",icon:Wj,keywords:["euclid","rules","conditions"]},{to:"/routing/volume",label:"Volume Split",icon:cf,keywords:["distribution","percentage","weights"]},{to:"/routing/debit",label:"Debit Routing",icon:Oo,keywords:["debit","network","card"]},{to:"/routing/ab-testing",label:"A/B Testing",hint:"Beta",icon:qp,keywords:["experiment","split test","ab"]}]},{heading:"Simulation",items:[{to:"/decisions/simulator",label:"Decision Simulator",icon:qp,keywords:["simulate","test","preview"]}]},{heading:"Settings",items:[{to:"/members",label:"Members",icon:vT,keywords:["team","users","roles","invite","access"]},{to:"/api-keys",label:"API Keys",icon:gT,keywords:["tokens","credentials","secrets"]},{to:"/account",label:"Change Password",hint:"Account",icon:mT,keywords:["account","password","security"]}]}],xze=oM?U9:U9.filter(t=>t.heading!=="Simulation");function yze(t,e,n){const r=e.trim().toLowerCase();if(!r)return 1;const a=t.toLowerCase();return a.startsWith(r)?1:a.includes(r)?.9:(n??[]).join(" ").toLowerCase().includes(r)?.6:0}function vze(){const t=Kr(),[e,n]=g.useState(!1);g.useEffect(()=>{function a(s){s.key.toLowerCase()==="k"&&(s.metaKey||s.ctrlKey)&&(s.preventDefault(),n(o=>!o))}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);const r=g.useCallback(a=>{n(!1),t(a)},[t]);return i.jsxs(i.Fragment,{children:[i.jsx(bze,{onClick:()=>n(!0)}),i.jsx(wze,{open:e,onOpenChange:n,onSelect:r})]})}function bze({onClick:t}){const e=g.useMemo(()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),[]);return i.jsxs("button",{type:"button",onClick:t,className:"group flex h-9 w-full max-w-md items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-500 transition-colors hover:border-slate-300 hover:text-slate-500 dark:border-[#1a1a24] dark:bg-[#121218] dark:hover:border-[#2a2a38] dark:hover:text-slate-300","aria-label":"Search",children:[i.jsx(Kp,{size:14,className:"shrink-0"}),i.jsx("span",{className:"flex-1 text-left text-[13px] font-medium leading-[18px]",children:"Search…"}),i.jsxs("kbd",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-slate-200 bg-slate-50 px-1.5 py-0.5 text-[11px] font-semibold text-slate-500 sm:flex dark:border-[#22262f] dark:bg-[#0a0d12] dark:text-[#6d768a] leading-4",children:[e?"⌘":"Ctrl"," K"]})]})}function wze({open:t,onOpenChange:e,onSelect:n}){return i.jsxs(sh.Dialog,{open:t,onOpenChange:e,label:"Global search",filter:yze,loop:!0,className:"flex min-h-0 flex-1 flex-col",overlayClassName:"fixed inset-0 z-[100] bg-slate-900/40 backdrop-blur-sm dark:bg-black/60",contentClassName:"fixed left-1/2 top-[12vh] z-[101] flex max-h-[76vh] w-[calc(100vw-2rem)] max-w-xl -translate-x-1/2 flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_30px_80px_-40px_rgba(15,23,42,0.55)] focus:outline-none dark:border-[#22262f] dark:bg-[#0a0d12]",children:[i.jsxs("div",{className:"flex items-center gap-3 border-b border-slate-200 px-4 dark:border-[#22262f]",children:[i.jsx(Kp,{size:17,className:"shrink-0 text-slate-500"}),i.jsx(sh.Input,{autoFocus:!0,placeholder:"Search pages and settings…",className:"h-12 w-full bg-transparent px-0 text-[15px] text-slate-900 outline-none focus:ring-0 placeholder:text-slate-500 dark:text-white dark:placeholder:text-[#78849a] leading-[22px]"})]}),i.jsxs(sh.List,{className:"min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-2",children:[i.jsx(sh.Empty,{className:"px-3 py-8 text-center text-sm text-slate-500",children:"No results found."}),xze.map(r=>i.jsx(sh.Group,{heading:r.heading,className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-widest [&_[cmdk-group-heading]]:text-slate-400 dark:[&_[cmdk-group-heading]]:text-[#6d768a]",children:r.items.map(a=>{const s=a.icon;return i.jsxs(sh.Item,{value:a.hint?`${a.label} ${a.hint}`:a.label,keywords:a.keywords??[],onSelect:()=>n(a.to),className:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-[14px] text-slate-600 aria-selected:bg-slate-100 aria-selected:text-slate-900 dark:text-[#8d96aa] dark:aria-selected:bg-white/[0.06] dark:aria-selected:text-white leading-5",children:[i.jsx(s,{size:16,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate font-medium",children:a.label}),a.hint?i.jsx("span",{className:"shrink-0 text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:a.hint}):null]},`${a.to}::${a.label}`)})},r.heading))]})]})}const kze=8;function Ik(t){return{org:t.hs_org_name??t.hs_org_id??null,merchant:t.hs_merchant_name??t.hs_merchant_id??null,profile:t.profile_name??t.merchant_name??t.merchant_id}}function jze(t){return t.length>14?`${t.slice(0,8)}…${t.slice(-4)}`:t}const V9="ungrouped:no-ancestry";function Sze(t){const e=new Map;for(const n of t){const r=Ik(n),a=n.hs_merchant_id??r.merchant??V9,s=e.get(a);s?s.scopes.push(n):e.set(a,{key:a,merchant:r.merchant,org:r.org,orgIsId:n.hs_org_name==null,orgKey:n.hs_org_id??r.org??V9,scopes:[n]})}return[...e.values()]}function _ze(t,e){const n=Ik(t);return[n.profile,n.merchant,n.org,t.merchant_id,t.merchant_name].some(r=>r==null?void 0:r.toLowerCase().includes(e))}function Nze(){const t=Kr(),{user:e,merchants:n,updateMerchant:r}=xr(),{setMerchantId:a}=Er(),[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState(null),[f,h]=g.useState(new Set),[p,m]=g.useState(null),x=g.useRef(null),y=g.useRef(null),b=!!(e!=null&&e.isRedirectSession||e!=null&&e.isSuperAdminView),v=n.length>(b?1:0),w=!(e!=null&&e.isRedirectSession)&&!(e!=null&&e.isSuperAdminView),j=n.find(H=>H.merchant_id===(e==null?void 0:e.merchantId)),k=e!=null&&e.hierarchy?{org:e.hierarchy.hs_org_name??e.hierarchy.hs_org_id??null,merchant:e.hierarchy.hs_merchant_name??e.hierarchy.hs_merchant_id??null,profile:e.hierarchy.profile_name??(j==null?void 0:j.merchant_name)??e.merchantId}:j?Ik(j):{org:null,merchant:null,profile:(e==null?void 0:e.merchantId)??"No scope"},_=g.useMemo(()=>Sze(n),[n]),S=l.trim().toLowerCase(),N=_.length>1,E=g.useMemo(()=>new Set(_.map(H=>H.orgKey)).size>1,[_]),P=N?null:_[0]??null,M=g.useMemo(()=>S?_.map(H=>({...H,scopes:H.scopes.filter(G=>_ze(G,S))})).filter(H=>H.scopes.length>0):_,[_,S]),A=H=>N&&H.merchant!==null&&!S&&f.has(H.key),O=g.useMemo(()=>M.flatMap(H=>A(H)?[]:H.scopes),[M,f,S,N]);g.useEffect(()=>{function H(G){x.current&&!x.current.contains(G.target)&&o(!1)}return document.addEventListener("mousedown",H),()=>document.removeEventListener("mousedown",H)},[]),g.useEffect(()=>{if(!s)return;c(""),m((e==null?void 0:e.merchantId)??null);const H=_.find(G=>G.scopes.some($=>$.merchant_id===(e==null?void 0:e.merchantId)));h(n.length<=kze?new Set:new Set(_.filter(G=>G.key!==(H==null?void 0:H.key)).map(G=>G.key)))},[s,_,n.length,e==null?void 0:e.merchantId]),g.useEffect(()=>{var H;!s||!S||m(((H=O[0])==null?void 0:H.merchant_id)??null)},[s,S,O]),g.useEffect(()=>{var H,G;s&&((G=(H=y.current)==null?void 0:H.querySelector('[data-active="true"]'))==null||G.scrollIntoView({block:"nearest"}))},[p,s]);async function D(H){if(H===(e==null?void 0:e.merchantId)){o(!1);return}if(!u){d(H);try{const G=await la("/auth/switch-merchant",{method:"POST",body:JSON.stringify({merchant_id:H})});r(G.token,G.merchant_id,G.merchants),a(G.merchant_id),o(!1)}catch{}finally{d(null)}}}function I(H){h(G=>{const $=new Set(G);return $.has(H)?$.delete(H):$.add(H),$})}function X(H){if(H.key==="Escape"){o(!1);return}if(H.key==="ArrowDown"||H.key==="ArrowUp"){if(H.preventDefault(),O.length===0)return;const G=H.key==="ArrowDown"?1:-1,$=O.findIndex(R=>R.merchant_id===p),F=$===-1?G===1?0:O.length-1:($+G+O.length)%O.length;m(O[F].merchant_id);return}if(H.key==="Enter"){H.preventDefault();const G=O.find($=>$.merchant_id===p);G&&D(G.merchant_id)}}const Q=k.merchant?WS:Oh,V=i.jsxs(i.Fragment,{children:[i.jsx(Q,{size:14,className:"shrink-0 text-slate-500"}),i.jsxs("span",{className:"flex min-w-0 flex-col items-start leading-tight",children:[k.merchant&&i.jsx("span",{className:"max-w-[170px] truncate text-[11px] font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:k.merchant}),i.jsx("span",{className:"max-w-[170px] truncate text-[12.5px] font-semibold text-slate-700 dark:text-slate-200 leading-[17px]",children:k.profile})]})]}),Y=[k.org&&`Organization ${k.org}`,k.merchant&&`Merchant ${k.merchant}`,`Profile ${k.profile}`,`Scope id ${(e==null?void 0:e.merchantId)??"—"}`].filter(Boolean).join(` +`);return v?i.jsxs("div",{className:"relative",ref:x,children:[i.jsxs("button",{onClick:()=>o(H=>!H),title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 dark:hover:bg-[#18181f]",children:[V,i.jsx(wn,{size:12,className:"shrink-0 text-slate-500"})]}),s&&i.jsxs("div",{onKeyDown:X,className:"absolute right-0 top-12 z-50 flex max-h-[min(560px,70vh)] w-[380px] flex-col overflow-hidden rounded-xl border border-[#e6e6ee] bg-white shadow-xl dark:border-[#1a1a24] dark:bg-[#0c0c10]",children:[P&&(P.org||P.merchant)&&i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-[#e6e6ee] px-3.5 py-2 text-slate-500 dark:border-[#1a1a24] dark:text-slate-400",children:[P.org&&i.jsxs(i.Fragment,{children:[i.jsx(Oh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`min-w-0 truncate leading-4 ${P.orgIsId?"font-mono text-[10.5px]":"text-[11px]"}`,children:P.org})]}),P.org&&P.merchant&&i.jsx(Xi,{size:10,className:"shrink-0"}),P.merchant&&i.jsxs(i.Fragment,{children:[i.jsx(WS,{size:11,className:"shrink-0"}),i.jsx("span",{className:"min-w-0 truncate text-[11px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:P.merchant})]})]}),i.jsxs("div",{className:"relative border-b border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx(Kp,{size:13,className:"pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{value:l,onChange:H=>c(H.target.value),placeholder:b?"Search profiles, merchants, ids":"Search merchants",autoFocus:!0,className:"h-11 w-full bg-transparent pl-9 pr-3.5 text-[13px] text-slate-700 placeholder:text-slate-500 focus:outline-none dark:text-slate-200 leading-[18px]"})]}),i.jsxs("div",{ref:y,className:`flex-1 overflow-y-auto pb-1 ${E||N?"":"pt-1"}`,children:[M.length===0&&i.jsxs("p",{className:"px-3.5 py-6 text-center text-[12px] text-slate-500 leading-4",children:["Nothing matches “",l.trim(),"”."]}),M.map((H,G)=>{const $=E&&H.org!==null,F=$&&(G===0||M[G-1].orgKey!==H.orgKey),R=N&&H.merchant!==null,z=A(H);return i.jsxs("div",{children:[F&&i.jsxs("p",{className:"sticky top-0 z-20 flex items-center gap-1.5 bg-white px-3.5 pb-1 pt-2.5 text-slate-500 dark:bg-[#0c0c10] dark:text-slate-500 leading-4",children:[i.jsx(Oh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`truncate ${H.orgIsId?"font-mono text-[10.5px]":"text-[11px] font-semibold uppercase tracking-widest"}`,children:H.org})]}),R&&i.jsxs("button",{onClick:()=>I(H.key),className:`sticky z-10 flex w-full items-center gap-1.5 bg-white px-3.5 py-1.5 text-left transition-colors hover:bg-slate-50 dark:bg-[#0c0c10] dark:hover:bg-[#13131a] ${$?"top-[26px]":"top-0"}`,children:[i.jsx(Xi,{size:12,className:`shrink-0 text-slate-500 transition-transform ${z?"":"rotate-90"}`}),i.jsx(WS,{size:12,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate text-[12px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:H.merchant}),i.jsx("span",{className:"shrink-0 text-[11px] tabular-nums text-slate-500 leading-4",children:H.scopes.length})]}),!z&&H.scopes.map(U=>{const ee=H.merchant!==null?xT:Oh,pe=Ik(U),re=U.merchant_id===(e==null?void 0:e.merchantId),he=U.merchant_id===p;return i.jsxs("button",{"data-active":he,onMouseEnter:()=>m(U.merchant_id),onClick:()=>D(U.merchant_id),disabled:u===U.merchant_id,className:`flex w-full items-center gap-2 py-1.5 pr-3 text-left transition-colors disabled:opacity-50 ${R?"pl-9":"pl-3.5"} ${he?"bg-slate-50 dark:bg-[#13131a]":""}`,children:[i.jsx(ee,{size:12,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:`flex-1 truncate text-[13px] ${re?"font-semibold text-brand-600":"font-medium text-slate-700 dark:text-slate-300"} leading-[18px]`,children:pe.profile}),i.jsx("span",{className:"shrink-0 font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:jze(U.merchant_id)}),re&&i.jsx(gi,{size:13,className:"shrink-0 text-brand-600"})]},U.merchant_id)})]},H.key)})]}),i.jsxs("div",{className:"flex items-center gap-1.5 border-t border-[#e6e6ee] px-3.5 py-2 dark:border-[#1a1a24]",children:[i.jsx("span",{title:Y,className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:e==null?void 0:e.merchantId}),i.jsx(qy,{text:(e==null?void 0:e.merchantId)??"",label:"Copy scope id"}),w&&i.jsxs("button",{onClick:()=>{o(!1),t("/onboarding")},className:"ml-auto flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-brand-600 transition-colors hover:bg-slate-50 dark:hover:bg-[#13131a]",children:[i.jsx(Qn,{size:12}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Add merchant"})]})]})]})]}):i.jsx("div",{title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300",children:V})}function Cze(){const{user:t,setAuth:e}=xr(),{setMerchantId:n}=Er(),[r,a]=g.useState(!1),[s,o]=g.useState(""),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(""),[p,m]=g.useState([]),[x,y]=g.useState(!1),b=g.useRef(null);g.useEffect(()=>{function w(j){b.current&&!b.current.contains(j.target)&&a(!1)}return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[]),g.useEffect(()=>{if(!r)return;const w=f.trim();if(!w){m([]),y(!1);return}let j=!1;y(!0);const k=setTimeout(async()=>{try{const _=await la("/auth/super-admin/lookup",{method:"POST",body:JSON.stringify({query:w})});j||m(_)}catch{j||m([])}finally{j||y(!1)}},300);return()=>{j=!0,clearTimeout(k)}},[f,r]);async function v(w){if(!(!w||l)){c(!0),d(null);try{const j=await la("/auth/super-admin/enter-merchant",{method:"POST",body:JSON.stringify({merchant_id:w})});e(j.token,{userId:j.user_id,email:j.email,merchantId:j.merchant_id,role:j.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!0},[]),n(j.merchant_id),a(!1),o(""),h(""),m([])}catch(j){const k=j.status;d(k===404?"No merchant with that ID.":"Could not enter that merchant.")}finally{c(!1)}}}return i.jsxs("header",{className:"flex h-[78px] shrink-0 items-center gap-4 border-b border-slate-200 bg-white px-6 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d] relative z-10",children:[i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex min-w-0 flex-[2] justify-center lg:-translate-x-32",children:i.jsx(vze,{})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-end gap-2",children:[i.jsx(g9e,{}),(t==null?void 0:t.isSuperAdmin)&&!(t!=null&&t.isSuperAdminView)&&i.jsxs("div",{className:"relative shrink-0",ref:b,children:[i.jsxs("button",{onClick:()=>a(w=>!w),className:"flex items-center gap-2 h-8 px-3 whitespace-nowrap rounded-lg border border-amber-300/70 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 hover:bg-amber-100 dark:hover:bg-amber-500/20 transition-colors text-amber-700 dark:text-amber-300",children:[i.jsx(yT,{size:13,className:"shrink-0"}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Super admin"}),i.jsx(wn,{size:12,className:"shrink-0"})]}),r&&i.jsxs("div",{className:"absolute right-0 top-10 w-80 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg p-3 z-50",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 mb-2 leading-4",children:"View a merchant dashboard"}),i.jsx("input",{value:f,onChange:w=>h(w.target.value),placeholder:"Search by email or merchant name",autoFocus:!0,className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),f.trim()&&i.jsx("div",{className:"mt-2 max-h-64 overflow-y-auto",children:x&&p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"Searching…"}):p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matches."}):p.map(w=>i.jsxs("button",{onClick:()=>v(w.merchant_id),disabled:l,className:"w-full text-left px-2 py-2 rounded-md hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors disabled:opacity-50",children:[(w.hs_org_name||w.hs_merchant_name)&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:[w.hs_org_name,w.hs_merchant_name].filter(Boolean).join(" › ")}),i.jsx("p",{className:"text-[13px] font-medium text-slate-700 dark:text-slate-200 truncate leading-[18px]",children:w.merchant_name}),i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.merchant_id}),w.members.length>0&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.members.map(j=>j.email).join(", ")})]},w.merchant_id))}),i.jsxs("div",{className:"mt-2 pt-2 border-t border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx("input",{value:s,onChange:w=>{o(w.target.value),d(null)},onKeyDown:w=>{w.key==="Enter"&&v(s.trim())},placeholder:"…or paste an exact merchant ID",className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),u&&i.jsx("p",{className:"mt-1.5 text-[11px] text-red-600 leading-4",children:u}),i.jsx("button",{onClick:()=>v(s.trim()),disabled:!s.trim()||l,className:"mt-2 w-full flex items-center justify-center gap-1.5 h-8 rounded-md bg-amber-600 hover:bg-amber-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors text-[13px] font-medium text-white leading-[18px]",children:l?"Entering…":i.jsxs(i.Fragment,{children:["Enter dashboard ",i.jsx(Au,{size:13})]})})]})]})]}),i.jsx(Nze,{})]})]})}function Eze(){var l,c;const{user:t,setAuth:e}=xr(),{setMerchantId:n}=Er(),[r,a]=g.useState(!1);if(!(t!=null&&t.isSuperAdminView))return null;const s=[(l=t.hierarchy)==null?void 0:l.hs_merchant_name,(c=t.hierarchy)==null?void 0:c.profile_name].filter(Boolean).join(" / ")||t.merchantId;async function o(){if(!r){a(!0);try{const u=await la("/auth/super-admin/exit",{method:"POST"});e(u.token,{userId:u.user_id,email:u.email,merchantId:u.merchant_id,role:u.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!1},u.merchants),n(u.merchant_id)}catch{}finally{a(!1)}}}return i.jsxs("div",{title:`Scope id ${t.merchantId}`,className:"flex h-9 shrink-0 items-center justify-center gap-3 bg-amber-500 px-4 text-[12.5px] font-medium text-amber-950 leading-[17px]",children:[i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(yT,{size:14,className:"shrink-0"}),"Viewing",i.jsx("span",{className:"min-w-0 truncate font-semibold",children:s}),"as platform super admin"]}),i.jsxs("button",{onClick:o,disabled:r,className:"flex items-center gap-1.5 rounded-md bg-amber-950/15 px-2.5 py-1 hover:bg-amber-950/25 disabled:opacity-60 transition-colors",children:[i.jsx(yH,{size:12}),r?"Exiting…":"Exit"]})]})}function Aze(){const t=xr(n=>n.user);return xr(n=>PT(n.user,"routing:write"))?null:i.jsxs("div",{className:"flex h-9 shrink-0 items-center justify-center gap-2 bg-slate-700 px-4 text-[12.5px] font-medium text-slate-100 dark:bg-[#1e2430] leading-[17px]",children:[i.jsx(Ef,{size:14,className:"shrink-0"}),i.jsxs("span",{children:["View only — your Hyperswitch role can see routing for"," ",i.jsx("span",{className:"font-semibold",children:t==null?void 0:t.merchantId})," but not change it."]})]})}function Oze(){return i.jsx(k5e,{children:i.jsxs("div",{className:"relative flex h-screen overflow-hidden bg-[#ffffff] text-slate-900 transition-colors duration-300 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(59,130,246,0.05),_transparent_22%),radial-gradient(circle_at_top_right,_rgba(14,165,233,0.04),_transparent_20%),linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[radial-gradient(circle_at_top_left,_rgba(56,189,248,0.06),_transparent_22%),linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"aurora-top"}),i.jsx(f9e,{}),i.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden relative z-10",children:[i.jsx(Eze,{}),i.jsx(Aze,{}),i.jsx(Cze,{}),i.jsx("main",{className:"relative flex-1 overflow-y-auto px-4 py-5 sm:px-5 sm:py-6 lg:px-6 lg:py-7 xl:px-8",children:i.jsx("div",{className:"mx-auto w-full max-w-[1760px]",children:i.jsx(x7,{})})})]})]})})}function Tze(t){return typeof t=="string"?t:Array.isArray(t)&&typeof t[0]=="string"?t[0]:null}function Pze(t){const e=Tze(t);return e!=null&&e.startsWith("/")?e!=="/auth/me"&&!e.startsWith("/health"):!1}function Mze(){C7(Pze,void 0,{revalidate:!0}).catch(()=>{})}function AN({label:t}){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-slate-200 bg-white px-5 py-4 text-sm text-slate-600 shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:text-[#c7cfdb] dark:shadow-none",children:[i.jsx(Ou,{size:16,className:"animate-spin text-brand-600 dark:text-[#7ea4ff]"}),t]})})}function W9(){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white px-4 text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex max-w-sm flex-col items-center gap-3 rounded-2xl border border-slate-200 bg-white px-6 py-6 text-center shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:shadow-none",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:"Your routing session has expired"}),i.jsx("p",{className:"text-sm text-slate-600 dark:text-[#c7cfdb]",children:"Reopen it from the Hyperswitch dashboard to continue."}),i.jsx("button",{type:"button",onClick:()=>window.close(),className:"mt-1 rounded-lg bg-brand-600 px-4 py-2 text-sm font-medium text-white hover:bg-brand-700 dark:bg-[#2d4b8f] dark:hover:bg-[#33569f]",children:"Close tab"})]})})}function Rze(){const t=xr(h=>h.token),e=xr(h=>h.user),n=xr(h=>h.hasHydrated),r=xr(h=>h.setAuth),a=xr(h=>h.clearAuth),s=Er(h=>h.setMerchantId),o=g.useRef(null),[l,c]=g.useState(!1),{data:u,error:d,isValidating:f}=ut(t&&n?["/auth/me",t]:null,([h])=>Lt(h),{revalidateOnFocus:!1,shouldRetryOnError:!1});if(g.useEffect(()=>{!n||!t||o.current===t||(o.current=t,Mze())},[n,t]),g.useEffect(()=>{var p;if(!u||!t)return;const h=u.merchant_id||((p=u.merchants[0])==null?void 0:p.merchant_id)||"";r(t,{userId:u.user_id,email:u.email,merchantId:h,role:u.role,isRedirectSession:u.user_id.startsWith("hs_"),isSuperAdmin:u.is_super_admin,isSuperAdminView:u.is_super_admin_view,permissions:u.permissions,hierarchy:u.hierarchy},u.merchants),s(h)},[u,t,r,s]),g.useEffect(()=>{if(!d||f)return;const h=d.status;(h===401||h===403)&&(e!=null&&e.isRedirectSession&&c(!0),a(),s(""))},[d,f,a,s,e]),!n)return i.jsx(AN,{label:"Restoring session"});if(l)return i.jsx(W9,{});if(!t)return i.jsx(vx,{to:"/login",replace:!0});if(!u&&!d)return i.jsx(AN,{label:"Validating session"});if(d){const h=d.status;if(h===401||h===403)return f?i.jsx(AN,{label:"Validating session"}):e!=null&&e.isRedirectSession?i.jsx(W9,{}):i.jsx(vx,{to:"/login",replace:!0})}return i.jsx(x7,{})}function H9(t){return iM&&t.endsWith("/signup")?"signup":"login"}function Dze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Ize(t){return/email.*(already registered|already exists)|user.*already exists/i.test(t)}function G9(){const t=Kr(),e=_l(),n=e.state,{token:r,hasHydrated:a,setAuth:s,updateMerchant:o}=xr(),{setMerchantId:l}=Er(),c="/decision-engine/",u=g.useRef(null),[d,f]=g.useState(()=>zm()==="dark"),[h,p]=g.useState(()=>H9(e.pathname)),[m,x]=g.useState((n==null?void 0:n.email)??""),[y,b]=g.useState(""),[v,w]=g.useState(""),[j,k]=g.useState(!1),[_,S]=g.useState(!1),[N,E]=g.useState(null),[P,M]=g.useState((n==null?void 0:n.notice)??null),[A,O]=g.useState(!!(n!=null&&n.focusPassword));g.useEffect(()=>{!a||!r||_||t(QH()??"/",{replace:!0})},[a,_,t,r]),g.useEffect(()=>{p(H9(e.pathname)),n!=null&&n.email&&x(n.email),n!=null&&n.notice&&M(n.notice),n!=null&&n.focusPassword&&O(!0)},[e.pathname,n==null?void 0:n.email,n==null?void 0:n.focusPassword,n==null?void 0:n.notice]),g.useEffect(()=>{var Q;h!=="login"||!A||((Q=u.current)==null||Q.focus(),O(!1))},[A,h]);function D(){const Q=d?"light":"dark";f(Q==="dark"),Xy(Q)}function I(Q){p(Q),E(null),M(null),t(Q==="login"?"/login":"/signup")}async function X(Q){if(Q.preventDefault(),E(null),M(null),h==="signup"){const V=Dze(y);if(V){E(V);return}}S(!0);try{const V=h==="login"?"/auth/login":"/auth/signup",Y=v.trim(),H=await la(V,{method:"POST",body:JSON.stringify({email:m,password:y})});if("email_verification_required"in H&&H.email_verification_required){Y&&localStorage.setItem("pending_merchant_name",JSON.stringify({email:m,merchant_name:Y})),t("/login",{replace:!0,state:{notice:H.message}});return}const G=H;s(G.token,{userId:G.user_id,email:G.email,merchantId:G.merchant_id,role:G.role,isRedirectSession:!1},G.merchants),G.merchant_id&&l(G.merchant_id);const $=localStorage.getItem("pending_merchant_name"),F=$?(()=>{try{return JSON.parse($)}catch{return null}})():null,R=((F==null?void 0:F.email)===G.email?F.merchant_name:"")??"",z=Y||R;if(z&&!G.merchant_id){localStorage.removeItem("pending_merchant_name");const U=await la("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:z})});o(U.token,U.merchant_id,U.merchants),l(U.merchant_id),t("/",{replace:!0});return}localStorage.removeItem("pending_merchant_name"),!G.merchant_id||G.merchants.length===0?t("/onboarding",{replace:!0}):t("/",{replace:!0})}catch(V){const Y=Af(V);if(h==="signup"&&Ize(Y)){p("login");const H="Account already exists. Sign in with this email.";M(H),O(!0),t("/login",{replace:!0,state:{email:m,focusPassword:!0,notice:H}});return}E(Y)}finally{S(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.06fr_0.94fr]",children:[i.jsx("button",{type:"button",onClick:D,className:"absolute right-4 top-4 z-20 flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white sm:right-6 sm:top-6","aria-label":"Toggle theme",title:"Toggle theme",children:d?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})}),i.jsxs("section",{className:"flex min-h-[44vh] flex-col border-b border-slate-200 px-6 py-8 dark:border-white/6 sm:px-10 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${c}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-11 w-auto dark:hidden sm:h-12"}),i.jsx("img",{src:`${c}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-11 w-auto dark:block sm:h-12"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h2",{className:"max-w-[10ch] text-[clamp(4rem,7vw,6.2rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Manage routing, analytics, and audits from one dashboard."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.35rem]",children:"Sign in to manage gateway routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(PN,{children:"Gateway routing"}),i.jsx(PN,{children:"Merchant analytics"}),i.jsx(PN,{children:"Payment audit"})]})]})})]}),i.jsx("section",{className:"flex min-h-[56vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[520px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h3",{className:"text-[clamp(2.25rem,3.6vw,3.15rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:h==="login"?"Welcome back":"Create account"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:h==="login"?"Sign in to access your dashboard":"Create access for your Decision Engine dashboard"})]}),i.jsxs("div",{className:"mt-10",children:[i.jsxs("div",{className:"inline-flex rounded-full border border-slate-200 bg-white p-1 dark:border-[#27272a] dark:bg-[#121214]",children:[i.jsx(q9,{active:h==="login",onClick:()=>I("login"),children:"Sign in"}),iM?i.jsx(q9,{active:h==="signup",onClick:()=>I("signup"),children:"Sign up"}):null]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:X,className:"space-y-5",children:[i.jsx(ON,{label:"Email",children:i.jsx(TN,{type:"email",value:m,onChange:Q=>x(Q.target.value),placeholder:"name@company.com",required:!0,icon:i.jsx(vH,{size:16})})}),h==="signup"?i.jsx(ON,{label:"Merchant name",footer:"This merchant will be available across routing, analytics, and audits.",children:i.jsx(TN,{type:"text",value:v,onChange:Q=>w(Q.target.value),placeholder:"e.g. Acme Corp",required:!0,icon:i.jsx(Oh,{size:16})})}):null,i.jsx(ON,{label:"Password",footer:h==="login"?void 0:"Use at least 10 characters with uppercase, lowercase, number, and special character.",children:i.jsxs("div",{className:"relative",children:[i.jsx(TN,{type:j?"text":"password",value:y,onChange:Q=>b(Q.target.value),placeholder:"Enter your password",required:!0,icon:i.jsx(yA,{size:16}),inputRef:u,className:"pr-12"}),i.jsx("button",{type:"button",onClick:()=>k(Q=>!Q),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":j?"Hide password":"Show password",children:j?i.jsx(Ef,{size:18}):i.jsx(Gj,{size:18})})]})}),h==="login"?i.jsx("div",{className:"-mt-1 flex justify-end",children:i.jsx(ef,{to:"/forgot-password",state:{email:m},className:"text-sm font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-500 dark:hover:text-brand-100",children:"Forgot password?"})}):null,h==="signup"?i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Password policy: minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}):null,i.jsx(_t,{error:N}),P?i.jsx("div",{className:"rounded-lg border border-sky-500/30 bg-sky-50 px-4 py-3 text-sm text-sky-700 dark:border-sky-500/20 dark:bg-sky-500/8 dark:text-sky-300",children:P}):null,i.jsx("button",{type:"submit",disabled:_,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:_?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Authenticating"]}):i.jsxs(i.Fragment,{children:[h==="login"?"Enter dashboard":"Create account",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"By continuing you agree to access policy and audit logging for account activity."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})]})})]})]})}function q9({active:t,children:e,onClick:n}){return i.jsx("button",{type:"button",onClick:n,className:`rounded-full px-4 py-2 text-sm font-semibold transition-all duration-200 ${t?"bg-slate-950 text-white shadow-[0_8px_24px_-18px_rgba(15,23,42,0.45)] dark:bg-white dark:text-slate-950":"text-slate-500 hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white"}`,children:e})}function ON({label:t,children:e,footer:n}){return i.jsxs("label",{className:"block",children:[i.jsx(an,{className:"mb-2 block text-slate-500 dark:text-[#8a94a7]",children:t}),e,n?i.jsx("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#7b8496]",children:n}):null]})}function TN({icon:t,className:e="",inputRef:n,...r}){return i.jsxs("div",{className:"relative",children:[t?i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:t}):null,i.jsx("input",{...r,ref:n,className:`h-14 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none ${t?"pl-12":""} ${e}`})]})}function PN({children:t}){return i.jsx("div",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm text-slate-700 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.1)] dark:border-[#27272a] dark:bg-[#121214] dark:text-[#c6d0e1] dark:shadow-none",children:t})}function MN({children:t}){return i.jsx("span",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 dark:border-[#2a2d35] dark:bg-[#111318] dark:text-[#d0d7e2]",children:t})}function $ze({label:t,children:e,footer:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("label",{className:"block text-xs font-semibold uppercase tracking-[0.24em] text-slate-500 dark:text-[#8d95a3]",children:t}),e,n?i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#78849a]",children:n}):null]})}function Lze(){const t=Kr(),{updateMerchant:e}=xr(),{setMerchantId:n}=Er(),r="/decision-engine/",[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null);async function d(f){f.preventDefault(),u(null),l(!0);try{const h=await la("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:a})});e(h.token,h.merchant_id,h.merchants),n(h.merchant_id),t("/",{replace:!0})}catch(h){u(Af(h))}finally{l(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(248,250,252,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_20%_22%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_74%_18%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.08fr_0.92fr]",children:[i.jsxs("section",{className:"flex min-h-[42vh] flex-col border-b border-slate-200 dark:border-white/6 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] px-6 py-8 sm:px-10 lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h1",{className:"max-w-[10ch] text-[clamp(3.8rem,6.8vw,6rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Set up your merchant before processing traffic."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.3rem]",children:"Create your merchant account, then configure routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(MN,{children:"Merchant account"}),i.jsx(MN,{children:"Routing controls"}),i.jsx(MN,{children:"Analytics ready"})]})]})})]}),i.jsx("section",{className:"flex min-h-[58vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[540px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h2",{className:"text-[clamp(2.15rem,3.6vw,3.05rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:"Create your merchant"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7]",children:"Set up the merchant account for your Decision Engine dashboard."})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:d,className:"space-y-6",children:[i.jsx($ze,{label:"Merchant name",footer:"You can adjust rules, connectors, and analytics after the merchant is created.",children:i.jsxs("div",{className:"relative",children:[i.jsx(Oh,{size:16,className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#798191]"}),i.jsx("input",{type:"text",required:!0,autoFocus:!0,value:a,onChange:f=>s(f.target.value),placeholder:"e.g. Acme Corp",className:"h-16 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-5 text-[15px] text-slate-900 outline-none transition-all placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500 leading-[22px]"})]})}),i.jsx(_t,{error:c}),i.jsx("button",{type:"submit",disabled:o,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:o?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Creating merchant"]}):i.jsxs(i.Fragment,{children:["Create merchant",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"Merchant access will be linked to your current session."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})})]})]})}function Fze({role:t}){const e=t==="admin"?"bg-violet-50 text-violet-700 dark:bg-violet-950/40 dark:text-violet-300":"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300";return i.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-[11px] font-semibold capitalize ${e} leading-4`,children:t})}function K9({text:t}){const[e,n]=g.useState(!1);async function r(){if(navigator.clipboard)try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsx("button",{onClick:r,className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-slate-500 hover:text-slate-600 dark:hover:text-slate-200 transition-colors",title:e?"Copied":"Copy","aria-label":e?"Copied":"Copy",children:e?i.jsx(gi,{size:13,className:"text-green-700"}):i.jsx(lf,{size:13})})}function Bze(){const[t,e]=g.useState([]),[n,r]=g.useState(!0),[a,s]=g.useState(null),[o,l]=g.useState(""),[c,u]=g.useState("member"),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(null),[y,b]=g.useState(!1);async function v(){r(!0),s(null);try{const j=await la("/merchant/members");e(j)}catch(j){s(j instanceof Error?j.message:"Failed to load members")}finally{r(!1)}}g.useEffect(()=>{v()},[]);async function w(j){j.preventDefault(),p(null),x(null),f(!0);try{const k=await la("/merchant/members/invite",{method:"POST",body:JSON.stringify({email:o,role:c})});x(k),l(""),v()}catch(k){p(Af(k))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-3xl space-y-8 px-4 py-8",children:[i.jsx("div",{children:i.jsx(qr,{title:"Members"})}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-6 dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 mb-5",children:[i.jsx(iL,{size:18,className:"text-brand-600 dark:text-sky-400"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Invite member"})]}),i.jsxs("form",{onSubmit:w,className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{type:"email",required:!0,value:o,onChange:j=>l(j.target.value),placeholder:"colleague@example.com",className:"h-10 flex-1 rounded-xl border border-slate-200 bg-white px-3.5 text-sm text-slate-900 outline-none transition placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500"}),i.jsxs("select",{value:c,onChange:j=>u(j.target.value),className:"h-10 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-slate-200",children:[i.jsx("option",{value:"member",children:"Member"}),i.jsx("option",{value:"admin",children:"Admin"})]}),i.jsxs("button",{type:"submit",disabled:d,className:"inline-flex h-10 items-center gap-2 rounded-xl bg-brand-600 px-4 text-sm font-semibold text-white transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:[d?i.jsx(Ou,{size:14,className:"animate-spin"}):i.jsx(iL,{size:14}),"Invite"]})]}),i.jsx(_t,{error:h})]}),m&&i.jsx("div",{className:`mt-4 rounded-xl border p-4 ${m.is_new_user?"border-amber-200 bg-amber-50 dark:border-amber-900/40 dark:bg-amber-950/20":"border-green-200 bg-green-50 dark:border-green-900/40 dark:bg-green-950/20"}`,children:m.is_new_user?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"text-sm font-semibold text-amber-800 dark:text-amber-300 mb-2",children:"New account created — share these credentials"}),i.jsxs("div",{className:"space-y-1.5 text-sm",children:[i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Email"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:m.email}),i.jsx(K9,{text:m.email})]}),i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Password"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:y?m.password:"••••••••••••••••"}),i.jsx("button",{onClick:()=>b(j=>!j),className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-amber-700 hover:text-amber-800 dark:text-amber-400 dark:hover:text-amber-200 transition-colors",title:y?"Hide password":"Show password","aria-label":y?"Hide password":"Show password",children:y?i.jsx(Gj,{size:13}):i.jsx(Ef,{size:13})}),m.password&&i.jsx(K9,{text:m.password})]})]})]}):i.jsxs("p",{className:"text-sm text-green-800 dark:text-green-300",children:[i.jsx("span",{className:"font-semibold",children:m.email})," has been added to this merchant."]})})]}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 border-b border-slate-100 px-6 py-4 dark:border-[#1a1d25]",children:[i.jsx(vT,{size:18,className:"text-slate-500"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Current members"}),!n&&i.jsxs("span",{className:"ml-auto text-xs text-slate-500",children:[t.length," member",t.length!==1?"s":""]})]}),n?i.jsx("div",{className:"flex items-center justify-center py-12 text-slate-500",children:i.jsx(Ou,{size:20,className:"animate-spin"})}):a?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-red-600",children:a}):t.length===0?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-slate-500",children:"No members yet"}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1d25]",children:t.map(j=>i.jsxs("li",{className:"flex items-center gap-4 px-6 py-3.5",children:[i.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:j.email.slice(0,2).toUpperCase()}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",children:j.email}),i.jsx("p",{className:"truncate text-xs text-slate-500",children:j.user_id})]}),i.jsx(Fze,{role:j.role})]},j.user_id))})]})]})}function zze({text:t}){const[e,n]=g.useState(!1);async function r(){try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsxs("button",{onClick:r,className:"inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2.5 py-1 text-xs font-medium text-slate-600 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-slate-300 dark:hover:text-white",title:e?"Copied":"Copy key",children:[e?i.jsx(gi,{size:12,className:"text-emerald-700"}):i.jsx(lf,{size:12}),e?"Copied":"Copy"]})}function Uze(){const{merchantId:t}=Er(),[e,n]=g.useState(""),[r,a]=g.useState(!1),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(null),[p,m]=g.useState(new Set),{data:x,mutate:y}=ut(t?`/api-key/list/${t}`:null,Lt);async function b(){if(t){a(!0),c(null),o(null);try{const j=await Ve("/api-key/create",{merchant_id:t,description:e.trim()||null});o(j),n(""),await y()}catch(j){c(j instanceof Error?j.message:"Failed to create API key")}finally{a(!1)}}}async function v(j){d(j),h(null);try{await la(`/api-key/${j}`,{method:"DELETE"}),m(k=>new Set([...k,j])),(s==null?void 0:s.key_id)===j&&o(null),y()}catch(k){h(k instanceof Error?k.message:"Failed to revoke key")}finally{d(null)}}const w=(x==null?void 0:x.filter(j=>j.is_active&&!p.has(j.key_id)))??[];return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{children:i.jsx(qr,{title:"API Keys",description:i.jsxs(i.Fragment,{children:["Create and manage API keys for programmatic access to the routing engine. Pass the key via the"," "," ",i.jsx("code",{className:"rounded bg-slate-100 px-1 py-0.5 text-xs font-mono dark:bg-[#1c1c24]",children:"x-api-key"})," "," header on all API requests."]})})}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Qn,{size:15}),i.jsx("span",{className:"font-medium text-slate-800 dark:text-white",children:"Create API Key"})]})}),i.jsxs(ze,{className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{value:e,onChange:j=>n(j.target.value),onKeyDown:j=>j.key==="Enter"&&b(),placeholder:"Description (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(ke,{onClick:b,disabled:r||!t,children:r?"Creating…":"Create API Key"})]}),i.jsx(_t,{error:l}),s&&i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-800/40 dark:bg-emerald-950/20",children:[i.jsx("p",{className:"mb-2 text-xs font-semibold text-emerald-700 dark:text-emerald-400",children:"API key created — copy it now. It will not be shown again."}),i.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-200 bg-white px-3 py-2 font-mono text-sm dark:border-emerald-800/40 dark:bg-[#0d1a12]",children:[i.jsx("span",{"data-testid":"api-key-value",className:"flex-1 break-all text-slate-800 dark:text-slate-200",children:s.api_key}),i.jsx(zze,{text:s.api_key})]}),s.description&&i.jsxs("p",{className:"mt-2 text-xs text-emerald-700 dark:text-emerald-500",children:["Description: ",s.description]})]})]})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gT,{size:15}),i.jsxs("span",{className:"font-medium text-slate-800 dark:text-white",children:["Active Keys",w.length>0&&` (${w.length})`]})]})}),i.jsxs(ze,{className:"p-0",children:[i.jsx(_t,{error:f}),w.length===0?i.jsx("p",{className:"px-5 py-6 text-sm text-slate-500 dark:text-[#8a8a93]",children:"No active API keys. Create one above."}):i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs font-semibold uppercase tracking-wider text-slate-500 dark:bg-[#0a0a0f] dark:text-[#6d768a]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-5 py-3 text-left",children:"Key prefix"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Description"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Created"}),i.jsx("th",{className:"px-5 py-3"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:w.map(j=>i.jsxs("tr",{className:"dark:bg-[#0f0f16]",children:[i.jsxs("td",{className:"px-5 py-3 font-mono text-slate-800 dark:text-slate-200",children:[j.key_prefix,"…"]}),i.jsx("td",{className:"px-5 py-3 text-slate-600 dark:text-[#8a8a93]",children:j.description||i.jsx("span",{className:"italic text-slate-500",children:"—"})}),i.jsx("td",{className:"px-5 py-3 text-slate-500 dark:text-[#78849a]",children:new Date(j.created_at).toLocaleDateString()}),i.jsx("td",{className:"px-5 py-3 text-right",children:i.jsxs(ke,{size:"sm",variant:"danger",disabled:u===j.key_id,onClick:()=>v(j.key_id),children:[i.jsx(Cn,{size:12}),u===j.key_id?"Revoking…":"Revoke"]})})]},j.key_id))})]})]})]})]})}function Vze(){const[t]=Nl(),e=Kr(),[n,r]=g.useState("verifying"),[a,s]=g.useState(null),[o,l]=g.useState(()=>zm()==="dark"),c=g.useRef(null),u="/decision-engine/";g.useEffect(()=>{const f=t.get("token");if(f!==c.current){if(c.current=f,!f){r("error"),s("Verification link is missing a token. Please use the link from your email.");return}la(`/auth/verify-email?token=${encodeURIComponent(f)}`,{method:"GET"}).then(()=>{r("success"),setTimeout(()=>{e("/login",{replace:!0,state:{notice:"Email verified! You can now sign in."}})},2500)}).catch(h=>{s(Af(h,"Verification failed")),r("error")})}},[e,t]);function d(){const f=o?"light":"dark";l(f==="dark"),Xy(f)}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${u}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${u}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:d,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsxs("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:[n==="verifying"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-brand-500/10",children:i.jsx(Ou,{size:28,className:"animate-spin text-brand-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verifying your email"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Hang on while we confirm your address…"})]})]}),n==="success"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(fH,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Email verified"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Your account is confirmed. Redirecting you to sign in…"})]}),i.jsx("div",{className:"pt-1",children:i.jsx("div",{className:"mx-auto h-1 w-24 overflow-hidden rounded-full bg-slate-100 dark:bg-white/8",children:i.jsx("div",{className:"h-full animate-[progress_2.5s_linear_forwards] rounded-full bg-emerald-500"})})})]}),n==="error"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Hj,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verification failed"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:a??"The link may have expired or already been used."})]}),i.jsx("div",{className:"pt-2",children:i.jsx("button",{onClick:()=>e("/login",{replace:!0}),className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})})]})]})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function Wze(){var x;const t="/decision-engine/",n=((x=_l().state)==null?void 0:x.email)??"",[r,a]=g.useState(()=>zm()==="dark"),[s,o]=g.useState(n),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(null);function p(){const y=r?"light":"dark";a(y==="dark"),Xy(y)}async function m(y){y.preventDefault(),d(null),c(!0);try{const b=await la("/auth/forgot-password",{method:"POST",body:JSON.stringify({email:s})});h(b.message??"If an account exists for that email, a password reset link has been sent.")}catch(b){d(Af(b))}finally{c(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${t}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${t}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:p,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:r?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsx("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:f?i.jsxs("div",{className:"space-y-6 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(fH,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Check your inbox"}),i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:f})]}),i.jsx(ef,{to:"/login",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Forgot your password?"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:"Enter the email tied to your account and we’ll send you a link to reset your password."})]}),i.jsxs("form",{onSubmit:m,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Email"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(vH,{size:16})}),i.jsx("input",{type:"email",value:s,onChange:y=>o(y.target.value),placeholder:"name@company.com",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx(_t,{error:u}),i.jsx("button",{type:"submit",disabled:l,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:l?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Sending link"]}):i.jsxs(i.Fragment,{children:["Send reset link",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsxs(ef,{to:"/login",className:"inline-flex items-center gap-1.5 text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:[i.jsx(Hp,{size:15}),"Back to sign in"]})})]})})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function Hze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Gze(){const t=Kr(),[e]=Nl(),n=e.get("token"),r="/decision-engine/",[a,s]=g.useState(()=>zm()==="dark"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null);function y(){const j=a?"light":"dark";s(j==="dark"),Xy(j)}async function b(j){j.preventDefault(),x(null);const k=Hze(o);if(k){x(k);return}if(o!==c){x("Passwords do not match.");return}p(!0);try{await la("/auth/reset-password",{method:"POST",body:JSON.stringify({token:n,new_password:o})}),t("/login",{replace:!0,state:{notice:"Password reset! Sign in with your new password."}})}catch(_){x(Af(_))}finally{p(!1)}}const v=i.jsx("button",{type:"button",onClick:y,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:a?i.jsx(Dy,{size:18}):i.jsx(Ry,{size:18})}),w=j=>i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),v]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:j}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]});return w(n?i.jsxs("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Set a new password"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:"Choose a strong password you don’t use anywhere else."})]}),i.jsxs("form",{onSubmit:b,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"New password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(yA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:o,onChange:j=>l(j.target.value),placeholder:"Enter new password",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-12 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"}),i.jsx("button",{type:"button",onClick:()=>f(j=>!j),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":d?"Hide password":"Show password",children:d?i.jsx(Ef,{size:18}):i.jsx(Gj,{size:18})})]})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Confirm password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(yA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:c,onChange:j=>u(j.target.value),placeholder:"Re-enter new password",required:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}),i.jsx(_t,{error:m}),i.jsx("button",{type:"submit",disabled:h,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:h?i.jsxs(i.Fragment,{children:[i.jsx(Ou,{size:16,className:"animate-spin"}),"Resetting"]}):i.jsxs(i.Fragment,{children:["Reset password",i.jsx(Au,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsx(ef,{to:"/login",className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:"Back to sign in"})})]}):i.jsx("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Hj,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Invalid reset link"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"This link is missing a token. Request a new password reset link to continue."})]}),i.jsx(ef,{to:"/forgot-password",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Request a new link"})]})}))}function qze(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function Kze(){const[t,e]=g.useState(""),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(!1);async function y(b){b.preventDefault(),p(null),x(!1);const v=qze(n);if(v){p(v);return}if(n!==a){p("New passwords do not match.");return}if(n===t){p("New password must differ from the current one.");return}f(!0);try{await la("/auth/change-password",{method:"POST",body:JSON.stringify({current_password:t,new_password:n})}),x(!0),e(""),r(""),s("")}catch(w){p(Af(w))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-lg px-4 py-10",children:[i.jsxs("div",{className:"mb-8 flex items-center gap-3",children:[i.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-brand-500/10",children:i.jsx(mT,{size:20,className:"text-brand-600"})}),i.jsx("div",{children:i.jsx(qr,{title:"Account",description:"Manage your account security"})})]}),i.jsxs(Te,{children:[i.jsx(jt,{children:"Change password"}),i.jsx(ze,{children:i.jsxs("form",{onSubmit:y,className:"space-y-5",children:[i.jsx(RN,{label:"Current password",value:t,onChange:e,show:o,onToggleShow:()=>l(b=>!b)}),i.jsx(RN,{label:"New password",value:n,onChange:r,show:c,onToggleShow:()=>u(b=>!b),footer:"Minimum 10 characters with uppercase, lowercase, number, and special character."}),i.jsx(RN,{label:"Confirm new password",value:a,onChange:s,show:c,onToggleShow:()=>u(b=>!b)}),i.jsx(_t,{error:h}),m&&i.jsx("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-50 px-4 py-3 text-sm text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/8 dark:text-emerald-300",children:"Password updated successfully."}),i.jsx(ke,{type:"submit",disabled:d,className:"w-full",children:d?"Updating…":"Update password"})]})})]})]})}function RN({label:t,value:e,onChange:n,show:r,onToggleShow:a,footer:s}){return i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-1.5 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:t}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:r?"text":"password",value:e,onChange:o=>n(o.target.value),required:!0,className:"h-12 w-full rounded-xl border border-slate-200 bg-white px-4 pr-11 text-sm text-slate-950 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white"}),i.jsx("button",{type:"button",onClick:a,className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200","aria-label":r?"Hide password":"Show password",children:r?i.jsx(Ef,{size:17}):i.jsx(Gj,{size:17})})]}),s&&i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#7b8496]",children:s})]})}let DN=null;function Yze(){const t=xr(s=>s.setAuth),e=Er(s=>s.setMerchantId),n=Kr(),[r,a]=g.useState(()=>new URLSearchParams(window.location.search).has("code"));return g.useEffect(()=>{const s=new URLSearchParams(window.location.search).get("code");if(!s){a(!1);return}const o=()=>{const c=new URLSearchParams(window.location.search);c.delete("code");const u=c.toString(),d=window.location.pathname+(u?`?${u}`:"");window.history.replaceState(window.history.state,"",d)};DN||(DN=Ve("/auth/admin/merchant-token/exchange",{code:s}).catch(()=>null));let l=!0;return DN.then(c=>{if(l)try{if(c){const d=c.merchant_id??"";t(c.token,{userId:c.user_id??"",email:c.email??"",merchantId:d,role:c.role??"admin",isRedirectSession:!0}),d&&(e(d),jAe(d))}const u=c?QH():null;u&&n(u,{replace:!0})}finally{o(),a(!1)}}),()=>{l=!1}},[t,e,n]),r?i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-sm text-slate-600 dark:bg-[#030507] dark:text-[#c7cfdb]",children:"Signing you in…"}):i.jsxs(hte,{children:[i.jsx(bn,{path:"login",element:i.jsx(G9,{})}),iM?i.jsx(bn,{path:"signup",element:i.jsx(G9,{})}):null,i.jsx(bn,{path:"verify-email",element:i.jsx(Vze,{})}),i.jsx(bn,{path:"forgot-password",element:i.jsx(Wze,{})}),i.jsx(bn,{path:"reset-password",element:i.jsx(Gze,{})}),i.jsxs(bn,{element:i.jsx(Rze,{}),children:[i.jsx(bn,{path:"onboarding",element:i.jsx(Lze,{})}),i.jsxs(bn,{element:i.jsx(Oze,{}),children:[i.jsx(bn,{index:!0,element:i.jsx(XLe,{})}),i.jsx(bn,{path:"routing",element:i.jsx(C8e,{})}),i.jsx(bn,{path:"routing/sr",element:i.jsx(IFe,{})}),i.jsx(bn,{path:"routing/rules",element:i.jsx(bOe,{})}),i.jsx(bn,{path:"routing/rules/new",element:i.jsx(fF,{})}),i.jsx(bn,{path:"routing/rules/:id/edit",element:i.jsx(fF,{})}),i.jsx(bn,{path:"routing/volume",element:i.jsx(WFe,{})}),i.jsx(bn,{path:"routing/volume/new",element:i.jsx(AF,{})}),i.jsx(bn,{path:"routing/volume/:id/edit",element:i.jsx(AF,{})}),i.jsx(bn,{path:"routing/debit",element:i.jsx(aOe,{})}),i.jsx(bn,{path:"routing/volume-contracts",element:i.jsx(vx,{to:"/routing/sr?tab=volume",replace:!0})}),i.jsx(bn,{path:"routing/cost",element:i.jsx(vx,{to:"/routing/sr?tab=cost",replace:!0})}),i.jsx(bn,{path:"routing/ab-testing",element:i.jsx(u9e,{})}),i.jsx(bn,{path:"decisions",element:i.jsx(qAe,{})}),oM?i.jsx(bn,{path:"decisions/simulator",element:i.jsx(tOe,{})}):null,i.jsx(bn,{path:"analytics",element:i.jsx(lAe,{})}),i.jsx(bn,{path:"audit",element:i.jsx(w8e,{})}),i.jsx(bn,{path:"events",element:i.jsx(_8e,{})}),i.jsx(bn,{path:"members",element:i.jsx(Bze,{})}),i.jsx(bn,{path:"api-keys",element:i.jsx(Uze,{})}),i.jsx(bn,{path:"account",element:i.jsx(Kze,{})}),i.jsx(bn,{path:"*",element:i.jsx(vx,{to:".",replace:!0})})]})]})]})}class Xze extends g.Component{constructor(){super(...arguments);VM(this,"state",{error:null,errorInfo:null})}static getDerivedStateFromError(n){return{error:n,errorInfo:null}}componentDidCatch(n,r){console.log(` +`+"!".repeat(80)),console.log("[ERROR BOUNDARY] Component Error Caught"),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Error Message:",n.message),console.log("Error Stack:",n.stack),console.log("Component Stack:",r.componentStack),console.log("!".repeat(80)+` +`),this.setState({errorInfo:r})}render(){return this.state.error?i.jsxs("div",{style:{padding:32,fontFamily:"monospace",color:"red"},children:[i.jsx("h2",{children:"Dashboard Error"}),i.jsx("pre",{children:this.state.error.message}),i.jsx("pre",{children:this.state.error.stack}),this.state.errorInfo&&i.jsxs("pre",{style:{marginTop:16,color:"darkred"},children:["Component Stack:",this.state.errorInfo.componentStack]})]}):this.props.children}}const Jze="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/";cM(),console.log(` +`+"=".repeat(80)),console.log("[APP STARTUP] Dashboard initializing..."),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Environment: production"),console.log("Base URL: /decision-engine/"),console.log("=".repeat(80)+` +`),window.onerror=(t,e,n,r,a)=>{console.log(` +`+"!".repeat(80)),console.log("[WINDOW ERROR]"),console.log("Message:",t),console.log("Source:",e),console.log("Line:",n,"Column:",r),a&&(console.log("Error:",a.message),console.log("Stack:",a.stack)),console.log("!".repeat(80)+` +`)},window.onunhandledrejection=t=>{console.log(` +`+"!".repeat(80)),console.log("[UNHANDLED PROMISE REJECTION]"),console.log("Reason:",t.reason),t.reason instanceof Error&&console.log("Stack:",t.reason.stack),console.log("!".repeat(80)+` +`)},IN.createRoot(document.getElementById("root")).render(i.jsx(J.StrictMode,{children:i.jsx(Xze,{children:i.jsx(wte,{basename:Jze,children:i.jsx(Yze,{})})})})); diff --git a/website/dist/decision-engine/assets/index-ClwKMH9O.css b/website/dist/decision-engine/assets/index-ClwKMH9O.css deleted file mode 100644 index 27dbe02b..00000000 --- a/website/dist/decision-engine/assets/index-ClwKMH9O.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&family=Inter:ital,opsz,wght@0,14..32,400..700;1,14..32,400..700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{--font-sans: "Google Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light;--chart-tooltip-bg: rgba(248, 250, 252, .98);--chart-tooltip-border: #cbd5e1;--chart-tooltip-label: #0f172a;--chart-tooltip-text: #334155;--chart-tooltip-shadow: 0 18px 44px -24px rgba(15, 23, 42, .42)}html.dark{color-scheme:dark;--chart-tooltip-bg: #0d0d12;--chart-tooltip-border: #1c1c24;--chart-tooltip-label: #f8fafc;--chart-tooltip-text: #e2e8f0;--chart-tooltip-shadow: 0 16px 40px rgba(0, 0, 0, .35)}html,body{font-family:var(--font-sans);font-optical-sizing:auto;font-feature-settings:"zero" 1;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark html,.dark body{color:#f1f5f9}html,body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}html:is(.dark *),body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}#root{min-width:0;overflow-wrap:break-word}.dark p,.dark span,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#f1f5f9}p,span,h1,h2,h3,h4,h5,h6{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}p:is(.dark *),span:is(.dark *),h1:is(.dark *),h2:is(.dark *),h3:is(.dark *),h4:is(.dark *),h5:is(.dark *),h6:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark p.text-slate-500,.dark span.text-slate-500,.dark div.text-slate-500{color:#94a3b8}.dark p.text-slate-600,.dark span.text-slate-600,.dark div.text-slate-600{color:#cbd5e1}.dark p.\!text-slate-600,.dark span.\!text-slate-600,.dark div.\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-900,.dark .text-slate-800{color:#f1f5f9!important}.dark .text-slate-700{color:#e2e8f0!important}.dark .text-slate-600,.dark .\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-500{color:#94a3b8!important}.dark .text-slate-400{color:#78849a!important}.dark .text-blue-800,.dark .text-blue-700{color:#93c5fd!important}.dark .text-blue-600{color:#60a5fa!important}.dark .text-brand-500{color:#818cf8!important}.dark .bg-slate-50{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .bg-slate-100,.dark .\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark :where(input:not([type=checkbox]):not([type=radio]):not([type=range])),.dark :where(select),.dark :where(textarea){color:#f1f5f9}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){border-radius:.5rem;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::-moz-placeholder,:where(select)::-moz-placeholder,:where(textarea)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::placeholder,:where(select)::placeholder,:where(textarea)::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus,:where(select):focus,:where(textarea):focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *),:where(select):is(.dark *),:where(textarea):is(.dark *){border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::-moz-placeholder,:where(select):is(.dark *)::-moz-placeholder,:where(textarea):is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::placeholder,:where(select):is(.dark *)::placeholder,:where(textarea):is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus:is(.dark *),:where(select):focus:is(.dark *),:where(textarea):focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 56 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){font-family:var(--font-sans)}:where(select){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px 16px}.dark select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dark select option{color:#f1f5f9}select option{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}select option:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}input[type=range]{accent-color:#3b82f6}input[type=range]:is(.dark *){accent-color:#fff}input[type=radio],input[type=checkbox]{height:1rem;width:1rem;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));accent-color:#3b82f6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}input[type=radio]:is(.dark *),input[type=checkbox]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));accent-color:#fff}input[type=radio]{border-radius:50%}input[type=checkbox]{border-radius:4px}input[type=radio]:checked,input[type=checkbox]:checked{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}input[type=radio]:checked:is(.dark *),input[type=checkbox]:checked:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.input-bare{border-width:0px;background-color:transparent;padding-left:0;padding-right:0}.input-bare:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);border-radius:.375rem;background-color:#f1f5f9cc}.input-bare:focus:is(.dark *){background-color:#ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-2\.5{top:.625rem;bottom:.625rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-64{left:16rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-12{top:3rem}.top-4{top:1rem}.top-\[12vh\]{top:12vh}.top-\[26px\]{top:26px}.top-\[76px\]{top:76px}.top-\[calc\(100\%\+10px\)\]{top:calc(100% + 10px)}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[140\]{z-index:140}.z-\[200\]{z-index:200}.z-\[90\]{z-index:90}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.\!mt-5{margin-top:1.25rem!important}.-mb-1{margin-bottom:-.25rem}.-mb-3{margin-bottom:-.75rem}.-mb-px{margin-bottom:-1px}.-mr-2{margin-right:-.5rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[1\.3125rem\]{margin-left:1.3125rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-9{height:2.25rem!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[200px\]{height:200px}.h-\[2px\]{height:2px}.h-\[300px\]{height:300px}.h-\[34px\]{height:34px}.h-\[78px\]{height:78px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[240px\]{max-height:240px}.max-h-\[360px\]{max-height:360px}.max-h-\[400px\]{max-height:400px}.max-h-\[480px\]{max-height:480px}.max-h-\[560px\]{max-height:560px}.max-h-\[76vh\]{max-height:76vh}.max-h-\[min\(560px\,70vh\)\]{max-height:min(560px,70vh)}.min-h-0{min-height:0px}.min-h-\[16px\]{min-height:16px}.min-h-\[300px\]{min-height:300px}.min-h-\[360px\]{min-height:360px}.min-h-\[380px\]{min-height:380px}.min-h-\[42vh\]{min-height:42vh}.min-h-\[44vh\]{min-height:44vh}.min-h-\[56vh\]{min-height:56vh}.min-h-\[58vh\]{min-height:58vh}.min-h-\[620px\]{min-height:620px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[10\.5rem\]{width:10.5rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[12rem\]{width:12rem}.w-\[13\.5rem\]{width:13.5rem}.w-\[130px\]{width:130px}.w-\[14rem\]{width:14rem}.w-\[175px\]{width:175px}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[260px\]{width:260px}.w-\[268px\]{width:268px}.w-\[28\%\]{width:28%}.w-\[380px\]{width:380px}.w-\[3px\]{width:3px}.w-\[52px\]{width:52px}.w-\[62px\]{width:62px}.w-\[90px\]{width:90px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-\[13rem\]{min-width:13rem}.min-w-\[170px\]{min-width:170px}.min-w-\[240px\]{min-width:240px}.min-w-\[28px\]{min-width:28px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.min-w-\[520px\]{min-width:520px}.min-w-\[560px\]{min-width:560px}.min-w-\[640px\]{min-width:640px}.min-w-\[6rem\]{min-width:6rem}.min-w-\[720px\]{min-width:720px}.min-w-\[820px\]{min-width:820px}.min-w-\[880px\]{min-width:880px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[920px\]{min-width:920px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[10ch\]{max-width:10ch}.max-w-\[1500px\]{max-width:1500px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[170px\]{max-width:170px}.max-w-\[1760px\]{max-width:1760px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[38rem\]{max-width:38rem}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[520px\]{max-width:520px}.max-w-\[540px\]{max-width:540px}.max-w-\[57ch\]{max-width:57ch}.max-w-\[620px\]{max-width:620px}.max-w-\[68ch\]{max-width:68ch}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1\.618\]{flex:1.618}.flex-\[2\]{flex:2}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[analytics-progress_1\.8s_ease-in-out_infinite\]{animation:analytics-progress 1.8s ease-in-out infinite}@keyframes progress{0%{width:0%}to{width:100%}}.animate-\[progress_2\.5s_linear_forwards\]{animation:progress 2.5s linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[minmax\(0\,1\.2fr\)_0\.9fr_0\.65fr_0\.65fr_1fr\]{grid-template-columns:minmax(0,1.2fr) .9fr .65fr .65fr 1fr}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-2xl{border-radius:1rem!important}.\!rounded-\[18px\]{border-radius:18px!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[30px\]{border-radius:30px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.\!border-b-0{border-bottom-width:0px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.\!border-brand-500\/70{border-color:#3b82f6b3!important}.\!border-red-400{--tw-border-opacity: 1 !important;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))!important}.\!border-slate-200{--tw-border-opacity: 1 !important;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))!important}.\!border-transparent{border-color:transparent!important}.border-\[\#e6e6ee\]{--tw-border-opacity: 1;border-color:rgb(230 230 238 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/70{border-color:#fcd34db3}.border-blue-200,.border-brand-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-brand-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-brand-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-brand-500\/30{border-color:#3b82f64d}.border-brand-500\/40{border-color:#3b82f666}.border-brand-500\/50{border-color:#3b82f680}.border-brand-600{--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.border-brand-600\/40{border-color:#0c69ee66}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-400{--tw-border-opacity: 1;border-color:rgb(52 211 153 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-300\/40{border-color:#fca5a566}.border-red-300\/60{border-color:#fca5a599}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-500\/20{border-color:#0ea5e933}.border-sky-500\/30{border-color:#0ea5e94d}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))!important}.\!bg-white{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))!important}.bg-\[\#ffffff\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-amber-950\/15{background-color:#451a0326}.bg-black\/40{background-color:#0006}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-brand-100{--tw-bg-opacity: 1;background-color:rgb(217 234 255 / var(--tw-bg-opacity, 1))}.bg-brand-50{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.bg-brand-50\/30{background-color:#eef5ff4d}.bg-brand-50\/40{background-color:#eef5ff66}.bg-brand-50\/50{background-color:#eef5ff80}.bg-brand-50\/70{background-color:#eef5ffb3}.bg-brand-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-brand-500\/10{background-color:#3b82f61a}.bg-brand-500\/15{background-color:#3b82f626}.bg-brand-500\/5{background-color:#3b82f60d}.bg-brand-500\/\[0\.06\]{background-color:#3b82f60f}.bg-brand-600{--tw-bg-opacity: 1;background-color:rgb(12 105 238 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/60{background-color:#ecfeff99}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/40{background-color:#ecfdf566}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/\[0\.04\]{background-color:#10b9810a}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-50\/40{background-color:#faf5ff66}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/50{background-color:#fef2f280}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-200\/70{background-color:#e2e8f0b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-50\/90{background-color:#f8fafce6}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/\[0\.04\]{background-color:#0f172a0a}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#020617b3}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:#ffffff0d}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(248\,250\,252\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#f8fafc)}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#fff)}.bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.55\)\,transparent_26\%\)\]{background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 26%)}.bg-\[linear-gradient\(90deg\,\#4371ff_0\%\,\#3a63f4_100\%\)\]{background-image:linear-gradient(90deg,#4371ff,#3a63f4)}.bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(59\,130\,246\,0\.06\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]{background-image:radial-gradient(circle at 18% 18%,rgba(59,130,246,.06),transparent 24%),radial-gradient(circle at 78% 20%,rgba(14,165,233,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.bg-\[radial-gradient\(circle_at_top_left\,_rgba\(59\,130\,246\,0\.05\)\,_transparent_22\%\)\,radial-gradient\(circle_at_top_right\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_20\%\)\,linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:radial-gradient(circle at top left,rgba(59,130,246,.05),transparent 22%),radial-gradient(circle at top right,rgba(14,165,233,.04),transparent 20%),linear-gradient(180deg,#fff,#fff)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-50{--tw-gradient-from: #f0f9ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 249 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#3b82f6\]\/25{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-sky-400\/50{--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(56 189 248 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-50{--tw-gradient-to: #f5f3ff var(--tw-gradient-to-position)}.bg-\[right_12px_center\]{background-position:right 12px center}.bg-no-repeat{background-repeat:no-repeat}.fill-\[\#0F172A\]{fill:#0f172a}.fill-\[\#475569\]{fill:#475569}.fill-current{fill:currentColor}.stroke-brand-500{stroke:#3b82f6}.stroke-slate-200{stroke:#e2e8f0}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.\!py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.\!pt-3{padding-top:.75rem!important}.\!pt-4{padding-top:1rem!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-11{padding-left:2.75rem}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[18px\]{padding-left:18px}.pr-11{padding-right:2.75rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-3\.5{padding-right:.875rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[21px\]{font-size:21px}.text-\[2rem\]{font-size:2rem}.text-\[34px\]{font-size:34px}.text-\[clamp\(2\.15rem\,3\.6vw\,3\.05rem\)\]{font-size:clamp(2.15rem,3.6vw,3.05rem)}.text-\[clamp\(2\.25rem\,3\.6vw\,3\.15rem\)\]{font-size:clamp(2.25rem,3.6vw,3.15rem)}.text-\[clamp\(3\.8rem\,6\.8vw\,6rem\)\]{font-size:clamp(3.8rem,6.8vw,6rem)}.text-\[clamp\(4rem\,7vw\,6\.2rem\)\]{font-size:clamp(4rem,7vw,6.2rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.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)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-\[0\.92\]{line-height:.92}.leading-\[17px\]{line-height:17px}.leading-\[18px\]{line-height:18px}.leading-\[21px\]{line-height:21px}.leading-\[22px\]{line-height:22px}.leading-\[42px\]{line-height:42px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.05em\]{letter-spacing:-.05em}.tracking-\[-0\.065em\]{letter-spacing:-.065em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-brand-600{--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.\!text-slate-600{--tw-text-opacity: 1 !important;color:rgb(71 85 105 / var(--tw-text-opacity, 1))!important}.\!text-slate-950{--tw-text-opacity: 1 !important;color:rgb(2 6 23 / var(--tw-text-opacity, 1))!important}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-brand-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.text-brand-700{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-\[0\.05\]{opacity:.05}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.1\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.1);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.12);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.28\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.28);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-24px_rgba\(59\,130\,246\,0\.55\)\]{--tw-shadow: 0 14px 30px -24px rgba(59,130,246,.55);--tw-shadow-colored: 0 14px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 14px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: 0 14px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_16px_40px_-30px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 16px 40px -30px rgba(15,23,42,.35);--tw-shadow-colored: 0 16px 40px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-42px_rgba\(15\,23\,42\,0\.15\)\]{--tw-shadow: 0 18px 60px -42px rgba(15,23,42,.15);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-46px_rgba\(15\,23\,42\,0\.2\)\]{--tw-shadow: 0 18px 60px -46px rgba(15,23,42,.2);--tw-shadow-colored: 0 18px 60px -46px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-20px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 20px 60px -20px rgba(15,23,42,.08);--tw-shadow-colored: 0 20px 60px -20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-36px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 20px 60px -36px rgba(15,23,42,.35);--tw-shadow-colored: 0 20px 60px -36px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_70px_-34px_rgba\(15\,23\,42\,0\.48\)\]{--tw-shadow: 0 24px 70px -34px rgba(15,23,42,.48);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_30px_80px_-40px_rgba\(15\,23\,42\,0\.55\)\]{--tw-shadow: 0 30px 80px -40px rgba(15,23,42,.55);--tw-shadow-colored: 0 30px 80px -40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_-14px_rgba\(59\,130\,246\,0\.7\)\]{--tw-shadow: 0 8px 20px -14px rgba(59,130,246,.7);--tw-shadow-colored: 0 8px 20px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_-18px_rgba\(15\,23\,42\,0\.45\)\]{--tw-shadow: 0 8px 24px -18px rgba(15,23,42,.45);--tw-shadow-colored: 0 8px 24px -18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.75\)\,0_16px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: inset 0 1px 0 rgba(255,255,255,.75),0 16px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 16px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-brand-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-brand-500\/55{--tw-ring-color: rgb(59 130 246 / .55)}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-emerald-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.ring-emerald-500\/20{--tw-ring-color: rgb(16 185 129 / .2)}.ring-orange-500\/20{--tw-ring-color: rgb(249 115 22 / .2)}.ring-purple-500\/20{--tw-ring-color: rgb(168 85 247 / .2)}.ring-red-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.ring-red-500\/20{--tw-ring-color: rgb(239 68 68 / .2)}.ring-slate-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1))}.ring-slate-200\/70{--tw-ring-color: rgb(226 232 240 / .7)}.blur{--tw-blur: blur(8px);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)}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.\[background-image\:linear-gradient\(rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px)}.\[background-size\:56px_56px\]{background-size:56px 56px}.\[font-variant-numeric\:tabular-nums\]{font-variant-numeric:tabular-nums}.cond-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;border-radius:.5rem;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-color:transparent;background-size:14px 14px;border:1px solid #e2e8f0;outline:none;box-shadow:none!important;min-width:0}.dark .cond-select{border-color:#222226;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-color:transparent}.cond-select:focus{outline:none;box-shadow:none!important}.glass-panel{position:relative;overflow:hidden;border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 18px 50px -30px rgba(15,23,42,.12);--tw-shadow-colored: 0 18px 50px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.glass-panel:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 29 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1));--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.glass-panel-hover:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.glass-panel-hover:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #0c69ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(12 105 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #a855f7 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient:is(.dark *){--tw-gradient-from: #9b51e0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(155 81 224 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #0ea5e9 var(--tw-gradient-to-position)}.aurora-top{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#3b82f6,#0ea5e9,#6366f1);opacity:.35;z-index:100}@keyframes analytics-progress{0%{transform:scaleX(.18)}55%{transform:scaleX(.82)}to{transform:scaleX(.96)}}.dark .placeholder\:text-slate-500p::-moz-placeholder,.dark .placeholder\:text-slate-500span::-moz-placeholder,.dark .placeholder\:text-slate-500div::-moz-placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500p::placeholder,.dark .placeholder\:text-slate-500span::placeholder,.dark .placeholder\:text-slate-500div::placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500::-moz-placeholder{color:#94a3b8!important}.dark .placeholder\:text-slate-500::placeholder{color:#94a3b8!important}.dark .hover\:text-slate-500:hoverp,.dark .hover\:text-slate-500:hoverspan,.dark .hover\:text-slate-500:hoverdiv{color:#94a3b8}.dark .hover\:text-slate-600:hoverp,.dark .hover\:text-slate-600:hoverspan,.dark .hover\:text-slate-600:hoverdiv{color:#cbd5e1}.dark .hover\:\!text-slate-900:hover,.dark .hover\:text-slate-900:hover,.dark .hover\:text-slate-800:hover{color:#f1f5f9!important}.dark .hover\:text-slate-700:hover{color:#e2e8f0!important}.dark .hover\:text-slate-600:hover{color:#cbd5e1!important}.dark .hover\:text-slate-500:hover{color:#94a3b8!important}.dark .hover\:bg-slate-50:hover{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .hover\:bg-slate-100:hover{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .focus\:text-slate-600:focusp,.dark .focus\:text-slate-600:focusspan,.dark .focus\:text-slate-600:focusdiv{color:#cbd5e1}.dark .focus\:text-slate-600:focus{color:#cbd5e1!important}.dark .disabled\:hover\:text-slate-500:hover:disabledp,.dark .disabled\:hover\:text-slate-500:hover:disabledspan,.dark .disabled\:hover\:text-slate-500:hover:disableddiv{color:#94a3b8}.dark .disabled\:hover\:text-slate-500:hover:disabled{color:#94a3b8!important}.dark .group:hover .group-hover\:text-slate-700{color:#e2e8f0!important}.dark .aria-selected\:text-slate-900[aria-selected=true]{color:#f1f5f9!important}.dark .aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .dark\:text-slate-500:is(.dark *)p,.dark .dark\:text-slate-500:is(.dark *)span,.dark .dark\:text-slate-500:is(.dark *)div{color:#94a3b8}.dark .dark\:text-slate-500:is(.dark *){color:#94a3b8!important}.dark .dark\:text-slate-400:is(.dark *){color:#78849a!important}.dark .dark\:text-brand-500:is(.dark *){color:#818cf8!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::-moz-placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{color:#cbd5e1!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{color:#cbd5e1!important}.dark .\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{color:#78849a!important}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.focus-within\:border-brand-500:focus-within{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-brand-500\/40:focus-within{--tw-ring-color: rgb(59 130 246 / .4)}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#3b82f6\]\/35:hover{border-color:#3b82f659}.hover\:border-brand-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-brand-500\/40:hover{border-color:#3b82f666}.hover\:border-rose-300:hover{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:\!bg-slate-200:hover{--tw-bg-opacity: 1 !important;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))!important}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-950\/25:hover{background-color:#451a0340}.hover\:bg-brand-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-50\/30:hover{background-color:#eef5ff4d}.hover\:bg-brand-500\/10:hover{background-color:#3b82f61a}.hover\:bg-brand-500\/15:hover{background-color:#3b82f626}.hover\:bg-brand-700:hover{--tw-bg-opacity: 1;background-color:rgb(9 84 190 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/10:hover{background-color:#10b9811a}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-slate-900\/\[0\.025\]:hover{background-color:#0f172a06}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:\!text-slate-900:hover{--tw-text-opacity: 1 !important;color:rgb(15 23 42 / var(--tw-text-opacity, 1))!important}.hover\:text-amber-800:hover{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.hover\:text-brand-600:hover{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.hover\:text-brand-700:hover{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-slate-950:hover{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-brand-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-slate-600:focus{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:\!ring-red-400:focus{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1)) !important}.focus\:ring-brand-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-brand-500\/50:focus{--tw-ring-color: rgb(59 130 246 / .5)}.focus\:ring-offset-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-transparent:focus{--tw-ring-offset-color: transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[\#3b82f6\]\/40:focus-visible{--tw-ring-color: rgb(59 130 246 / .4)}.focus-visible\:ring-brand-500\/60:focus-visible{--tw-ring-color: rgb(59 130 246 / .6)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:border-slate-200:hover:disabled{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-slate-500:hover:disabled{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.aria-selected\:text-slate-900[aria-selected=true]{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:divide-\[\#1a1a22\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 26 34 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1d25\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 29 37 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1f2a\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 31 42 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1b2029\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(27 32 41 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c23\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 35 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c24\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 36 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1e2535\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(30 37 53 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#222226\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(34 34 38 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#263141\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(38 49 65 / var(--tw-divide-opacity, 1))}.dark\:\!border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1 !important;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))!important}.dark\:\!border-brand-500\/70:is(.dark *){border-color:#3b82f6b3!important}.dark\:\!border-red-500\/60:is(.dark *){border-color:#ef444499!important}.dark\:border-\[\#131318\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(19 19 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#141418\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(20 20 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a22\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 34 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1d25\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 29 37 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f2a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1b2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(27 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2330\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 35 48 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2535\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 37 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1f1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222226\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222227\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 39 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22262f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 38 47 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222733\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 39 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#232833\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(35 40 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#242b36\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(36 43 54 / var(--tw-border-opacity, 1))}.dark\:border-\[\#262d3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 45 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#263141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#27272a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#273141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#283241\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(40 50 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2d35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 45 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a3344\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 51 68 / var(--tw-border-opacity, 1))}.dark\:border-\[\#33333a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#39414f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(57 65 79 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3a4258\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(58 66 88 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3b82f6\]\/45:is(.dark *){border-color:#3b82f673}.dark\:border-\[\#5c1c1c\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(92 28 28 / var(--tw-border-opacity, 1))}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-700\/40:is(.dark *){border-color:#b4530966}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-amber-900\/40:is(.dark *){border-color:#78350f66}.dark\:border-blue-900\/40:is(.dark *){border-color:#1e3a8a66}.dark\:border-brand-500\/40:is(.dark *){border-color:#3b82f666}.dark\:border-brand-500\/50:is(.dark *){border-color:#3b82f680}.dark\:border-brand-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(9 84 190 / var(--tw-border-opacity, 1))}.dark\:border-brand-800\/50:is(.dark *){border-color:#073f8f80}.dark\:border-cyan-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 116 144 / var(--tw-border-opacity, 1))}.dark\:border-cyan-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 78 99 / var(--tw-border-opacity, 1))}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/25:is(.dark *){border-color:#10b98140}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-emerald-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.dark\:border-emerald-800\/40:is(.dark *){border-color:#065f4666}.dark\:border-emerald-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(6 78 59 / var(--tw-border-opacity, 1))}.dark\:border-emerald-900\/40:is(.dark *){border-color:#064e3b66}.dark\:border-green-900\/40:is(.dark *){border-color:#14532d66}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-500\/20:is(.dark *){border-color:#ef444433}.dark\:border-red-500\/30:is(.dark *){border-color:#ef44444d}.dark\:border-red-500\/50:is(.dark *){border-color:#ef444480}.dark\:border-red-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.dark\:border-red-800\/40:is(.dark *){border-color:#991b1b66}.dark\:border-red-900\/40:is(.dark *){border-color:#7f1d1d66}.dark\:border-sky-400\/40:is(.dark *){border-color:#38bdf866}.dark\:border-sky-500\/20:is(.dark *){border-color:#0ea5e933}.dark\:border-sky-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity, 1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.dark\:border-slate-600\/40:is(.dark *){border-color:#47556966}.dark\:\!bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))!important}.dark\:bg-\[\#030507\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 5 7 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#06080d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 8 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#070b12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(7 11 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#08080b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 8 11 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]\/95:is(.dark *){background-color:#09090df2}.dark\:bg-\[\#0a0a0f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 15 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0a0f\]\/60:is(.dark *){background-color:#0a0a0f99}.dark\:bg-\[\#0a0a10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0d12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 13 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b0d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b111a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 17 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c0e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0f17\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 15 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1119\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 25 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c121c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 18 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d0d13\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1018\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1117\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d141a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 20 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1a12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 26 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0e131b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 19 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f11\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f16\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f141d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 20 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 23 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]\/70:is(.dark *){background-color:#101722b3}.dark\:bg-\[\#111114\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111318\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 19 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]\/95:is(.dark *){background-color:#11151df2}.dark\:bg-\[\#111820\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121214\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121218\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#12121a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121720\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 23 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#13131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#14181f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 31 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141822\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#15151a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]\/80:is(.dark *){background-color:#161b24cc}.dark\:bg-\[\#161c26\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 28 38 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#182131\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 33 49 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a22\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1d25\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 29 37 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1f2a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c23\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 35 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c2030\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1d2633\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(29 38 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2330\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 35 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2430\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 36 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1f1f29\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 31 41 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#202734\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(32 39 52 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#222\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232833\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 40 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232933\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 41 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a0505\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 5 5 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a303a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 48 58 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a3140\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 49 64 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2d4b8f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(45 75 143 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4150\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 65 80 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4a5c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 74 92 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-900\/10:is(.dark *){background-color:#78350f1a}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-black\/60:is(.dark *){background-color:#0009}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-brand-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-brand-500\/15:is(.dark *){background-color:#3b82f626}.dark\:bg-brand-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-brand-500\/\[0\.09\]:is(.dark *){background-color:#3b82f617}.dark\:bg-brand-500\/\[0\.1\]:is(.dark *){background-color:#3b82f61a}.dark\:bg-brand-900\/10:is(.dark *){background-color:#062d661a}.dark\:bg-brand-900\/20:is(.dark *){background-color:#062d6633}.dark\:bg-brand-900\/30:is(.dark *){background-color:#062d664d}.dark\:bg-brand-900\/40:is(.dark *){background-color:#062d6666}.dark\:bg-cyan-900\/40:is(.dark *){background-color:#164e6366}.dark\:bg-cyan-950\/30:is(.dark *){background-color:#0833444d}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/25:is(.dark *){background-color:#10b98140}.dark\:bg-emerald-500\/5:is(.dark *){background-color:#10b9810d}.dark\:bg-emerald-500\/\[0\.06\]:is(.dark *){background-color:#10b9810f}.dark\:bg-emerald-900\/10:is(.dark *){background-color:#064e3b1a}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#022c2233}.dark\:bg-emerald-950\/30:is(.dark *){background-color:#022c224d}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-purple-900\/10:is(.dark *){background-color:#581c871a}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-400\/10:is(.dark *){background-color:#38bdf81a}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900\/30:is(.dark *){background-color:#0c4a6e4d}.dark\:bg-slate-500\/10:is(.dark *){background-color:#64748b1a}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-500\/15:is(.dark *){background-color:#8b5cf626}.dark\:bg-violet-900\/30:is(.dark *){background-color:#4c1d954d}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2e106566}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/\[0\.05\]:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:bg-\[linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:linear-gradient(180deg,#030507,#05080c)}.dark\:bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.02\)\,transparent_26\%\)\]:is(.dark *){background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent 26%)}.dark\:bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.035\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 18% 18%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 78% 20%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.035),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_20\%_22\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_74\%_18\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 20% 22%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 74% 18%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_top_left\,_rgba\(56\,189\,248\,0\.06\)\,_transparent_22\%\)\,linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:radial-gradient(circle at top left,rgba(56,189,248,.06),transparent 22%),linear-gradient(180deg,#030507,#05080c)}.dark\:from-sky-500\/10:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-\[\#3b82f6\]\/30:is(.dark *){--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-violet-500\/10:is(.dark *){--tw-gradient-to: rgb(139 92 246 / .1) var(--tw-gradient-to-position)}.dark\:fill-\[\#9CA3AF\]:is(.dark *){fill:#9ca3af}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-slate-700:is(.dark *){stroke:#334155}.dark\:\!text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(167 178 198 / var(--tw-text-opacity, 1))!important}.dark\:\!text-brand-600:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:text-\[\#3a3a44\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 58 68 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4258\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 66 88 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4455\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 68 85 / var(--tw-text-opacity, 1))}.dark\:text-\[\#4b5565\]:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 101 / var(--tw-text-opacity, 1))}.dark\:text-\[\#5c6577\]:is(.dark *){--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d768a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d778a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 119 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#738097\]:is(.dark *){--tw-text-opacity: 1;color:rgb(115 128 151 / var(--tw-text-opacity, 1))}.dark\:text-\[\#77849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(119 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#78849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#798191\]:is(.dark *){--tw-text-opacity: 1;color:rgb(121 129 145 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7b8496\]:is(.dark *){--tw-text-opacity: 1;color:rgb(123 132 150 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7ea4ff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(126 164 255 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7f8ca3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(127 140 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8090a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8290a5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(130 144 165 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a8a93\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a93a6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 147 166 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a94a7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 148 167 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d95a3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 149 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d9ab2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 154 178 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8f9bb0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(143 155 176 / var(--tw-text-opacity, 1))}.dark\:text-\[\#91a0b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(145 160 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#98a3b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(152 163 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa4b6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 164 182 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa6bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 166 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa7bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 167 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9ca7ba\]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 167 186 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a1a1aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a6b0c3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(166 176 195 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(167 178 198 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a8b4c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(168 180 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#aab5c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(170 181 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b2bdd1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(178 189 209 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b3b3bd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(179 179 189 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b7c2d6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(183 194 214 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c4cfdf\]:is(.dark *){--tw-text-opacity: 1;color:rgb(196 207 223 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c5d0e0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(197 208 224 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c6d0e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(198 208 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cede\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 206 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 219 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 221 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d0de\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 208 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d3e6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 211 230 / var(--tw-text-opacity, 1))}.dark\:text-\[\#cbd5e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d0d7e2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(208 215 226 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d8e1ef\]:is(.dark *){--tw-text-opacity: 1;color:rgb(216 225 239 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5e7eb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5ecf7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 236 247 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e7ecf3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(231 236 243 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/90:is(.dark *){color:#fcd34de6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-500:is(.dark *){--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-brand-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-500:is(.dark *){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.dark\:text-cyan-200:is(.dark *){--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-emerald-500:is(.dark *){--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.dark\:text-slate-950:is(.dark *){--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:opacity-20:is(.dark *){opacity:.2}.dark\:opacity-\[0\.08\]:is(.dark *){opacity:.08}.dark\:shadow-\[0_18px_60px_-42px_rgba\(0\,0\,0\,0\.7\)\]:is(.dark *){--tw-shadow: 0 18px 60px -42px rgba(0,0,0,.7);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_70px_-34px_rgba\(0\,0\,0\,0\.72\)\]:is(.dark *){--tw-shadow: 0 24px 70px -34px rgba(0,0,0,.72);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-\[\#22222c\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(34 34 44 / var(--tw-ring-opacity, 1))}.dark\:ring-\[\#2a2a35\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(42 42 53 / var(--tw-ring-opacity, 1))}.dark\:ring-amber-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:ring-brand-500\/55:is(.dark *){--tw-ring-color: rgb(59 130 246 / .55)}.dark\:ring-brand-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(7 63 143 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity, 1))}.dark\:ring-red-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:hover\:border-\[\#2a2a31\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 49 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a2a38\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 56 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a303a\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2e3545\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(46 53 69 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.dark\:hover\:border-rose-900\/50:hover:is(.dark *){border-color:#88133780}.dark\:hover\:\!bg-\[\#1c2330\]:hover:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(28 35 48 / var(--tw-bg-opacity, 1))!important}.dark\:hover\:bg-\[\#0b1017\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d13\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d14\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f16\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f18\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f131b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 19 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111114\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111118\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#11151d\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#121214\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13131a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#131720\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 23 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13192a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 25 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141923\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 25 35 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141a24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151518\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151d2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 29 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b26\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 31 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1a22\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1f2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2130\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 33 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2230\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 34 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c1c24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c2030\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#33569f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 86 159 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#380808\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 8 8 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-500\/20:hover:is(.dark *){background-color:#f59e0b33}.dark\:hover\:bg-brand-500\/10:hover:is(.dark *){background-color:#3b82f61a}.dark\:hover\:bg-brand-900\/20:hover:is(.dark *){background-color:#062d6633}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-950\/25:hover:is(.dark *){background-color:#450a0a40}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-rose-500\/10:hover:is(.dark *){background-color:#f43f5e1a}.dark\:hover\:bg-sky-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-200:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:bg-white\/\[0\.035\]:hover:is(.dark *){background-color:#ffffff09}.dark\:hover\:\!text-white:hover:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:hover\:text-\[\#8090a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-\[\#8d96a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-amber-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(217 234 255 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:focus\:text-slate-300:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:disabled\:hover\:text-\[\#8a8a93\]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:aria-selected\:bg-white\/\[0\.06\][aria-selected=true]:is(.dark *){background-color:#ffffff0f}.dark\:aria-selected\:text-white[aria-selected=true]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-6{right:1.5rem}.sm\:top-6{top:1.5rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-11{height:2.75rem}.sm\:h-12{height:3rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:self-stretch{align-self:stretch}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-\[1\.35rem\]{font-size:1.35rem}.sm\:text-\[1\.3rem\]{font-size:1.3rem}.sm\:text-\[1\.75rem\]{font-size:1.75rem}}@media (min-width: 768px){.md\:grid{display:grid}.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-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}}@media (min-width: 1024px){.lg\:ml-auto{margin-left:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:max-h-\[360px\]{max-height:360px}.lg\:min-h-0{min-height:0px}.lg\:min-h-screen{min-height:100vh}.lg\:w-full{width:100%}.lg\:flex-1{flex:1 1 0%}.lg\:shrink-0{flex-shrink:0}.lg\:-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-\[1\.06fr_0\.94fr\]{grid-template-columns:1.06fr .94fr}.lg\:grid-cols-\[1\.08fr_0\.92fr\]{grid-template-columns:1.08fr .92fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-stretch{align-items:stretch}.lg\:gap-1{gap:.25rem}.lg\:overflow-visible{overflow:visible}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.lg\:px-14{padding-left:3.5rem;padding-right:3.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}.lg\:dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-6{top:1.5rem}.xl\:col-span-1{grid-column:span 1 / span 1}.xl\:col-span-2{grid-column:span 2 / span 2}.xl\:h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.xl\:w-\[24rem\]{width:24rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.xl\:grid-cols-\[1\.3fr_0\.7fr\]{grid-template-columns:1.3fr .7fr}.xl\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(340px\,420px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(360px\,1fr\)_minmax\(0\,1\.618fr\)\]{grid-template-columns:minmax(360px,1fr) minmax(0,1.618fr)}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:border-b-0{border-bottom-width:0px}.xl\:border-r{border-right-width:1px}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:1rem}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:1rem}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:9999px}.\[\&\:\:-moz-range-thumb\]\:border-2::-moz-range-thumb{border-width:2px}.\[\&\:\:-moz-range-thumb\]\:border-solid::-moz-range-thumb{border-style:solid}.\[\&\:\:-moz-range-thumb\]\:border-white::-moz-range-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-moz-range-thumb\]\:bg-\[color\:var\(--thumb\)\]::-moz-range-thumb{background-color:var(--thumb)}.\[\&\:\:-moz-range-thumb\]\:shadow::-moz-range-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:1rem}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:1rem}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\[\&\:\:-webkit-slider-thumb\]\:border-2::-webkit-slider-thumb{border-width:2px}.\[\&\:\:-webkit-slider-thumb\]\:border-white::-webkit-slider-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:bg-\[color\:var\(--thumb\)\]::-webkit-slider-thumb{background-color:var(--thumb)}.\[\&\:\:-webkit-slider-thumb\]\:shadow::-webkit-slider-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb{-webkit-transition-property:transform;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\:\:-webkit-slider-thumb\]\:active\:scale-95:active::-webkit-slider-thumb{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>\*\:last-child\]\:border-b-0>*:last-child{border-bottom-width:0px}@media (min-width: 768px){.md\:\[\&\>\*\:nth-last-child\(-n\+2\)\]\:border-b-0>*:nth-last-child(-n+2){border-bottom-width:0px}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:pb-1 [cmdk-group-heading]{padding-bottom:.25rem}.\[\&_\[cmdk-group-heading\]\]\:pt-3 [cmdk-group-heading]{padding-top:.75rem}.\[\&_\[cmdk-group-heading\]\]\:text-\[11px\] [cmdk-group-heading]{font-size:11px}.\[\&_\[cmdk-group-heading\]\]\:font-bold [cmdk-group-heading]{font-weight:700}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_\[cmdk-group-heading\]\]\:tracking-widest [cmdk-group-heading]{letter-spacing:.1em}.\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:\[\&_\[cmdk-group-heading\]\]\:text-\[\#6d768a\] [cmdk-group-heading]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))} diff --git a/website/dist/decision-engine/assets/index-Ctm9g-Bm.css b/website/dist/decision-engine/assets/index-Ctm9g-Bm.css new file mode 100644 index 00000000..6097ce8b --- /dev/null +++ b/website/dist/decision-engine/assets/index-Ctm9g-Bm.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&family=Inter:ital,opsz,wght@0,14..32,400..700;1,14..32,400..700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{--font-sans: "Google Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light;--chart-tooltip-bg: rgba(248, 250, 252, .98);--chart-tooltip-border: #cbd5e1;--chart-tooltip-label: #0f172a;--chart-tooltip-text: #334155;--chart-tooltip-shadow: 0 18px 44px -24px rgba(15, 23, 42, .42)}html.dark{color-scheme:dark;--chart-tooltip-bg: #0d0d12;--chart-tooltip-border: #1c1c24;--chart-tooltip-label: #f8fafc;--chart-tooltip-text: #e2e8f0;--chart-tooltip-shadow: 0 16px 40px rgba(0, 0, 0, .35)}html,body{font-family:var(--font-sans);font-optical-sizing:auto;font-feature-settings:"zero" 1;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark html,.dark body{color:#f1f5f9}html,body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}html:is(.dark *),body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}#root{min-width:0;overflow-wrap:break-word}.dark p,.dark span,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6{color:#f1f5f9}p,span,h1,h2,h3,h4,h5,h6{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}p:is(.dark *),span:is(.dark *),h1:is(.dark *),h2:is(.dark *),h3:is(.dark *),h4:is(.dark *),h5:is(.dark *),h6:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark p.text-slate-500,.dark span.text-slate-500,.dark div.text-slate-500{color:#94a3b8}.dark p.text-slate-600,.dark span.text-slate-600,.dark div.text-slate-600{color:#cbd5e1}.dark p.\!text-slate-600,.dark span.\!text-slate-600,.dark div.\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-900,.dark .text-slate-800{color:#f1f5f9!important}.dark .text-slate-700{color:#e2e8f0!important}.dark .text-slate-600,.dark .\!text-slate-600{color:#cbd5e1!important}.dark .text-slate-500{color:#94a3b8!important}.dark .text-slate-400{color:#78849a!important}.dark .text-blue-800,.dark .text-blue-700{color:#93c5fd!important}.dark .text-blue-600{color:#60a5fa!important}.dark .text-brand-500{color:#818cf8!important}.dark .bg-slate-50{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .bg-slate-100,.dark .\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1));-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}:is(.dark *)::-webkit-scrollbar-thumb:hover{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark :where(input:not([type=checkbox]):not([type=radio]):not([type=range])),.dark :where(select),.dark :where(textarea){color:#f1f5f9}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){border-radius:.5rem;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::-moz-placeholder,:where(select)::-moz-placeholder,:where(textarea)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]))::placeholder,:where(select)::placeholder,:where(textarea)::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus,:where(select):focus,:where(textarea):focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *),:where(select):is(.dark *),:where(textarea):is(.dark *){border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::-moz-placeholder,:where(select):is(.dark *)::-moz-placeholder,:where(textarea):is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):is(.dark *)::placeholder,:where(select):is(.dark *)::placeholder,:where(textarea):is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(138 138 147 / var(--tw-placeholder-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])):focus:is(.dark *),:where(select):focus:is(.dark *),:where(textarea):focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 56 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}:where(input:not([type=checkbox]):not([type=radio]):not([type=range])),:where(select),:where(textarea){font-family:var(--font-sans)}:where(select){appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px 16px}.dark select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.dark select option{color:#f1f5f9}select option{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}select option:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}input[type=range]{accent-color:#3b82f6}input[type=range]:is(.dark *){accent-color:#fff}input[type=radio],input[type=checkbox]{height:1rem;width:1rem;--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));accent-color:#3b82f6;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}input[type=radio]:is(.dark *),input[type=checkbox]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1));accent-color:#fff}input[type=radio]{border-radius:50%}input[type=checkbox]{border-radius:4px}input[type=radio]:checked,input[type=checkbox]:checked{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}input[type=radio]:checked:is(.dark *),input[type=checkbox]:checked:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.input-bare{border-width:0px;background-color:transparent;padding-left:0;padding-right:0}.input-bare:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);border-radius:.375rem;background-color:#f1f5f9cc}.input-bare:focus:is(.dark *){background-color:#ffffff0f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-2\.5{top:.625rem;bottom:.625rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-64{left:16rem}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-12{top:3rem}.top-4{top:1rem}.top-\[12vh\]{top:12vh}.top-\[26px\]{top:26px}.top-\[76px\]{top:76px}.top-\[calc\(100\%\+10px\)\]{top:calc(100% + 10px)}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[140\]{z-index:140}.z-\[200\]{z-index:200}.z-\[90\]{z-index:90}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.\!mt-5{margin-top:1.25rem!important}.-mb-1{margin-bottom:-.25rem}.-mb-3{margin-bottom:-.75rem}.-mb-px{margin-bottom:-1px}.-mr-2{margin-right:-.5rem}.-mt-1{margin-top:-.25rem}.-mt-2{margin-top:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[1\.3125rem\]{margin-left:1.3125rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-9{height:2.25rem!important}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[200px\]{height:200px}.h-\[2px\]{height:2px}.h-\[300px\]{height:300px}.h-\[34px\]{height:34px}.h-\[78px\]{height:78px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[240px\]{max-height:240px}.max-h-\[360px\]{max-height:360px}.max-h-\[400px\]{max-height:400px}.max-h-\[480px\]{max-height:480px}.max-h-\[560px\]{max-height:560px}.max-h-\[76vh\]{max-height:76vh}.max-h-\[min\(560px\,70vh\)\]{max-height:min(560px,70vh)}.min-h-0{min-height:0px}.min-h-\[16px\]{min-height:16px}.min-h-\[300px\]{min-height:300px}.min-h-\[360px\]{min-height:360px}.min-h-\[380px\]{min-height:380px}.min-h-\[42vh\]{min-height:42vh}.min-h-\[44vh\]{min-height:44vh}.min-h-\[56vh\]{min-height:56vh}.min-h-\[58vh\]{min-height:58vh}.min-h-\[620px\]{min-height:620px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[10\.5rem\]{width:10.5rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[12rem\]{width:12rem}.w-\[13\.5rem\]{width:13.5rem}.w-\[130px\]{width:130px}.w-\[14rem\]{width:14rem}.w-\[175px\]{width:175px}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[260px\]{width:260px}.w-\[268px\]{width:268px}.w-\[28\%\]{width:28%}.w-\[380px\]{width:380px}.w-\[3px\]{width:3px}.w-\[52px\]{width:52px}.w-\[62px\]{width:62px}.w-\[90px\]{width:90px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-\[13rem\]{min-width:13rem}.min-w-\[170px\]{min-width:170px}.min-w-\[240px\]{min-width:240px}.min-w-\[28px\]{min-width:28px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.min-w-\[520px\]{min-width:520px}.min-w-\[560px\]{min-width:560px}.min-w-\[640px\]{min-width:640px}.min-w-\[6rem\]{min-width:6rem}.min-w-\[720px\]{min-width:720px}.min-w-\[820px\]{min-width:820px}.min-w-\[880px\]{min-width:880px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[920px\]{min-width:920px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[10ch\]{max-width:10ch}.max-w-\[1500px\]{max-width:1500px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[170px\]{max-width:170px}.max-w-\[1760px\]{max-width:1760px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[38rem\]{max-width:38rem}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[520px\]{max-width:520px}.max-w-\[540px\]{max-width:540px}.max-w-\[57ch\]{max-width:57ch}.max-w-\[620px\]{max-width:620px}.max-w-\[68ch\]{max-width:68ch}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1\.618\]{flex:1.618}.flex-\[2\]{flex:2}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[analytics-progress_1\.8s_ease-in-out_infinite\]{animation:analytics-progress 1.8s ease-in-out infinite}@keyframes progress{0%{width:0%}to{width:100%}}.animate-\[progress_2\.5s_linear_forwards\]{animation:progress 2.5s linear forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[minmax\(0\,1\.2fr\)_0\.9fr_0\.65fr_0\.65fr_1fr\]{grid-template-columns:minmax(0,1.2fr) .9fr .65fr .65fr 1fr}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-2xl{border-radius:1rem!important}.\!rounded-\[18px\]{border-radius:18px!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[16px\]{border-radius:16px}.rounded-\[18px\]{border-radius:18px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-\[30px\]{border-radius:30px}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.\!border-b-0{border-bottom-width:0px!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[1\.5px\]{border-top-width:1.5px}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.\!border-brand-500\/70{border-color:#3b82f6b3!important}.\!border-red-400{--tw-border-opacity: 1 !important;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))!important}.\!border-slate-200{--tw-border-opacity: 1 !important;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))!important}.\!border-transparent{border-color:transparent!important}.border-\[\#e6e6ee\]{--tw-border-opacity: 1;border-color:rgb(230 230 238 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-300\/70{border-color:#fcd34db3}.border-blue-200,.border-brand-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-brand-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-brand-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-brand-500\/30{border-color:#3b82f64d}.border-brand-500\/40{border-color:#3b82f666}.border-brand-500\/50{border-color:#3b82f680}.border-brand-600{--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.border-brand-600\/40{border-color:#0c69ee66}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-400{--tw-border-opacity: 1;border-color:rgb(52 211 153 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/30{border-color:#10b9814d}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-300\/40{border-color:#fca5a566}.border-red-300\/60{border-color:#fca5a599}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-500\/20{border-color:#0ea5e933}.border-sky-500\/30{border-color:#0ea5e94d}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\!bg-slate-100{--tw-bg-opacity: 1 !important;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))!important}.\!bg-white{--tw-bg-opacity: 1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))!important}.bg-\[\#ffffff\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-amber-950\/15{background-color:#451a0326}.bg-black\/40{background-color:#0006}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-brand-100{--tw-bg-opacity: 1;background-color:rgb(217 234 255 / var(--tw-bg-opacity, 1))}.bg-brand-50{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.bg-brand-50\/30{background-color:#eef5ff4d}.bg-brand-50\/40{background-color:#eef5ff66}.bg-brand-50\/50{background-color:#eef5ff80}.bg-brand-50\/70{background-color:#eef5ffb3}.bg-brand-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-brand-500\/10{background-color:#3b82f61a}.bg-brand-500\/15{background-color:#3b82f626}.bg-brand-500\/5{background-color:#3b82f60d}.bg-brand-500\/\[0\.06\]{background-color:#3b82f60f}.bg-brand-600{--tw-bg-opacity: 1;background-color:rgb(12 105 238 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-50\/60{background-color:#ecfeff99}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/40{background-color:#ecfdf566}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/\[0\.04\]{background-color:#10b9810a}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500\/10{background-color:#f973161a}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-50\/40{background-color:#faf5ff66}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/50{background-color:#fef2f280}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-200\/70{background-color:#e2e8f0b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-50\/90{background-color:#f8fafce6}.bg-slate-500\/10{background-color:#64748b1a}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/\[0\.04\]{background-color:#0f172a0a}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/70{background-color:#020617b3}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:#ffffff0d}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(248\,250\,252\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#f8fafc)}.bg-\[linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:linear-gradient(180deg,#fff,#fff)}.bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.55\)\,transparent_26\%\)\]{background-image:linear-gradient(180deg,rgba(255,255,255,.55),transparent 26%)}.bg-\[linear-gradient\(90deg\,\#4371ff_0\%\,\#3a63f4_100\%\)\]{background-image:linear-gradient(90deg,#4371ff,#3a63f4)}.bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(59\,130\,246\,0\.06\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]{background-image:radial-gradient(circle at 18% 18%,rgba(59,130,246,.06),transparent 24%),radial-gradient(circle at 78% 20%,rgba(14,165,233,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.bg-\[radial-gradient\(circle_at_top_left\,_rgba\(59\,130\,246\,0\.05\)\,_transparent_22\%\)\,radial-gradient\(circle_at_top_right\,_rgba\(14\,165\,233\,0\.04\)\,_transparent_20\%\)\,linear-gradient\(180deg\,_rgba\(255\,255\,255\,1\)\,_rgba\(255\,255\,255\,1\)\)\]{background-image:radial-gradient(circle at top left,rgba(59,130,246,.05),transparent 22%),radial-gradient(circle at top right,rgba(14,165,233,.04),transparent 20%),linear-gradient(180deg,#fff,#fff)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-50{--tw-gradient-from: #f0f9ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 249 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#3b82f6\]\/25{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-sky-400\/50{--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(56 189 248 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-50{--tw-gradient-to: #f5f3ff var(--tw-gradient-to-position)}.bg-\[right_12px_center\]{background-position:right 12px center}.bg-no-repeat{background-repeat:no-repeat}.fill-\[\#0F172A\]{fill:#0f172a}.fill-\[\#475569\]{fill:#475569}.fill-current{fill:currentColor}.stroke-brand-500{stroke:#3b82f6}.stroke-slate-200{stroke:#e2e8f0}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.\!py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.\!pt-3{padding-top:.75rem!important}.\!pt-4{padding-top:1rem!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-11{padding-left:2.75rem}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[18px\]{padding-left:18px}.pr-1{padding-right:.25rem}.pr-11{padding-right:2.75rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-3\.5{padding-right:.875rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[21px\]{font-size:21px}.text-\[2rem\]{font-size:2rem}.text-\[34px\]{font-size:34px}.text-\[clamp\(2\.15rem\,3\.6vw\,3\.05rem\)\]{font-size:clamp(2.15rem,3.6vw,3.05rem)}.text-\[clamp\(2\.25rem\,3\.6vw\,3\.15rem\)\]{font-size:clamp(2.25rem,3.6vw,3.15rem)}.text-\[clamp\(3\.8rem\,6\.8vw\,6rem\)\]{font-size:clamp(3.8rem,6.8vw,6rem)}.text-\[clamp\(4rem\,7vw\,6\.2rem\)\]{font-size:clamp(4rem,7vw,6.2rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.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)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-\[0\.92\]{line-height:.92}.leading-\[17px\]{line-height:17px}.leading-\[18px\]{line-height:18px}.leading-\[21px\]{line-height:21px}.leading-\[22px\]{line-height:22px}.leading-\[42px\]{line-height:42px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.05em\]{letter-spacing:-.05em}.tracking-\[-0\.065em\]{letter-spacing:-.065em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-brand-600{--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.\!text-slate-600{--tw-text-opacity: 1 !important;color:rgb(71 85 105 / var(--tw-text-opacity, 1))!important}.\!text-slate-950{--tw-text-opacity: 1 !important;color:rgb(2 6 23 / var(--tw-text-opacity, 1))!important}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-brand-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.text-brand-700{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-\[0\.05\]{opacity:.05}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.1\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.1);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.12);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_30px_-24px_rgba\(15\,23\,42\,0\.28\)\]{--tw-shadow: 0 12px 30px -24px rgba(15,23,42,.28);--tw-shadow-colored: 0 12px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-24px_rgba\(59\,130\,246\,0\.55\)\]{--tw-shadow: 0 14px 30px -24px rgba(59,130,246,.55);--tw-shadow-colored: 0 14px 30px -24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: 0 14px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: 0 14px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_16px_40px_-30px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 16px 40px -30px rgba(15,23,42,.35);--tw-shadow-colored: 0 16px 40px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-42px_rgba\(15\,23\,42\,0\.15\)\]{--tw-shadow: 0 18px 60px -42px rgba(15,23,42,.15);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_18px_60px_-46px_rgba\(15\,23\,42\,0\.2\)\]{--tw-shadow: 0 18px 60px -46px rgba(15,23,42,.2);--tw-shadow-colored: 0 18px 60px -46px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-20px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow: 0 20px 60px -20px rgba(15,23,42,.08);--tw-shadow-colored: 0 20px 60px -20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_60px_-36px_rgba\(15\,23\,42\,0\.35\)\]{--tw-shadow: 0 20px 60px -36px rgba(15,23,42,.35);--tw-shadow-colored: 0 20px 60px -36px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_70px_-34px_rgba\(15\,23\,42\,0\.48\)\]{--tw-shadow: 0 24px 70px -34px rgba(15,23,42,.48);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_30px_80px_-40px_rgba\(15\,23\,42\,0\.55\)\]{--tw-shadow: 0 30px 80px -40px rgba(15,23,42,.55);--tw-shadow-colored: 0 30px 80px -40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_20px_-14px_rgba\(59\,130\,246\,0\.7\)\]{--tw-shadow: 0 8px 20px -14px rgba(59,130,246,.7);--tw-shadow-colored: 0 8px 20px -14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_24px_-18px_rgba\(15\,23\,42\,0\.45\)\]{--tw-shadow: 0 8px 24px -18px rgba(15,23,42,.45);--tw-shadow-colored: 0 8px 24px -18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.75\)\,0_16px_30px_-28px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow: inset 0 1px 0 rgba(255,255,255,.75),0 16px 30px -28px rgba(15,23,42,.18);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 16px 30px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-brand-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-brand-500\/55{--tw-ring-color: rgb(59 130 246 / .55)}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-emerald-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1))}.ring-emerald-500\/20{--tw-ring-color: rgb(16 185 129 / .2)}.ring-orange-500\/20{--tw-ring-color: rgb(249 115 22 / .2)}.ring-purple-500\/20{--tw-ring-color: rgb(168 85 247 / .2)}.ring-red-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1))}.ring-red-500\/20{--tw-ring-color: rgb(239 68 68 / .2)}.ring-slate-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1))}.ring-slate-200\/70{--tw-ring-color: rgb(226 232 240 / .7)}.blur{--tw-blur: blur(8px);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)}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.\[background-image\:linear-gradient\(rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(148\,163\,184\,0\.08\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px)}.\[background-size\:56px_56px\]{background-size:56px 56px}.\[font-variant-numeric\:tabular-nums\]{font-variant-numeric:tabular-nums}.cond-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;border-radius:.5rem;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%236b7280' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-color:transparent;background-size:14px 14px;border:1px solid #e2e8f0;outline:none;box-shadow:none!important;min-width:0}.dark .cond-select{border-color:#222226;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-color:transparent}.cond-select:focus{outline:none;box-shadow:none!important}.glass-panel{position:relative;overflow:hidden;border-radius:1rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 18px 50px -30px rgba(15,23,42,.12);--tw-shadow-colored: 0 18px 50px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.glass-panel:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 29 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1));--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.glass-panel-hover:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.glass-panel-hover:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.text-gradient{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #0c69ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(12 105 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #a855f7 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient:is(.dark *){--tw-gradient-from: #9b51e0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(155 81 224 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #0ea5e9 var(--tw-gradient-to-position)}.aurora-top{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#3b82f6,#0ea5e9,#6366f1);opacity:.35;z-index:100}@keyframes analytics-progress{0%{transform:scaleX(.18)}55%{transform:scaleX(.82)}to{transform:scaleX(.96)}}.dark .placeholder\:text-slate-500p::-moz-placeholder,.dark .placeholder\:text-slate-500span::-moz-placeholder,.dark .placeholder\:text-slate-500div::-moz-placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500p::placeholder,.dark .placeholder\:text-slate-500span::placeholder,.dark .placeholder\:text-slate-500div::placeholder{color:#94a3b8}.dark .placeholder\:text-slate-500::-moz-placeholder{color:#94a3b8!important}.dark .placeholder\:text-slate-500::placeholder{color:#94a3b8!important}.dark .hover\:text-slate-500:hoverp,.dark .hover\:text-slate-500:hoverspan,.dark .hover\:text-slate-500:hoverdiv{color:#94a3b8}.dark .hover\:text-slate-600:hoverp,.dark .hover\:text-slate-600:hoverspan,.dark .hover\:text-slate-600:hoverdiv{color:#cbd5e1}.dark .hover\:\!text-slate-900:hover,.dark .hover\:text-slate-900:hover,.dark .hover\:text-slate-800:hover{color:#f1f5f9!important}.dark .hover\:text-slate-700:hover{color:#e2e8f0!important}.dark .hover\:text-slate-600:hover{color:#cbd5e1!important}.dark .hover\:text-slate-500:hover{color:#94a3b8!important}.dark .hover\:bg-slate-50:hover{--tw-bg-opacity: 1 !important;background-color:rgb(26 26 29 / var(--tw-bg-opacity, 1))!important}.dark .hover\:bg-slate-100:hover{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .focus\:text-slate-600:focusp,.dark .focus\:text-slate-600:focusspan,.dark .focus\:text-slate-600:focusdiv{color:#cbd5e1}.dark .focus\:text-slate-600:focus{color:#cbd5e1!important}.dark .disabled\:hover\:text-slate-500:hover:disabledp,.dark .disabled\:hover\:text-slate-500:hover:disabledspan,.dark .disabled\:hover\:text-slate-500:hover:disableddiv{color:#94a3b8}.dark .disabled\:hover\:text-slate-500:hover:disabled{color:#94a3b8!important}.dark .group:hover .group-hover\:text-slate-700{color:#e2e8f0!important}.dark .aria-selected\:text-slate-900[aria-selected=true]{color:#f1f5f9!important}.dark .aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 38 / var(--tw-bg-opacity, 1))!important}.dark .dark\:text-slate-500:is(.dark *)p,.dark .dark\:text-slate-500:is(.dark *)span,.dark .dark\:text-slate-500:is(.dark *)div{color:#94a3b8}.dark .dark\:text-slate-500:is(.dark *){color:#94a3b8!important}.dark .dark\:text-slate-400:is(.dark *){color:#78849a!important}.dark .dark\:text-brand-500:is(.dark *){color:#818cf8!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::-moz-placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::-moz-placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)p::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)span::placeholder,.dark .dark\:placeholder\:text-slate-600:is(.dark *)div::placeholder{color:#cbd5e1}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{color:#cbd5e1!important}.dark .dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{color:#cbd5e1!important}.dark .\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{color:#78849a!important}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.focus-within\:border-brand-500:focus-within{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-brand-500\/40:focus-within{--tw-ring-color: rgb(59 130 246 / .4)}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#3b82f6\]\/35:hover{border-color:#3b82f659}.hover\:border-brand-400:hover{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.hover\:border-brand-500\/40:hover{border-color:#3b82f666}.hover\:border-rose-300:hover{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:\!bg-slate-200:hover{--tw-bg-opacity: 1 !important;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))!important}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-950\/25:hover{background-color:#451a0340}.hover\:bg-brand-50:hover{--tw-bg-opacity: 1;background-color:rgb(238 245 255 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-50\/30:hover{background-color:#eef5ff4d}.hover\:bg-brand-500\/10:hover{background-color:#3b82f61a}.hover\:bg-brand-500\/15:hover{background-color:#3b82f626}.hover\:bg-brand-700:hover{--tw-bg-opacity: 1;background-color:rgb(9 84 190 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/10:hover{background-color:#10b9811a}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-slate-900\/\[0\.025\]:hover{background-color:#0f172a06}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:\!text-slate-900:hover{--tw-text-opacity: 1 !important;color:rgb(15 23 42 / var(--tw-text-opacity, 1))!important}.hover\:text-amber-800:hover{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.hover\:text-brand-600:hover{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.hover\:text-brand-700:hover{--tw-text-opacity: 1;color:rgb(9 84 190 / var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-rose-600:hover{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-slate-950:hover{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-brand-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:text-slate-600:focus{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:\!ring-red-400:focus{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1)) !important}.focus\:ring-brand-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-brand-500\/50:focus{--tw-ring-color: rgb(59 130 246 / .5)}.focus\:ring-offset-1:focus{--tw-ring-offset-width: 1px}.focus\:ring-offset-transparent:focus{--tw-ring-offset-color: transparent}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\:ring-\[\#3b82f6\]\/40:focus-visible{--tw-ring-color: rgb(59 130 246 / .4)}.focus-visible\:ring-brand-500\/60:focus-visible{--tw-ring-color: rgb(59 130 246 / .6)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width: 0px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:border-slate-200:hover:disabled{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-slate-500:hover:disabled{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-600{--tw-text-opacity: 1;color:rgb(12 105 238 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.aria-selected\:bg-slate-100[aria-selected=true]{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.aria-selected\:text-slate-900[aria-selected=true]{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:divide-\[\#1a1a22\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 26 34 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1d25\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 29 37 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1a1f2a\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(26 31 42 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1b2029\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(27 32 41 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c23\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 35 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1c1c24\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(28 28 36 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#1e2535\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(30 37 53 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#222226\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(34 34 38 / var(--tw-divide-opacity, 1))}.dark\:divide-\[\#263141\]:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(38 49 65 / var(--tw-divide-opacity, 1))}.dark\:\!border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1 !important;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))!important}.dark\:\!border-brand-500\/70:is(.dark *){border-color:#3b82f6b3!important}.dark\:\!border-red-500\/60:is(.dark *){border-color:#ef444499!important}.dark\:border-\[\#131318\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(19 19 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#141418\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(20 20 24 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a22\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 34 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1a24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 26 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1d25\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 29 37 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1a1f2a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(26 31 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1b2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(27 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1c1c24\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(28 28 36 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1d2029\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 32 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2330\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 35 48 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1e2535\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 37 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#1f1f29\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 31 41 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222226\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 38 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222227\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 34 39 / var(--tw-border-opacity, 1))}.dark\:border-\[\#22262f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 38 47 / var(--tw-border-opacity, 1))}.dark\:border-\[\#222733\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(34 39 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#232833\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(35 40 51 / var(--tw-border-opacity, 1))}.dark\:border-\[\#242b36\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(36 43 54 / var(--tw-border-opacity, 1))}.dark\:border-\[\#262d3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 45 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#263141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#27272a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-\[\#273141\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 49 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#283241\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(40 50 65 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2a3a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a2d35\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 45 53 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a303a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#2a3344\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 51 68 / var(--tw-border-opacity, 1))}.dark\:border-\[\#33333a\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 51 58 / var(--tw-border-opacity, 1))}.dark\:border-\[\#39414f\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(57 65 79 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3a4258\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(58 66 88 / var(--tw-border-opacity, 1))}.dark\:border-\[\#3b82f6\]\/45:is(.dark *){border-color:#3b82f673}.dark\:border-\[\#5c1c1c\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(92 28 28 / var(--tw-border-opacity, 1))}.dark\:border-amber-500\/30:is(.dark *){border-color:#f59e0b4d}.dark\:border-amber-700\/40:is(.dark *){border-color:#b4530966}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-amber-900\/40:is(.dark *){border-color:#78350f66}.dark\:border-blue-900\/40:is(.dark *){border-color:#1e3a8a66}.dark\:border-brand-500\/40:is(.dark *){border-color:#3b82f666}.dark\:border-brand-500\/50:is(.dark *){border-color:#3b82f680}.dark\:border-brand-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(9 84 190 / var(--tw-border-opacity, 1))}.dark\:border-brand-800\/50:is(.dark *){border-color:#073f8f80}.dark\:border-cyan-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(14 116 144 / var(--tw-border-opacity, 1))}.dark\:border-cyan-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 78 99 / var(--tw-border-opacity, 1))}.dark\:border-emerald-500\/20:is(.dark *){border-color:#10b98133}.dark\:border-emerald-500\/25:is(.dark *){border-color:#10b98140}.dark\:border-emerald-500\/30:is(.dark *){border-color:#10b9814d}.dark\:border-emerald-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.dark\:border-emerald-800\/40:is(.dark *){border-color:#065f4666}.dark\:border-emerald-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(6 78 59 / var(--tw-border-opacity, 1))}.dark\:border-emerald-900\/40:is(.dark *){border-color:#064e3b66}.dark\:border-green-900\/40:is(.dark *){border-color:#14532d66}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-500\/20:is(.dark *){border-color:#ef444433}.dark\:border-red-500\/30:is(.dark *){border-color:#ef44444d}.dark\:border-red-500\/50:is(.dark *){border-color:#ef444480}.dark\:border-red-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.dark\:border-red-800\/40:is(.dark *){border-color:#991b1b66}.dark\:border-red-900\/40:is(.dark *){border-color:#7f1d1d66}.dark\:border-sky-400\/40:is(.dark *){border-color:#38bdf866}.dark\:border-sky-500\/20:is(.dark *){border-color:#0ea5e933}.dark\:border-sky-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity, 1))}.dark\:border-slate-300:is(.dark *){--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.dark\:border-slate-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.dark\:border-slate-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.dark\:border-slate-600\/40:is(.dark *){border-color:#47556966}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:\!bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))!important}.dark\:bg-\[\#030507\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 5 7 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#06080d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(6 8 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#070b12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(7 11 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#08080b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 8 11 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#09090d\]\/95:is(.dark *){background-color:#09090df2}.dark\:bg-\[\#0a0a0f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 15 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0a0f\]\/60:is(.dark *){background-color:#0a0a0f99}.dark\:bg-\[\#0a0a10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 10 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0a0d12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(10 13 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b0d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 13 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0b10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 11 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0b111a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 17 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c0e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 14 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0c10\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 12 16 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0e14\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 14 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c0f17\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 15 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c1119\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 17 25 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0c121c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 18 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d0d13\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1017\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1018\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 16 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1117\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d141a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 20 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0d1a12\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 26 18 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0e131b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 19 27 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f11\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 17 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f0f16\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#0f141d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 20 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#10131c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 19 28 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(16 23 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#101722\]\/70:is(.dark *){background-color:#101722b3}.dark\:bg-\[\#111114\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111118\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#111318\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 19 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#11151d\]\/95:is(.dark *){background-color:#11151df2}.dark\:bg-\[\#111820\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121214\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121218\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 24 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#12121a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#121720\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 23 32 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#13131a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#14181f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 31 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141822\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 24 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#141a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#15151a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 26 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#161b24\]\/80:is(.dark *){background-color:#161b24cc}.dark\:bg-\[\#161c26\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 28 38 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#182131\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 33 49 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a22\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1d25\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 29 37 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1f2a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c23\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 35 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c1c24\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1c2030\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1d2633\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(29 38 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2330\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 35 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1e2430\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 36 48 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1f1f29\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 31 41 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#202734\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(32 39 52 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#222\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232833\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 40 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#232933\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 41 51 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a0505\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 5 5 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a303a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 48 58 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2a3140\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(42 49 64 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#2d4b8f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(45 75 143 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4150\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 65 80 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#3a4a5c\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(58 74 92 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-500\/10:is(.dark *){background-color:#f59e0b1a}.dark\:bg-amber-500\/15:is(.dark *){background-color:#f59e0b26}.dark\:bg-amber-900\/10:is(.dark *){background-color:#78350f1a}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-amber-950\/20:is(.dark *){background-color:#451a0333}.dark\:bg-amber-950\/30:is(.dark *){background-color:#451a034d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-black\/60:is(.dark *){background-color:#0009}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-brand-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-brand-500\/15:is(.dark *){background-color:#3b82f626}.dark\:bg-brand-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-brand-500\/\[0\.09\]:is(.dark *){background-color:#3b82f617}.dark\:bg-brand-500\/\[0\.1\]:is(.dark *){background-color:#3b82f61a}.dark\:bg-brand-900\/10:is(.dark *){background-color:#062d661a}.dark\:bg-brand-900\/20:is(.dark *){background-color:#062d6633}.dark\:bg-brand-900\/30:is(.dark *){background-color:#062d664d}.dark\:bg-brand-900\/40:is(.dark *){background-color:#062d6666}.dark\:bg-cyan-900\/40:is(.dark *){background-color:#164e6366}.dark\:bg-cyan-950\/30:is(.dark *){background-color:#0833444d}.dark\:bg-emerald-500\/10:is(.dark *){background-color:#10b9811a}.dark\:bg-emerald-500\/25:is(.dark *){background-color:#10b98140}.dark\:bg-emerald-500\/\[0\.06\]:is(.dark *){background-color:#10b9810f}.dark\:bg-emerald-900\/10:is(.dark *){background-color:#064e3b1a}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#022c2233}.dark\:bg-emerald-950\/30:is(.dark *){background-color:#022c224d}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-green-950\/20:is(.dark *){background-color:#052e1633}.dark\:bg-purple-900\/10:is(.dark *){background-color:#581c871a}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-sky-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-400\/10:is(.dark *){background-color:#38bdf81a}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900\/30:is(.dark *){background-color:#0c4a6e4d}.dark\:bg-slate-500\/10:is(.dark *){background-color:#64748b1a}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-violet-500\/15:is(.dark *){background-color:#8b5cf626}.dark\:bg-violet-900\/30:is(.dark *){background-color:#4c1d954d}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2e106566}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/\[0\.05\]:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:bg-\[linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:linear-gradient(180deg,#030507,#05080c)}.dark\:bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.02\)\,transparent_26\%\)\]:is(.dark *){background-image:linear-gradient(180deg,rgba(255,255,255,.02),transparent 26%)}.dark\:bg-\[radial-gradient\(circle_at_18\%_18\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_78\%_20\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.035\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 18% 18%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 78% 20%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.035),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_20\%_22\%\,_rgba\(56\,189\,248\,0\.05\)\,_transparent_24\%\)\,radial-gradient\(circle_at_74\%_18\%\,_rgba\(59\,130\,246\,0\.04\)\,_transparent_18\%\)\,radial-gradient\(circle_at_50\%_100\%\,_rgba\(14\,165\,233\,0\.03\)\,_transparent_24\%\)\]:is(.dark *){background-image:radial-gradient(circle at 20% 22%,rgba(56,189,248,.05),transparent 24%),radial-gradient(circle at 74% 18%,rgba(59,130,246,.04),transparent 18%),radial-gradient(circle at 50% 100%,rgba(14,165,233,.03),transparent 24%)}.dark\:bg-\[radial-gradient\(circle_at_top_left\,_rgba\(56\,189\,248\,0\.06\)\,_transparent_22\%\)\,linear-gradient\(180deg\,_rgba\(3\,5\,7\,1\)\,_rgba\(5\,8\,12\,1\)\)\]:is(.dark *){background-image:radial-gradient(circle at top left,rgba(56,189,248,.06),transparent 22%),linear-gradient(180deg,#030507,#05080c)}.dark\:from-sky-500\/10:is(.dark *){--tw-gradient-from: rgb(14 165 233 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-\[\#3b82f6\]\/30:is(.dark *){--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(59 130 246 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-violet-500\/10:is(.dark *){--tw-gradient-to: rgb(139 92 246 / .1) var(--tw-gradient-to-position)}.dark\:fill-\[\#9CA3AF\]:is(.dark *){fill:#9ca3af}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-slate-700:is(.dark *){stroke:#334155}.dark\:\!text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(167 178 198 / var(--tw-text-opacity, 1))!important}.dark\:\!text-brand-600:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(12 105 238 / var(--tw-text-opacity, 1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:text-\[\#3a3a44\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 58 68 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4258\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 66 88 / var(--tw-text-opacity, 1))}.dark\:text-\[\#3a4455\]:is(.dark *){--tw-text-opacity: 1;color:rgb(58 68 85 / var(--tw-text-opacity, 1))}.dark\:text-\[\#4b5565\]:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 101 / var(--tw-text-opacity, 1))}.dark\:text-\[\#5c6577\]:is(.dark *){--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d768a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#6d778a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 119 138 / var(--tw-text-opacity, 1))}.dark\:text-\[\#738097\]:is(.dark *){--tw-text-opacity: 1;color:rgb(115 128 151 / var(--tw-text-opacity, 1))}.dark\:text-\[\#77849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(119 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#78849a\]:is(.dark *){--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:text-\[\#798191\]:is(.dark *){--tw-text-opacity: 1;color:rgb(121 129 145 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7b8496\]:is(.dark *){--tw-text-opacity: 1;color:rgb(123 132 150 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7ea4ff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(126 164 255 / var(--tw-text-opacity, 1))}.dark\:text-\[\#7f8ca3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(127 140 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8090a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8290a5\]:is(.dark *){--tw-text-opacity: 1;color:rgb(130 144 165 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a8a93\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a93a6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 147 166 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8a94a7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(138 148 167 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d95a3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 149 163 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96a8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d96aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8d9ab2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(141 154 178 / var(--tw-text-opacity, 1))}.dark\:text-\[\#8f9bb0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(143 155 176 / var(--tw-text-opacity, 1))}.dark\:text-\[\#91a0b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(145 160 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#98a3b8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(152 163 184 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa4b6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 164 182 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa6bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 166 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9aa7bb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(154 167 187 / var(--tw-text-opacity, 1))}.dark\:text-\[\#9ca7ba\]:is(.dark *){--tw-text-opacity: 1;color:rgb(156 167 186 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a1a1aa\]:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a6b0c3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(166 176 195 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a7b2c6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(167 178 198 / var(--tw-text-opacity, 1))}.dark\:text-\[\#a8b4c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(168 180 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#aab5c8\]:is(.dark *){--tw-text-opacity: 1;color:rgb(170 181 200 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b2bdd1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(178 189 209 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b3b3bd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(179 179 189 / var(--tw-text-opacity, 1))}.dark\:text-\[\#b7c2d6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(183 194 214 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c4cfdf\]:is(.dark *){--tw-text-opacity: 1;color:rgb(196 207 223 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c5d0e0\]:is(.dark *){--tw-text-opacity: 1;color:rgb(197 208 224 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c6d0e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(198 208 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cede\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 206 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 219 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c7cfdd\]:is(.dark *){--tw-text-opacity: 1;color:rgb(199 207 221 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d0de\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 208 222 / var(--tw-text-opacity, 1))}.dark\:text-\[\#c8d3e6\]:is(.dark *){--tw-text-opacity: 1;color:rgb(200 211 230 / var(--tw-text-opacity, 1))}.dark\:text-\[\#cbd5e1\]:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d0d7e2\]:is(.dark *){--tw-text-opacity: 1;color:rgb(208 215 226 / var(--tw-text-opacity, 1))}.dark\:text-\[\#d8e1ef\]:is(.dark *){--tw-text-opacity: 1;color:rgb(216 225 239 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5e7eb\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e5ecf7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(229 236 247 / var(--tw-text-opacity, 1))}.dark\:text-\[\#e7ecf3\]:is(.dark *){--tw-text-opacity: 1;color:rgb(231 236 243 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-300\/90:is(.dark *){color:#fcd34de6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-amber-500:is(.dark *){--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-brand-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-brand-500:is(.dark *){--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.dark\:text-cyan-200:is(.dark *){--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is(.dark *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-emerald-500:is(.dark *){--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.dark\:text-slate-950:is(.dark *){--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.dark\:text-teal-300:is(.dark *){--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:opacity-20:is(.dark *){opacity:.2}.dark\:opacity-\[0\.08\]:is(.dark *){opacity:.08}.dark\:shadow-\[0_18px_60px_-42px_rgba\(0\,0\,0\,0\.7\)\]:is(.dark *){--tw-shadow: 0 18px 60px -42px rgba(0,0,0,.7);--tw-shadow-colored: 0 18px 60px -42px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-\[0_24px_70px_-34px_rgba\(0\,0\,0\,0\.72\)\]:is(.dark *){--tw-shadow: 0 24px 70px -34px rgba(0,0,0,.72);--tw-shadow-colored: 0 24px 70px -34px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-\[\#22222c\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(34 34 44 / var(--tw-ring-opacity, 1))}.dark\:ring-\[\#2a2a35\]:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(42 42 53 / var(--tw-ring-opacity, 1))}.dark\:ring-amber-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(146 64 14 / var(--tw-ring-opacity, 1))}.dark\:ring-brand-500\/55:is(.dark *){--tw-ring-color: rgb(59 130 246 / .55)}.dark\:ring-brand-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(7 63 143 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(4 120 87 / var(--tw-ring-opacity, 1))}.dark\:ring-emerald-800:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(6 95 70 / var(--tw-ring-opacity, 1))}.dark\:ring-red-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(185 28 28 / var(--tw-ring-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#555f6e\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(85 95 110 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5b6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(91 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#5c6577\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(92 101 119 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#6e7684\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(110 118 132 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-\[\#78849a\]:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(120 132 154 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::-moz-placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:placeholder\:text-slate-600:is(.dark *)::placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:hover\:border-\[\#2a2a31\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 49 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a2a38\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 42 56 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2a303a\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(42 48 58 / var(--tw-border-opacity, 1))}.dark\:hover\:border-\[\#2e3545\]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(46 53 69 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:hover\:border-brand-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(12 105 238 / var(--tw-border-opacity, 1))}.dark\:hover\:border-rose-900\/50:hover:is(.dark *){border-color:#88133780}.dark\:hover\:\!bg-\[\#1c2330\]:hover:is(.dark *){--tw-bg-opacity: 1 !important;background-color:rgb(28 35 48 / var(--tw-bg-opacity, 1))!important}.dark\:hover\:bg-\[\#0b1017\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(11 16 23 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d13\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 19 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0d0d14\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(13 13 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f16\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 22 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f0f18\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 15 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#0f131b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 19 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111114\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#111118\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 17 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#11151d\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 21 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#121214\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(18 18 20 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13131a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 19 26 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#131720\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 23 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#13192a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 25 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141923\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 25 35 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#141a24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 26 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151518\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 21 24 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#151d2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(21 29 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#161b26\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 27 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181b\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#18181f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 31 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1a22\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 34 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a1f2a\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 31 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2130\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 33 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1a2230\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 34 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c1c24\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 28 36 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#1c2030\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(28 32 48 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#33569f\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 86 159 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-\[\#380808\]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 8 8 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-amber-500\/20:hover:is(.dark *){background-color:#f59e0b33}.dark\:hover\:bg-brand-500\/10:hover:is(.dark *){background-color:#3b82f61a}.dark\:hover\:bg-brand-900\/20:hover:is(.dark *){background-color:#062d6633}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-950\/25:hover:is(.dark *){background-color:#450a0a40}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-rose-500\/10:hover:is(.dark *){background-color:#f43f5e1a}.dark\:hover\:bg-sky-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-200:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:bg-white\/\[0\.035\]:hover:is(.dark *){background-color:#ffffff09}.dark\:hover\:\!text-white:hover:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:hover\:text-\[\#8090a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(128 144 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-\[\#8d96a8\]:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(141 150 168 / var(--tw-text-opacity, 1))}.dark\:hover\:text-amber-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(217 234 255 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:hover\:text-brand-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.dark\:focus\:text-slate-300:focus:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:disabled\:hover\:text-\[\#8a8a93\]:hover:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(138 138 147 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-brand-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:aria-selected\:bg-white\/\[0\.06\][aria-selected=true]:is(.dark *){background-color:#ffffff0f}.dark\:aria-selected\:text-white[aria-selected=true]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:right-6{right:1.5rem}.sm\:top-6{top:1.5rem}.sm\:col-span-3{grid-column:span 3 / span 3}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-11{height:2.75rem}.sm\:h-12{height:3rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:self-stretch{align-self:stretch}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-\[1\.35rem\]{font-size:1.35rem}.sm\:text-\[1\.3rem\]{font-size:1.3rem}.sm\:text-\[1\.75rem\]{font-size:1.75rem}}@media (min-width: 768px){.md\:grid{display:grid}.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-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(260px\,320px\)_32px\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,320px) 32px}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}}@media (min-width: 1024px){.lg\:ml-auto{margin-left:auto}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:max-h-\[360px\]{max-height:360px}.lg\:min-h-0{min-height:0px}.lg\:min-h-screen{min-height:100vh}.lg\:w-full{width:100%}.lg\:flex-1{flex:1 1 0%}.lg\:shrink-0{flex-shrink:0}.lg\:-translate-x-32{--tw-translate-x: -8rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-\[1\.06fr_0\.94fr\]{grid-template-columns:1.06fr .94fr}.lg\:grid-cols-\[1\.08fr_0\.92fr\]{grid-template-columns:1.08fr .92fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.lg\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.lg\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-stretch{align-items:stretch}.lg\:gap-1{gap:.25rem}.lg\:overflow-visible{overflow:visible}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.lg\:px-14{padding-left:3.5rem;padding-right:3.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}.lg\:dark\:border-\[\#1d1d23\]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(29 29 35 / var(--tw-border-opacity, 1))}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-6{top:1.5rem}.xl\:h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.xl\:w-\[24rem\]{width:24rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.xl\:grid-cols-\[1\.3fr_0\.7fr\]{grid-template-columns:1.3fr .7fr}.xl\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(340px\,420px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(360px\,1fr\)_minmax\(0\,1\.618fr\)\]{grid-template-columns:minmax(360px,1fr) minmax(0,1.618fr)}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:border-b-0{border-bottom-width:0px}.xl\:border-r{border-right-width:1px}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:1rem}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:1rem}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:9999px}.\[\&\:\:-moz-range-thumb\]\:border-2::-moz-range-thumb{border-width:2px}.\[\&\:\:-moz-range-thumb\]\:border-solid::-moz-range-thumb{border-style:solid}.\[\&\:\:-moz-range-thumb\]\:border-white::-moz-range-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-moz-range-thumb\]\:bg-\[color\:var\(--thumb\)\]::-moz-range-thumb{background-color:var(--thumb)}.\[\&\:\:-moz-range-thumb\]\:shadow::-moz-range-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:1rem}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:1rem}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\[\&\:\:-webkit-slider-thumb\]\:border-2::-webkit-slider-thumb{border-width:2px}.\[\&\:\:-webkit-slider-thumb\]\:border-white::-webkit-slider-thumb{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:bg-\[color\:var\(--thumb\)\]::-webkit-slider-thumb{background-color:var(--thumb)}.\[\&\:\:-webkit-slider-thumb\]\:shadow::-webkit-slider-thumb{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&\:\:-webkit-slider-thumb\]\:transition-transform::-webkit-slider-thumb{-webkit-transition-property:transform;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\&\:\:-webkit-slider-thumb\]\:hover\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\:\:-webkit-slider-thumb\]\:active\:scale-95:active::-webkit-slider-thumb{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>\*\:last-child\]\:border-b-0>*:last-child{border-bottom-width:0px}@media (min-width: 768px){.md\:\[\&\>\*\:nth-last-child\(-n\+2\)\]\:border-b-0>*:nth-last-child(-n+2){border-bottom-width:0px}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:pb-1 [cmdk-group-heading]{padding-bottom:.25rem}.\[\&_\[cmdk-group-heading\]\]\:pt-3 [cmdk-group-heading]{padding-top:.75rem}.\[\&_\[cmdk-group-heading\]\]\:text-\[11px\] [cmdk-group-heading]{font-size:11px}.\[\&_\[cmdk-group-heading\]\]\:font-bold [cmdk-group-heading]{font-weight:700}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_\[cmdk-group-heading\]\]\:tracking-widest [cmdk-group-heading]{letter-spacing:.1em}.\[\&_\[cmdk-group-heading\]\]\:text-slate-400 [cmdk-group-heading]{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:\[\&_\[cmdk-group-heading\]\]\:text-\[\#6d768a\] [cmdk-group-heading]:is(.dark *){--tw-text-opacity: 1;color:rgb(109 118 138 / var(--tw-text-opacity, 1))} diff --git a/website/dist/decision-engine/assets/index-DhvtsSzy.js b/website/dist/decision-engine/assets/index-DhvtsSzy.js deleted file mode 100644 index 055e37ce..00000000 --- a/website/dist/decision-engine/assets/index-DhvtsSzy.js +++ /dev/null @@ -1,641 +0,0 @@ -var eJ=Object.defineProperty;var tJ=(t,e,n)=>e in t?eJ(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var dR=(t,e,n)=>tJ(t,typeof e!="symbol"?e+"":e,n);function nJ(t,e){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var dv=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Nn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pB={exports:{}},Ck={},mB={exports:{}},Ft={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var dy=Symbol.for("react.element"),rJ=Symbol.for("react.portal"),aJ=Symbol.for("react.fragment"),sJ=Symbol.for("react.strict_mode"),iJ=Symbol.for("react.profiler"),oJ=Symbol.for("react.provider"),lJ=Symbol.for("react.context"),cJ=Symbol.for("react.forward_ref"),uJ=Symbol.for("react.suspense"),dJ=Symbol.for("react.memo"),fJ=Symbol.for("react.lazy"),fR=Symbol.iterator;function hJ(t){return t===null||typeof t!="object"?null:(t=fR&&t[fR]||t["@@iterator"],typeof t=="function"?t:null)}var gB={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xB=Object.assign,yB={};function tm(t,e,n){this.props=t,this.context=e,this.refs=yB,this.updater=n||gB}tm.prototype.isReactComponent={};tm.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};tm.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function vB(){}vB.prototype=tm.prototype;function BO(t,e,n){this.props=t,this.context=e,this.refs=yB,this.updater=n||gB}var zO=BO.prototype=new vB;zO.constructor=BO;xB(zO,tm.prototype);zO.isPureReactComponent=!0;var hR=Array.isArray,bB=Object.prototype.hasOwnProperty,UO={current:null},wB={key:!0,ref:!0,__self:!0,__source:!0};function kB(t,e,n){var r,a={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)bB.call(e,r)&&!wB.hasOwnProperty(r)&&(a[r]=e[r]);var l=arguments.length-2;if(l===1)a.children=n;else if(1>>1,I=U[G];if(0>>1;Ga(B,W))za(Z,B)?(U[G]=Z,U[z]=W,G=z):(U[G]=B,U[M]=W,G=M);else if(za(Z,W))U[G]=Z,U[z]=W,G=z;else break e}}return Y}function a(U,Y){var W=U.sortIndex-Y.sortIndex;return W!==0?W:U.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,m=!1,x=!1,v=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(U){for(var Y=n(u);Y!==null;){if(Y.callback===null)r(u);else if(Y.startTime<=U)r(u),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=n(u)}}function j(U){if(x=!1,w(U),!m)if(n(c)!==null)m=!0,X(k);else{var Y=n(u);Y!==null&&J(j,Y.startTime-U)}}function k(U,Y){m=!1,x&&(x=!1,b(C),C=-1),p=!0;var W=h;try{for(w(Y),f=n(c);f!==null&&(!(f.expirationTime>Y)||U&&!R());){var G=f.callback;if(typeof G=="function"){f.callback=null,h=f.priorityLevel;var I=G(f.expirationTime<=Y);Y=t.unstable_now(),typeof I=="function"?f.callback=I:f===n(c)&&r(c),w(Y)}else r(c);f=n(c)}if(f!==null)var q=!0;else{var M=n(u);M!==null&&J(j,M.startTime-Y),q=!1}return q}finally{f=null,h=W,p=!1}}var S=!1,_=null,C=-1,E=5,P=-1;function R(){return!(t.unstable_now()-PU||125G?(U.sortIndex=W,e(u,U),n(c)===null&&U===n(u)&&(x?(b(C),C=-1):x=!0,J(j,W-G))):(U.sortIndex=I,e(c,U),m||p||(m=!0,X(k))),U},t.unstable_shouldYield=R,t.unstable_wrapCallback=function(U){var Y=h;return function(){var W=h;h=Y;try{return U.apply(this,arguments)}finally{h=W}}}})(CB);NB.exports=CB;var SJ=NB.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var _J=g,mi=SJ;function De(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wN=Object.prototype.hasOwnProperty,NJ=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,mR={},gR={};function CJ(t){return wN.call(gR,t)?!0:wN.call(mR,t)?!1:NJ.test(t)?gR[t]=!0:(mR[t]=!0,!1)}function EJ(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function AJ(t,e,n,r){if(e===null||typeof e>"u"||EJ(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function _s(t,e,n,r,a,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Fa={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Fa[t]=new _s(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Fa[e]=new _s(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Fa[t]=new _s(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Fa[t]=new _s(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Fa[t]=new _s(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Fa[t]=new _s(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Fa[t]=new _s(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Fa[t]=new _s(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Fa[t]=new _s(t,5,!1,t.toLowerCase(),null,!1,!1)});var WO=/[\-:]([a-z])/g;function HO(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(WO,HO);Fa[e]=new _s(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Fa[t]=new _s(t,1,!1,t.toLowerCase(),null,!1,!1)});Fa.xlinkHref=new _s("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Fa[t]=new _s(t,1,!1,t.toLowerCase(),null,!0,!0)});function GO(t,e,n,r){var a=Fa.hasOwnProperty(e)?Fa[e]:null;(a!==null?a.type!==0:r||!(2l||a[o]!==s[l]){var c=` -`+a[o].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=o&&0<=l);break}}}finally{_2=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?Mg(t):""}function OJ(t){switch(t.tag){case 5:return Mg(t.type);case 16:return Mg("Lazy");case 13:return Mg("Suspense");case 19:return Mg("SuspenseList");case 0:case 2:case 15:return t=N2(t.type,!1),t;case 11:return t=N2(t.type.render,!1),t;case 1:return t=N2(t.type,!0),t;default:return""}}function _N(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ch:return"Fragment";case lh:return"Portal";case kN:return"Profiler";case qO:return"StrictMode";case jN:return"Suspense";case SN:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case OB:return(t.displayName||"Context")+".Consumer";case AB:return(t._context.displayName||"Context")+".Provider";case KO:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case YO:return e=t.displayName||null,e!==null?e:_N(t.type)||"Memo";case Rc:e=t._payload,t=t._init;try{return _N(t(e))}catch{}}return null}function TJ(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _N(e);case 8:return e===qO?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function bu(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function PB(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function PJ(t){var e=PB(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function pv(t){t._valueTracker||(t._valueTracker=PJ(t))}function RB(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=PB(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function f1(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function NN(t,e){var n=e.checked;return mr({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function yR(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=bu(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function MB(t,e){e=e.checked,e!=null&&GO(t,"checked",e,!1)}function CN(t,e){MB(t,e);var n=bu(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?EN(t,e.type,n):e.hasOwnProperty("defaultValue")&&EN(t,e.type,bu(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function vR(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function EN(t,e,n){(e!=="number"||f1(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var Dg=Array.isArray;function Ph(t,e,n,r){if(t=t.options,e){e={};for(var a=0;a"+e.valueOf().toString()+"",e=mv.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Dx(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var rx={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},RJ=["Webkit","ms","Moz","O"];Object.keys(rx).forEach(function(t){RJ.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),rx[e]=rx[t]})});function LB(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||rx.hasOwnProperty(t)&&rx[t]?(""+e).trim():e+"px"}function FB(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=LB(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,a):t[n]=a}}var MJ=mr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function TN(t,e){if(e){if(MJ[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(De(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(De(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(De(61))}if(e.style!=null&&typeof e.style!="object")throw Error(De(62))}}function PN(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var RN=null;function XO(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var MN=null,Rh=null,Mh=null;function kR(t){if(t=py(t)){if(typeof MN!="function")throw Error(De(280));var e=t.stateNode;e&&(e=Pk(e),MN(t.stateNode,t.type,e))}}function BB(t){Rh?Mh?Mh.push(t):Mh=[t]:Rh=t}function zB(){if(Rh){var t=Rh,e=Mh;if(Mh=Rh=null,kR(t),e)for(t=0;t>>=0,t===0?32:31-(HJ(t)/GJ|0)|0}var gv=64,xv=4194304;function Ig(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function g1(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,a=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~a;l!==0?r=Ig(l):(s&=o,s!==0&&(r=Ig(s)))}else o=n&~a,o!==0?r=Ig(o):s!==0&&(r=Ig(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&a)&&(a=r&-r,s=e&-e,a>=s||a===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function fy(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-bo(e),t[e]=n}function XJ(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=sx),TR=" ",PR=!1;function o9(t,e){switch(t){case"keyup":return SZ.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function l9(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var uh=!1;function NZ(t,e){switch(t){case"compositionend":return l9(e);case"keypress":return e.which!==32?null:(PR=!0,TR);case"textInput":return t=e.data,t===TR&&PR?null:t;default:return null}}function CZ(t,e){if(uh)return t==="compositionend"||!a5&&o9(t,e)?(t=s9(),Bb=t5=Gc=null,uh=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=IR(n)}}function f9(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?f9(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function h9(){for(var t=window,e=f1();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=f1(t.document)}return e}function s5(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function IZ(t){var e=h9(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&f9(n.ownerDocument.documentElement,n)){if(r!==null&&s5(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var a=n.textContent.length,s=Math.min(r.start,a);r=r.end===void 0?s:Math.min(r.end,a),!t.extend&&s>r&&(a=r,r=s,s=a),a=$R(n,s);var o=$R(n,r);a&&o&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(a.node,a.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,dh=null,BN=null,ox=null,zN=!1;function LR(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;zN||dh==null||dh!==f1(r)||(r=dh,"selectionStart"in r&&s5(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ox&&zx(ox,r)||(ox=r,r=v1(BN,"onSelect"),0ph||(t.current=qN[ph],qN[ph]=null,ph--)}function Bn(t,e){ph++,qN[ph]=t.current,t.current=e}var wu={},es=$u(wu),zs=$u(!1),Wd=wu;function rp(t,e){var n=t.type.contextTypes;if(!n)return wu;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var a={},s;for(s in n)a[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=a),a}function Us(t){return t=t.childContextTypes,t!=null}function w1(){Zn(zs),Zn(es)}function HR(t,e,n){if(es.current!==wu)throw Error(De(168));Bn(es,e),Bn(zs,n)}function k9(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in e))throw Error(De(108,TJ(t)||"Unknown",a));return mr({},n,r)}function k1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||wu,Wd=es.current,Bn(es,t),Bn(zs,zs.current),!0}function GR(t,e,n){var r=t.stateNode;if(!r)throw Error(De(169));n?(t=k9(t,e,Wd),r.__reactInternalMemoizedMergedChildContext=t,Zn(zs),Zn(es),Bn(es,t)):Zn(zs),Bn(zs,n)}var Fl=null,Rk=!1,B2=!1;function j9(t){Fl===null?Fl=[t]:Fl.push(t)}function KZ(t){Rk=!0,j9(t)}function Lu(){if(!B2&&Fl!==null){B2=!0;var t=0,e=bn;try{var n=Fl;for(bn=1;t>=o,a-=o,Ul=1<<32-bo(e)+a|n<C?(E=_,_=null):E=_.sibling;var P=h(b,_,w[C],j);if(P===null){_===null&&(_=E);break}t&&_&&P.alternate===null&&e(b,_),y=s(P,y,C),S===null?k=P:S.sibling=P,S=P,_=E}if(C===w.length)return n(b,_),rr&&id(b,C),k;if(_===null){for(;CC?(E=_,_=null):E=_.sibling;var R=h(b,_,P.value,j);if(R===null){_===null&&(_=E);break}t&&_&&R.alternate===null&&e(b,_),y=s(R,y,C),S===null?k=R:S.sibling=R,S=R,_=E}if(P.done)return n(b,_),rr&&id(b,C),k;if(_===null){for(;!P.done;C++,P=w.next())P=f(b,P.value,j),P!==null&&(y=s(P,y,C),S===null?k=P:S.sibling=P,S=P);return rr&&id(b,C),k}for(_=r(b,_);!P.done;C++,P=w.next())P=p(_,b,C,P.value,j),P!==null&&(t&&P.alternate!==null&&_.delete(P.key===null?C:P.key),y=s(P,y,C),S===null?k=P:S.sibling=P,S=P);return t&&_.forEach(function(A){return e(b,A)}),rr&&id(b,C),k}function v(b,y,w,j){if(typeof w=="object"&&w!==null&&w.type===ch&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case hv:e:{for(var k=w.key,S=y;S!==null;){if(S.key===k){if(k=w.type,k===ch){if(S.tag===7){n(b,S.sibling),y=a(S,w.props.children),y.return=b,b=y;break e}}else if(S.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Rc&&YR(k)===S.type){n(b,S.sibling),y=a(S,w.props),y.ref=ng(b,S,w),y.return=b,b=y;break e}n(b,S);break}else e(b,S);S=S.sibling}w.type===ch?(y=Md(w.props.children,b.mode,j,w.key),y.return=b,b=y):(j=Kb(w.type,w.key,w.props,null,b.mode,j),j.ref=ng(b,y,w),j.return=b,b=j)}return o(b);case lh:e:{for(S=w.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===w.containerInfo&&y.stateNode.implementation===w.implementation){n(b,y.sibling),y=a(y,w.children||[]),y.return=b,b=y;break e}else{n(b,y);break}else e(b,y);y=y.sibling}y=K2(w,b.mode,j),y.return=b,b=y}return o(b);case Rc:return S=w._init,v(b,y,S(w._payload),j)}if(Dg(w))return m(b,y,w,j);if(Jm(w))return x(b,y,w,j);Sv(b,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,y!==null&&y.tag===6?(n(b,y.sibling),y=a(y,w),y.return=b,b=y):(n(b,y),y=q2(w,b.mode,j),y.return=b,b=y),o(b)):n(b,y)}return v}var sp=C9(!0),E9=C9(!1),_1=$u(null),N1=null,xh=null,c5=null;function u5(){c5=xh=N1=null}function d5(t){var e=_1.current;Zn(_1),t._currentValue=e}function XN(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Ih(t,e){N1=t,c5=xh=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(Ds=!0),t.firstContext=null)}function zi(t){var e=t._currentValue;if(c5!==t)if(t={context:t,memoizedValue:e,next:null},xh===null){if(N1===null)throw Error(De(308));xh=t,N1.dependencies={lanes:0,firstContext:t}}else xh=xh.next=t;return e}var xd=null;function f5(t){xd===null?xd=[t]:xd.push(t)}function A9(t,e,n,r){var a=e.interleaved;return a===null?(n.next=n,f5(e)):(n.next=a.next,a.next=n),e.interleaved=n,ic(t,r)}function ic(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Mc=!1;function h5(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function O9(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Xl(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function du(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,tn&2){var a=r.pending;return a===null?e.next=e:(e.next=a.next,a.next=e),r.pending=e,ic(t,n)}return a=r.interleaved,a===null?(e.next=e,f5(r)):(e.next=a.next,a.next=e),r.interleaved=e,ic(t,n)}function Ub(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,ZO(t,n)}}function XR(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?a=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?a=s=e:s=s.next=e}else a=s=e;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function C1(t,e,n,r){var a=t.updateQueue;Mc=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?s=u:o.next=u,o=c;var d=t.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(s!==null){var f=a.baseState;o=0,d=u=c=null,l=s;do{var h=l.lane,p=l.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,x=l;switch(h=e,p=n,x.tag){case 1:if(m=x.payload,typeof m=="function"){f=m.call(p,f,h);break e}f=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=x.payload,h=typeof m=="function"?m.call(p,f,h):m,h==null)break e;f=mr({},f,h);break e;case 2:Mc=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,h=a.effects,h===null?a.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=p,c=f):d=d.next=p,o|=h;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;h=l,l=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);if(d===null&&(c=f),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,e=a.shared.interleaved,e!==null){a=e;do o|=a.lane,a=a.next;while(a!==e)}else s===null&&(a.shared.lanes=0);qd|=o,t.lanes=o,t.memoizedState=f}}function JR(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=U2.transition;U2.transition={};try{t(!1),e()}finally{bn=n,U2.transition=r}}function q9(){return Ui().memoizedState}function ZZ(t,e,n){var r=hu(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},K9(t))Y9(e,n);else if(n=A9(t,e,n,r),n!==null){var a=ws();wo(n,t,r,a),X9(n,e,r)}}function QZ(t,e,n){var r=hu(t),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(K9(t))Y9(e,a);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(a.hasEagerState=!0,a.eagerState=l,ko(l,o)){var c=e.interleaved;c===null?(a.next=a,f5(e)):(a.next=c.next,c.next=a),e.interleaved=a;return}}catch{}finally{}n=A9(t,e,a,r),n!==null&&(a=ws(),wo(n,t,r,a),X9(n,e,r))}}function K9(t){var e=t.alternate;return t===pr||e!==null&&e===pr}function Y9(t,e){lx=A1=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function X9(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,ZO(t,n)}}var O1={readContext:zi,useCallback:Va,useContext:Va,useEffect:Va,useImperativeHandle:Va,useInsertionEffect:Va,useLayoutEffect:Va,useMemo:Va,useReducer:Va,useRef:Va,useState:Va,useDebugValue:Va,useDeferredValue:Va,useTransition:Va,useMutableSource:Va,useSyncExternalStore:Va,useId:Va,unstable_isNewReconciler:!1},eQ={readContext:zi,useCallback:function(t,e){return Ho().memoizedState=[t,e===void 0?null:e],t},useContext:zi,useEffect:QR,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,Wb(4194308,4,U9.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Wb(4194308,4,t,e)},useInsertionEffect:function(t,e){return Wb(4,2,t,e)},useMemo:function(t,e){var n=Ho();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=Ho();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=ZZ.bind(null,pr,t),[r.memoizedState,t]},useRef:function(t){var e=Ho();return t={current:t},e.memoizedState=t},useState:ZR,useDebugValue:w5,useDeferredValue:function(t){return Ho().memoizedState=t},useTransition:function(){var t=ZR(!1),e=t[0];return t=JZ.bind(null,t[1]),Ho().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=pr,a=Ho();if(rr){if(n===void 0)throw Error(De(407));n=n()}else{if(n=e(),wa===null)throw Error(De(349));Gd&30||M9(r,e,n)}a.memoizedState=n;var s={value:n,getSnapshot:e};return a.queue=s,QR(I9.bind(null,r,s,t),[t]),r.flags|=2048,Yx(9,D9.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=Ho(),e=wa.identifierPrefix;if(rr){var n=Vl,r=Ul;n=(r&~(1<<32-bo(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=qx++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[Yo]=e,t[Wx]=r,iz(t,e,!1,!1),e.stateNode=t;e:{switch(o=PN(n,r),n){case"dialog":Kn("cancel",t),Kn("close",t),a=r;break;case"iframe":case"object":case"embed":Kn("load",t),a=r;break;case"video":case"audio":for(a=0;a<$g.length;a++)Kn($g[a],t);a=r;break;case"source":Kn("error",t),a=r;break;case"img":case"image":case"link":Kn("error",t),Kn("load",t),a=r;break;case"details":Kn("toggle",t),a=r;break;case"input":yR(t,r),a=NN(t,r),Kn("invalid",t);break;case"option":a=r;break;case"select":t._wrapperState={wasMultiple:!!r.multiple},a=mr({},r,{value:void 0}),Kn("invalid",t);break;case"textarea":bR(t,r),a=AN(t,r),Kn("invalid",t);break;default:a=r}TN(n,a),l=a;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?FB(t,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&$B(t,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Dx(t,c):typeof c=="number"&&Dx(t,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(Mx.hasOwnProperty(s)?c!=null&&s==="onScroll"&&Kn("scroll",t):c!=null&&GO(t,s,c,o))}switch(n){case"input":pv(t),vR(t,r,!1);break;case"textarea":pv(t),wR(t);break;case"option":r.value!=null&&t.setAttribute("value",""+bu(r.value));break;case"select":t.multiple=!!r.multiple,s=r.value,s!=null?Ph(t,!!r.multiple,s,!1):r.defaultValue!=null&&Ph(t,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(t.onclick=b1)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(e.flags|=4)}e.ref!==null&&(e.flags|=512,e.flags|=2097152)}return Wa(e),null;case 6:if(t&&e.stateNode!=null)lz(t,e,t.memoizedProps,r);else{if(typeof r!="string"&&e.stateNode===null)throw Error(De(166));if(n=yd(Gx.current),yd(cl.current),jv(e)){if(r=e.stateNode,n=e.memoizedProps,r[Yo]=e,(s=r.nodeValue!==n)&&(t=hi,t!==null))switch(t.tag){case 3:kv(r.nodeValue,n,(t.mode&1)!==0);break;case 5:t.memoizedProps.suppressHydrationWarning!==!0&&kv(r.nodeValue,n,(t.mode&1)!==0)}s&&(e.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Yo]=e,e.stateNode=r}return Wa(e),null;case 13:if(Zn(fr),r=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(rr&&di!==null&&e.mode&1&&!(e.flags&128))N9(),ap(),e.flags|=98560,s=!1;else if(s=jv(e),r!==null&&r.dehydrated!==null){if(t===null){if(!s)throw Error(De(318));if(s=e.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(De(317));s[Yo]=e}else ap(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;Wa(e),s=!1}else fo!==null&&(fC(fo),fo=null),s=!0;if(!s)return e.flags&65536?e:null}return e.flags&128?(e.lanes=n,e):(r=r!==null,r!==(t!==null&&t.memoizedState!==null)&&r&&(e.child.flags|=8192,e.mode&1&&(t===null||fr.current&1?Qr===0&&(Qr=3):E5())),e.updateQueue!==null&&(e.flags|=4),Wa(e),null);case 4:return ip(),aC(t,e),t===null&&Ux(e.stateNode.containerInfo),Wa(e),null;case 10:return d5(e.type._context),Wa(e),null;case 17:return Us(e.type)&&w1(),Wa(e),null;case 19:if(Zn(fr),s=e.memoizedState,s===null)return Wa(e),null;if(r=(e.flags&128)!==0,o=s.rendering,o===null)if(r)rg(s,!1);else{if(Qr!==0||t!==null&&t.flags&128)for(t=e.child;t!==null;){if(o=E1(t),o!==null){for(e.flags|=128,rg(s,!1),r=o.updateQueue,r!==null&&(e.updateQueue=r,e.flags|=4),e.subtreeFlags=0,r=n,n=e.child;n!==null;)s=n,t=r,s.flags&=14680066,o=s.alternate,o===null?(s.childLanes=0,s.lanes=t,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,s.type=o.type,t=o.dependencies,s.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),n=n.sibling;return Bn(fr,fr.current&1|2),e.child}t=t.sibling}s.tail!==null&&Rr()>lp&&(e.flags|=128,r=!0,rg(s,!1),e.lanes=4194304)}else{if(!r)if(t=E1(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),rg(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!rr)return Wa(e),null}else 2*Rr()-s.renderingStartTime>lp&&n!==1073741824&&(e.flags|=128,r=!0,rg(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Rr(),e.sibling=null,n=fr.current,Bn(fr,r?n&1|2:n&1),e):(Wa(e),null);case 22:case 23:return C5(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ii&1073741824&&(Wa(e),e.subtreeFlags&6&&(e.flags|=8192)):Wa(e),null;case 24:return null;case 25:return null}throw Error(De(156,e.tag))}function lQ(t,e){switch(o5(e),e.tag){case 1:return Us(e.type)&&w1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return ip(),Zn(zs),Zn(es),g5(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return m5(e),null;case 13:if(Zn(fr),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(De(340));ap()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Zn(fr),null;case 4:return ip(),null;case 10:return d5(e.type._context),null;case 22:case 23:return C5(),null;case 24:return null;default:return null}}var Nv=!1,Ka=!1,cQ=typeof WeakSet=="function"?WeakSet:Set,et=null;function yh(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){br(t,e,r)}else n.current=null}function sC(t,e,n){try{n()}catch(r){br(t,e,r)}}var uM=!1;function uQ(t,e){if(UN=x1,t=h9(),s5(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=t,h=null;t:for(;;){for(var p;f!==n||a!==0&&f.nodeType!==3||(l=o+a),f!==s||r!==0&&f.nodeType!==3||(c=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===t)break t;if(h===n&&++u===a&&(l=o),h===s&&++d===r&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(VN={focusedElem:t,selectionRange:n},x1=!1,et=e;et!==null;)if(e=et,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,et=t;else for(;et!==null;){e=et;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var x=m.memoizedProps,v=m.memoizedState,b=e.stateNode,y=b.getSnapshotBeforeUpdate(e.elementType===e.type?x:oo(e.type,x),v);b.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=e.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(De(163))}}catch(j){br(e,e.return,j)}if(t=e.sibling,t!==null){t.return=e.return,et=t;break}et=e.return}return m=uM,uM=!1,m}function cx(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&t)===t){var s=a.destroy;a.destroy=void 0,s!==void 0&&sC(e,n,s)}a=a.next}while(a!==r)}}function Ik(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function iC(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function cz(t){var e=t.alternate;e!==null&&(t.alternate=null,cz(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Yo],delete e[Wx],delete e[GN],delete e[GZ],delete e[qZ])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function uz(t){return t.tag===5||t.tag===3||t.tag===4}function dM(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||uz(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function oC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=b1));else if(r!==4&&(t=t.child,t!==null))for(oC(t,e,n),t=t.sibling;t!==null;)oC(t,e,n),t=t.sibling}function lC(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(lC(t,e,n),t=t.sibling;t!==null;)lC(t,e,n),t=t.sibling}var Pa=null,lo=!1;function Oc(t,e,n){for(n=n.child;n!==null;)dz(t,e,n),n=n.sibling}function dz(t,e,n){if(ll&&typeof ll.onCommitFiberUnmount=="function")try{ll.onCommitFiberUnmount(Ek,n)}catch{}switch(n.tag){case 5:Ka||yh(n,e);case 6:var r=Pa,a=lo;Pa=null,Oc(t,e,n),Pa=r,lo=a,Pa!==null&&(lo?(t=Pa,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Pa.removeChild(n.stateNode));break;case 18:Pa!==null&&(lo?(t=Pa,n=n.stateNode,t.nodeType===8?F2(t.parentNode,n):t.nodeType===1&&F2(t,n),Fx(t)):F2(Pa,n.stateNode));break;case 4:r=Pa,a=lo,Pa=n.stateNode.containerInfo,lo=!0,Oc(t,e,n),Pa=r,lo=a;break;case 0:case 11:case 14:case 15:if(!Ka&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var s=a,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&sC(n,e,o),a=a.next}while(a!==r)}Oc(t,e,n);break;case 1:if(!Ka&&(yh(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){br(n,e,l)}Oc(t,e,n);break;case 21:Oc(t,e,n);break;case 22:n.mode&1?(Ka=(r=Ka)||n.memoizedState!==null,Oc(t,e,n),Ka=r):Oc(t,e,n);break;default:Oc(t,e,n)}}function fM(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new cQ),e.forEach(function(r){var a=vQ.bind(null,t,r);n.has(r)||(n.add(r),r.then(a,a))})}}function no(t,e){var n=e.deletions;if(n!==null)for(var r=0;ra&&(a=o),r&=~s}if(r=a,r=Rr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*fQ(r/1960))-r,10t?16:t,qc===null)var r=!1;else{if(t=qc,qc=null,R1=0,tn&6)throw Error(De(331));var a=tn;for(tn|=4,et=t.current;et!==null;){var s=et,o=s.child;if(et.flags&16){var l=s.deletions;if(l!==null){for(var c=0;cRr()-_5?Rd(t,0):S5|=n),Vs(t,e)}function vz(t,e){e===0&&(t.mode&1?(e=xv,xv<<=1,!(xv&130023424)&&(xv=4194304)):e=1);var n=ws();t=ic(t,e),t!==null&&(fy(t,e,n),Vs(t,n))}function yQ(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),vz(t,n)}function vQ(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,a=t.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(De(314))}r!==null&&r.delete(e),vz(t,n)}var bz;bz=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||zs.current)Ds=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return Ds=!1,iQ(t,e,n);Ds=!!(t.flags&131072)}else Ds=!1,rr&&e.flags&1048576&&S9(e,S1,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;Hb(t,e),t=e.pendingProps;var a=rp(e,es.current);Ih(e,n),a=y5(null,e,r,t,a,n);var s=v5();return e.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Us(r)?(s=!0,k1(e)):s=!1,e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,h5(e),a.updater=Dk,e.stateNode=a,a._reactInternals=e,ZN(e,r,t,n),e=tC(null,e,r,!0,s,n)):(e.tag=0,rr&&s&&i5(e),ds(null,e,a,n),e=e.child),e;case 16:r=e.elementType;e:{switch(Hb(t,e),t=e.pendingProps,a=r._init,r=a(r._payload),e.type=r,a=e.tag=wQ(r),t=oo(r,t),a){case 0:e=eC(null,e,r,t,n);break e;case 1:e=oM(null,e,r,t,n);break e;case 11:e=sM(null,e,r,t,n);break e;case 14:e=iM(null,e,r,oo(r.type,t),n);break e}throw Error(De(306,r,""))}return e;case 0:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),eC(t,e,r,a,n);case 1:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),oM(t,e,r,a,n);case 3:e:{if(rz(e),t===null)throw Error(De(387));r=e.pendingProps,s=e.memoizedState,a=s.element,O9(t,e),C1(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){a=op(Error(De(423)),e),e=lM(t,e,r,n,a);break e}else if(r!==a){a=op(Error(De(424)),e),e=lM(t,e,r,n,a);break e}else for(di=uu(e.stateNode.containerInfo.firstChild),hi=e,rr=!0,fo=null,n=E9(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ap(),r===a){e=oc(t,e,n);break e}ds(t,e,r,n)}e=e.child}return e;case 5:return T9(e),t===null&&YN(e),r=e.type,a=e.pendingProps,s=t!==null?t.memoizedProps:null,o=a.children,WN(r,a)?o=null:s!==null&&WN(r,s)&&(e.flags|=32),nz(t,e),ds(t,e,o,n),e.child;case 6:return t===null&&YN(e),null;case 13:return az(t,e,n);case 4:return p5(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=sp(e,null,r,n):ds(t,e,r,n),e.child;case 11:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),sM(t,e,r,a,n);case 7:return ds(t,e,e.pendingProps,n),e.child;case 8:return ds(t,e,e.pendingProps.children,n),e.child;case 12:return ds(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,a=e.pendingProps,s=e.memoizedProps,o=a.value,Bn(_1,r._currentValue),r._currentValue=o,s!==null)if(ko(s.value,o)){if(s.children===a.children&&!zs.current){e=oc(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=Xl(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),XN(s.return,n,e),l.lanes|=n;break}c=c.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(De(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),XN(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ds(t,e,a.children,n),e=e.child}return e;case 9:return a=e.type,r=e.pendingProps.children,Ih(e,n),a=zi(a),r=r(a),e.flags|=1,ds(t,e,r,n),e.child;case 14:return r=e.type,a=oo(r,e.pendingProps),a=oo(r.type,a),iM(t,e,r,a,n);case 15:return ez(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,a=e.pendingProps,a=e.elementType===r?a:oo(r,a),Hb(t,e),e.tag=1,Us(r)?(t=!0,k1(e)):t=!1,Ih(e,n),J9(e,r,a),ZN(e,r,a,n),tC(null,e,r,!0,t,n);case 19:return sz(t,e,n);case 22:return tz(t,e,n)}throw Error(De(156,e.tag))};function wz(t,e){return KB(t,e)}function bQ(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ri(t,e,n,r){return new bQ(t,e,n,r)}function A5(t){return t=t.prototype,!(!t||!t.isReactComponent)}function wQ(t){if(typeof t=="function")return A5(t)?1:0;if(t!=null){if(t=t.$$typeof,t===KO)return 11;if(t===YO)return 14}return 2}function pu(t,e){var n=t.alternate;return n===null?(n=Ri(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function Kb(t,e,n,r,a,s){var o=2;if(r=t,typeof t=="function")A5(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case ch:return Md(n.children,a,s,e);case qO:o=8,a|=8;break;case kN:return t=Ri(12,n,e,a|2),t.elementType=kN,t.lanes=s,t;case jN:return t=Ri(13,n,e,a),t.elementType=jN,t.lanes=s,t;case SN:return t=Ri(19,n,e,a),t.elementType=SN,t.lanes=s,t;case TB:return Lk(n,a,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case AB:o=10;break e;case OB:o=9;break e;case KO:o=11;break e;case YO:o=14;break e;case Rc:o=16,r=null;break e}throw Error(De(130,t==null?t:typeof t,""))}return e=Ri(o,n,e,a),e.elementType=t,e.type=r,e.lanes=s,e}function Md(t,e,n,r){return t=Ri(7,t,r,e),t.lanes=n,t}function Lk(t,e,n,r){return t=Ri(22,t,r,e),t.elementType=TB,t.lanes=n,t.stateNode={isHidden:!1},t}function q2(t,e,n){return t=Ri(6,t,null,e),t.lanes=n,t}function K2(t,e,n){return e=Ri(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function kQ(t,e,n,r,a){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=E2(0),this.expirationTimes=E2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=E2(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function O5(t,e,n,r,a,s,o,l,c){return t=new kQ(t,e,n,l,c),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Ri(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},h5(s),t}function jQ(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_z)}catch(t){console.error(t)}}_z(),_B.exports=yi;var gs=_B.exports,bM=gs;bN.createRoot=bM.createRoot,bN.hydrateRoot=bM.hydrateRoot;/** - * @remix-run/router v1.23.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Jx(){return Jx=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function M5(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function AQ(){return Math.random().toString(36).substr(2,8)}function kM(t,e){return{usr:t.state,key:t.key,idx:e}}function hC(t,e,n,r){return n===void 0&&(n=null),Jx({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?sm(e):e,{state:n,key:e&&e.key||r||AQ()})}function I1(t){let{pathname:e="/",search:n="",hash:r=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function sm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function OQ(t,e,n,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:s=!1}=r,o=a.history,l=Kc.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(Jx({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function f(){l=Kc.Pop;let v=d(),b=v==null?null:v-u;u=v,c&&c({action:l,location:x.location,delta:b})}function h(v,b){l=Kc.Push;let y=hC(x.location,v,b);u=d()+1;let w=kM(y,u),j=x.createHref(y);try{o.pushState(w,"",j)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;a.location.assign(j)}s&&c&&c({action:l,location:x.location,delta:1})}function p(v,b){l=Kc.Replace;let y=hC(x.location,v,b);u=d();let w=kM(y,u),j=x.createHref(y);o.replaceState(w,"",j),s&&c&&c({action:l,location:x.location,delta:0})}function m(v){let b=a.location.origin!=="null"?a.location.origin:a.location.href,y=typeof v=="string"?v:I1(v);return y=y.replace(/ $/,"%20"),Ir(b,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,b)}let x={get action(){return l},get location(){return t(a,o)},listen(v){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(wM,f),c=v,()=>{a.removeEventListener(wM,f),c=null}},createHref(v){return e(a,v)},createURL:m,encodeLocation(v){let b=m(v);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:p,go(v){return o.go(v)}};return x}var jM;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(jM||(jM={}));function TQ(t,e,n){return n===void 0&&(n="/"),PQ(t,e,n)}function PQ(t,e,n,r){let a=typeof e=="string"?sm(e):e,s=D5(a.pathname||"/",n);if(s==null)return null;let o=Nz(t);RQ(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};c.relativePath.startsWith("/")&&(Ir(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=mu([r,c.relativePath]),d=n.concat(c);s.children&&s.children.length>0&&(Ir(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Nz(s.children,e,d,u)),!(s.path==null&&!s.index)&&e.push({path:u,score:BQ(u,s.index),routesMeta:d})};return t.forEach((s,o)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))a(s,o);else for(let c of Cz(s.path))a(s,o,c)}),e}function Cz(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,a=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return a?[s,""]:[s];let o=Cz(r.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),a&&l.push(...o),l.map(c=>t.startsWith("/")&&c===""?"/":c)}function RQ(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:zQ(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const MQ=/^:[\w-]+$/,DQ=3,IQ=2,$Q=1,LQ=10,FQ=-2,SM=t=>t==="*";function BQ(t,e){let n=t.split("/"),r=n.length;return n.some(SM)&&(r+=FQ),e&&(r+=IQ),n.filter(a=>!SM(a)).reduce((a,s)=>a+(MQ.test(s)?DQ:s===""?$Q:LQ),r)}function zQ(t,e){return t.length===e.length&&t.slice(0,-1).every((r,a)=>r===e[a])?t[t.length-1]-e[e.length-1]:0}function UQ(t,e,n){let{routesMeta:r}=t,a={},s="/",o=[];for(let l=0;l{let{paramName:h,isOptional:p}=d;if(h==="*"){let x=l[f]||"";o=s.slice(0,s.length-x.length).replace(/(.)\/+$/,"$1")}const m=l[f];return p&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:t}}function WQ(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),M5(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,e?void 0:"i"),r]}function HQ(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return M5(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function D5(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}const GQ=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,qQ=t=>GQ.test(t);function KQ(t,e){e===void 0&&(e="/");let{pathname:n,search:r="",hash:a=""}=typeof t=="string"?sm(t):t,s;if(n)if(qQ(n))s=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),M5(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?s=_M(n.substring(1),"/"):s=_M(n,e)}else s=e;return{pathname:s,search:JQ(r),hash:ZQ(a)}}function _M(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function Y2(t,e,n,r){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function YQ(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function I5(t,e){let n=YQ(t);return e?n.map((r,a)=>a===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function $5(t,e,n,r){r===void 0&&(r=!1);let a;typeof t=="string"?a=sm(t):(a=Jx({},t),Ir(!a.pathname||!a.pathname.includes("?"),Y2("?","pathname","search",a)),Ir(!a.pathname||!a.pathname.includes("#"),Y2("#","pathname","hash",a)),Ir(!a.search||!a.search.includes("#"),Y2("#","search","hash",a)));let s=t===""||a.pathname==="",o=s?"/":a.pathname,l;if(o==null)l=n;else{let f=e.length-1;if(!r&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),f-=1;a.pathname=h.join("/")}l=f>=0?e[f]:"/"}let c=KQ(a,l),u=o&&o!=="/"&&o.endsWith("/"),d=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const mu=t=>t.join("/").replace(/\/\/+/g,"/"),XQ=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),JQ=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,ZQ=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function QQ(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const Ez=["post","put","patch","delete"];new Set(Ez);const eee=["get",...Ez];new Set(eee);/** - * React Router v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Zx(){return Zx=Object.assign?Object.assign.bind():function(t){for(var e=1;e{l.current=!0}),g.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=$5(u,JSON.parse(o),s,d.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:mu([e,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[e,r,o,s,t])}const aee=g.createContext(null);function see(t){let e=g.useContext(bl).outlet;return e&&g.createElement(aee.Provider,{value:t},e)}function Tz(){let{matches:t}=g.useContext(bl),e=t[t.length-1];return e?e.params:{}}function Pz(t,e){let{relative:n}=e===void 0?{}:e,{future:r}=g.useContext(Fu),{matches:a}=g.useContext(bl),{pathname:s}=wl(),o=JSON.stringify(I5(a,r.v7_relativeSplatPath));return g.useMemo(()=>$5(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function iee(t,e){return oee(t,e)}function oee(t,e,n,r){im()||Ir(!1);let{navigator:a}=g.useContext(Fu),{matches:s}=g.useContext(bl),o=s[s.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=wl(),d;if(e){var f;let v=typeof e=="string"?sm(e):e;c==="/"||(f=v.pathname)!=null&&f.startsWith(c)||Ir(!1),d=v}else d=u;let h=d.pathname||"/",p=h;if(c!=="/"){let v=c.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(v.length).join("/")}let m=TQ(t,{pathname:p}),x=fee(m&&m.map(v=>Object.assign({},v,{params:Object.assign({},l,v.params),pathname:mu([c,a.encodeLocation?a.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?c:mu([c,a.encodeLocation?a.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),s,n,r);return e&&x?g.createElement(Vk.Provider,{value:{location:Zx({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Kc.Pop}},x):x}function lee(){let t=gee(),e=QQ(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},e),n?g.createElement("pre",{style:a},n):null,null)}const cee=g.createElement(lee,null);class uee extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?g.createElement(bl.Provider,{value:this.props.routeContext},g.createElement(Az.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function dee(t){let{routeContext:e,match:n,children:r}=t,a=g.useContext(L5);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(bl.Provider,{value:e},r)}function fee(t,e,n,r){var a;if(e===void 0&&(e=[]),n===void 0&&(n=null),r===void 0&&(r=null),t==null){var s;if(!n)return null;if(n.errors)t=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,l=(a=n)==null?void 0:a.errors;if(l!=null){let d=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Ir(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,f,h)=>{let p,m=!1,x=null,v=null;n&&(p=l&&f.route.id?l[f.route.id]:void 0,x=f.route.errorElement||cee,c&&(u<0&&h===0?(yee("route-fallback"),m=!0,v=null):u===h&&(m=!0,v=f.route.hydrateFallbackElement||null)));let b=e.concat(o.slice(0,h+1)),y=()=>{let w;return p?w=x:m?w=v:f.route.Component?w=g.createElement(f.route.Component,null):f.route.element?w=f.route.element:w=d,g.createElement(dee,{match:f,routeContext:{outlet:d,matches:b,isDataRoute:n!=null},children:w})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(uee,{location:n.location,revalidation:n.revalidation,component:x,error:p,children:y(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):y()},null)}var Rz=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(Rz||{}),Mz=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(Mz||{});function hee(t){let e=g.useContext(L5);return e||Ir(!1),e}function pee(t){let e=g.useContext(tee);return e||Ir(!1),e}function mee(t){let e=g.useContext(bl);return e||Ir(!1),e}function Dz(t){let e=mee(),n=e.matches[e.matches.length-1];return n.route.id||Ir(!1),n.route.id}function gee(){var t;let e=g.useContext(Az),n=pee(),r=Dz();return e!==void 0?e:(t=n.errors)==null?void 0:t[r]}function xee(){let{router:t}=hee(Rz.UseNavigateStable),e=Dz(Mz.UseNavigateStable),n=g.useRef(!1);return Oz(()=>{n.current=!0}),g.useCallback(function(a,s){s===void 0&&(s={}),n.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,Zx({fromRouteId:e},s)))},[t,e])}const NM={};function yee(t,e,n){NM[t]||(NM[t]=!0)}function vee(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function $1(t){let{to:e,replace:n,state:r,relative:a}=t;im()||Ir(!1);let{future:s,static:o}=g.useContext(Fu),{matches:l}=g.useContext(bl),{pathname:c}=wl(),u=Hr(),d=$5(e,I5(l,s.v7_relativeSplatPath),c,a==="path"),f=JSON.stringify(d);return g.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:a}),[u,f,a,n,r]),null}function Iz(t){return see(t.context)}function on(t){Ir(!1)}function bee(t){let{basename:e="/",children:n=null,location:r,navigationType:a=Kc.Pop,navigator:s,static:o=!1,future:l}=t;im()&&Ir(!1);let c=e.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:c,navigator:s,static:o,future:Zx({v7_relativeSplatPath:!1},l)}),[c,l,s,o]);typeof r=="string"&&(r=sm(r));let{pathname:d="/",search:f="",hash:h="",state:p=null,key:m="default"}=r,x=g.useMemo(()=>{let v=D5(d,c);return v==null?null:{location:{pathname:v,search:f,hash:h,state:p,key:m},navigationType:a}},[c,d,f,h,p,m,a]);return x==null?null:g.createElement(Fu.Provider,{value:u},g.createElement(Vk.Provider,{children:n,value:x}))}function wee(t){let{children:e,location:n}=t;return iee(pC(e),n)}new Promise(()=>{});function pC(t,e){e===void 0&&(e=[]);let n=[];return g.Children.forEach(t,(r,a)=>{if(!g.isValidElement(r))return;let s=[...e,a];if(r.type===g.Fragment){n.push.apply(n,pC(r.props.children,s));return}r.type!==on&&Ir(!1),!r.props.index||!r.props.children||Ir(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=pC(r.props.children,s)),n.push(o)}),n}/** - * React Router DOM v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function mC(){return mC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(n[a]=t[a]);return n}function jee(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function See(t,e){return t.button===0&&(!e||e==="_self")&&!jee(t)}function gC(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let r=t[n];return e.concat(Array.isArray(r)?r.map(a=>[n,a]):[[n,r]])},[]))}function _ee(t,e){let n=gC(t);return e&&e.forEach((r,a)=>{n.has(a)||e.getAll(a).forEach(s=>{n.append(a,s)})}),n}const Nee=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Cee="6";try{window.__reactRouterVersion=Cee}catch{}const Eee="startTransition",CM=nm[Eee];function Aee(t){let{basename:e,children:n,future:r,window:a}=t,s=g.useRef();s.current==null&&(s.current=EQ({window:a,v5Compat:!0}));let o=s.current,[l,c]=g.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=g.useCallback(f=>{u&&CM?CM(()=>c(f)):c(f)},[c,u]);return g.useLayoutEffect(()=>o.listen(d),[o,d]),g.useEffect(()=>vee(r),[r]),g.createElement(bee,{basename:e,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const Oee=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Tee=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Yd=g.forwardRef(function(e,n){let{onClick:r,relative:a,reloadDocument:s,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:f}=e,h=kee(e,Nee),{basename:p}=g.useContext(Fu),m,x=!1;if(typeof u=="string"&&Tee.test(u)&&(m=u,Oee))try{let w=new URL(window.location.href),j=u.startsWith("//")?new URL(w.protocol+u):new URL(u),k=D5(j.pathname,p);j.origin===w.origin&&k!=null?u=k+j.search+j.hash:x=!0}catch{}let v=nee(u,{relative:a}),b=Pee(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:a,viewTransition:f});function y(w){r&&r(w),w.defaultPrevented||b(w)}return g.createElement("a",mC({},h,{href:m||v,onClick:x||s?r:y,ref:n,target:c}))});var EM;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(EM||(EM={}));var AM;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(AM||(AM={}));function Pee(t,e){let{target:n,replace:r,state:a,preventScrollReset:s,relative:o,viewTransition:l}=e===void 0?{}:e,c=Hr(),u=wl(),d=Pz(t,{relative:o});return g.useCallback(f=>{if(See(f,n)){f.preventDefault();let h=r!==void 0?r:I1(u)===I1(d);c(t,{replace:h,state:a,preventScrollReset:s,relative:o,viewTransition:l})}},[u,c,d,r,a,n,t,s,o,l])}function vc(t){let e=g.useRef(gC(t)),n=g.useRef(!1),r=wl(),a=g.useMemo(()=>_ee(r.search,n.current?null:e.current),[r.search]),s=Hr(),o=g.useCallback((l,c)=>{const u=gC(typeof l=="function"?l(a):l);n.current=!0,s("?"+u,c)},[s,a]);return[a,o]}var $z={exports:{}},Lz={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var cp=g;function Ree(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Mee=typeof Object.is=="function"?Object.is:Ree,Dee=cp.useState,Iee=cp.useEffect,$ee=cp.useLayoutEffect,Lee=cp.useDebugValue;function Fee(t,e){var n=e(),r=Dee({inst:{value:n,getSnapshot:e}}),a=r[0].inst,s=r[1];return $ee(function(){a.value=n,a.getSnapshot=e,X2(a)&&s({inst:a})},[t,n,e]),Iee(function(){return X2(a)&&s({inst:a}),t(function(){X2(a)&&s({inst:a})})},[t]),Lee(n),n}function X2(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Mee(t,n)}catch{return!0}}function Bee(t,e){return e()}var zee=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Bee:Fee;Lz.useSyncExternalStore=cp.useSyncExternalStore!==void 0?cp.useSyncExternalStore:zee;$z.exports=Lz;var xC=$z.exports;const Fz=0,Bz=1,zz=2,OM=3;var TM=Object.prototype.hasOwnProperty;function yC(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&yC(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(TM.call(t,n)&&++r&&!TM.call(e,n)||!(n in e)||!yC(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}const Bl=new WeakMap,Wl=()=>{},Ya=Wl(),vC=Object,Ht=t=>t===Ya,Xo=t=>typeof t=="function",ku=(t,e)=>({...t,...e}),Uz=t=>Xo(t.then),J2={},Av={},F5="undefined",gy=typeof window!=F5,bC=typeof document!=F5,Uee=gy&&"Deno"in window,Vee=()=>gy&&typeof window.requestAnimationFrame!=F5,Vz=(t,e)=>{const n=Bl.get(t);return[()=>!Ht(e)&&t.get(e)||J2,r=>{if(!Ht(e)){const a=t.get(e);e in Av||(Av[e]=a),n[5](e,ku(a,r),a||J2)}},n[6],()=>!Ht(e)&&e in Av?Av[e]:!Ht(e)&&t.get(e)||J2]};let wC=!0;const Wee=()=>wC,[kC,jC]=gy&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Wl,Wl],Hee=()=>{const t=bC&&document.visibilityState;return Ht(t)||t!=="hidden"},Gee=t=>(bC&&document.addEventListener("visibilitychange",t),kC("focus",t),()=>{bC&&document.removeEventListener("visibilitychange",t),jC("focus",t)}),qee=t=>{const e=()=>{wC=!0,t()},n=()=>{wC=!1};return kC("online",e),kC("offline",n),()=>{jC("online",e),jC("offline",n)}},Kee={isOnline:Wee,isVisible:Hee},Yee={initFocus:Gee,initReconnect:qee},PM=!H.useId,Lh=!gy||Uee,Xee=t=>Vee()?window.requestAnimationFrame(t):setTimeout(t,1),Z2=Lh?g.useEffect:g.useLayoutEffect,Q2=typeof navigator<"u"&&navigator.connection,RM=!Lh&&Q2&&(["slow-2g","2g"].includes(Q2.effectiveType)||Q2.saveData),Ov=new WeakMap,Jee=t=>vC.prototype.toString.call(t),eS=(t,e)=>t===`[object ${e}]`;let Zee=0;const SC=t=>{const e=typeof t,n=Jee(t),r=eS(n,"Date"),a=eS(n,"RegExp"),s=eS(n,"Object");let o,l;if(vC(t)===t&&!r&&!a){if(o=Ov.get(t),o)return o;if(o=++Zee+"~",Ov.set(t,o),Array.isArray(t)){for(o="@",l=0;l{if(Xo(t))try{t=t()}catch{t=""}const e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?SC(t):"",[t,e]};let Qee=0;const _C=()=>++Qee;async function Wz(...t){const[e,n,r,a]=t,s=ku({populateCache:!0,throwOnError:!0},typeof a=="boolean"?{revalidate:a}:a||{});let o=s.populateCache;const l=s.rollbackOnError;let c=s.optimisticData;const u=h=>typeof l=="function"?l(h):l!==!1,d=s.throwOnError;if(Xo(n)){const h=n,p=[],m=e.keys();for(const x of m)!/^\$(inf|sub)\$/.test(x)&&h(e.get(x)._k)&&p.push(x);return Promise.all(p.map(f))}return f(n);async function f(h){const[p]=B5(h);if(!p)return;const[m,x]=Vz(e,p),[v,b,y,w]=Bl.get(e),j=()=>{const D=v[p];return(Xo(s.revalidate)?s.revalidate(m().data,h):s.revalidate!==!1)&&(delete y[p],delete w[p],D&&D[0])?D[0](zz).then(()=>m().data):m().data};if(t.length<3)return j();let k=r,S,_=!1;const C=_C();b[p]=[C,0];const E=!Ht(c),P=m(),R=P.data,A=P._c,T=Ht(A)?R:A;if(E&&(c=Xo(c)?c(T,R):c,x({data:c,_c:T})),Xo(k))try{k=k(T)}catch(D){S=D,_=!0}if(k&&Uz(k))if(k=await k.catch(D=>{S=D,_=!0}),C!==b[p][0]){if(_)throw S;return k}else _&&E&&u(S)&&(o=!0,x({data:T,_c:Ya}));if(o&&!_)if(Xo(o)){const D=o(k,T);x({data:D,error:Ya,_c:Ya})}else x({data:k,error:Ya,_c:Ya});if(b[p][1]=_C(),Promise.resolve(j()).then(()=>{x({_c:Ya})}),_){if(d)throw S;return}return k}}const MM=(t,e)=>{for(const n in t)t[n][0]&&t[n][0](e)},ete=(t,e)=>{if(!Bl.has(t)){const n=ku(Yee,e),r=Object.create(null),a=Wz.bind(Ya,t);let s=Wl;const o=Object.create(null),l=(d,f)=>{const h=o[d]||[];return o[d]=h,h.push(f),()=>h.splice(h.indexOf(f),1)},c=(d,f,h)=>{t.set(d,f);const p=o[d];if(p)for(const m of p)m(f,h)},u=()=>{if(!Bl.has(t)&&(Bl.set(t,[r,Object.create(null),Object.create(null),Object.create(null),a,c,l]),!Lh)){const d=n.initFocus(setTimeout.bind(Ya,MM.bind(Ya,r,Fz))),f=n.initReconnect(setTimeout.bind(Ya,MM.bind(Ya,r,Bz)));s=()=>{d&&d(),f&&f(),Bl.delete(t)}}};return u(),[t,a,u,s]}return[t,Bl.get(t)[4]]},tte=(t,e,n,r,a)=>{const s=n.errorRetryCount,o=a.retryCount,l=~~((Math.random()+.5)*(1<<(o<8?o:8)))*n.errorRetryInterval;!Ht(s)&&o>s||setTimeout(r,l,a)},nte=yC,[Hz,Gz]=ete(new Map),rte=ku({onLoadingSlow:Wl,onSuccess:Wl,onError:Wl,onErrorRetry:tte,onDiscarded:Wl,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:RM?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:RM?5e3:3e3,compare:nte,isPaused:()=>!1,cache:Hz,mutate:Gz,fallback:{}},Kee),ate=(t,e)=>{const n=ku(t,e);if(e){const{use:r,fallback:a}=t,{use:s,fallback:o}=e;r&&s&&(n.use=r.concat(s)),a&&o&&(n.fallback=ku(a,o))}return n},ste=g.createContext({}),ite="$inf$",qz=gy&&window.__SWR_DEVTOOLS_USE__,ote=qz?window.__SWR_DEVTOOLS_USE__:[],lte=()=>{qz&&(window.__SWR_DEVTOOLS_REACT__=H)},cte=t=>Xo(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],Wk=()=>{const t=g.useContext(ste);return g.useMemo(()=>ku(rte,t),[t])},ute=t=>(e,n,r)=>t(e,n&&((...s)=>{const[o]=B5(e),[,,,l]=Bl.get(Hz);if(o.startsWith(ite))return n(...s);const c=l[o];return Ht(c)?n(...s):(delete l[o],c)}),r),dte=ote.concat(ute),fte=t=>function(...n){const r=Wk(),[a,s,o]=cte(n),l=ate(r,o);let c=t;const{use:u}=l,d=(u||[]).concat(dte);for(let f=d.length;f--;)c=d[f](c);return c(a,s||l.fetcher||null,l)},hte=(t,e,n)=>{const r=e[t]||(e[t]=[]);return r.push(n),()=>{const a=r.indexOf(n);a>=0&&(r[a]=r[r.length-1],r.pop())}};lte();const tS=H.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}}),nS={dedupe:!0},DM=Promise.resolve(Ya),pte=()=>Wl,mte=(t,e,n)=>{const{cache:r,compare:a,suspense:s,fallbackData:o,revalidateOnMount:l,revalidateIfStale:c,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:h,strictServerPrefetchWarning:p}=n,[m,x,v,b]=Bl.get(r),[y,w]=B5(t),j=g.useRef(!1),k=g.useRef(!1),S=g.useRef(y),_=g.useRef(e),C=g.useRef(n),E=()=>C.current,P=()=>E().isVisible()&&E().isOnline(),[R,A,T,D]=Vz(r,y),L=g.useRef({}).current,X=Ht(o)?Ht(n.fallback)?Ya:n.fallback[y]:o,J=(be,Pe)=>{for(const Ce in L){const Re=Ce;if(Re==="data"){if(!a(be[Re],Pe[Re])&&(!Ht(be[Re])||!a(z,Pe[Re])))return!1}else if(Pe[Re]!==be[Re])return!1}return!0},U=!j.current,Y=g.useMemo(()=>{const be=R(),Pe=D(),Ce=F=>{const se=ku(F);return delete se._k,(()=>{if(!y||!e||E().isPaused())return!1;if(U&&!Ht(l))return l;const Se=Ht(X)?se.data:X;return Ht(Se)||c})()?{isValidating:!0,isLoading:!0,...se}:se},Re=Ce(be),Be=be===Pe?Re:Ce(Pe);let st=Re;return[()=>{const F=Ce(R());return J(F,st)?(st.data=F.data,st.isLoading=F.isLoading,st.isValidating=F.isValidating,st.error=F.error,st):(st=F,F)},()=>Be]},[r,y]),W=xC.useSyncExternalStore(g.useCallback(be=>T(y,(Pe,Ce)=>{J(Ce,Pe)||be()}),[r,y]),Y[0],Y[1]),G=m[y]&&m[y].length>0,I=W.data,q=Ht(I)?X&&Uz(X)?tS(X):X:I,M=W.error,B=g.useRef(q),z=h?Ht(I)?Ht(B.current)?q:B.current:I:q,Z=y&&Ht(q),pe=g.useRef(null);!Lh&&xC.useSyncExternalStore(pte,()=>(pe.current=!1,pe),()=>(pe.current=!0,pe));const ae=pe.current;p&&ae&&!s&&Z&&console.warn(`Missing pre-initiated data for serialized key "${y}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const ue=!y||!e||E().isPaused()||G&&!Ht(M)?!1:U&&!Ht(l)?l:s?Ht(q)?!1:c:Ht(q)||c,de=U&&ue,Q=Ht(W.isValidating)?de:W.isValidating,fe=Ht(W.isLoading)?de:W.isLoading,ne=g.useCallback(async be=>{const Pe=_.current;if(!y||!Pe||k.current||E().isPaused())return!1;let Ce,Re,Be=!0;const st=be||{},F=!v[y]||!st.dedupe,se=()=>PM?!k.current&&y===S.current&&j.current:y===S.current,ie={isValidating:!1,isLoading:!1},Se=()=>{A(ie)},te=()=>{const ve=v[y];ve&&ve[1]===Re&&delete v[y]},me={isValidating:!0};Ht(R().data)&&(me.isLoading=!0);try{if(F&&(A(me),n.loadingTimeout&&Ht(R().data)&&setTimeout(()=>{Be&&se()&&E().onLoadingSlow(y,n)},n.loadingTimeout),v[y]=[Pe(w),_C()]),[Ce,Re]=v[y],Ce=await Ce,F&&setTimeout(te,n.dedupingInterval),!v[y]||v[y][1]!==Re)return F&&se()&&E().onDiscarded(y),!1;ie.error=Ya;const ve=x[y];if(!Ht(ve)&&(Re<=ve[0]||Re<=ve[1]||ve[1]===0))return Se(),F&&se()&&E().onDiscarded(y),!1;const Ee=R().data;ie.data=a(Ee,Ce)?Ee:Ce,F&&se()&&E().onSuccess(Ce,y,n)}catch(ve){te();const Ee=E(),{shouldRetryOnError:Oe}=Ee;Ee.isPaused()||(ie.error=ve,F&&se()&&(Ee.onError(ve,y,Ee),(Oe===!0||Xo(Oe)&&Oe(ve))&&(!E().revalidateOnFocus||!E().revalidateOnReconnect||P())&&Ee.onErrorRetry(ve,y,Ee,Tt=>{const Bt=m[y];Bt&&Bt[0]&&Bt[0](OM,Tt)},{retryCount:(st.retryCount||0)+1,dedupe:!0})))}return Be=!1,Se(),!0},[y,r]),ce=g.useCallback((...be)=>Wz(r,S.current,...be),[]);if(Z2(()=>{_.current=e,C.current=n,Ht(I)||(B.current=I)}),Z2(()=>{if(!y)return;const be=ne.bind(Ya,nS);let Pe=0;E().revalidateOnFocus&&(Pe=Date.now()+E().focusThrottleInterval);const Re=hte(y,m,(Be,st={})=>{if(Be==Fz){const F=Date.now();E().revalidateOnFocus&&F>Pe&&P()&&(Pe=F+E().focusThrottleInterval,be())}else if(Be==Bz)E().revalidateOnReconnect&&P()&&be();else{if(Be==zz)return ne();if(Be==OM)return ne(st)}});return k.current=!1,S.current=y,j.current=!0,A({_k:w}),ue&&(v[y]||(Ht(q)||Lh?be():Xee(be))),()=>{k.current=!0,Re()}},[y]),Z2(()=>{let be;function Pe(){const Re=Xo(u)?u(R().data):u;Re&&be!==-1&&(be=setTimeout(Ce,Re))}function Ce(){!R().error&&(d||E().isVisible())&&(f||E().isOnline())?ne(nS).then(Pe):Pe()}return Pe(),()=>{be&&(clearTimeout(be),be=-1)}},[u,d,f,y]),g.useDebugValue(z),s){if(!PM&&Lh&&Z)throw new Error("Fallback data is required when using Suspense in SSR.");Z&&(_.current=e,C.current=n,k.current=!1);const be=b[y],Pe=!Ht(be)&&Z?ce(be):DM;if(tS(Pe),!Ht(M)&&Z)throw M;const Ce=Z?ne(nS):DM;!Ht(z)&&Z&&(Ce.status="fulfilled",Ce.value=!0),tS(Ce)}return{mutate:ce,get data(){return L.data=!0,z},get error(){return L.error=!0,M},get isValidating(){return L.isValidating=!0,Q},get isLoading(){return L.isLoading=!0,fe}}},ct=fte(mte);function Kz(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e-1}var pre=hre,mre=Gk;function gre(t,e){var n=this.__data__,r=mre(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var xre=gre,yre=ere,vre=lre,bre=dre,wre=pre,kre=xre;function um(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e0?1:-1},vd=function(e){return Xd(e)&&e.indexOf("%")===e.length-1},$e=function(e){return Uae(e)&&!fm(e)},Gae=function(e){return _t(e)},ea=function(e){return $e(e)||Xd(e)},qae=0,vf=function(e){var n=++qae;return"".concat(e||"").concat(n)},Jd=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!$e(e)&&!Xd(e))return r;var s;if(vd(e)){var o=e.indexOf("%");s=n*parseFloat(e.slice(0,o))/100}else s=+e;return fm(s)&&(s=r),a&&s>n&&(s=n),s},Vc=function(e){if(!e)return null;var n=Object.keys(e);return n&&n.length?e[n[0]]:null},Kae=function(e){if(!Array.isArray(e))return!1;for(var n=e.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function nse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function CC(t){"@babel/helpers - typeof";return CC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},CC(t)}var qM={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Jl=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},KM=null,sS=null,Z5=function t(e){if(e===KM&&Array.isArray(sS))return sS;var n=[];return g.Children.forEach(e,function(r){_t(r)||($ae.isFragment(r)?n=n.concat(t(r.props.children)):n.push(r))}),sS=n,KM=e,n};function Ws(t,e){var n=[],r=[];return Array.isArray(e)?r=e.map(function(a){return Jl(a)}):r=[Jl(e)],Z5(t).forEach(function(a){var s=Fi(a,"type.displayName")||Fi(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function oi(t,e){var n=Ws(t,e);return n&&n[0]}var YM=function(e){if(!e||!e.props)return!1;var n=e.props,r=n.width,a=n.height;return!(!$e(r)||r<=0||!$e(a)||a<=0)},rse=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ase=function(e){return e&&e.type&&Xd(e.type)&&rse.indexOf(e.type)>=0},o7=function(e){return e&&CC(e)==="object"&&"clipDot"in e},sse=function(e,n,r,a){var s,o=(s=aS==null?void 0:aS[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!At(e)&&(a&&o.includes(n)||Zae.includes(n))||r&&J5.includes(n)},Ct=function(e,n,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(g.isValidElement(e)&&(a=e.props),!lm(a))return null;var s={};return Object.keys(a).forEach(function(o){var l;sse((l=a)===null||l===void 0?void 0:l[o],o,n,r)&&(s[o]=a[o])}),s},EC=function t(e,n){if(e===n)return!0;var r=g.Children.count(e);if(r!==g.Children.count(n))return!1;if(r===0)return!0;if(r===1)return XM(Array.isArray(e)?e[0]:e,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function use(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function OC(t){var e=t.children,n=t.width,r=t.height,a=t.viewBox,s=t.className,o=t.style,l=t.title,c=t.desc,u=cse(t,lse),d=a||{width:n,height:r,x:0,y:0},f=Gt("recharts-surface",s);return H.createElement("svg",AC({},Ct(u,!0,"svg"),{className:f,width:n,height:r,style:o,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height)}),H.createElement("title",null,l),H.createElement("desc",null,c),e)}var dse=["children","className"];function TC(){return TC=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function hse(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var cn=H.forwardRef(function(t,e){var n=t.children,r=t.className,a=fse(t,dse),s=Gt("recharts-layer",r);return H.createElement("g",TC({className:s},Ct(a,!0),{ref:e}),n)}),Zl=function(e,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;sa?0:a+e),n=n>a?a:n,n<0&&(n+=a),a=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(a);++r=r?t:gse(t,e,n)}var yse=xse,vse="\\ud800-\\udfff",bse="\\u0300-\\u036f",wse="\\ufe20-\\ufe2f",kse="\\u20d0-\\u20ff",jse=bse+wse+kse,Sse="\\ufe0e\\ufe0f",_se="\\u200d",Nse=RegExp("["+_se+vse+jse+Sse+"]");function Cse(t){return Nse.test(t)}var l7=Cse;function Ese(t){return t.split("")}var Ase=Ese,c7="\\ud800-\\udfff",Ose="\\u0300-\\u036f",Tse="\\ufe20-\\ufe2f",Pse="\\u20d0-\\u20ff",Rse=Ose+Tse+Pse,Mse="\\ufe0e\\ufe0f",Dse="["+c7+"]",PC="["+Rse+"]",RC="\\ud83c[\\udffb-\\udfff]",Ise="(?:"+PC+"|"+RC+")",u7="[^"+c7+"]",d7="(?:\\ud83c[\\udde6-\\uddff]){2}",f7="[\\ud800-\\udbff][\\udc00-\\udfff]",$se="\\u200d",h7=Ise+"?",p7="["+Mse+"]?",Lse="(?:"+$se+"(?:"+[u7,d7,f7].join("|")+")"+p7+h7+")*",Fse=p7+h7+Lse,Bse="(?:"+[u7+PC+"?",PC,d7,f7,Dse].join("|")+")",zse=RegExp(RC+"(?="+RC+")|"+Bse+Fse,"g");function Use(t){return t.match(zse)||[]}var Vse=Use,Wse=Ase,Hse=l7,Gse=Vse;function qse(t){return Hse(t)?Gse(t):Wse(t)}var Kse=qse,Yse=yse,Xse=l7,Jse=Kse,Zse=t7;function Qse(t){return function(e){e=Zse(e);var n=Xse(e)?Jse(e):void 0,r=n?n[0]:e.charAt(0),a=n?Yse(n,1).join(""):e.slice(1);return r[t]()+a}}var eie=Qse,tie=eie,nie=tie("toUpperCase"),rie=nie;const ij=Nn(rie);function Ln(t){return function(){return t}}const m7=Math.cos,B1=Math.sin,Eo=Math.sqrt,z1=Math.PI,oj=2*z1,MC=Math.PI,DC=2*MC,ld=1e-6,aie=DC-ld;function g7(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return g7;const n=10**e;return function(r){this._+=r[0];for(let a=1,s=r.length;ald)if(!(Math.abs(f*c-u*d)>ld)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let p=r-o,m=a-l,x=c*c+u*u,v=p*p+m*m,b=Math.sqrt(x),y=Math.sqrt(h),w=s*Math.tan((MC-Math.acos((x+h-v)/(2*b*y)))/2),j=w/y,k=w/b;Math.abs(j-1)>ld&&this._append`L${e+j*d},${n+j*f}`,this._append`A${s},${s},0,0,${+(f*p>d*m)},${this._x1=e+k*c},${this._y1=n+k*u}`}}arc(e,n,r,a,s,o){if(e=+e,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let l=r*Math.cos(a),c=r*Math.sin(a),u=e+l,d=n+c,f=1^o,h=o?a-s:s-a;this._x1===null?this._append`M${u},${d}`:(Math.abs(this._x1-u)>ld||Math.abs(this._y1-d)>ld)&&this._append`L${u},${d}`,r&&(h<0&&(h=h%DC+DC),h>aie?this._append`A${r},${r},0,1,${f},${e-l},${n-c}A${r},${r},0,1,${f},${this._x1=u},${this._y1=d}`:h>ld&&this._append`A${r},${r},0,${+(h>=MC)},${f},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function Q5(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new iie(e)}function e3(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function x7(t){this._context=t}x7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function lj(t){return new x7(t)}function y7(t){return t[0]}function v7(t){return t[1]}function b7(t,e){var n=Ln(!0),r=null,a=lj,s=null,o=Q5(l);t=typeof t=="function"?t:t===void 0?y7:Ln(t),e=typeof e=="function"?e:e===void 0?v7:Ln(e);function l(c){var u,d=(c=e3(c)).length,f,h=!1,p;for(r==null&&(s=a(p=o())),u=0;u<=d;++u)!(u=p;--m)l.point(w[m],j[m]);l.lineEnd(),l.areaEnd()}b&&(w[h]=+t(v,h,f),j[h]=+e(v,h,f),l.point(r?+r(v,h,f):w[h],n?+n(v,h,f):j[h]))}if(y)return l=null,y+""||null}function d(){return b7().defined(a).curve(o).context(s)}return u.x=function(f){return arguments.length?(t=typeof f=="function"?f:Ln(+f),r=null,u):t},u.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Ln(+f),u):t},u.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Ln(+f),u):r},u.y=function(f){return arguments.length?(e=typeof f=="function"?f:Ln(+f),n=null,u):e},u.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Ln(+f),u):e},u.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Ln(+f),u):n},u.lineX0=u.lineY0=function(){return d().x(t).y(e)},u.lineY1=function(){return d().x(t).y(n)},u.lineX1=function(){return d().x(r).y(e)},u.defined=function(f){return arguments.length?(a=typeof f=="function"?f:Ln(!!f),u):a},u.curve=function(f){return arguments.length?(o=f,s!=null&&(l=o(s)),u):o},u.context=function(f){return arguments.length?(f==null?s=l=null:l=o(s=f),u):s},u}class w7{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function oie(t){return new w7(t,!0)}function lie(t){return new w7(t,!1)}const t3={draw(t,e){const n=Eo(e/z1);t.moveTo(n,0),t.arc(0,0,n,0,oj)}},cie={draw(t,e){const n=Eo(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},k7=Eo(1/3),uie=k7*2,die={draw(t,e){const n=Eo(e/uie),r=n*k7;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},fie={draw(t,e){const n=Eo(e),r=-n/2;t.rect(r,r,n,n)}},hie=.8908130915292852,j7=B1(z1/10)/B1(7*z1/10),pie=B1(oj/10)*j7,mie=-m7(oj/10)*j7,gie={draw(t,e){const n=Eo(e*hie),r=pie*n,a=mie*n;t.moveTo(0,-n),t.lineTo(r,a);for(let s=1;s<5;++s){const o=oj*s/5,l=m7(o),c=B1(o);t.lineTo(c*n,-l*n),t.lineTo(l*r-c*a,c*r+l*a)}t.closePath()}},iS=Eo(3),xie={draw(t,e){const n=-Eo(e/(iS*3));t.moveTo(0,n*2),t.lineTo(-iS*n,-n),t.lineTo(iS*n,-n),t.closePath()}},ki=-.5,ji=Eo(3)/2,IC=1/Eo(12),yie=(IC/2+1)*3,vie={draw(t,e){const n=Eo(e/yie),r=n/2,a=n*IC,s=r,o=n*IC+n,l=-s,c=o;t.moveTo(r,a),t.lineTo(s,o),t.lineTo(l,c),t.lineTo(ki*r-ji*a,ji*r+ki*a),t.lineTo(ki*s-ji*o,ji*s+ki*o),t.lineTo(ki*l-ji*c,ji*l+ki*c),t.lineTo(ki*r+ji*a,ki*a-ji*r),t.lineTo(ki*s+ji*o,ki*o-ji*s),t.lineTo(ki*l+ji*c,ki*c-ji*l),t.closePath()}};function bie(t,e){let n=null,r=Q5(a);t=typeof t=="function"?t:Ln(t||t3),e=typeof e=="function"?e:Ln(e===void 0?64:+e);function a(){let s;if(n||(n=s=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(t=typeof s=="function"?s:Ln(s),a):t},a.size=function(s){return arguments.length?(e=typeof s=="function"?s:Ln(+s),a):e},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function U1(){}function V1(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function S7(t){this._context=t}S7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:V1(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function wie(t){return new S7(t)}function _7(t){this._context=t}_7.prototype={areaStart:U1,areaEnd:U1,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function kie(t){return new _7(t)}function N7(t){this._context=t}N7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:V1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function jie(t){return new N7(t)}function C7(t){this._context=t}C7.prototype={areaStart:U1,areaEnd:U1,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Sie(t){return new C7(t)}function ZM(t){return t<0?-1:1}function QM(t,e,n){var r=t._x1-t._x0,a=e-t._x1,s=(t._y1-t._y0)/(r||a<0&&-0),o=(n-t._y1)/(a||r<0&&-0),l=(s*a+o*r)/(r+a);return(ZM(s)+ZM(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function e4(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function oS(t,e,n){var r=t._x0,a=t._y0,s=t._x1,o=t._y1,l=(s-r)/3;t._context.bezierCurveTo(r+l,a+l*e,s-l,o-l*n,s,o)}function W1(t){this._context=t}W1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:oS(this,this._t0,e4(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,oS(this,e4(this,n=QM(this,t,e)),n);break;default:oS(this,this._t0,n=QM(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function E7(t){this._context=new A7(t)}(E7.prototype=Object.create(W1.prototype)).point=function(t,e){W1.prototype.point.call(this,e,t)};function A7(t){this._context=t}A7.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,a,s){this._context.bezierCurveTo(e,t,r,n,s,a)}};function _ie(t){return new W1(t)}function Nie(t){return new E7(t)}function O7(t){this._context=t}O7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=t4(t),a=t4(e),s=0,o=1;o=0;--e)a[e]=(o[e]-a[e+1])/s[e];for(s[n-1]=(t[n]+a[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function Eie(t){return new cj(t,.5)}function Aie(t){return new cj(t,0)}function Oie(t){return new cj(t,1)}function up(t,e){if((o=t.length)>1)for(var n=1,r,a,s=t[e[0]],o,l=s.length;n=0;)n[e]=e;return n}function Tie(t,e){return t[e]}function Pie(t){const e=[];return e.key=t,e}function Rie(){var t=Ln([]),e=$C,n=up,r=Tie;function a(s){var o=Array.from(t.apply(this,arguments),Pie),l,c=o.length,u=-1,d;for(const f of s)for(l=0,++u;l0){for(var n,r,a=0,s=t[0].length,o;a0){for(var n=0,r=t[e[0]],a,s=r.length;n0)||!((s=(a=t[e[0]]).length)>0))){for(var n=0,r=1,a,s,o;r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Uie(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var T7={symbolCircle:t3,symbolCross:cie,symbolDiamond:die,symbolSquare:fie,symbolStar:gie,symbolTriangle:xie,symbolWye:vie},Vie=Math.PI/180,Wie=function(e){var n="symbol".concat(ij(e));return T7[n]||t3},Hie=function(e,n,r){if(n==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Vie;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Gie=function(e,n){T7["symbol".concat(ij(e))]=n},uj=function(e){var n=e.type,r=n===void 0?"circle":n,a=e.size,s=a===void 0?64:a,o=e.sizeType,l=o===void 0?"area":o,c=zie(e,$ie),u=r4(r4({},c),{},{type:r,size:s,sizeType:l}),d=function(){var v=Wie(r),b=bie().type(v).size(Hie(s,l,r));return b()},f=u.className,h=u.cx,p=u.cy,m=Ct(u,!0);return h===+h&&p===+p&&s===+s?H.createElement("path",LC({},m,{className:Gt("recharts-symbols",f),transform:"translate(".concat(h,", ").concat(p,")"),d:d()})):null};uj.registerSymbol=Gie;function dp(t){"@babel/helpers - typeof";return dp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dp(t)}function FC(){return FC=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var y=p.inactive?u:p.color;return H.createElement("li",FC({className:v,style:f,key:"legend-item-".concat(m)},Qx(r.props,p,m)),H.createElement(OC,{width:o,height:o,viewBox:d,style:h},r.renderIcon(p)),H.createElement("span",{className:"recharts-legend-item-text",style:{color:y}},x?x(b,p,m):b))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,o=r.align;if(!a||!a.length)return null;var l={padding:0,margin:0,textAlign:s==="horizontal"?o:"left"};return H.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])}(g.PureComponent);t0(n3,"displayName","Legend");t0(n3,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var noe=qk;function roe(){this.__data__=new noe,this.size=0}var aoe=roe;function soe(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}var ioe=soe;function ooe(t){return this.__data__.get(t)}var loe=ooe;function coe(t){return this.__data__.has(t)}var uoe=coe,doe=qk,foe=W5,hoe=H5,poe=200;function moe(t,e){var n=this.__data__;if(n instanceof doe){var r=n.__data__;if(!foe||r.lengthl))return!1;var u=s.get(t),d=s.get(e);if(u&&d)return u==e&&d==t;var f=-1,h=!0,p=n&$oe?new Roe:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=zle}var i3=Ule,Vle=bc,Wle=i3,Hle=wc,Gle="[object Arguments]",qle="[object Array]",Kle="[object Boolean]",Yle="[object Date]",Xle="[object Error]",Jle="[object Function]",Zle="[object Map]",Qle="[object Number]",ece="[object Object]",tce="[object RegExp]",nce="[object Set]",rce="[object String]",ace="[object WeakMap]",sce="[object ArrayBuffer]",ice="[object DataView]",oce="[object Float32Array]",lce="[object Float64Array]",cce="[object Int8Array]",uce="[object Int16Array]",dce="[object Int32Array]",fce="[object Uint8Array]",hce="[object Uint8ClampedArray]",pce="[object Uint16Array]",mce="[object Uint32Array]",Xn={};Xn[oce]=Xn[lce]=Xn[cce]=Xn[uce]=Xn[dce]=Xn[fce]=Xn[hce]=Xn[pce]=Xn[mce]=!0;Xn[Gle]=Xn[qle]=Xn[sce]=Xn[Kle]=Xn[ice]=Xn[Yle]=Xn[Xle]=Xn[Jle]=Xn[Zle]=Xn[Qle]=Xn[ece]=Xn[tce]=Xn[nce]=Xn[rce]=Xn[ace]=!1;function gce(t){return Hle(t)&&Wle(t.length)&&!!Xn[Vle(t)]}var xce=gce;function yce(t){return function(e){return t(e)}}var U7=yce,K1={exports:{}};K1.exports;(function(t,e){var n=Yz,r=e&&!e.nodeType&&e,a=r&&!0&&t&&!t.nodeType&&t,s=a&&a.exports===r,o=s&&n.process,l=function(){try{var c=a&&a.require&&a.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}}();t.exports=l})(K1,K1.exports);var vce=K1.exports,bce=xce,wce=U7,u4=vce,d4=u4&&u4.isTypedArray,kce=d4?wce(d4):bce,V7=kce,jce=Nle,Sce=a3,_ce=Ks,Nce=z7,Cce=s3,Ece=V7,Ace=Object.prototype,Oce=Ace.hasOwnProperty;function Tce(t,e){var n=_ce(t),r=!n&&Sce(t),a=!n&&!r&&Nce(t),s=!n&&!r&&!a&&Ece(t),o=n||r||a||s,l=o?jce(t.length,String):[],c=l.length;for(var u in t)(e||Oce.call(t,u))&&!(o&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Cce(u,c)))&&l.push(u);return l}var Pce=Tce,Rce=Object.prototype;function Mce(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||Rce;return t===n}var Dce=Mce;function Ice(t,e){return function(n){return t(e(n))}}var W7=Ice,$ce=W7,Lce=$ce(Object.keys,Object),Fce=Lce,Bce=Dce,zce=Fce,Uce=Object.prototype,Vce=Uce.hasOwnProperty;function Wce(t){if(!Bce(t))return zce(t);var e=[];for(var n in Object(t))Vce.call(t,n)&&n!="constructor"&&e.push(n);return e}var Hce=Wce,Gce=U5,qce=i3;function Kce(t){return t!=null&&qce(t.length)&&!Gce(t)}var yy=Kce,Yce=Pce,Xce=Hce,Jce=yy;function Zce(t){return Jce(t)?Yce(t):Xce(t)}var dj=Zce,Qce=ple,eue=Sle,tue=dj;function nue(t){return Qce(t,tue,eue)}var rue=nue,f4=rue,aue=1,sue=Object.prototype,iue=sue.hasOwnProperty;function oue(t,e,n,r,a,s){var o=n&aue,l=f4(t),c=l.length,u=f4(e),d=u.length;if(c!=d&&!o)return!1;for(var f=c;f--;){var h=l[f];if(!(o?h in e:iue.call(e,h)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var x=!0;s.set(t,e),s.set(e,t);for(var v=o;++f-1}var sfe=afe;function ife(t,e,n){for(var r=-1,a=t==null?0:t.length;++r=wfe){var u=e?null:vfe(t);if(u)return bfe(u);o=!1,a=yfe,c=new mfe}else c=e?[]:l;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function $fe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Lfe(t){return t.value}function Ffe(t,e){if(H.isValidElement(t))return H.cloneElement(t,e);if(typeof t=="function")return H.createElement(t,e);e.ref;var n=Ife(e,Efe);return H.createElement(n3,n)}var E4=1,ul=function(t){function e(){var n;Afe(this,e);for(var r=arguments.length,a=new Array(r),s=0;sE4||Math.abs(a.height-this.lastBoundingBox.height)>E4)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Rl({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,o=a.align,l=a.verticalAlign,c=a.margin,u=a.chartWidth,d=a.chartHeight,f,h;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(o==="center"&&s==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(l==="middle"){var m=this.getBBoxSnapshot();h={top:((d||0)-m.height)/2}}else h=l==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return Rl(Rl({},f),h)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,o=a.width,l=a.height,c=a.wrapperStyle,u=a.payloadUniqBy,d=a.payload,f=Rl(Rl({position:"absolute",width:o||"auto",height:l||"auto"},this.getDefaultPosition(c)),c);return H.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){r.wrapperNode=p}},Ffe(s,Rl(Rl({},this.props),{},{payload:J7(d,u,Lfe)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Rl(Rl({},this.defaultProps),r.props),o=s.layout;return o==="vertical"&&$e(r.props.height)?{height:r.props.height}:o==="horizontal"?{width:r.props.width||a}:null}}])}(g.PureComponent);fj(ul,"displayName","Legend");fj(ul,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var A4=xy,Bfe=a3,zfe=Ks,O4=A4?A4.isConcatSpreadable:void 0;function Ufe(t){return zfe(t)||Bfe(t)||!!(O4&&t&&t[O4])}var Vfe=Ufe,Wfe=F7,Hfe=Vfe;function eU(t,e,n,r,a){var s=-1,o=t.length;for(n||(n=Hfe),a||(a=[]);++s0&&n(l)?e>1?eU(l,e-1,n,r,a):Wfe(a,l):r||(a[a.length]=l)}return a}var tU=eU;function Gfe(t){return function(e,n,r){for(var a=-1,s=Object(e),o=r(e),l=o.length;l--;){var c=o[t?l:++a];if(n(s[c],c,s)===!1)break}return e}}var qfe=Gfe,Kfe=qfe,Yfe=Kfe(),Xfe=Yfe,Jfe=Xfe,Zfe=dj;function Qfe(t,e){return t&&Jfe(t,e,Zfe)}var nU=Qfe,ehe=yy;function the(t,e){return function(n,r){if(n==null)return n;if(!ehe(n))return t(n,r);for(var a=n.length,s=e?a:-1,o=Object(n);(e?s--:++se||s&&o&&c&&!l&&!u||r&&o&&c||!n&&c||!a)return 1;if(!r&&!s&&!u&&t=l)return c;var u=n[r];return c*(u=="desc"?-1:1)}}return t.index-e.index}var mhe=phe,dS=q5,ghe=K5,xhe=zu,yhe=rU,vhe=uhe,bhe=U7,whe=mhe,khe=mm,jhe=Ks;function She(t,e,n){e.length?e=dS(e,function(s){return jhe(s)?function(o){return ghe(o,s.length===1?s[0]:s)}:s}):e=[khe];var r=-1;e=dS(e,bhe(xhe));var a=yhe(t,function(s,o,l){var c=dS(e,function(u){return u(s)});return{criteria:c,index:++r,value:s}});return vhe(a,function(s,o){return whe(s,o,n)})}var _he=She;function Nhe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}var Che=Nhe,Ehe=Che,P4=Math.max;function Ahe(t,e,n){return e=P4(e===void 0?t.length-1:e,0),function(){for(var r=arguments,a=-1,s=P4(r.length-e,0),o=Array(s);++a0){if(++e>=Fhe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Vhe=Uhe,Whe=Lhe,Hhe=Vhe,Ghe=Hhe(Whe),qhe=Ghe,Khe=mm,Yhe=Ohe,Xhe=qhe;function Jhe(t,e){return Xhe(Yhe(t,e,Khe),t+"")}var Zhe=Jhe,Qhe=V5,epe=yy,tpe=s3,npe=Bu;function rpe(t,e,n){if(!npe(n))return!1;var r=typeof e;return(r=="number"?epe(n)&&tpe(e,n.length):r=="string"&&e in n)?Qhe(n[e],t):!1}var hj=rpe,ape=tU,spe=_he,ipe=Zhe,M4=hj,ope=ipe(function(t,e){if(t==null)return[];var n=e.length;return n>1&&M4(t,e[0],e[1])?e=[]:n>2&&M4(e[0],e[1],e[2])&&(e=[e[0]]),spe(t,ape(e,1),[])}),lpe=ope;const c3=Nn(lpe);function n0(t){"@babel/helpers - typeof";return n0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n0(t)}function qC(){return qC=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.x),"".concat(ig,"-left"),$e(n)&&e&&$e(e.x)&&n=e.y),"".concat(ig,"-top"),$e(r)&&e&&$e(e.y)&&rx?Math.max(d,c[r]):Math.max(f,c[r])}function jpe(t){var e=t.translateX,n=t.translateY,r=t.useTranslate3d;return{transform:r?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function Spe(t){var e=t.allowEscapeViewBox,n=t.coordinate,r=t.offsetTopLeft,a=t.position,s=t.reverseDirection,o=t.tooltipBox,l=t.useTranslate3d,c=t.viewBox,u,d,f;return o.height>0&&o.width>0&&n?(d=$4({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),f=$4({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),u=jpe({translateX:d,translateY:f,useTranslate3d:l})):u=wpe,{cssProperties:u,cssClasses:kpe({translateX:d,translateY:f,coordinate:n})}}function hp(t){"@babel/helpers - typeof";return hp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hp(t)}function L4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function F4(t){for(var e=1;eB4||Math.abs(r.height-this.state.lastBoundingBox.height)>B4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,o=a.allowEscapeViewBox,l=a.animationDuration,c=a.animationEasing,u=a.children,d=a.coordinate,f=a.hasPayload,h=a.isAnimationActive,p=a.offset,m=a.position,x=a.reverseDirection,v=a.useTranslate3d,b=a.viewBox,y=a.wrapperStyle,w=Spe({allowEscapeViewBox:o,coordinate:d,offsetTopLeft:p,position:m,reverseDirection:x,tooltipBox:this.state.lastBoundingBox,useTranslate3d:v,viewBox:b}),j=w.cssClasses,k=w.cssProperties,S=F4(F4({transition:h&&s?"transform ".concat(l,"ms ").concat(c):void 0},k),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&f?"visible":"hidden",position:"absolute",top:0,left:0},y);return H.createElement("div",{tabIndex:-1,className:j,style:S,ref:function(C){r.wrapperNode=C}},u)}}])}(g.PureComponent),Mpe=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Uu={isSsr:Mpe()};function pp(t){"@babel/helpers - typeof";return pp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pp(t)}function z4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function U4(t){for(var e=1;e0;return H.createElement(Rpe,{allowEscapeViewBox:o,animationDuration:l,animationEasing:c,isAnimationActive:h,active:s,coordinate:d,hasPayload:S,offset:p,position:v,reverseDirection:b,useTranslate3d:y,viewBox:w,wrapperStyle:j},Wpe(u,U4(U4({},this.props),{},{payload:k})))}}])}(g.PureComponent);u3(xa,"displayName","Tooltip");u3(xa,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Uu.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Hpe=kl,Gpe=function(){return Hpe.Date.now()},qpe=Gpe,Kpe=/\s/;function Ype(t){for(var e=t.length;e--&&Kpe.test(t.charAt(e)););return e}var Xpe=Ype,Jpe=Xpe,Zpe=/^\s+/;function Qpe(t){return t&&t.slice(0,Jpe(t)+1).replace(Zpe,"")}var eme=Qpe,tme=eme,V4=Bu,nme=om,W4=NaN,rme=/^[-+]0x[0-9a-f]+$/i,ame=/^0b[01]+$/i,sme=/^0o[0-7]+$/i,ime=parseInt;function ome(t){if(typeof t=="number")return t;if(nme(t))return W4;if(V4(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=V4(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=tme(t);var n=ame.test(t);return n||sme.test(t)?ime(t.slice(2),n?2:8):rme.test(t)?W4:+t}var cU=ome,lme=Bu,hS=qpe,H4=cU,cme="Expected a function",ume=Math.max,dme=Math.min;function fme(t,e,n){var r,a,s,o,l,c,u=0,d=!1,f=!1,h=!0;if(typeof t!="function")throw new TypeError(cme);e=H4(e)||0,lme(n)&&(d=!!n.leading,f="maxWait"in n,s=f?ume(H4(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h);function p(S){var _=r,C=a;return r=a=void 0,u=S,o=t.apply(C,_),o}function m(S){return u=S,l=setTimeout(b,e),d?p(S):o}function x(S){var _=S-c,C=S-u,E=e-_;return f?dme(E,s-C):E}function v(S){var _=S-c,C=S-u;return c===void 0||_>=e||_<0||f&&C>=s}function b(){var S=hS();if(v(S))return y(S);l=setTimeout(b,x(S))}function y(S){return l=void 0,h&&r?p(S):(r=a=void 0,o)}function w(){l!==void 0&&clearTimeout(l),u=0,r=c=a=l=void 0}function j(){return l===void 0?o:y(hS())}function k(){var S=hS(),_=v(S);if(r=arguments,a=this,c=S,_){if(l===void 0)return m(c);if(f)return clearTimeout(l),l=setTimeout(b,e),p(c)}return l===void 0&&(l=setTimeout(b,e)),o}return k.cancel=w,k.flush=j,k}var hme=fme,pme=hme,mme=Bu,gme="Expected a function";function xme(t,e,n){var r=!0,a=!0;if(typeof t!="function")throw new TypeError(gme);return mme(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),pme(t,e,{leading:r,maxWait:e,trailing:a})}var yme=xme;const uU=Nn(yme);function a0(t){"@babel/helpers - typeof";return a0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a0(t)}function G4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Mv(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(T=uU(T,x,{trailing:!0,leading:!1}));var D=new ResizeObserver(T),L=k.current.getBoundingClientRect(),X=L.width,J=L.height;return R(X,J),D.observe(k.current),function(){D.disconnect()}},[R,x]);var A=g.useMemo(function(){var T=E.containerWidth,D=E.containerHeight;if(T<0||D<0)return null;Zl(vd(o)||vd(c),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,o,c),Zl(!n||n>0,"The aspect(%s) must be greater than zero.",n);var L=vd(o)?T:o,X=vd(c)?D:c;n&&n>0&&(L?X=L/n:X&&(L=X*n),h&&X>h&&(X=h)),Zl(L>0||X>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,L,X,o,c,d,f,n);var J=!Array.isArray(p)&&Jl(p.type).endsWith("Chart");return H.Children.map(p,function(U){return H.isValidElement(U)?g.cloneElement(U,Mv({width:L,height:X},J?{style:Mv({height:"100%",width:"100%",maxHeight:X,maxWidth:L},U.props.style)}:{})):U})},[n,p,c,h,f,d,E,o]);return H.createElement("div",{id:v?"".concat(v):void 0,className:Gt("recharts-responsive-container",b),style:Mv(Mv({},j),{},{width:o,height:c,minWidth:d,minHeight:f,maxHeight:h}),ref:k},A)}),vy=function(e){return null};vy.displayName="Cell";function s0(t){"@babel/helpers - typeof";return s0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s0(t)}function K4(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function JC(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Uu.isSsr)return{width:0,height:0};var r=Pme(n),a=JSON.stringify({text:e,copyStyle:r});if($f.widthCache[a])return $f.widthCache[a];try{var s=document.getElementById(Y4);s||(s=document.createElement("span"),s.setAttribute("id",Y4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var o=JC(JC({},Tme),r);Object.assign(s.style,o),s.textContent="".concat(e);var l=s.getBoundingClientRect(),c={width:l.width,height:l.height};return $f.widthCache[a]=c,++$f.cacheCount>Ome&&($f.cacheCount=0,$f.widthCache={}),c}catch{return{width:0,height:0}}},Rme=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function i0(t){"@babel/helpers - typeof";return i0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i0(t)}function Z1(t,e){return $me(t)||Ime(t,e)||Dme(t,e)||Mme()}function Mme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dme(t,e){if(t){if(typeof t=="string")return X4(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X4(t,e)}}function X4(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Jme(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function nD(t,e){return tge(t)||ege(t,e)||Qme(t,e)||Zme()}function Zme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qme(t,e){if(t){if(typeof t=="string")return rD(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rD(t,e)}}function rD(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[];return L.reduce(function(X,J){var U=J.word,Y=J.width,W=X[X.length-1];if(W&&(a==null||s||W.width+Y+rJ.width?X:J})};if(!d)return p;for(var x="…",v=function(L){var X=f.slice(0,L),J=pU({breakAll:u,style:c,children:X+x}).wordsWithComputedWidth,U=h(J),Y=U.length>o||m(U).width>Number(a);return[Y,U]},b=0,y=f.length-1,w=0,j;b<=y&&w<=f.length-1;){var k=Math.floor((b+y)/2),S=k-1,_=v(S),C=nD(_,2),E=C[0],P=C[1],R=v(k),A=nD(R,1),T=A[0];if(!E&&!T&&(b=k+1),E&&T&&(y=k-1),!E&&T){j=P;break}w++}return j||p},aD=function(e){var n=_t(e)?[]:e.toString().split(hU);return[{words:n}]},rge=function(e){var n=e.width,r=e.scaleToFit,a=e.children,s=e.style,o=e.breakAll,l=e.maxLines;if((n||r)&&!Uu.isSsr){var c,u,d=pU({breakAll:o,children:a,style:s});if(d){var f=d.wordsWithComputedWidth,h=d.spaceWidth;c=f,u=h}else return aD(a);return nge({breakAll:o,children:a,maxLines:l,style:s},c,u,n,r)}return aD(a)},sD="#808080",Q1=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.lineHeight,l=o===void 0?"1em":o,c=e.capHeight,u=c===void 0?"0.71em":c,d=e.scaleToFit,f=d===void 0?!1:d,h=e.textAnchor,p=h===void 0?"start":h,m=e.verticalAnchor,x=m===void 0?"end":m,v=e.fill,b=v===void 0?sD:v,y=tD(e,Yme),w=g.useMemo(function(){return rge({breakAll:y.breakAll,children:y.children,maxLines:y.maxLines,scaleToFit:f,style:y.style,width:y.width})},[y.breakAll,y.children,y.maxLines,f,y.style,y.width]),j=y.dx,k=y.dy,S=y.angle,_=y.className,C=y.breakAll,E=tD(y,Xme);if(!ea(r)||!ea(s))return null;var P=r+($e(j)?j:0),R=s+($e(k)?k:0),A;switch(x){case"start":A=pS("calc(".concat(u,")"));break;case"middle":A=pS("calc(".concat((w.length-1)/2," * -").concat(l," + (").concat(u," / 2))"));break;default:A=pS("calc(".concat(w.length-1," * -").concat(l,")"));break}var T=[];if(f){var D=w[0].width,L=y.width;T.push("scale(".concat(($e(L)?L/D:1)/D,")"))}return S&&T.push("rotate(".concat(S,", ").concat(P,", ").concat(R,")")),T.length&&(E.transform=T.join(" ")),H.createElement("text",ZC({},Ct(E,!0),{x:P,y:R,className:Gt("recharts-text",_),textAnchor:p,fill:b.includes("url")?sD:b}),w.map(function(X,J){var U=X.words.join(C?"":" ");return H.createElement("tspan",{x:P,dy:J===0?A:l,key:"".concat(U,"-").concat(J)},U)}))};function gu(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function age(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function d3(t){let e,n,r;t.length!==2?(e=gu,n=(l,c)=>gu(t(l),c),r=(l,c)=>t(l)-c):(e=t===gu||t===age?t:sge,n=t,r=t);function a(l,c,u=0,d=l.length){if(u>>1;n(l[f],c)<0?u=f+1:d=f}while(u>>1;n(l[f],c)<=0?u=f+1:d=f}while(uu&&r(l[f-1],c)>-r(l[f],c)?f-1:f}return{left:a,center:o,right:s}}function sge(){return 0}function mU(t){return t===null?NaN:+t}function*ige(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const oge=d3(gu),by=oge.right;d3(mU).center;class iD extends Map{constructor(e,n=uge){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,a]of e)this.set(r,a)}get(e){return super.get(oD(this,e))}has(e){return super.has(oD(this,e))}set(e,n){return super.set(lge(this,e),n)}delete(e){return super.delete(cge(this,e))}}function oD({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function lge({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function cge({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function uge(t){return t!==null&&typeof t=="object"?t.valueOf():t}function dge(t=gu){if(t===gu)return gU;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function gU(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const fge=Math.sqrt(50),hge=Math.sqrt(10),pge=Math.sqrt(2);function ew(t,e,n){const r=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),o=s>=fge?10:s>=hge?5:s>=pge?2:1;let l,c,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(t*u),c=Math.round(e*u),l/ue&&--c,u=-u):(u=Math.pow(10,a)*o,l=Math.round(t/u),c=Math.round(e/u),l*ue&&--c),c0))return[];if(t===e)return[t];const r=e=a))return[];const l=s-a+1,c=new Array(l);if(r)if(o<0)for(let u=0;u=r)&&(n=r);return n}function cD(t,e){let n;for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function xU(t,e,n=0,r=1/0,a){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(a=a===void 0?gU:dge(a);r>n;){if(r-n>600){const c=r-n+1,u=e-n+1,d=Math.log(c),f=.5*Math.exp(2*d/3),h=.5*Math.sqrt(d*f*(c-f)/c)*(u-c/2<0?-1:1),p=Math.max(n,Math.floor(e-u*f/c+h)),m=Math.min(r,Math.floor(e+(c-u)*f/c+h));xU(t,e,p,m,a)}const s=t[e];let o=n,l=r;for(og(t,n,e),a(t[r],s)>0&&og(t,n,r);o0;)--l}a(t[n],s)===0?og(t,n,l):(++l,og(t,l,r)),l<=e&&(n=l+1),e<=l&&(r=l-1)}return t}function og(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function mge(t,e,n){if(t=Float64Array.from(ige(t)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return cD(t);if(e>=1)return lD(t);var r,a=(r-1)*e,s=Math.floor(a),o=lD(xU(t,s).subarray(0,s+1)),l=cD(t.subarray(s+1));return o+(l-o)*(a-s)}}function gge(t,e,n=mU){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,a=(r-1)*e,s=Math.floor(a),o=+n(t[s],s,t),l=+n(t[s+1],s+1,t);return o+(l-o)*(a-s)}}function xge(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((e-t)/n))|0,s=new Array(a);++r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Iv(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Iv(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=vge.exec(t))?new Is(e[1],e[2],e[3],1):(e=bge.exec(t))?new Is(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=wge.exec(t))?Iv(e[1],e[2],e[3],e[4]):(e=kge.exec(t))?Iv(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=jge.exec(t))?gD(e[1],e[2]/100,e[3]/100,1):(e=Sge.exec(t))?gD(e[1],e[2]/100,e[3]/100,e[4]):uD.hasOwnProperty(t)?hD(uD[t]):t==="transparent"?new Is(NaN,NaN,NaN,0):null}function hD(t){return new Is(t>>16&255,t>>8&255,t&255,1)}function Iv(t,e,n,r){return r<=0&&(t=e=n=NaN),new Is(t,e,n,r)}function Cge(t){return t instanceof wy||(t=u0(t)),t?(t=t.rgb(),new Is(t.r,t.g,t.b,t.opacity)):new Is}function rE(t,e,n,r){return arguments.length===1?Cge(t):new Is(t,e,n,r??1)}function Is(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}h3(Is,rE,vU(wy,{brighter(t){return t=t==null?tw:Math.pow(tw,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?l0:Math.pow(l0,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Is(Dd(this.r),Dd(this.g),Dd(this.b),nw(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:pD,formatHex:pD,formatHex8:Ege,formatRgb:mD,toString:mD}));function pD(){return`#${bd(this.r)}${bd(this.g)}${bd(this.b)}`}function Ege(){return`#${bd(this.r)}${bd(this.g)}${bd(this.b)}${bd((isNaN(this.opacity)?1:this.opacity)*255)}`}function mD(){const t=nw(this.opacity);return`${t===1?"rgb(":"rgba("}${Dd(this.r)}, ${Dd(this.g)}, ${Dd(this.b)}${t===1?")":`, ${t})`}`}function nw(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Dd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function bd(t){return t=Dd(t),(t<16?"0":"")+t.toString(16)}function gD(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ho(t,e,n,r)}function bU(t){if(t instanceof ho)return new ho(t.h,t.s,t.l,t.opacity);if(t instanceof wy||(t=u0(t)),!t)return new ho;if(t instanceof ho)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,l=s-a,c=(s+a)/2;return l?(e===s?o=(n-r)/l+(n0&&c<1?0:o,new ho(o,l,c,t.opacity)}function Age(t,e,n,r){return arguments.length===1?bU(t):new ho(t,e,n,r??1)}function ho(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}h3(ho,Age,vU(wy,{brighter(t){return t=t==null?tw:Math.pow(tw,t),new ho(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?l0:Math.pow(l0,t),new ho(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new Is(mS(t>=240?t-240:t+120,a,r),mS(t,a,r),mS(t<120?t+240:t-120,a,r),this.opacity)},clamp(){return new ho(xD(this.h),$v(this.s),$v(this.l),nw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=nw(this.opacity);return`${t===1?"hsl(":"hsla("}${xD(this.h)}, ${$v(this.s)*100}%, ${$v(this.l)*100}%${t===1?")":`, ${t})`}`}}));function xD(t){return t=(t||0)%360,t<0?t+360:t}function $v(t){return Math.max(0,Math.min(1,t||0))}function mS(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const p3=t=>()=>t;function Oge(t,e){return function(n){return t+n*e}}function Tge(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Pge(t){return(t=+t)==1?wU:function(e,n){return n-e?Tge(e,n,t):p3(isNaN(e)?n:e)}}function wU(t,e){var n=e-t;return n?Oge(t,n):p3(isNaN(t)?e:t)}const yD=function t(e){var n=Pge(e);function r(a,s){var o=n((a=rE(a)).r,(s=rE(s)).r),l=n(a.g,s.g),c=n(a.b,s.b),u=wU(a.opacity,s.opacity);return function(d){return a.r=o(d),a.g=l(d),a.b=c(d),a.opacity=u(d),a+""}}return r.gamma=t,r}(1);function Rge(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),a;return function(s){for(a=0;an&&(s=e.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(r=r[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,c.push({i:o,x:rw(r,a)})),n=gS.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Wge(t,e,n){var r=t[0],a=t[1],s=e[0],o=e[1];return a2?Hge:Wge,c=u=null,f}function f(h){return h==null||isNaN(h=+h)?s:(c||(c=l(t.map(r),e,n)))(r(o(h)))}return f.invert=function(h){return o(a((u||(u=l(e,t.map(r),rw)))(h)))},f.domain=function(h){return arguments.length?(t=Array.from(h,aw),d()):t.slice()},f.range=function(h){return arguments.length?(e=Array.from(h),d()):e.slice()},f.rangeRound=function(h){return e=Array.from(h),n=m3,d()},f.clamp=function(h){return arguments.length?(o=h?!0:xs,d()):o!==xs},f.interpolate=function(h){return arguments.length?(n=h,d()):n},f.unknown=function(h){return arguments.length?(s=h,f):s},function(h,p){return r=h,a=p,d()}}function g3(){return pj()(xs,xs)}function Gge(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function sw(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function mp(t){return t=sw(Math.abs(t)),t?t[1]:NaN}function qge(t,e){return function(n,r){for(var a=n.length,s=[],o=0,l=t[0],c=0;a>0&&l>0&&(c+l+1>r&&(l=Math.max(1,r-c)),s.push(n.substring(a-=l,a+l)),!((c+=l+1)>r));)l=t[o=(o+1)%t.length];return s.reverse().join(e)}}function Kge(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Yge=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function d0(t){if(!(e=Yge.exec(t)))throw new Error("invalid format: "+t);var e;return new x3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}d0.prototype=x3.prototype;function x3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}x3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Xge(t){e:for(var e=t.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(a+1):t}var iw;function Jge(t,e){var n=sw(t,e);if(!n)return iw=void 0,t.toPrecision(e);var r=n[0],a=n[1],s=a-(iw=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=r.length;return s===o?r:s>o?r+new Array(s-o+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+sw(t,Math.max(0,e+s-1))[0]}function bD(t,e){var n=sw(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const wD={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Gge,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>bD(t*100,e),r:bD,s:Jge,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function kD(t){return t}var jD=Array.prototype.map,SD=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Zge(t){var e=t.grouping===void 0||t.thousands===void 0?kD:qge(jD.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",a=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?kD:Kge(jD.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(f,h){f=d0(f);var p=f.fill,m=f.align,x=f.sign,v=f.symbol,b=f.zero,y=f.width,w=f.comma,j=f.precision,k=f.trim,S=f.type;S==="n"?(w=!0,S="g"):wD[S]||(j===void 0&&(j=12),k=!0,S="g"),(b||p==="0"&&m==="=")&&(b=!0,p="0",m="=");var _=(h&&h.prefix!==void 0?h.prefix:"")+(v==="$"?n:v==="#"&&/[boxX]/.test(S)?"0"+S.toLowerCase():""),C=(v==="$"?r:/[%p]/.test(S)?o:"")+(h&&h.suffix!==void 0?h.suffix:""),E=wD[S],P=/[defgprs%]/.test(S);j=j===void 0?6:/[gprs]/.test(S)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function R(A){var T=_,D=C,L,X,J;if(S==="c")D=E(A)+D,A="";else{A=+A;var U=A<0||1/A<0;if(A=isNaN(A)?c:E(Math.abs(A),j),k&&(A=Xge(A)),U&&+A==0&&x!=="+"&&(U=!1),T=(U?x==="("?x:l:x==="-"||x==="("?"":x)+T,D=(S==="s"&&!isNaN(A)&&iw!==void 0?SD[8+iw/3]:"")+D+(U&&x==="("?")":""),P){for(L=-1,X=A.length;++LJ||J>57){D=(J===46?a+A.slice(L+1):A.slice(L))+D,A=A.slice(0,L);break}}}w&&!b&&(A=e(A,1/0));var Y=T.length+A.length+D.length,W=Y>1)+T+A+D+W.slice(Y);break;default:A=W+T+A+D;break}return s(A)}return R.toString=function(){return f+""},R}function d(f,h){var p=Math.max(-8,Math.min(8,Math.floor(mp(h)/3)))*3,m=Math.pow(10,-p),x=u((f=d0(f),f.type="f",f),{suffix:SD[8+p/3]});return function(v){return x(m*v)}}return{format:u,formatPrefix:d}}var Lv,y3,kU;Qge({thousands:",",grouping:[3],currency:["$",""]});function Qge(t){return Lv=Zge(t),y3=Lv.format,kU=Lv.formatPrefix,Lv}function exe(t){return Math.max(0,-mp(Math.abs(t)))}function txe(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(mp(e)/3)))*3-mp(Math.abs(t)))}function nxe(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,mp(e)-mp(t))+1}function jU(t,e,n,r){var a=tE(t,e,n),s;switch(r=d0(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(s=txe(a,o))&&(r.precision=s),kU(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=nxe(a,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=exe(a))&&(r.precision=s-(r.type==="%")*2);break}}return y3(r)}function Vu(t){var e=t.domain;return t.ticks=function(n){var r=e();return QC(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var a=e();return jU(a[0],a[a.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),a=0,s=r.length-1,o=r[a],l=r[s],c,u,d=10;for(l0;){if(u=eE(o,l,n),u===c)return r[a]=o,r[s]=l,e(r);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return t},t}function ow(){var t=g3();return t.copy=function(){return ky(t,ow())},Hi.apply(t,arguments),Vu(t)}function SU(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,aw),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return SU(t).unknown(e)},t=arguments.length?Array.from(t,aw):[0,1],Vu(n)}function _U(t,e){t=t.slice();var n=0,r=t.length-1,a=t[n],s=t[r],o;return sMath.pow(t,e)}function oxe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function CD(t){return(e,n)=>-t(-e,n)}function v3(t){const e=t(_D,ND),n=e.domain;let r=10,a,s;function o(){return a=oxe(r),s=ixe(r),n()[0]<0?(a=CD(a),s=CD(s),t(rxe,axe)):t(_D,ND),e}return e.base=function(l){return arguments.length?(r=+l,o()):r},e.domain=function(l){return arguments.length?(n(l),o()):n()},e.ticks=l=>{const c=n();let u=c[0],d=c[c.length-1];const f=d0){for(;h<=p;++h)for(m=1;md)break;b.push(x)}}else for(;h<=p;++h)for(m=r-1;m>=1;--m)if(x=h>0?m/s(-h):m*s(h),!(xd)break;b.push(x)}b.length*2{if(l==null&&(l=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=d0(c)).precision==null&&(c.trim=!0),c=y3(c)),l===1/0)return c;const u=Math.max(1,r*l/e.ticks().length);return d=>{let f=d/s(Math.round(a(d)));return f*rn(_U(n(),{floor:l=>s(Math.floor(a(l))),ceil:l=>s(Math.ceil(a(l)))})),e}function NU(){const t=v3(pj()).domain([1,10]);return t.copy=()=>ky(t,NU()).base(t.base()),Hi.apply(t,arguments),t}function ED(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function AD(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function b3(t){var e=1,n=t(ED(e),AD(e));return n.constant=function(r){return arguments.length?t(ED(e=+r),AD(e)):e},Vu(n)}function CU(){var t=b3(pj());return t.copy=function(){return ky(t,CU()).constant(t.constant())},Hi.apply(t,arguments)}function OD(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function lxe(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function cxe(t){return t<0?-t*t:t*t}function w3(t){var e=t(xs,xs),n=1;function r(){return n===1?t(xs,xs):n===.5?t(lxe,cxe):t(OD(n),OD(1/n))}return e.exponent=function(a){return arguments.length?(n=+a,r()):n},Vu(e)}function k3(){var t=w3(pj());return t.copy=function(){return ky(t,k3()).exponent(t.exponent())},Hi.apply(t,arguments),t}function uxe(){return k3.apply(null,arguments).exponent(.5)}function TD(t){return Math.sign(t)*t*t}function dxe(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function EU(){var t=g3(),e=[0,1],n=!1,r;function a(s){var o=dxe(t(s));return isNaN(o)?r:n?Math.round(o):o}return a.invert=function(s){return t.invert(TD(s))},a.domain=function(s){return arguments.length?(t.domain(s),a):t.domain()},a.range=function(s){return arguments.length?(t.range((e=Array.from(s,aw)).map(TD)),a):e.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(t.clamp(s),a):t.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return EU(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Hi.apply(a,arguments),Vu(a)}function AU(){var t=[],e=[],n=[],r;function a(){var o=0,l=Math.max(1,e.length);for(n=new Array(l-1);++o0?n[l-1]:t[0],l=n?[r[n-1],e]:[r[u-1],r[u]]},o.unknown=function(c){return arguments.length&&(s=c),o},o.thresholds=function(){return r.slice()},o.copy=function(){return OU().domain([t,e]).range(a).unknown(s)},Hi.apply(Vu(o),arguments)}function TU(){var t=[.5],e=[0,1],n,r=1;function a(s){return s!=null&&s<=s?e[by(t,s,0,r)]:n}return a.domain=function(s){return arguments.length?(t=Array.from(s),r=Math.min(t.length,e.length-1),a):t.slice()},a.range=function(s){return arguments.length?(e=Array.from(s),r=Math.min(t.length,e.length-1),a):e.slice()},a.invertExtent=function(s){var o=e.indexOf(s);return[t[o-1],t[o]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return TU().domain(t).range(e).unknown(n)},Hi.apply(a,arguments)}const xS=new Date,yS=new Date;function sa(t,e,n,r){function a(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(t(s=new Date(+s)),s),a.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),a.round=s=>{const o=a(s),l=a.ceil(s);return s-o(e(s=new Date(+s),o==null?1:Math.floor(o)),s),a.range=(s,o,l)=>{const c=[];if(s=a.ceil(s),l=l==null?1:Math.floor(l),!(s0))return c;let u;do c.push(u=new Date(+s)),e(s,l),t(s);while(usa(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;e(o,-1),!s(o););else for(;--l>=0;)for(;e(o,1),!s(o););}),n&&(a.count=(s,o)=>(xS.setTime(+s),yS.setTime(+o),t(xS),t(yS),Math.floor(n(xS,yS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?o=>r(o)%s===0:o=>a.count(0,o)%s===0):a)),a}const lw=sa(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);lw.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?sa(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):lw);lw.range;const Hl=1e3,Mi=Hl*60,Gl=Mi*60,lc=Gl*24,j3=lc*7,PD=lc*30,vS=lc*365,wd=sa(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Hl)},(t,e)=>(e-t)/Hl,t=>t.getUTCSeconds());wd.range;const S3=sa(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hl)},(t,e)=>{t.setTime(+t+e*Mi)},(t,e)=>(e-t)/Mi,t=>t.getMinutes());S3.range;const _3=sa(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Mi)},(t,e)=>(e-t)/Mi,t=>t.getUTCMinutes());_3.range;const N3=sa(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hl-t.getMinutes()*Mi)},(t,e)=>{t.setTime(+t+e*Gl)},(t,e)=>(e-t)/Gl,t=>t.getHours());N3.range;const C3=sa(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Gl)},(t,e)=>(e-t)/Gl,t=>t.getUTCHours());C3.range;const jy=sa(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Mi)/lc,t=>t.getDate()-1);jy.range;const mj=sa(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/lc,t=>t.getUTCDate()-1);mj.range;const PU=sa(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/lc,t=>Math.floor(t/lc));PU.range;function bf(t){return sa(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Mi)/j3)}const gj=bf(0),cw=bf(1),fxe=bf(2),hxe=bf(3),gp=bf(4),pxe=bf(5),mxe=bf(6);gj.range;cw.range;fxe.range;hxe.range;gp.range;pxe.range;mxe.range;function wf(t){return sa(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/j3)}const xj=wf(0),uw=wf(1),gxe=wf(2),xxe=wf(3),xp=wf(4),yxe=wf(5),vxe=wf(6);xj.range;uw.range;gxe.range;xxe.range;xp.range;yxe.range;vxe.range;const E3=sa(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());E3.range;const A3=sa(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());A3.range;const cc=sa(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());cc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sa(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});cc.range;const uc=sa(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());uc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sa(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});uc.range;function RU(t,e,n,r,a,s){const o=[[wd,1,Hl],[wd,5,5*Hl],[wd,15,15*Hl],[wd,30,30*Hl],[s,1,Mi],[s,5,5*Mi],[s,15,15*Mi],[s,30,30*Mi],[a,1,Gl],[a,3,3*Gl],[a,6,6*Gl],[a,12,12*Gl],[r,1,lc],[r,2,2*lc],[n,1,j3],[e,1,PD],[e,3,3*PD],[t,1,vS]];function l(u,d,f){const h=dv).right(o,h);if(p===o.length)return t.every(tE(u/vS,d/vS,f));if(p===0)return lw.every(Math.max(tE(u,d,f),1));const[m,x]=o[h/o[p-1][2]53)return null;"w"in Q||(Q.w=1),"Z"in Q?(ne=wS(lg(Q.y,0,1)),ce=ne.getUTCDay(),ne=ce>4||ce===0?uw.ceil(ne):uw(ne),ne=mj.offset(ne,(Q.V-1)*7),Q.y=ne.getUTCFullYear(),Q.m=ne.getUTCMonth(),Q.d=ne.getUTCDate()+(Q.w+6)%7):(ne=bS(lg(Q.y,0,1)),ce=ne.getDay(),ne=ce>4||ce===0?cw.ceil(ne):cw(ne),ne=jy.offset(ne,(Q.V-1)*7),Q.y=ne.getFullYear(),Q.m=ne.getMonth(),Q.d=ne.getDate()+(Q.w+6)%7)}else("W"in Q||"U"in Q)&&("w"in Q||(Q.w="u"in Q?Q.u%7:"W"in Q?1:0),ce="Z"in Q?wS(lg(Q.y,0,1)).getUTCDay():bS(lg(Q.y,0,1)).getDay(),Q.m=0,Q.d="W"in Q?(Q.w+6)%7+Q.W*7-(ce+5)%7:Q.w+Q.U*7-(ce+6)%7);return"Z"in Q?(Q.H+=Q.Z/100|0,Q.M+=Q.Z%100,wS(Q)):bS(Q)}}function C(ae,ue,de,Q){for(var fe=0,ne=ue.length,ce=de.length,he,be;fe=ce)return-1;if(he=ue.charCodeAt(fe++),he===37){if(he=ue.charAt(fe++),be=k[he in RD?ue.charAt(fe++):he],!be||(Q=be(ae,de,Q))<0)return-1}else if(he!=de.charCodeAt(Q++))return-1}return Q}function E(ae,ue,de){var Q=u.exec(ue.slice(de));return Q?(ae.p=d.get(Q[0].toLowerCase()),de+Q[0].length):-1}function P(ae,ue,de){var Q=p.exec(ue.slice(de));return Q?(ae.w=m.get(Q[0].toLowerCase()),de+Q[0].length):-1}function R(ae,ue,de){var Q=f.exec(ue.slice(de));return Q?(ae.w=h.get(Q[0].toLowerCase()),de+Q[0].length):-1}function A(ae,ue,de){var Q=b.exec(ue.slice(de));return Q?(ae.m=y.get(Q[0].toLowerCase()),de+Q[0].length):-1}function T(ae,ue,de){var Q=x.exec(ue.slice(de));return Q?(ae.m=v.get(Q[0].toLowerCase()),de+Q[0].length):-1}function D(ae,ue,de){return C(ae,e,ue,de)}function L(ae,ue,de){return C(ae,n,ue,de)}function X(ae,ue,de){return C(ae,r,ue,de)}function J(ae){return o[ae.getDay()]}function U(ae){return s[ae.getDay()]}function Y(ae){return c[ae.getMonth()]}function W(ae){return l[ae.getMonth()]}function G(ae){return a[+(ae.getHours()>=12)]}function I(ae){return 1+~~(ae.getMonth()/3)}function q(ae){return o[ae.getUTCDay()]}function M(ae){return s[ae.getUTCDay()]}function B(ae){return c[ae.getUTCMonth()]}function z(ae){return l[ae.getUTCMonth()]}function Z(ae){return a[+(ae.getUTCHours()>=12)]}function pe(ae){return 1+~~(ae.getUTCMonth()/3)}return{format:function(ae){var ue=S(ae+="",w);return ue.toString=function(){return ae},ue},parse:function(ae){var ue=_(ae+="",!1);return ue.toString=function(){return ae},ue},utcFormat:function(ae){var ue=S(ae+="",j);return ue.toString=function(){return ae},ue},utcParse:function(ae){var ue=_(ae+="",!0);return ue.toString=function(){return ae},ue}}}var RD={"-":"",_:" ",0:"0"},ka=/^\s*\d+/,_xe=/^%/,Nxe=/[\\^$*+?|[\]().{}]/g;function an(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",s=a.length;return r+(s[e.toLowerCase(),n]))}function Exe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Axe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Oxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Txe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Pxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function MD(t,e,n){var r=ka.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function DD(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Rxe(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Mxe(t,e,n){var r=ka.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Dxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function ID(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Ixe(t,e,n){var r=ka.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function $D(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function $xe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lxe(t,e,n){var r=ka.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Fxe(t,e,n){var r=ka.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Bxe(t,e,n){var r=ka.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function zxe(t,e,n){var r=_xe.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Uxe(t,e,n){var r=ka.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Vxe(t,e,n){var r=ka.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function LD(t,e){return an(t.getDate(),e,2)}function Wxe(t,e){return an(t.getHours(),e,2)}function Hxe(t,e){return an(t.getHours()%12||12,e,2)}function Gxe(t,e){return an(1+jy.count(cc(t),t),e,3)}function MU(t,e){return an(t.getMilliseconds(),e,3)}function qxe(t,e){return MU(t,e)+"000"}function Kxe(t,e){return an(t.getMonth()+1,e,2)}function Yxe(t,e){return an(t.getMinutes(),e,2)}function Xxe(t,e){return an(t.getSeconds(),e,2)}function Jxe(t){var e=t.getDay();return e===0?7:e}function Zxe(t,e){return an(gj.count(cc(t)-1,t),e,2)}function DU(t){var e=t.getDay();return e>=4||e===0?gp(t):gp.ceil(t)}function Qxe(t,e){return t=DU(t),an(gp.count(cc(t),t)+(cc(t).getDay()===4),e,2)}function e0e(t){return t.getDay()}function t0e(t,e){return an(cw.count(cc(t)-1,t),e,2)}function n0e(t,e){return an(t.getFullYear()%100,e,2)}function r0e(t,e){return t=DU(t),an(t.getFullYear()%100,e,2)}function a0e(t,e){return an(t.getFullYear()%1e4,e,4)}function s0e(t,e){var n=t.getDay();return t=n>=4||n===0?gp(t):gp.ceil(t),an(t.getFullYear()%1e4,e,4)}function i0e(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+an(e/60|0,"0",2)+an(e%60,"0",2)}function FD(t,e){return an(t.getUTCDate(),e,2)}function o0e(t,e){return an(t.getUTCHours(),e,2)}function l0e(t,e){return an(t.getUTCHours()%12||12,e,2)}function c0e(t,e){return an(1+mj.count(uc(t),t),e,3)}function IU(t,e){return an(t.getUTCMilliseconds(),e,3)}function u0e(t,e){return IU(t,e)+"000"}function d0e(t,e){return an(t.getUTCMonth()+1,e,2)}function f0e(t,e){return an(t.getUTCMinutes(),e,2)}function h0e(t,e){return an(t.getUTCSeconds(),e,2)}function p0e(t){var e=t.getUTCDay();return e===0?7:e}function m0e(t,e){return an(xj.count(uc(t)-1,t),e,2)}function $U(t){var e=t.getUTCDay();return e>=4||e===0?xp(t):xp.ceil(t)}function g0e(t,e){return t=$U(t),an(xp.count(uc(t),t)+(uc(t).getUTCDay()===4),e,2)}function x0e(t){return t.getUTCDay()}function y0e(t,e){return an(uw.count(uc(t)-1,t),e,2)}function v0e(t,e){return an(t.getUTCFullYear()%100,e,2)}function b0e(t,e){return t=$U(t),an(t.getUTCFullYear()%100,e,2)}function w0e(t,e){return an(t.getUTCFullYear()%1e4,e,4)}function k0e(t,e){var n=t.getUTCDay();return t=n>=4||n===0?xp(t):xp.ceil(t),an(t.getUTCFullYear()%1e4,e,4)}function j0e(){return"+0000"}function BD(){return"%"}function zD(t){return+t}function UD(t){return Math.floor(+t/1e3)}var Lf,LU,FU;S0e({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function S0e(t){return Lf=Sxe(t),LU=Lf.format,Lf.parse,FU=Lf.utcFormat,Lf.utcParse,Lf}function _0e(t){return new Date(t)}function N0e(t){return t instanceof Date?+t:+new Date(+t)}function O3(t,e,n,r,a,s,o,l,c,u){var d=g3(),f=d.invert,h=d.domain,p=u(".%L"),m=u(":%S"),x=u("%I:%M"),v=u("%I %p"),b=u("%a %d"),y=u("%b %d"),w=u("%B"),j=u("%Y");function k(S){return(c(S)e(a/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>mge(t,s/r))},n.copy=function(){return VU(e).domain(t)},kc.apply(n,arguments)}function vj(){var t=0,e=.5,n=1,r=1,a,s,o,l,c,u=xs,d,f=!1,h;function p(x){return isNaN(x=+x)?h:(x=.5+((x=+d(x))-s)*(r*xe}var M0e=R0e,D0e=qU,I0e=M0e,$0e=mm;function L0e(t){return t&&t.length?D0e(t,$0e,I0e):void 0}var F0e=L0e;const Yc=Nn(F0e);function B0e(t,e){return tt.e^s.s<0?1:-1;for(r=s.d.length,a=t.d.length,e=0,n=rt.d[e]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};tt.decimalPlaces=tt.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*Jn;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};tt.dividedBy=tt.div=function(t){return Ql(this,new this.constructor(t))};tt.dividedToIntegerBy=tt.idiv=function(t){var e=this,n=e.constructor;return Tn(Ql(e,new n(t),0,1),n.precision)};tt.equals=tt.eq=function(t){return!this.cmp(t)};tt.exponent=function(){return Wr(this)};tt.greaterThan=tt.gt=function(t){return this.cmp(t)>0};tt.greaterThanOrEqualTo=tt.gte=function(t){return this.cmp(t)>=0};tt.isInteger=tt.isint=function(){return this.e>this.d.length-2};tt.isNegative=tt.isneg=function(){return this.s<0};tt.isPositive=tt.ispos=function(){return this.s>0};tt.isZero=function(){return this.s===0};tt.lessThan=tt.lt=function(t){return this.cmp(t)<0};tt.lessThanOrEqualTo=tt.lte=function(t){return this.cmp(t)<1};tt.logarithm=tt.log=function(t){var e,n=this,r=n.constructor,a=r.precision,s=a+5;if(t===void 0)t=new r(10);else if(t=new r(t),t.s<1||t.eq(ui))throw Error(Vi+"NaN");if(n.s<1)throw Error(Vi+(n.s?"NaN":"-Infinity"));return n.eq(ui)?new r(0):(ar=!1,e=Ql(f0(n,s),f0(t,s),s),ar=!0,Tn(e,a))};tt.minus=tt.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?JU(e,t):YU(e,(t.s=-t.s,t))};tt.modulo=tt.mod=function(t){var e,n=this,r=n.constructor,a=r.precision;if(t=new r(t),!t.s)throw Error(Vi+"NaN");return n.s?(ar=!1,e=Ql(n,t,0,1).times(t),ar=!0,n.minus(e)):Tn(new r(n),a)};tt.naturalExponential=tt.exp=function(){return XU(this)};tt.naturalLogarithm=tt.ln=function(){return f0(this)};tt.negated=tt.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};tt.plus=tt.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?YU(e,t):JU(e,(t.s=-t.s,t))};tt.precision=tt.sd=function(t){var e,n,r,a=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Id+t);if(e=Wr(a)+1,r=a.d.length-1,n=r*Jn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return t&&e>n?e:n};tt.squareRoot=tt.sqrt=function(){var t,e,n,r,a,s,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(Vi+"NaN")}for(t=Wr(l),ar=!1,a=Math.sqrt(+l),a==0||a==1/0?(e=nl(l.d),(e.length+t)%2==0&&(e+="0"),a=Math.sqrt(e),t=ym((t+1)/2)-(t<0||t%2),a==1/0?e="5e"+t:(e=a.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new c(e)):r=new c(a.toString()),n=c.precision,a=o=n+3;;)if(s=r,r=s.plus(Ql(l,s,o+2)).times(.5),nl(s.d).slice(0,o)===(e=nl(r.d)).slice(0,o)){if(e=e.slice(o-3,o+1),a==o&&e=="4999"){if(Tn(s,n+1,0),s.times(s).eq(l)){r=s;break}}else if(e!="9999")break;o+=4}return ar=!0,Tn(r,n)};tt.times=tt.mul=function(t){var e,n,r,a,s,o,l,c,u,d=this,f=d.constructor,h=d.d,p=(t=new f(t)).d;if(!d.s||!t.s)return new f(0);for(t.s*=d.s,n=d.e+t.e,c=h.length,u=p.length,c=0;){for(e=0,a=c+r;a>r;)l=s[a]+p[r]*h[a-r-1]+e,s[a--]=l%pa|0,e=l/pa|0;s[a]=(s[a]+e)%pa|0}for(;!s[--o];)s.pop();return e?++n:s.shift(),t.d=s,t.e=n,ar?Tn(t,f.precision):t};tt.toDecimalPlaces=tt.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(yl(t,0,xm),e===void 0?e=r.rounding:yl(e,0,8),Tn(n,t+Wr(n)+1,e))};tt.toExponential=function(t,e){var n,r=this,a=r.constructor;return t===void 0?n=Qd(r,!0):(yl(t,0,xm),e===void 0?e=a.rounding:yl(e,0,8),r=Tn(new a(r),t+1,e),n=Qd(r,!0,t+1)),n};tt.toFixed=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?Qd(a):(yl(t,0,xm),e===void 0?e=s.rounding:yl(e,0,8),r=Tn(new s(a),t+Wr(a)+1,e),n=Qd(r.abs(),!1,t+Wr(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};tt.toInteger=tt.toint=function(){var t=this,e=t.constructor;return Tn(new e(t),Wr(t)+1,e.rounding)};tt.toNumber=function(){return+this};tt.toPower=tt.pow=function(t){var e,n,r,a,s,o,l=this,c=l.constructor,u=12,d=+(t=new c(t));if(!t.s)return new c(ui);if(l=new c(l),!l.s){if(t.s<1)throw Error(Vi+"Infinity");return l}if(l.eq(ui))return l;if(r=c.precision,t.eq(ui))return Tn(l,r);if(e=t.e,n=t.d.length-1,o=e>=n,s=l.s,o){if((n=d<0?-d:d)<=KU){for(a=new c(ui),e=Math.ceil(r/Jn+4),ar=!1;n%2&&(a=a.times(l),HD(a.d,e)),n=ym(n/2),n!==0;)l=l.times(l),HD(l.d,e);return ar=!0,t.s<0?new c(ui).div(a):Tn(a,r)}}else if(s<0)throw Error(Vi+"NaN");return s=s<0&&t.d[Math.max(e,n)]&1?-1:1,l.s=1,ar=!1,a=t.times(f0(l,r+u)),ar=!0,a=XU(a),a.s=s,a};tt.toPrecision=function(t,e){var n,r,a=this,s=a.constructor;return t===void 0?(n=Wr(a),r=Qd(a,n<=s.toExpNeg||n>=s.toExpPos)):(yl(t,1,xm),e===void 0?e=s.rounding:yl(e,0,8),a=Tn(new s(a),t,e),n=Wr(a),r=Qd(a,t<=n||n<=s.toExpNeg,t)),r};tt.toSignificantDigits=tt.tosd=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(yl(t,1,xm),e===void 0?e=r.rounding:yl(e,0,8)),Tn(new r(n),t,e)};tt.toString=tt.valueOf=tt.val=tt.toJSON=tt[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Wr(t),n=t.constructor;return Qd(t,e<=n.toExpNeg||e>=n.toExpPos)};function YU(t,e){var n,r,a,s,o,l,c,u,d=t.constructor,f=d.precision;if(!t.s||!e.s)return e.s||(e=new d(t)),ar?Tn(e,f):e;if(c=t.d,u=e.d,o=t.e,a=e.e,c=c.slice(),s=o-a,s){for(s<0?(r=c,s=-s,l=u.length):(r=u,a=o,l=c.length),o=Math.ceil(f/Jn),l=o>l?o+1:l+1,s>l&&(s=l,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(l=c.length,s=u.length,l-s<0&&(s=l,r=u,u=c,c=r),n=0;s;)n=(c[--s]=c[s]+u[s]+n)/pa|0,c[s]%=pa;for(n&&(c.unshift(n),++a),l=c.length;c[--l]==0;)c.pop();return e.d=c,e.e=a,ar?Tn(e,f):e}function yl(t,e,n){if(t!==~~t||tn)throw Error(Id+t)}function nl(t){var e,n,r,a=t.length-1,s="",o=t[0];if(a>0){for(s+=o,e=1;eo?1:-1;else for(l=c=0;la[l]?1:-1;break}return c}function n(r,a,s){for(var o=0;s--;)r[s]-=o,o=r[s]1;)r.shift()}return function(r,a,s,o){var l,c,u,d,f,h,p,m,x,v,b,y,w,j,k,S,_,C,E=r.constructor,P=r.s==a.s?1:-1,R=r.d,A=a.d;if(!r.s)return new E(r);if(!a.s)throw Error(Vi+"Division by zero");for(c=r.e-a.e,_=A.length,k=R.length,p=new E(P),m=p.d=[],u=0;A[u]==(R[u]||0);)++u;if(A[u]>(R[u]||0)&&--c,s==null?y=s=E.precision:o?y=s+(Wr(r)-Wr(a))+1:y=s,y<0)return new E(0);if(y=y/Jn+2|0,u=0,_==1)for(d=0,A=A[0],y++;(u1&&(A=t(A,d),R=t(R,d),_=A.length,k=R.length),j=_,x=R.slice(0,_),v=x.length;v<_;)x[v++]=0;C=A.slice(),C.unshift(0),S=A[0],A[1]>=pa/2&&++S;do d=0,l=e(A,x,_,v),l<0?(b=x[0],_!=v&&(b=b*pa+(x[1]||0)),d=b/S|0,d>1?(d>=pa&&(d=pa-1),f=t(A,d),h=f.length,v=x.length,l=e(f,x,h,v),l==1&&(d--,n(f,_16)throw Error(R3+Wr(t));if(!t.s)return new d(ui);for(ar=!1,l=f,o=new d(.03125);t.abs().gte(.1);)t=t.times(o),u+=5;for(r=Math.log(ud(2,u))/Math.LN10*2+5|0,l+=r,n=a=s=new d(ui),d.precision=l;;){if(a=Tn(a.times(t),l),n=n.times(++c),o=s.plus(Ql(a,n,l)),nl(o.d).slice(0,l)===nl(s.d).slice(0,l)){for(;u--;)s=Tn(s.times(s),l);return d.precision=f,e==null?(ar=!0,Tn(s,f)):s}s=o}}function Wr(t){for(var e=t.e*Jn,n=t.d[0];n>=10;n/=10)e++;return e}function kS(t,e,n){if(e>t.LN10.sd())throw ar=!0,n&&(t.precision=n),Error(Vi+"LN10 precision limit exceeded");return Tn(new t(t.LN10),e)}function Dc(t){for(var e="";t--;)e+="0";return e}function f0(t,e){var n,r,a,s,o,l,c,u,d,f=1,h=10,p=t,m=p.d,x=p.constructor,v=x.precision;if(p.s<1)throw Error(Vi+(p.s?"NaN":"-Infinity"));if(p.eq(ui))return new x(0);if(e==null?(ar=!1,u=v):u=e,p.eq(10))return e==null&&(ar=!0),kS(x,u);if(u+=h,x.precision=u,n=nl(m),r=n.charAt(0),s=Wr(p),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)p=p.times(t),n=nl(p.d),r=n.charAt(0),f++;s=Wr(p),r>1?(p=new x("0."+n),s++):p=new x(r+"."+n.slice(1))}else return c=kS(x,u+2,v).times(s+""),p=f0(new x(r+"."+n.slice(1)),u-h).plus(c),x.precision=v,e==null?(ar=!0,Tn(p,v)):p;for(l=o=p=Ql(p.minus(ui),p.plus(ui),u),d=Tn(p.times(p),u),a=3;;){if(o=Tn(o.times(d),u),c=l.plus(Ql(o,new x(a),u)),nl(c.d).slice(0,u)===nl(l.d).slice(0,u))return l=l.times(2),s!==0&&(l=l.plus(kS(x,u+2,v).times(s+""))),l=Ql(l,new x(f),u),x.precision=v,e==null?(ar=!0,Tn(l,v)):l;l=c,a+=2}}function WD(t,e){var n,r,a;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;)++r;for(a=e.length;e.charCodeAt(a-1)===48;)--a;if(e=e.slice(r,a),e){if(a-=r,n=n-r-1,t.e=ym(n/Jn),t.d=[],r=(n+1)%Jn,n<0&&(r+=Jn),rdw||t.e<-dw))throw Error(R3+n)}else t.s=0,t.e=0,t.d=[0];return t}function Tn(t,e,n){var r,a,s,o,l,c,u,d,f=t.d;for(o=1,s=f[0];s>=10;s/=10)o++;if(r=e-o,r<0)r+=Jn,a=e,u=f[d=0];else{if(d=Math.ceil((r+1)/Jn),s=f.length,d>=s)return t;for(u=s=f[d],o=1;s>=10;s/=10)o++;r%=Jn,a=r-Jn+o}if(n!==void 0&&(s=ud(10,o-a-1),l=u/s%10|0,c=e<0||f[d+1]!==void 0||u%s,c=n<4?(l||c)&&(n==0||n==(t.s<0?3:2)):l>5||l==5&&(n==4||c||n==6&&(r>0?a>0?u/ud(10,o-a):0:f[d-1])%10&1||n==(t.s<0?8:7))),e<1||!f[0])return c?(s=Wr(t),f.length=1,e=e-s-1,f[0]=ud(10,(Jn-e%Jn)%Jn),t.e=ym(-e/Jn)||0):(f.length=1,f[0]=t.e=t.s=0),t;if(r==0?(f.length=d,s=1,d--):(f.length=d+1,s=ud(10,Jn-r),f[d]=a>0?(u/ud(10,o-a)%ud(10,a)|0)*s:0),c)for(;;)if(d==0){(f[0]+=s)==pa&&(f[0]=1,++t.e);break}else{if(f[d]+=s,f[d]!=pa)break;f[d--]=0,s=1}for(r=f.length;f[--r]===0;)f.pop();if(ar&&(t.e>dw||t.e<-dw))throw Error(R3+Wr(t));return t}function JU(t,e){var n,r,a,s,o,l,c,u,d,f,h=t.constructor,p=h.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new h(t),ar?Tn(e,p):e;if(c=t.d,f=e.d,r=e.e,u=t.e,c=c.slice(),o=u-r,o){for(d=o<0,d?(n=c,o=-o,l=f.length):(n=f,r=u,l=c.length),a=Math.max(Math.ceil(p/Jn),l)+2,o>a&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for(a=c.length,l=f.length,d=a0;--a)c[l++]=0;for(a=f.length;a>o;){if(c[--a]0?s=s.charAt(0)+"."+s.slice(1)+Dc(r):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Dc(-a-1)+s,n&&(r=n-o)>0&&(s+=Dc(r))):a>=o?(s+=Dc(a+1-o),n&&(r=n-a-1)>0&&(s=s+"."+Dc(r))):((r=a+1)0&&(a+1===o&&(s+="."),s+=Dc(r))),t.s<0?"-"+s:s}function HD(t,e){if(t.length>e)return t.length=e,!0}function ZU(t){var e,n,r;function a(s){var o=this;if(!(o instanceof a))return new a(s);if(o.constructor=a,s instanceof a){o.s=s.s,o.e=s.e,o.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(Id+s);if(s>0)o.s=1;else if(s<0)s=-s,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(s===~~s&&s<1e7){o.e=0,o.d=[s];return}return WD(o,s.toString())}else if(typeof s!="string")throw Error(Id+s);if(s.charCodeAt(0)===45?(s=s.slice(1),o.s=-1):o.s=1,lye.test(s))WD(o,s);else throw Error(Id+s)}if(a.prototype=tt,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=ZU,a.config=a.set=cye,t===void 0&&(t={}),t)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=a[e+1]&&r<=a[e+2])this[n]=r;else throw Error(Id+n+": "+r);if((r=t[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(Id+n+": "+r);return this}var M3=ZU(oye);ui=new M3(1);const _n=M3;function uye(t){return pye(t)||hye(t)||fye(t)||dye()}function dye(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fye(t,e){if(t){if(typeof t=="string")return iE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iE(t,e)}}function hye(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function pye(t){if(Array.isArray(t))return iE(t)}function iE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,a):t(e-o,GD(function(){for(var l=arguments.length,c=new Array(l),u=0;ut.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,a=!1,s=void 0;try{for(var o=t[Symbol.iterator](),l;!(r=(l=o.next()).done)&&(n.push(l.value),!(e&&n.length===e));r=!0);}catch(c){a=!0,s=c}finally{try{!r&&o.return!=null&&o.return()}finally{if(a)throw s}}return n}}function Aye(t){if(Array.isArray(t))return t}function rV(t){var e=h0(t,2),n=e[0],r=e[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function aV(t,e,n){if(t.lte(0))return new _n(0);var r=kj.getDigitCount(t.toNumber()),a=new _n(10).pow(r),s=t.div(a),o=r!==1?.05:.1,l=new _n(Math.ceil(s.div(o).toNumber())).add(n).mul(o),c=l.mul(a);return e?c:new _n(Math.ceil(c))}function Oye(t,e,n){var r=1,a=new _n(t);if(!a.isint()&&n){var s=Math.abs(t);s<1?(r=new _n(10).pow(kj.getDigitCount(t)-1),a=new _n(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new _n(Math.floor(t)))}else t===0?a=new _n(Math.floor((e-1)/2)):n||(a=new _n(Math.floor(t)));var o=Math.floor((e-1)/2),l=yye(xye(function(c){return a.add(new _n(c-o).mul(r)).toNumber()}),oE);return l(0,e)}function sV(t,e,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new _n(0),tickMin:new _n(0),tickMax:new _n(0)};var s=aV(new _n(e).sub(t).div(n-1),r,a),o;t<=0&&e>=0?o=new _n(0):(o=new _n(t).add(e).div(2),o=o.sub(new _n(o).mod(s)));var l=Math.ceil(o.sub(t).div(s).toNumber()),c=Math.ceil(new _n(e).sub(o).div(s).toNumber()),u=l+c+1;return u>n?sV(t,e,n,r,a+1):(u0?c+(n-u):c,l=e>0?l:l+(n-u)),{step:s,tickMin:o.sub(new _n(l).mul(s)),tickMax:o.add(new _n(c).mul(s))})}function Tye(t){var e=h0(t,2),n=e[0],r=e[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(a,2),l=rV([n,r]),c=h0(l,2),u=c[0],d=c[1];if(u===-1/0||d===1/0){var f=d===1/0?[u].concat(cE(oE(0,a-1).map(function(){return 1/0}))):[].concat(cE(oE(0,a-1).map(function(){return-1/0})),[d]);return n>r?lE(f):f}if(u===d)return Oye(u,a,s);var h=sV(u,d,o,s),p=h.step,m=h.tickMin,x=h.tickMax,v=kj.rangeStep(m,x.add(new _n(.1).mul(p)),p);return n>r?lE(v):v}function Pye(t,e){var n=h0(t,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=rV([r,a]),l=h0(o,2),c=l[0],u=l[1];if(c===-1/0||u===1/0)return[r,a];if(c===u)return[c];var d=Math.max(e,2),f=aV(new _n(u).sub(c).div(d-1),s,0),h=[].concat(cE(kj.rangeStep(new _n(c),new _n(u).sub(new _n(.99).mul(f)),f)),[u]);return r>a?lE(h):h}var Rye=tV(Tye),Mye=tV(Pye),Dye="Invariant failed";function ef(t,e){throw new Error(Dye)}var Iye=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function yp(t){"@babel/helpers - typeof";return yp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yp(t)}function fw(){return fw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Vye(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Wye(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Hye(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,o=-1,l=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(l<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var c=s.range,u=0;u0?a[u-1].coordinate:a[l-1].coordinate,f=a[u].coordinate,h=u>=l-1?a[0].coordinate:a[u+1].coordinate,p=void 0;if(go(f-d)!==go(h-f)){var m=[];if(go(h-f)===go(c[1]-c[0])){p=h;var x=f+c[1]-c[0];m[0]=Math.min(x,(x+d)/2),m[1]=Math.max(x,(x+d)/2)}else{p=d;var v=h+c[1]-c[0];m[0]=Math.min(f,(v+f)/2),m[1]=Math.max(f,(v+f)/2)}var b=[Math.min(f,(p+f)/2),Math.max(f,(p+f)/2)];if(e>b[0]&&e<=b[1]||e>=m[0]&&e<=m[1]){o=a[u].index;break}}else{var y=Math.min(d,h),w=Math.max(d,h);if(e>(y+f)/2&&e<=(w+f)/2){o=a[u].index;break}}}else for(var j=0;j0&&j(r[j].coordinate+r[j-1].coordinate)/2&&e<=(r[j].coordinate+r[j+1].coordinate)/2||j===l-1&&e>(r[j].coordinate+r[j-1].coordinate)/2){o=r[j].index;break}return o},D3=function(e){var n,r=e,a=r.type.displayName,s=(n=e.type)!==null&&n!==void 0&&n.defaultProps?wr(wr({},e.type.defaultProps),e.props):e.props,o=s.stroke,l=s.fill,c;switch(a){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:l;break;default:c=l;break}return c},lve=function(e){var n=e.barSize,r=e.totalSize,a=e.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var o={},l=Object.keys(s),c=0,u=l.length;c=0});if(b&&b.length){var y=b[0].type.defaultProps,w=y!==void 0?wr(wr({},y),b[0].props):b[0].props,j=w.barSize,k=w[v];o[k]||(o[k]=[]);var S=_t(j)?n:j;o[k].push({item:b[0],stackList:b.slice(1),barSize:_t(S)?void 0:Jd(S,r,0)})}}return o},cve=function(e){var n=e.barGap,r=e.barCategoryGap,a=e.bandSize,s=e.sizeList,o=s===void 0?[]:s,l=e.maxBarSize,c=o.length;if(c<1)return null;var u=Jd(n,a,0,!0),d,f=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=a/c,m=o.reduce(function(j,k){return j+k.barSize||0},0);m+=(c-1)*u,m>=a&&(m-=(c-1)*u,u=0),m>=a&&p>0&&(h=!0,p*=.9,m=c*p);var x=(a-m)/2>>0,v={offset:x-u,size:0};d=o.reduce(function(j,k){var S={item:k.item,position:{offset:v.offset+v.size+u,size:h?p:k.barSize}},_=[].concat(YD(j),[S]);return v=_[_.length-1].position,k.stackList&&k.stackList.length&&k.stackList.forEach(function(C){_.push({item:C,position:v})}),_},f)}else{var b=Jd(r,a,0,!0);a-2*b-(c-1)*u<=0&&(u=0);var y=(a-2*b-(c-1)*u)/c;y>1&&(y>>=0);var w=l===+l?Math.min(y,l):y;d=o.reduce(function(j,k,S){var _=[].concat(YD(j),[{item:k.item,position:{offset:b+(y+u)*S+(y-w)/2,size:w}}]);return k.stackList&&k.stackList.length&&k.stackList.forEach(function(C){_.push({item:C,position:_[_.length-1].position})}),_},f)}return d},uve=function(e,n,r,a){var s=r.children,o=r.width,l=r.margin,c=o-(l.left||0)-(l.right||0),u=cV({children:s,legendWidth:c});if(u){var d=a||{},f=d.width,h=d.height,p=u.align,m=u.verticalAlign,x=u.layout;if((x==="vertical"||x==="horizontal"&&m==="middle")&&p!=="center"&&$e(e[p]))return wr(wr({},e),{},zh({},p,e[p]+(f||0)));if((x==="horizontal"||x==="vertical"&&p==="center")&&m!=="middle"&&$e(e[m]))return wr(wr({},e),{},zh({},m,e[m]+(h||0)))}return e},dve=function(e,n,r){return _t(n)?!0:e==="horizontal"?n==="yAxis":e==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},uV=function(e,n,r,a,s){var o=n.props.children,l=Ws(o,vm).filter(function(u){return dve(a,s,u.props.direction)});if(l&&l.length){var c=l.map(function(u){return u.props.dataKey});return e.reduce(function(u,d){var f=na(d,r);if(_t(f))return u;var h=Array.isArray(f)?[bj(f),Yc(f)]:[f,f],p=c.reduce(function(m,x){var v=na(d,x,0),b=h[0]-Math.abs(Array.isArray(v)?v[0]:v),y=h[1]+Math.abs(Array.isArray(v)?v[1]:v);return[Math.min(b,m[0]),Math.max(y,m[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},fve=function(e,n,r,a,s){var o=n.map(function(l){return uV(e,l,r,s,a)}).filter(function(l){return!_t(l)});return o&&o.length?o.reduce(function(l,c){return[Math.min(l[0],c[0]),Math.max(l[1],c[1])]},[1/0,-1/0]):null},dV=function(e,n,r,a,s){var o=n.map(function(c){var u=c.props.dataKey;return r==="number"&&u&&uV(e,c,u,a)||px(e,u,r,s)});if(r==="number")return o.reduce(function(c,u){return[Math.min(c[0],u[0]),Math.max(c[1],u[1])]},[1/0,-1/0]);var l={};return o.reduce(function(c,u){for(var d=0,f=u.length;d=2?go(l[0]-l[1])*2*u:u,n&&(e.ticks||e.niceTicks)){var d=(e.ticks||e.niceTicks).map(function(f){var h=s?s.indexOf(f):f;return{coordinate:a(h)+u,value:f,offset:u}});return d.filter(function(f){return!fm(f.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(f,h){return{coordinate:a(f)+u,value:f,index:h,offset:u}}):a.ticks&&!r?a.ticks(e.tickCount).map(function(f){return{coordinate:a(f)+u,value:f,offset:u}}):a.domain().map(function(f,h){return{coordinate:a(f)+u,value:s?s[f]:f,index:h,offset:u}})},jS=new WeakMap,Fv=function(e,n){if(typeof n!="function")return e;jS.has(e)||jS.set(e,new WeakMap);var r=jS.get(e);if(r.has(n))return r.get(n);var a=function(){e.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},hve=function(e,n,r){var a=e.scale,s=e.type,o=e.layout,l=e.axisType;if(a==="auto")return o==="radial"&&l==="radiusAxis"?{scale:o0(),realScaleType:"band"}:o==="radial"&&l==="angleAxis"?{scale:ow(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:hx(),realScaleType:"point"}:s==="category"?{scale:o0(),realScaleType:"band"}:{scale:ow(),realScaleType:"linear"};if(Xd(a)){var c="scale".concat(ij(a));return{scale:(VD[c]||hx)(),realScaleType:VD[c]?c:"point"}}return At(a)?{scale:a}:{scale:hx(),realScaleType:"point"}},JD=1e-4,pve=function(e){var n=e.domain();if(!(!n||n.length<=2)){var r=n.length,a=e.range(),s=Math.min(a[0],a[1])-JD,o=Math.max(a[0],a[1])+JD,l=e(n[0]),c=e(n[r-1]);(lo||co)&&e.domain([n[0],n[r-1]])}},mve=function(e,n){if(!e)return null;for(var r=0,a=e.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(e[l][r][0]=s,e[l][r][1]=s+c,s=e[l][r][1]):(e[l][r][0]=o,e[l][r][1]=o+c,o=e[l][r][1])}},yve=function(e){var n=e.length;if(!(n<=0))for(var r=0,a=e[0].length;r=0?(e[o][r][0]=s,e[o][r][1]=s+l,s=e[o][r][1]):(e[o][r][0]=0,e[o][r][1]=0)}},vve={sign:xve,expand:Mie,none:up,silhouette:Die,wiggle:Iie,positive:yve},bve=function(e,n,r){var a=n.map(function(l){return l.props.dataKey}),s=vve[r],o=Rie().keys(a).value(function(l,c){return+na(l,c,0)}).order($C).offset(s);return o(e)},wve=function(e,n,r,a,s,o){if(!e)return null;var l=o?n.reverse():n,c={},u=l.reduce(function(f,h){var p,m=(p=h.type)!==null&&p!==void 0&&p.defaultProps?wr(wr({},h.type.defaultProps),h.props):h.props,x=m.stackId,v=m.hide;if(v)return f;var b=m[r],y=f[b]||{hasStack:!1,stackGroups:{}};if(ea(x)){var w=y.stackGroups[x]||{numericAxisId:r,cateAxisId:a,items:[]};w.items.push(h),y.hasStack=!0,y.stackGroups[x]=w}else y.stackGroups[vf("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[h]};return wr(wr({},f),{},zh({},b,y))},c),d={};return Object.keys(u).reduce(function(f,h){var p=u[h];if(p.hasStack){var m={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(x,v){var b=p.stackGroups[v];return wr(wr({},x),{},zh({},v,{numericAxisId:r,cateAxisId:a,items:b.items,stackedData:bve(e,b.items,s)}))},m)}return wr(wr({},f),{},zh({},h,p))},d)},kve=function(e,n){var r=n.realScaleType,a=n.type,s=n.tickCount,o=n.originalDomain,l=n.allowDecimals,c=r||n.scale;if(c!=="auto"&&c!=="linear")return null;if(s&&a==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=e.domain();if(!u.length)return null;var d=Rye(u,s,l);return e.domain([bj(d),Yc(d)]),{niceTicks:d}}if(s&&a==="number"){var f=e.domain(),h=Mye(f,s,l);return{niceTicks:h}}return null};function vp(t){var e=t.axis,n=t.ticks,r=t.bandSize,a=t.entry,s=t.index,o=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!_t(a[e.dataKey])){var l=L1(n,"value",a[e.dataKey]);if(l)return l.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var c=na(a,_t(o)?e.dataKey:o);return _t(c)?null:e.scale(c)}var ZD=function(e){var n=e.axis,r=e.ticks,a=e.offset,s=e.bandSize,o=e.entry,l=e.index;if(n.type==="category")return r[l]?r[l].coordinate+a:null;var c=na(o,n.dataKey,n.domain[l]);return _t(c)?null:n.scale(c)-s/2+a},jve=function(e){var n=e.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Sve=function(e,n){var r,a=(r=e.type)!==null&&r!==void 0&&r.defaultProps?wr(wr({},e.type.defaultProps),e.props):e.props,s=a.stackId;if(ea(s)){var o=n[s];if(o){var l=o.items.indexOf(e);return l>=0?o.stackedData[l]:null}}return null},_ve=function(e){return e.reduce(function(n,r){return[bj(r.concat([n[0]]).filter($e)),Yc(r.concat([n[1]]).filter($e))]},[1/0,-1/0])},pV=function(e,n,r){return Object.keys(e).reduce(function(a,s){var o=e[s],l=o.stackedData,c=l.reduce(function(u,d){var f=_ve(d.slice(n,r+1));return[Math.min(u[0],f[0]),Math.max(u[1],f[1])]},[1/0,-1/0]);return[Math.min(c[0],a[0]),Math.max(c[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},QD=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,eI=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,hE=function(e,n,r){if(At(e))return e(n,r);if(!Array.isArray(e))return n;var a=[];if($e(e[0]))a[0]=r?e[0]:Math.min(e[0],n[0]);else if(QD.test(e[0])){var s=+QD.exec(e[0])[1];a[0]=n[0]-s}else At(e[0])?a[0]=e[0](n[0]):a[0]=n[0];if($e(e[1]))a[1]=r?e[1]:Math.max(e[1],n[1]);else if(eI.test(e[1])){var o=+eI.exec(e[1])[1];a[1]=n[1]+o}else At(e[1])?a[1]=e[1](n[1]):a[1]=n[1];return a},pw=function(e,n,r){if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!r||a>0)return a}if(e&&n&&n.length>=2){for(var s=c3(n,function(f){return f.coordinate}),o=1/0,l=1,c=s.length;lo&&(u=2*Math.PI-u),{radius:l,angle:Ave(u),angleInRadian:u}},Pve=function(e){var n=e.startAngle,r=e.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),o=Math.min(a,s);return{startAngle:n-o*360,endAngle:r-o*360}},Rve=function(e,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),o=Math.floor(a/360),l=Math.min(s,o);return e+l*360},aI=function(e,n){var r=e.x,a=e.y,s=Tve({x:r,y:a},n),o=s.radius,l=s.angle,c=n.innerRadius,u=n.outerRadius;if(ou)return!1;if(o===0)return!0;var d=Pve(n),f=d.startAngle,h=d.endAngle,p=l,m;if(f<=h){for(;p>h;)p-=360;for(;p=f&&p<=h}else{for(;p>f;)p-=360;for(;p=h&&p<=f}return m?rI(rI({},n),{},{radius:o,angle:Rve(p,n)}):null};function x0(t){"@babel/helpers - typeof";return x0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x0(t)}var Mve=["offset"];function Dve(t){return Fve(t)||Lve(t)||$ve(t)||Ive()}function Ive(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $ve(t,e){if(t){if(typeof t=="string")return pE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pE(t,e)}}function Lve(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Fve(t){if(Array.isArray(t))return pE(t)}function pE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function zve(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function sI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Yr(t){for(var e=1;e=0?1:-1,w,j;a==="insideStart"?(w=p+y*o,j=x):a==="insideEnd"?(w=m-y*o,j=!x):a==="end"&&(w=m+y*o,j=x),j=b<=0?j:!j;var k=Da(u,d,v,w),S=Da(u,d,v,w+(j?1:-1)*359),_="M".concat(k.x,",").concat(k.y,` - A`).concat(v,",").concat(v,",0,1,").concat(j?0:1,`, - `).concat(S.x,",").concat(S.y),C=_t(e.id)?vf("recharts-radial-line-"):e.id;return H.createElement("text",y0({},r,{dominantBaseline:"central",className:Gt("recharts-radial-bar-label",l)}),H.createElement("defs",null,H.createElement("path",{id:C,d:_})),H.createElement("textPath",{xlinkHref:"#".concat(C)},n))},Kve=function(e){var n=e.viewBox,r=e.offset,a=e.position,s=n,o=s.cx,l=s.cy,c=s.innerRadius,u=s.outerRadius,d=s.startAngle,f=s.endAngle,h=(d+f)/2;if(a==="outside"){var p=Da(o,l,u+r,h),m=p.x,x=p.y;return{x:m,y:x,textAnchor:m>=o?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:o,y:l,textAnchor:"middle",verticalAnchor:"end"};var v=(c+u)/2,b=Da(o,l,v,h),y=b.x,w=b.y;return{x:y,y:w,textAnchor:"middle",verticalAnchor:"middle"}},Yve=function(e){var n=e.viewBox,r=e.parentViewBox,a=e.offset,s=e.position,o=n,l=o.x,c=o.y,u=o.width,d=o.height,f=d>=0?1:-1,h=f*a,p=f>0?"end":"start",m=f>0?"start":"end",x=u>=0?1:-1,v=x*a,b=x>0?"end":"start",y=x>0?"start":"end";if(s==="top"){var w={x:l+u/2,y:c-f*a,textAnchor:"middle",verticalAnchor:p};return Yr(Yr({},w),r?{height:Math.max(c-r.y,0),width:u}:{})}if(s==="bottom"){var j={x:l+u/2,y:c+d+h,textAnchor:"middle",verticalAnchor:m};return Yr(Yr({},j),r?{height:Math.max(r.y+r.height-(c+d),0),width:u}:{})}if(s==="left"){var k={x:l-v,y:c+d/2,textAnchor:b,verticalAnchor:"middle"};return Yr(Yr({},k),r?{width:Math.max(k.x-r.x,0),height:d}:{})}if(s==="right"){var S={x:l+u+v,y:c+d/2,textAnchor:y,verticalAnchor:"middle"};return Yr(Yr({},S),r?{width:Math.max(r.x+r.width-S.x,0),height:d}:{})}var _=r?{width:u,height:d}:{};return s==="insideLeft"?Yr({x:l+v,y:c+d/2,textAnchor:y,verticalAnchor:"middle"},_):s==="insideRight"?Yr({x:l+u-v,y:c+d/2,textAnchor:b,verticalAnchor:"middle"},_):s==="insideTop"?Yr({x:l+u/2,y:c+h,textAnchor:"middle",verticalAnchor:m},_):s==="insideBottom"?Yr({x:l+u/2,y:c+d-h,textAnchor:"middle",verticalAnchor:p},_):s==="insideTopLeft"?Yr({x:l+v,y:c+h,textAnchor:y,verticalAnchor:m},_):s==="insideTopRight"?Yr({x:l+u-v,y:c+h,textAnchor:b,verticalAnchor:m},_):s==="insideBottomLeft"?Yr({x:l+v,y:c+d-h,textAnchor:y,verticalAnchor:p},_):s==="insideBottomRight"?Yr({x:l+u-v,y:c+d-h,textAnchor:b,verticalAnchor:p},_):lm(s)&&($e(s.x)||vd(s.x))&&($e(s.y)||vd(s.y))?Yr({x:l+Jd(s.x,u),y:c+Jd(s.y,d),textAnchor:"end",verticalAnchor:"end"},_):Yr({x:l+u/2,y:c+d/2,textAnchor:"middle",verticalAnchor:"middle"},_)},Xve=function(e){return"cx"in e&&$e(e.cx)};function Xa(t){var e=t.offset,n=e===void 0?5:e,r=Bve(t,Mve),a=Yr({offset:n},r),s=a.viewBox,o=a.position,l=a.value,c=a.children,u=a.content,d=a.className,f=d===void 0?"":d,h=a.textBreakAll;if(!s||_t(l)&&_t(c)&&!g.isValidElement(u)&&!At(u))return null;if(g.isValidElement(u))return g.cloneElement(u,a);var p;if(At(u)){if(p=g.createElement(u,a),g.isValidElement(p))return p}else p=Hve(a);var m=Xve(s),x=Ct(a,!0);if(m&&(o==="insideStart"||o==="insideEnd"||o==="end"))return qve(a,p,x);var v=m?Kve(a):Yve(a);return H.createElement(Q1,y0({className:Gt("recharts-label",f)},x,v,{breakAll:h}),p)}Xa.displayName="Label";var gV=function(e){var n=e.cx,r=e.cy,a=e.angle,s=e.startAngle,o=e.endAngle,l=e.r,c=e.radius,u=e.innerRadius,d=e.outerRadius,f=e.x,h=e.y,p=e.top,m=e.left,x=e.width,v=e.height,b=e.clockWise,y=e.labelViewBox;if(y)return y;if($e(x)&&$e(v)){if($e(f)&&$e(h))return{x:f,y:h,width:x,height:v};if($e(p)&&$e(m))return{x:p,y:m,width:x,height:v}}return $e(f)&&$e(h)?{x:f,y:h,width:0,height:0}:$e(n)&&$e(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:o||a||0,innerRadius:u||0,outerRadius:d||c||l||0,clockWise:b}:e.viewBox?e.viewBox:{}},Jve=function(e,n){return e?e===!0?H.createElement(Xa,{key:"label-implicit",viewBox:n}):ea(e)?H.createElement(Xa,{key:"label-implicit",viewBox:n,value:e}):g.isValidElement(e)?e.type===Xa?g.cloneElement(e,{key:"label-implicit",viewBox:n}):H.createElement(Xa,{key:"label-implicit",content:e,viewBox:n}):At(e)?H.createElement(Xa,{key:"label-implicit",content:e,viewBox:n}):lm(e)?H.createElement(Xa,y0({viewBox:n},e,{key:"label-implicit"})):null:null},Zve=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var a=e.children,s=gV(e),o=Ws(a,Xa).map(function(c,u){return g.cloneElement(c,{viewBox:n||s,key:"label-".concat(u)})});if(!r)return o;var l=Jve(e.label,n||s);return[l].concat(Dve(o))};Xa.parseViewBox=gV;Xa.renderCallByParent=Zve;function Qve(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ebe=Qve;const tbe=Nn(ebe);function v0(t){"@babel/helpers - typeof";return v0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v0(t)}var nbe=["valueAccessor"],rbe=["data","dataKey","clockWise","id","textBreakAll"];function abe(t){return lbe(t)||obe(t)||ibe(t)||sbe()}function sbe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ibe(t,e){if(t){if(typeof t=="string")return mE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mE(t,e)}}function obe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function lbe(t){if(Array.isArray(t))return mE(t)}function mE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function fbe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var hbe=function(e){return Array.isArray(e.value)?tbe(e.value):e.value};function fl(t){var e=t.valueAccessor,n=e===void 0?hbe:e,r=lI(t,nbe),a=r.data,s=r.dataKey,o=r.clockWise,l=r.id,c=r.textBreakAll,u=lI(r,rbe);return!a||!a.length?null:H.createElement(cn,{className:"recharts-label-list"},a.map(function(d,f){var h=_t(s)?n(d,f):na(d&&d.payload,s),p=_t(l)?{}:{id:"".concat(l,"-").concat(f)};return H.createElement(Xa,gw({},Ct(d,!0),u,p,{parentViewBox:d.parentViewBox,value:h,textBreakAll:c,viewBox:Xa.parseViewBox(_t(o)?d:oI(oI({},d),{},{clockWise:o})),key:"label-".concat(f),index:f}))}))}fl.displayName="LabelList";function pbe(t,e){return t?t===!0?H.createElement(fl,{key:"labelList-implicit",data:e}):H.isValidElement(t)||At(t)?H.createElement(fl,{key:"labelList-implicit",data:e,content:t}):lm(t)?H.createElement(fl,gw({data:e},t,{key:"labelList-implicit"})):null:null}function mbe(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var r=t.children,a=Ws(r,fl).map(function(o,l){return g.cloneElement(o,{data:e,key:"labelList-".concat(l)})});if(!n)return a;var s=pbe(t.label,e);return[s].concat(abe(a))}fl.renderCallByParent=mbe;function b0(t){"@babel/helpers - typeof";return b0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b0(t)}function gE(){return gE=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(o>u),`, - `).concat(f.x,",").concat(f.y,` - `);if(a>0){var p=Da(n,r,a,o),m=Da(n,r,a,u);h+="L ".concat(m.x,",").concat(m.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(c)>180),",").concat(+(o<=u),`, - `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(n,",").concat(r," Z");return h},bbe=function(e){var n=e.cx,r=e.cy,a=e.innerRadius,s=e.outerRadius,o=e.cornerRadius,l=e.forceCornerRadius,c=e.cornerIsExternal,u=e.startAngle,d=e.endAngle,f=go(d-u),h=Bv({cx:n,cy:r,radius:s,angle:u,sign:f,cornerRadius:o,cornerIsExternal:c}),p=h.circleTangency,m=h.lineTangency,x=h.theta,v=Bv({cx:n,cy:r,radius:s,angle:d,sign:-f,cornerRadius:o,cornerIsExternal:c}),b=v.circleTangency,y=v.lineTangency,w=v.theta,j=c?Math.abs(u-d):Math.abs(u-d)-x-w;if(j<0)return l?"M ".concat(m.x,",").concat(m.y,` - a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 - a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 - `):xV({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:u,endAngle:d});var k="M ".concat(m.x,",").concat(m.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(p.x,",").concat(p.y,` - A`).concat(s,",").concat(s,",0,").concat(+(j>180),",").concat(+(f<0),",").concat(b.x,",").concat(b.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(y.x,",").concat(y.y,` - `);if(a>0){var S=Bv({cx:n,cy:r,radius:a,angle:u,sign:f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),_=S.circleTangency,C=S.lineTangency,E=S.theta,P=Bv({cx:n,cy:r,radius:a,angle:d,sign:-f,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),R=P.circleTangency,A=P.lineTangency,T=P.theta,D=c?Math.abs(u-d):Math.abs(u-d)-E-T;if(D<0&&o===0)return"".concat(k,"L").concat(n,",").concat(r,"Z");k+="L".concat(A.x,",").concat(A.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(R.x,",").concat(R.y,` - A`).concat(a,",").concat(a,",0,").concat(+(D>180),",").concat(+(f>0),",").concat(_.x,",").concat(_.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(f<0),",").concat(C.x,",").concat(C.y,"Z")}else k+="L".concat(n,",").concat(r,"Z");return k},wbe={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},yV=function(e){var n=uI(uI({},wbe),e),r=n.cx,a=n.cy,s=n.innerRadius,o=n.outerRadius,l=n.cornerRadius,c=n.forceCornerRadius,u=n.cornerIsExternal,d=n.startAngle,f=n.endAngle,h=n.className;if(o0&&Math.abs(d-f)<360?v=bbe({cx:r,cy:a,innerRadius:s,outerRadius:o,cornerRadius:Math.min(x,m/2),forceCornerRadius:c,cornerIsExternal:u,startAngle:d,endAngle:f}):v=xV({cx:r,cy:a,innerRadius:s,outerRadius:o,startAngle:d,endAngle:f}),H.createElement("path",gE({},Ct(n,!0),{className:p,d:v,role:"img"}))};function w0(t){"@babel/helpers - typeof";return w0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w0(t)}function xE(){return xE=Object.assign?Object.assign.bind():function(t){for(var e=1;eMbe.call(t,e));function kf(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const $be="__v",Lbe="__o",Fbe="_owner",{getOwnPropertyDescriptor:mI,keys:gI}=Object;function Bbe(t,e){return t.byteLength===e.byteLength&&xw(new Uint8Array(t),new Uint8Array(e))}function zbe(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function Ube(t,e){return t.byteLength===e.byteLength&&xw(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function Vbe(t,e){return kf(t.getTime(),e.getTime())}function Wbe(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function Hbe(t,e){return t===e}function xI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.entries();let o,l,c=0;for(;(o=s.next())&&!o.done;){const u=e.entries();let d=!1,f=0;for(;(l=u.next())&&!l.done;){if(a[f]){f++;continue}const h=o.value,p=l.value;if(n.equals(h[0],p[0],c,f,t,e,n)&&n.equals(h[1],p[1],h[0],p[0],t,e,n)){d=a[f]=!0;break}f++}if(!d)return!1;c++}return!0}const Gbe=kf;function qbe(t,e,n){const r=gI(t);let a=r.length;if(gI(e).length!==a)return!1;for(;a-- >0;)if(!kV(t,e,n,r[a]))return!1;return!0}function hg(t,e,n){const r=pI(t);let a=r.length;if(pI(e).length!==a)return!1;let s,o,l;for(;a-- >0;)if(s=r[a],!kV(t,e,n,s)||(o=mI(t,s),l=mI(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function Kbe(t,e){return kf(t.valueOf(),e.valueOf())}function Ybe(t,e){return t.source===e.source&&t.flags===e.flags}function yI(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const a=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const c=e.values();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(!a[d]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function xw(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function Xbe(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function kV(t,e,n,r){return(r===Fbe||r===Lbe||r===$be)&&(t.$$typeof||e.$$typeof)?!0:Ibe(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const Jbe="[object ArrayBuffer]",Zbe="[object Arguments]",Qbe="[object Boolean]",e1e="[object DataView]",t1e="[object Date]",n1e="[object Error]",r1e="[object Map]",a1e="[object Number]",s1e="[object Object]",i1e="[object RegExp]",o1e="[object Set]",l1e="[object String]",c1e={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},u1e="[object URL]",d1e=Object.prototype.toString;function f1e({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:a,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:c,arePrimitiveWrappersEqual:u,areRegExpsEqual:d,areSetsEqual:f,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:m}){return function(v,b,y){if(v===b)return!0;if(v==null||b==null)return!1;const w=typeof v;if(w!==typeof b)return!1;if(w!=="object")return w==="number"?l(v,b,y):w==="function"?s(v,b,y):!1;const j=v.constructor;if(j!==b.constructor)return!1;if(j===Object)return c(v,b,y);if(Array.isArray(v))return e(v,b,y);if(j===Date)return r(v,b,y);if(j===RegExp)return d(v,b,y);if(j===Map)return o(v,b,y);if(j===Set)return f(v,b,y);const k=d1e.call(v);if(k===t1e)return r(v,b,y);if(k===i1e)return d(v,b,y);if(k===r1e)return o(v,b,y);if(k===o1e)return f(v,b,y);if(k===s1e)return typeof v.then!="function"&&typeof b.then!="function"&&c(v,b,y);if(k===u1e)return p(v,b,y);if(k===n1e)return a(v,b,y);if(k===Zbe)return c(v,b,y);if(c1e[k])return h(v,b,y);if(k===Jbe)return t(v,b,y);if(k===e1e)return n(v,b,y);if(k===Qbe||k===a1e||k===l1e)return u(v,b,y);if(m){let S=m[k];if(!S){const _=Dbe(v);_&&(S=m[_])}if(S)return S(v,b,y)}return!1}}function h1e({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:Bbe,areArraysEqual:n?hg:zbe,areDataViewsEqual:Ube,areDatesEqual:Vbe,areErrorsEqual:Wbe,areFunctionsEqual:Hbe,areMapsEqual:n?SS(xI,hg):xI,areNumbersEqual:Gbe,areObjectsEqual:n?hg:qbe,arePrimitiveWrappersEqual:Kbe,areRegExpsEqual:Ybe,areSetsEqual:n?SS(yI,hg):yI,areTypedArraysEqual:n?SS(xw,hg):xw,areUrlsEqual:Xbe,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const a=Uv(r.areArraysEqual),s=Uv(r.areMapsEqual),o=Uv(r.areObjectsEqual),l=Uv(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:a,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function p1e(t){return function(e,n,r,a,s,o,l){return t(e,n,l)}}function m1e({circular:t,comparator:e,createState:n,equals:r,strict:a}){if(n)return function(l,c){const{cache:u=t?new WeakMap:void 0,meta:d}=n();return e(l,c,{cache:u,equals:r,meta:d,strict:a})};if(t)return function(l,c){return e(l,c,{cache:new WeakMap,equals:r,meta:void 0,strict:a})};const s={cache:void 0,equals:r,meta:void 0,strict:a};return function(l,c){return e(l,c,s)}}const g1e=Hu();Hu({strict:!0});Hu({circular:!0});Hu({circular:!0,strict:!0});Hu({createInternalComparator:()=>kf});Hu({strict:!0,createInternalComparator:()=>kf});Hu({circular:!0,createInternalComparator:()=>kf});Hu({circular:!0,createInternalComparator:()=>kf,strict:!0});function Hu(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:a=!1}=t,s=h1e(t),o=f1e(s),l=n?n(o):p1e(o);return m1e({circular:e,comparator:o,createState:r,equals:l,strict:a})}function x1e(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function vI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>e?(t(s),n=-1):x1e(a)};requestAnimationFrame(r)}function yE(t){"@babel/helpers - typeof";return yE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yE(t)}function y1e(t){return k1e(t)||w1e(t)||b1e(t)||v1e()}function v1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function b1e(t,e){if(t){if(typeof t=="string")return bI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bI(t,e)}}function bI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?1:b<0?0:b},x=function(b){for(var y=b>1?1:b,w=y,j=0;j<8;++j){var k=f(w)-y,S=p(w);if(Math.abs(k-y)0&&arguments[0]!==void 0?arguments[0]:{},n=e.stiff,r=n===void 0?100:n,a=e.damping,s=a===void 0?8:a,o=e.dt,l=o===void 0?17:o,c=function(d,f,h){var p=-(d-f)*r,m=h*s,x=h+(p-m)*l/1e3,v=h*l/1e3+d;return Math.abs(v-f)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Q1e(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,s;for(s=0;s=0)&&(n[a]=t[a]);return n}function _S(t){return rwe(t)||nwe(t)||twe(t)||ewe()}function ewe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function twe(t,e){if(t){if(typeof t=="string")return jE(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jE(t,e)}}function nwe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function rwe(t){if(Array.isArray(t))return jE(t)}function jE(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function bw(t){return bw=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bw(t)}var jo=function(t){lwe(n,t);var e=cwe(n);function n(r,a){var s;awe(this,n),s=e.call(this,r,a);var o=s.props,l=o.isActive,c=o.attributeName,u=o.from,d=o.to,f=o.steps,h=o.children,p=o.duration;if(s.handleStyleChange=s.handleStyleChange.bind(NE(s)),s.changeStyle=s.changeStyle.bind(NE(s)),!l||p<=0)return s.state={style:{}},typeof h=="function"&&(s.state={style:d}),_E(s);if(f&&f.length)s.state={style:f[0].style};else if(u){if(typeof h=="function")return s.state={style:u},_E(s);s.state={style:c?Lg({},c,u):u}}else s.state={style:{}};return s}return iwe(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,o=a.canBegin;this.mounted=!0,!(!s||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,o=s.isActive,l=s.canBegin,c=s.attributeName,u=s.shouldReAnimate,d=s.to,f=s.from,h=this.state.style;if(l){if(!o){var p={style:c?Lg({},c,d):d};this.state&&h&&(c&&h[c]!==d||!c&&h!==d)&&this.setState(p);return}if(!(g1e(a.to,d)&&a.canBegin&&a.isActive)){var m=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var x=m||u?f:a.to;if(this.state&&h){var v={style:c?Lg({},c,x):x};(c&&h[c]!==x||!c&&h!==x)&&this.setState(v)}this.runAnimation(ro(ro({},this.props),{},{from:x,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,o=a.from,l=a.to,c=a.duration,u=a.easing,d=a.begin,f=a.onAnimationEnd,h=a.onAnimationStart,p=X1e(o,l,F1e(u),c,this.changeStyle),m=function(){s.stopJSAnimation=p()};this.manager.start([h,d,m,c,f])}},{key:"runStepAnimation",value:function(a){var s=this,o=a.steps,l=a.begin,c=a.onAnimationStart,u=o[0],d=u.style,f=u.duration,h=f===void 0?0:f,p=function(x,v,b){if(b===0)return x;var y=v.duration,w=v.easing,j=w===void 0?"ease":w,k=v.style,S=v.properties,_=v.onAnimationEnd,C=b>0?o[b-1]:v,E=S||Object.keys(k);if(typeof j=="function"||j==="spring")return[].concat(_S(x),[s.runJSAnimation.bind(s,{from:C.style,to:k,duration:y,easing:j}),y]);var P=jI(E,y,j),R=ro(ro(ro({},C.style),k),{},{transition:P});return[].concat(_S(x),[R,y,_]).filter(C1e)};return this.manager.start([c].concat(_S(o.reduce(p,[d,Math.max(h,l)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=j1e());var s=a.begin,o=a.duration,l=a.attributeName,c=a.to,u=a.easing,d=a.onAnimationStart,f=a.onAnimationEnd,h=a.steps,p=a.children,m=this.manager;if(this.unSubscribe=m.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(a);return}if(h.length>1){this.runStepAnimation(a);return}var x=l?Lg({},l,c):c,v=jI(Object.keys(x),o,u);m.start([d,s,ro(ro({},x),{},{transition:v}),o,f])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var o=a.duration;a.attributeName,a.easing;var l=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var c=Z1e(a,J1e),u=g.Children.count(s),d=this.state.style;if(typeof s=="function")return s(d);if(!l||u===0||o<=0)return s;var f=function(p){var m=p.props,x=m.style,v=x===void 0?{}:x,b=m.className,y=g.cloneElement(p,ro(ro({},c),{},{style:ro(ro({},v),d),className:b}));return y};return u===1?f(g.Children.only(s)):H.createElement("div",null,g.Children.map(s,function(h){return f(h)}))}}]),n}(g.PureComponent);jo.displayName="Animate";jo.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};jo.propTypes={from:fn.oneOfType([fn.object,fn.string]),to:fn.oneOfType([fn.object,fn.string]),attributeName:fn.string,duration:fn.number,begin:fn.number,easing:fn.oneOfType([fn.string,fn.func]),steps:fn.arrayOf(fn.shape({duration:fn.number.isRequired,style:fn.object.isRequired,easing:fn.oneOfType([fn.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),fn.func]),properties:fn.arrayOf("string"),onAnimationEnd:fn.func})),children:fn.oneOfType([fn.node,fn.func]),isActive:fn.bool,canBegin:fn.bool,onAnimationEnd:fn.func,shouldReAnimate:fn.bool,onAnimationStart:fn.func,onAnimationReStart:fn.func};function S0(){return S0=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1,c=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,d;if(o>0&&s instanceof Array){for(var f=[0,0,0,0],h=0,p=4;ho?o:s[h];d="M".concat(e,",").concat(n+l*f[0]),f[0]>0&&(d+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(u,",").concat(e+c*f[0],",").concat(n)),d+="L ".concat(e+r-c*f[1],",").concat(n),f[1]>0&&(d+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(u,`, - `).concat(e+r,",").concat(n+l*f[1])),d+="L ".concat(e+r,",").concat(n+a-l*f[2]),f[2]>0&&(d+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(u,`, - `).concat(e+r-c*f[2],",").concat(n+a)),d+="L ".concat(e+c*f[3],",").concat(n+a),f[3]>0&&(d+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(u,`, - `).concat(e,",").concat(n+a-l*f[3])),d+="Z"}else if(o>0&&s===+s&&s>0){var m=Math.min(o,s);d="M ".concat(e,",").concat(n+l*m,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+c*m,",").concat(n,` - L `).concat(e+r-c*m,",").concat(n,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r,",").concat(n+l*m,` - L `).concat(e+r,",").concat(n+a-l*m,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e+r-c*m,",").concat(n+a,` - L `).concat(e+c*m,",").concat(n+a,` - A `).concat(m,",").concat(m,",0,0,").concat(u,",").concat(e,",").concat(n+a-l*m," Z")}else d="M ".concat(e,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return d},bwe=function(e,n){if(!e||!n)return!1;var r=e.x,a=e.y,s=n.x,o=n.y,l=n.width,c=n.height;if(Math.abs(l)>0&&Math.abs(c)>0){var u=Math.min(s,s+l),d=Math.max(s,s+l),f=Math.min(o,o+c),h=Math.max(o,o+c);return r>=u&&r<=d&&a>=f&&a<=h}return!1},wwe={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},I3=function(e){var n=TI(TI({},wwe),e),r=g.useRef(),a=g.useState(-1),s=fwe(a,2),o=s[0],l=s[1];g.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var j=r.current.getTotalLength();j&&l(j)}catch{}},[]);var c=n.x,u=n.y,d=n.width,f=n.height,h=n.radius,p=n.className,m=n.animationEasing,x=n.animationDuration,v=n.animationBegin,b=n.isAnimationActive,y=n.isUpdateAnimationActive;if(c!==+c||u!==+u||d!==+d||f!==+f||d===0||f===0)return null;var w=Gt("recharts-rectangle",p);return y?H.createElement(jo,{canBegin:o>0,from:{width:d,height:f,x:c,y:u},to:{width:d,height:f,x:c,y:u},duration:x,animationEasing:m,isActive:y},function(j){var k=j.width,S=j.height,_=j.x,C=j.y;return H.createElement(jo,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:x,isActive:b,easing:m},H.createElement("path",ww({},Ct(n,!0),{className:w,d:PI(_,C,k,S,h),ref:r})))}):H.createElement("path",ww({},Ct(n,!0),{className:w,d:PI(c,u,d,f,h)}))};function CE(){return CE=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ewe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var Awe=function(e,n,r,a,s,o){return"M".concat(e,",").concat(s,"v").concat(a,"M").concat(o,",").concat(n,"h").concat(r)},Owe=function(e){var n=e.x,r=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.top,l=o===void 0?0:o,c=e.left,u=c===void 0?0:c,d=e.width,f=d===void 0?0:d,h=e.height,p=h===void 0?0:h,m=e.className,x=Cwe(e,kwe),v=jwe({x:r,y:s,top:l,left:u,width:f,height:p},x);return!$e(r)||!$e(s)||!$e(f)||!$e(p)||!$e(l)||!$e(u)?null:H.createElement("path",EE({},Ct(v,!0),{className:Gt("recharts-cross",m),d:Awe(r,s,f,p,l,u)}))},Twe=W7,Pwe=Twe(Object.getPrototypeOf,Object),Rwe=Pwe,Mwe=bc,Dwe=Rwe,Iwe=wc,$we="[object Object]",Lwe=Function.prototype,Fwe=Object.prototype,AV=Lwe.toString,Bwe=Fwe.hasOwnProperty,zwe=AV.call(Object);function Uwe(t){if(!Iwe(t)||Mwe(t)!=$we)return!1;var e=Dwe(t);if(e===null)return!0;var n=Bwe.call(e,"constructor")&&e.constructor;return typeof n=="function"&&n instanceof n&&AV.call(n)==zwe}var Vwe=Uwe;const Wwe=Nn(Vwe);var Hwe=bc,Gwe=wc,qwe="[object Boolean]";function Kwe(t){return t===!0||t===!1||Gwe(t)&&Hwe(t)==qwe}var Ywe=Kwe;const Xwe=Nn(Ywe);function C0(t){"@babel/helpers - typeof";return C0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C0(t)}function kw(){return kw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0,from:{upperWidth:0,lowerWidth:0,height:h,x:c,y:u},to:{upperWidth:d,lowerWidth:f,height:h,x:c,y:u},duration:x,animationEasing:m,isActive:b},function(w){var j=w.upperWidth,k=w.lowerWidth,S=w.height,_=w.x,C=w.y;return H.createElement(jo,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:x,easing:m},H.createElement("path",kw({},Ct(n,!0),{className:y,d:$I(_,C,j,k,S),ref:r})))}):H.createElement("g",null,H.createElement("path",kw({},Ct(n,!0),{className:y,d:$I(c,u,d,f,h)})))},oke=["option","shapeType","propTransformer","activeClassName","isActive"];function E0(t){"@babel/helpers - typeof";return E0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E0(t)}function lke(t,e){if(t==null)return{};var n=cke(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function cke(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function LI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function jw(t){for(var e=1;e0&&r.handleDrag(a.changedTouches[0])}),si(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,o=a.onDragEnd,l=a.startIndex;o==null||o({endIndex:s,startIndex:l})}),r.detachDragEndListener()}),si(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),si(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),si(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),si(r,"handleSlideDragStart",function(a){var s=HI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return Gke(e,t),Uke(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,o=this.state.scaleValues,l=this.props,c=l.gap,u=l.data,d=u.length-1,f=Math.min(a,s),h=Math.max(a,s),p=e.getIndexInRange(o,f),m=e.getIndexInRange(o,h);return{startIndex:p-p%c,endIndex:m===d?d:m-m%c}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,o=a.tickFormatter,l=a.dataKey,c=na(s[r],l,r);return At(o)?o(c,r):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,o=a.startX,l=a.endX,c=this.props,u=c.x,d=c.width,f=c.travellerWidth,h=c.startIndex,p=c.endIndex,m=c.onChange,x=r.pageX-s;x>0?x=Math.min(x,u+d-f-l,u+d-f-o):x<0&&(x=Math.max(x,u-o,u-l));var v=this.getIndex({startX:o+x,endX:l+x});(v.startIndex!==h||v.endIndex!==p)&&m&&m(v),this.setState({startX:o+x,endX:l+x,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=HI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,o=a.movingTravellerId,l=a.endX,c=a.startX,u=this.state[o],d=this.props,f=d.x,h=d.width,p=d.travellerWidth,m=d.onChange,x=d.gap,v=d.data,b={startX:this.state.startX,endX:this.state.endX},y=r.pageX-s;y>0?y=Math.min(y,f+h-p-u):y<0&&(y=Math.max(y,f-u)),b[o]=u+y;var w=this.getIndex(b),j=w.startIndex,k=w.endIndex,S=function(){var C=v.length-1;return o==="startX"&&(l>c?j%x===0:k%x===0)||lc?k%x===0:j%x===0)||l>c&&k===C};this.setState(si(si({},o,u+y),"brushMoveStartX",r.pageX),function(){m&&S()&&m(w)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,o=this.state,l=o.scaleValues,c=o.startX,u=o.endX,d=this.state[a],f=l.indexOf(d);if(f!==-1){var h=f+r;if(!(h===-1||h>=l.length)){var p=l[h];a==="startX"&&p>=u||a==="endX"&&p<=c||this.setState(si({},a,p),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.fill,u=r.stroke;return H.createElement("rect",{stroke:u,fill:c,x:a,y:s,width:o,height:l})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,o=r.width,l=r.height,c=r.data,u=r.children,d=r.padding,f=g.Children.only(u);return f?H.cloneElement(f,{x:a,y:s,width:o,height:l,margin:d,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,o,l=this,c=this.props,u=c.y,d=c.travellerWidth,f=c.height,h=c.traveller,p=c.ariaLabel,m=c.data,x=c.startIndex,v=c.endIndex,b=Math.max(r,this.props.x),y=CS(CS({},Ct(this.props,!1)),{},{x:b,y:u,width:d,height:f}),w=p||"Min value: ".concat((s=m[x])===null||s===void 0?void 0:s.name,", Max value: ").concat((o=m[v])===null||o===void 0?void 0:o.name);return H.createElement(cn,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(k){["ArrowLeft","ArrowRight"].includes(k.key)&&(k.preventDefault(),k.stopPropagation(),l.handleTravellerMoveKeyboard(k.key==="ArrowRight"?1:-1,a))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(h,y))}},{key:"renderSlide",value:function(r,a){var s=this.props,o=s.y,l=s.height,c=s.stroke,u=s.travellerWidth,d=Math.min(r,a)+u,f=Math.max(Math.abs(a-r)-u,0);return H.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:d,y:o,width:f,height:l})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,o=r.y,l=r.height,c=r.travellerWidth,u=r.stroke,d=this.state,f=d.startX,h=d.endX,p=5,m={pointerEvents:"none",fill:u};return H.createElement(cn,{className:"recharts-brush-texts"},H.createElement(Q1,_w({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,h)-p,y:o+l/2},m),this.getTextOfTick(a)),H.createElement(Q1,_w({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,h)+c+p,y:o+l/2},m),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,o=r.children,l=r.x,c=r.y,u=r.width,d=r.height,f=r.alwaysShowText,h=this.state,p=h.startX,m=h.endX,x=h.isTextActive,v=h.isSlideMoving,b=h.isTravellerMoving,y=h.isTravellerFocused;if(!a||!a.length||!$e(l)||!$e(c)||!$e(u)||!$e(d)||u<=0||d<=0)return null;var w=Gt("recharts-brush",s),j=H.Children.count(o)===1,k=Bke("userSelect","none");return H.createElement(cn,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:k},this.renderBackground(),j&&this.renderPanorama(),this.renderSlide(p,m),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(m,"endX"),(x||v||b||y||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,o=r.width,l=r.height,c=r.stroke,u=Math.floor(s+l/2)-1;return H.createElement(H.Fragment,null,H.createElement("rect",{x:a,y:s,width:o,height:l,fill:c,stroke:"none"}),H.createElement("line",{x1:a+1,y1:u,x2:a+o-1,y2:u,fill:"none",stroke:"#fff"}),H.createElement("line",{x1:a+1,y1:u+2,x2:a+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return H.isValidElement(r)?s=H.cloneElement(r,a):At(r)?s=r(a):s=e.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,o=r.width,l=r.x,c=r.travellerWidth,u=r.updateId,d=r.startIndex,f=r.endIndex;if(s!==a.prevData||u!==a.prevUpdateId)return CS({prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o},s&&s.length?Kke({data:s,width:o,x:l,travellerWidth:c,startIndex:d,endIndex:f}):{scale:null,scaleValues:null});if(a.scale&&(o!==a.prevWidth||l!==a.prevX||c!==a.prevTravellerWidth)){a.scale.range([l,l+o-c]);var h=a.scale.domain().map(function(p){return a.scale(p)});return{prevData:s,prevTravellerWidth:c,prevUpdateId:u,prevX:l,prevWidth:o,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,o=0,l=s-1;l-o>1;){var c=Math.floor((o+l)/2);r[c]>a?l=c:o=c}return a>=r[l]?l:o}}])}(g.PureComponent);si(kp,"displayName","Brush");si(kp,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Yke=l3;function Xke(t,e){var n;return Yke(t,function(r,a,s){return n=e(r,a,s),!n}),!!n}var Jke=Xke,Zke=I7,Qke=zu,eje=Jke,tje=Ks,nje=hj;function rje(t,e,n){var r=tje(t)?Zke:eje;return n&&nje(t,e,n)&&(e=void 0),r(t,Qke(e))}var aje=rje;const sje=Nn(aje);var hl=function(e,n){var r=e.alwaysShow,a=e.ifOverflow;return r&&(a="extendDomain"),a===n},GI=aU;function ije(t,e,n){e=="__proto__"&&GI?GI(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var oje=ije,lje=oje,cje=nU,uje=zu;function dje(t,e){var n={};return e=uje(e),cje(t,function(r,a,s){lje(n,a,e(r,a,s))}),n}var fje=dje;const hje=Nn(fje);function pje(t,e){for(var n=-1,r=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Tje(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Pje(t,e){var n=t.x,r=t.y,a=Oje(t,Nje),s="".concat(n),o=parseInt(s,10),l="".concat(r),c=parseInt(l,10),u="".concat(e.height||a.height),d=parseInt(u,10),f="".concat(e.width||a.width),h=parseInt(f,10);return pg(pg(pg(pg(pg({},e),a),o?{x:o}:{}),c?{y:c}:{}),{},{height:d,width:h,name:e.name,radius:e.radius})}function KI(t){return H.createElement(AE,TE({shapeType:"rectangle",propTransformer:Pje,activeClassName:"recharts-active-bar"},t))}var Rje=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof e=="number")return e;var s=$e(r)||Gae(r);return s?e(r,a):(s||ef(),n)}},Mje=["value","background"],DV;function jp(t){"@babel/helpers - typeof";return jp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jp(t)}function Dje(t,e){if(t==null)return{};var n=Ije(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ije(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Cw(){return Cw=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(L)0&&Math.abs(D)0&&(T=Math.min((M||0)-(D[B-1]||0),T))}),Number.isFinite(T)){var L=T/A,X=x.layout==="vertical"?r.height:r.width;if(x.padding==="gap"&&(_=L*X/2),x.padding==="no-gap"){var J=Jd(e.barCategoryGap,L*X),U=L*X/2;_=U-J-(U-J)/X*J}}}a==="xAxis"?C=[r.left+(w.left||0)+(_||0),r.left+r.width-(w.right||0)-(_||0)]:a==="yAxis"?C=c==="horizontal"?[r.top+r.height-(w.bottom||0),r.top+(w.top||0)]:[r.top+(w.top||0)+(_||0),r.top+r.height-(w.bottom||0)-(_||0)]:C=x.range,k&&(C=[C[1],C[0]]);var Y=hve(x,s,h),W=Y.scale,G=Y.realScaleType;W.domain(b).range(C),pve(W);var I=kve(W,co(co({},x),{},{realScaleType:G}));a==="xAxis"?(R=v==="top"&&!j||v==="bottom"&&j,E=r.left,P=f[S]-R*x.height):a==="yAxis"&&(R=v==="left"&&!j||v==="right"&&j,E=f[S]-R*x.width,P=r.top);var q=co(co(co({},x),I),{},{realScaleType:G,x:E,y:P,scale:W,width:a==="xAxis"?r.width:x.width,height:a==="yAxis"?r.height:x.height});return q.bandSize=pw(q,I),!x.hide&&a==="xAxis"?f[S]+=(R?-1:1)*q.height:x.hide||(f[S]+=(R?-1:1)*q.width),co(co({},p),{},Nj({},m,q))},{})},FV=function(e,n){var r=e.x,a=e.y,s=n.x,o=n.y;return{x:Math.min(r,s),y:Math.min(a,o),width:Math.abs(s-r),height:Math.abs(o-a)}},qje=function(e){var n=e.x1,r=e.y1,a=e.x2,s=e.y2;return FV({x:n,y:r},{x:a,y:s})},BV=function(){function t(e){Wje(this,t),this.scale=e}return Hje(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+o}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(n)+l}default:return this.scale(n)}if(a){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+c}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new t(n)}}])}();Nj(BV,"EPS",1e-4);var L3=function(e){var n=Object.keys(e).reduce(function(r,a){return co(co({},r),{},Nj({},a,BV.create(e[a])))},{});return co(co({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=s.bandAware,l=s.position;return hje(a,function(c,u){return n[u].apply(c,{bandAware:o,position:l})})},isInRange:function(a){return MV(a,function(s,o){return n[o].isInRange(s)})}})};function Kje(t){return(t%180+180)%180}var Yje=function(e){var n=e.width,r=e.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=Kje(a),o=s*Math.PI/180,l=Math.atan(r/n),c=o>l&&o-1?a[s?e[o]:o]:void 0}}var e2e=Qje,t2e=OV;function n2e(t){var e=t2e(t),n=e%1;return e===e?n?e-n:e:0}var r2e=n2e,a2e=X7,s2e=zu,i2e=r2e,o2e=Math.max;function l2e(t,e,n){var r=t==null?0:t.length;if(!r)return-1;var a=n==null?0:i2e(n);return a<0&&(a=o2e(r+a,0)),a2e(t,s2e(e),a)}var c2e=l2e,u2e=e2e,d2e=c2e,f2e=u2e(d2e),h2e=f2e;const p2e=Nn(h2e);var m2e=Zre(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),F3=g.createContext(void 0),B3=g.createContext(void 0),zV=g.createContext(void 0),UV=g.createContext({}),VV=g.createContext(void 0),WV=g.createContext(0),HV=g.createContext(0),QI=function(e){var n=e.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,o=e.clipPathId,l=e.children,c=e.width,u=e.height,d=m2e(s);return H.createElement(F3.Provider,{value:r},H.createElement(B3.Provider,{value:a},H.createElement(UV.Provider,{value:s},H.createElement(zV.Provider,{value:d},H.createElement(VV.Provider,{value:o},H.createElement(WV.Provider,{value:u},H.createElement(HV.Provider,{value:c},l)))))))},g2e=function(){return g.useContext(VV)},GV=function(e){var n=g.useContext(F3);n==null&&ef();var r=n[e];return r==null&&ef(),r},x2e=function(){var e=g.useContext(F3);return Vc(e)},y2e=function(){var e=g.useContext(B3),n=p2e(e,function(r){return MV(r.domain,Number.isFinite)});return n||Vc(e)},qV=function(e){var n=g.useContext(B3);n==null&&ef();var r=n[e];return r==null&&ef(),r},v2e=function(){var e=g.useContext(zV);return e},b2e=function(){return g.useContext(UV)},z3=function(){return g.useContext(HV)},U3=function(){return g.useContext(WV)};function Sp(t){"@babel/helpers - typeof";return Sp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Sp(t)}function w2e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function k2e(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt*a)return!1;var s=n();return t*(e-t*s/2-r)>=0&&t*(e+t*s/2-a)<=0}function rSe(t,e){return eW(t,e+1)}function aSe(t,e,n,r,a){for(var s=(r||[]).slice(),o=e.start,l=e.end,c=0,u=1,d=o,f=function(){var m=r==null?void 0:r[c];if(m===void 0)return{v:eW(r,u)};var x=c,v,b=function(){return v===void 0&&(v=n(m,x)),v},y=m.coordinate,w=c===0||Pw(t,y,b,d,l);w||(c=0,d=o,u+=1),w&&(d=y+t*(b()/2+a),c+=u)},h;u<=s.length;)if(h=f(),h)return h.v;return[]}function R0(t){"@babel/helpers - typeof";return R0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R0(t)}function o$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Ga(t){for(var e=1;e0?p.coordinate-v*t:p.coordinate})}else s[h]=p=Ga(Ga({},p),{},{tickCoord:p.coordinate});var b=Pw(t,p.tickCoord,x,l,c);b&&(c=p.tickCoord-t*(x()/2+a),s[h]=Ga(Ga({},p),{},{isShow:!0}))},d=o-1;d>=0;d--)u(d);return s}function cSe(t,e,n,r,a,s){var o=(r||[]).slice(),l=o.length,c=e.start,u=e.end;if(s){var d=r[l-1],f=n(d,l-1),h=t*(d.coordinate+t*f/2-u);o[l-1]=d=Ga(Ga({},d),{},{tickCoord:h>0?d.coordinate-h*t:d.coordinate});var p=Pw(t,d.tickCoord,function(){return f},c,u);p&&(u=d.tickCoord-t*(f/2+a),o[l-1]=Ga(Ga({},d),{},{isShow:!0}))}for(var m=s?l-1:l,x=function(y){var w=o[y],j,k=function(){return j===void 0&&(j=n(w,y)),j};if(y===0){var S=t*(w.coordinate-t*k()/2-c);o[y]=w=Ga(Ga({},w),{},{tickCoord:S<0?w.coordinate-S*t:w.coordinate})}else o[y]=w=Ga(Ga({},w),{},{tickCoord:w.coordinate});var _=Pw(t,w.tickCoord,k,c,u);_&&(c=w.tickCoord+t*(k()/2+a),o[y]=Ga(Ga({},w),{},{isShow:!0}))},v=0;v=2?go(a[1].coordinate-a[0].coordinate):1,b=nSe(s,v,p);return c==="equidistantPreserveStart"?aSe(v,b,x,a,o):(c==="preserveStart"||c==="preserveStartEnd"?h=cSe(v,b,x,a,o,c==="preserveStartEnd"):h=lSe(v,b,x,a,o),h.filter(function(y){return y.isShow}))}var uSe=["viewBox"],dSe=["viewBox"],fSe=["ticks"];function Cp(t){"@babel/helpers - typeof";return Cp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Cp(t)}function wh(){return wh=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function hSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function pSe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c$(t,e){for(var n=0;n0?c(this.props):c(p)),o<=0||l<=0||!m||!m.length?null:H.createElement(cn,{className:Gt("recharts-cartesian-axis",u),ref:function(v){r.layerReference=v}},s&&this.renderAxisLine(),this.renderTicks(m,this.state.fontSize,this.state.letterSpacing),Xa.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var o,l=Gt(a.className,"recharts-cartesian-axis-tick-value");return H.isValidElement(r)?o=H.cloneElement(r,Kr(Kr({},a),{},{className:l})):At(r)?o=r(Kr(Kr({},a),{},{className:l})):o=H.createElement(Q1,wh({},a,{className:"recharts-cartesian-axis-tick-value"}),s),o}}])}(g.Component);G3(bm,"displayName","CartesianAxis");G3(bm,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wSe=["x1","y1","x2","y2","key"],kSe=["offset"];function tf(t){"@babel/helpers - typeof";return tf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tf(t)}function u$(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function Ja(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function NSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var CSe=function(e){var n=e.fill;if(!n||n==="none")return null;var r=e.fillOpacity,a=e.x,s=e.y,o=e.width,l=e.height,c=e.ry;return H.createElement("rect",{x:a,y:s,ry:c,width:o,height:l,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function rW(t,e){var n;if(H.isValidElement(t))n=H.cloneElement(t,e);else if(At(t))n=t(e);else{var r=e.x1,a=e.y1,s=e.x2,o=e.y2,l=e.key,c=d$(e,wSe),u=Ct(c,!1);u.offset;var d=d$(u,kSe);n=H.createElement("line",kd({},d,{x1:r,y1:a,x2:s,y2:o,fill:"none",key:l}))}return n}function ESe(t){var e=t.x,n=t.width,r=t.horizontal,a=r===void 0?!0:r,s=t.horizontalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Ja(Ja({},t),{},{x1:e,y1:l,x2:e+n,y2:l,key:"line-".concat(c),index:c});return rW(a,u)});return H.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function ASe(t){var e=t.y,n=t.height,r=t.vertical,a=r===void 0?!0:r,s=t.verticalPoints;if(!a||!s||!s.length)return null;var o=s.map(function(l,c){var u=Ja(Ja({},t),{},{x1:l,y1:e,x2:l,y2:e+n,key:"line-".concat(c),index:c});return rW(a,u)});return H.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function OSe(t){var e=t.horizontalFill,n=t.fillOpacity,r=t.x,a=t.y,s=t.width,o=t.height,l=t.horizontalPoints,c=t.horizontal,u=c===void 0?!0:c;if(!u||!e||!e.length)return null;var d=l.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?a+o-h:d[p+1]-h;if(x<=0)return null;var v=p%e.length;return H.createElement("rect",{key:"react-".concat(p),y:h,x:r,height:x,width:s,stroke:"none",fill:e[v],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return H.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function TSe(t){var e=t.vertical,n=e===void 0?!0:e,r=t.verticalFill,a=t.fillOpacity,s=t.x,o=t.y,l=t.width,c=t.height,u=t.verticalPoints;if(!n||!r||!r.length)return null;var d=u.map(function(h){return Math.round(h+s-s)}).sort(function(h,p){return h-p});s!==d[0]&&d.unshift(0);var f=d.map(function(h,p){var m=!d[p+1],x=m?s+l-h:d[p+1]-h;if(x<=0)return null;var v=p%r.length;return H.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:x,height:c,stroke:"none",fill:r[v],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return H.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var PSe=function(e,n){var r=e.xAxis,a=e.width,s=e.height,o=e.offset;return hV(H3(Ja(Ja(Ja({},bm.defaultProps),r),{},{ticks:ql(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.left,o.left+o.width,n)},RSe=function(e,n){var r=e.yAxis,a=e.width,s=e.height,o=e.offset;return hV(H3(Ja(Ja(Ja({},bm.defaultProps),r),{},{ticks:ql(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),o.top,o.top+o.height,n)},Ff={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Kl(t){var e,n,r,a,s,o,l=z3(),c=U3(),u=b2e(),d=Ja(Ja({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:Ff.stroke,fill:(n=t.fill)!==null&&n!==void 0?n:Ff.fill,horizontal:(r=t.horizontal)!==null&&r!==void 0?r:Ff.horizontal,horizontalFill:(a=t.horizontalFill)!==null&&a!==void 0?a:Ff.horizontalFill,vertical:(s=t.vertical)!==null&&s!==void 0?s:Ff.vertical,verticalFill:(o=t.verticalFill)!==null&&o!==void 0?o:Ff.verticalFill,x:$e(t.x)?t.x:u.left,y:$e(t.y)?t.y:u.top,width:$e(t.width)?t.width:u.width,height:$e(t.height)?t.height:u.height}),f=d.x,h=d.y,p=d.width,m=d.height,x=d.syncWithTicks,v=d.horizontalValues,b=d.verticalValues,y=x2e(),w=y2e();if(!$e(p)||p<=0||!$e(m)||m<=0||!$e(f)||f!==+f||!$e(h)||h!==+h)return null;var j=d.verticalCoordinatesGenerator||PSe,k=d.horizontalCoordinatesGenerator||RSe,S=d.horizontalPoints,_=d.verticalPoints;if((!S||!S.length)&&At(k)){var C=v&&v.length,E=k({yAxis:w?Ja(Ja({},w),{},{ticks:C?v:w.ticks}):void 0,width:l,height:c,offset:u},C?!0:x);Zl(Array.isArray(E),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(tf(E),"]")),Array.isArray(E)&&(S=E)}if((!_||!_.length)&&At(j)){var P=b&&b.length,R=j({xAxis:y?Ja(Ja({},y),{},{ticks:P?b:y.ticks}):void 0,width:l,height:c,offset:u},P?!0:x);Zl(Array.isArray(R),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(tf(R),"]")),Array.isArray(R)&&(_=R)}return H.createElement("g",{className:"recharts-cartesian-grid"},H.createElement(CSe,{fill:d.fill,fillOpacity:d.fillOpacity,x:d.x,y:d.y,width:d.width,height:d.height,ry:d.ry}),H.createElement(ESe,kd({},d,{offset:u,horizontalPoints:S,xAxis:y,yAxis:w})),H.createElement(ASe,kd({},d,{offset:u,verticalPoints:_,xAxis:y,yAxis:w})),H.createElement(OSe,kd({},d,{horizontalPoints:S})),H.createElement(TSe,kd({},d,{verticalPoints:_})))}Kl.displayName="CartesianGrid";var MSe=["type","layout","connectNulls","ref"],DSe=["key"];function Ep(t){"@babel/helpers - typeof";return Ep=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ep(t)}function f$(t,e){if(t==null)return{};var n=ISe(t,e),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function ISe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function gx(){return gx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nf){p=[].concat(Bf(c.slice(0,m)),[f-x]);break}var v=p.length%2===0?[0,h]:[h];return[].concat(Bf(e.repeat(c,d)),Bf(p),v).map(function(b){return"".concat(b,"px")}).join(", ")}),uo(n,"id",vf("recharts-line-")),uo(n,"pathRef",function(o){n.mainCurve=o}),uo(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),uo(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return GSe(e,t),USe(e,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,o=s.points,l=s.xAxis,c=s.yAxis,u=s.layout,d=s.children,f=Ws(d,vm);if(!f)return null;var h=function(x,v){return{x:x.x,y:x.y,value:x.value,errorVal:na(x.payload,v)}},p={clipPath:r?"url(#clipPath-".concat(a,")"):null};return H.createElement(cn,p,f.map(function(m){return H.cloneElement(m,{key:"bar-".concat(m.props.dataKey),data:o,xAxis:l,yAxis:c,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(r,a,s){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var l=this.props,c=l.dot,u=l.points,d=l.dataKey,f=Ct(this.props,!1),h=Ct(c,!0),p=u.map(function(x,v){var b=ai(ai(ai({key:"dot-".concat(v),r:3},f),h),{},{index:v,cx:x.x,cy:x.y,value:x.value,dataKey:d,payload:x.payload,points:u});return e.renderDotItem(c,b)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return H.createElement(cn,gx({className:"recharts-line-dots",key:"dots"},m),p)}},{key:"renderCurveStatically",value:function(r,a,s,o){var l=this.props,c=l.type,u=l.layout,d=l.connectNulls;l.ref;var f=f$(l,MSe),h=ai(ai(ai({},Ct(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},o),{},{type:c,layout:u,connectNulls:d});return H.createElement($d,gx({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,o=this.props,l=o.points,c=o.strokeDasharray,u=o.isAnimationActive,d=o.animationBegin,f=o.animationDuration,h=o.animationEasing,p=o.animationId,m=o.animateNewValues,x=o.width,v=o.height,b=this.state,y=b.prevPoints,w=b.totalLength;return H.createElement(jo,{begin:d,duration:f,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var k=j.t;if(y){var S=y.length/l.length,_=l.map(function(A,T){var D=Math.floor(T*S);if(y[D]){var L=y[D],X=Mr(L.x,A.x),J=Mr(L.y,A.y);return ai(ai({},A),{},{x:X(k),y:J(k)})}if(m){var U=Mr(x*2,A.x),Y=Mr(v/2,A.y);return ai(ai({},A),{},{x:U(k),y:Y(k)})}return ai(ai({},A),{},{x:A.x,y:A.y})});return s.renderCurveStatically(_,r,a)}var C=Mr(0,w),E=C(k),P;if(c){var R="".concat(c).split(/[,\s]+/gim).map(function(A){return parseFloat(A)});P=s.getStrokeDasharray(E,w,R)}else P=s.generateSimpleStrokeDasharray(w,E);return s.renderCurveStatically(l,r,a,{strokeDasharray:P})})}},{key:"renderCurve",value:function(r,a){var s=this.props,o=s.points,l=s.isAnimationActive,c=this.state,u=c.prevPoints,d=c.totalLength;return l&&o&&o.length&&(!u&&d>0||!Zd(u,o))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(o,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.xAxis,d=a.yAxis,f=a.top,h=a.left,p=a.width,m=a.height,x=a.isAnimationActive,v=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,y=l.length===1,w=Gt("recharts-line",c),j=u&&u.allowDataOverflow,k=d&&d.allowDataOverflow,S=j||k,_=_t(v)?this.id:v,C=(r=Ct(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=C.r,P=E===void 0?3:E,R=C.strokeWidth,A=R===void 0?2:R,T=o7(o)?o:{},D=T.clipDot,L=D===void 0?!0:D,X=P*2+A;return H.createElement(cn,{className:w},j||k?H.createElement("defs",null,H.createElement("clipPath",{id:"clipPath-".concat(_)},H.createElement("rect",{x:j?h:h-p/2,y:k?f:f-m/2,width:j?p:p*2,height:k?m:m*2})),!L&&H.createElement("clipPath",{id:"clipPath-dots-".concat(_)},H.createElement("rect",{x:h-X/2,y:f-X/2,width:p+X,height:m+X}))):null,!y&&this.renderCurve(S,_),this.renderErrorBar(S,_),(y||o)&&this.renderDots(S,L,_),(!x||b)&&fl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Bf(r),[0]):r,o=[],l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function XSe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function jd(){return jd=Object.assign?Object.assign.bind():function(t){for(var e=1;e0||!Zd(d,o)||!Zd(f,l))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(o,l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,o=a.dot,l=a.points,c=a.className,u=a.top,d=a.left,f=a.xAxis,h=a.yAxis,p=a.width,m=a.height,x=a.isAnimationActive,v=a.id;if(s||!l||!l.length)return null;var b=this.state.isAnimationFinished,y=l.length===1,w=Gt("recharts-area",c),j=f&&f.allowDataOverflow,k=h&&h.allowDataOverflow,S=j||k,_=_t(v)?this.id:v,C=(r=Ct(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=C.r,P=E===void 0?3:E,R=C.strokeWidth,A=R===void 0?2:R,T=o7(o)?o:{},D=T.clipDot,L=D===void 0?!0:D,X=P*2+A;return H.createElement(cn,{className:w},j||k?H.createElement("defs",null,H.createElement("clipPath",{id:"clipPath-".concat(_)},H.createElement("rect",{x:j?d:d-p/2,y:k?u:u-m/2,width:j?p:p*2,height:k?m:m*2})),!L&&H.createElement("clipPath",{id:"clipPath-dots-".concat(_)},H.createElement("rect",{x:d-X/2,y:u-X/2,width:p+X,height:m+X}))):null,y?null:this.renderArea(S,_),(o||y)&&this.renderDots(S,L,_),(!x||b)&&fl.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(g.PureComponent);iW=Gu;rl(Gu,"displayName","Area");rl(Gu,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Uu.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});rl(Gu,"getBaseValue",function(t,e,n,r){var a=t.layout,s=t.baseValue,o=e.props.baseValue,l=o??s;if($e(l)&&typeof l=="number")return l;var c=a==="horizontal"?r:n,u=c.scale.domain();if(c.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return l==="dataMin"?f:l==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return l==="dataMin"?u[0]:l==="dataMax"?u[1]:u[0]});rl(Gu,"getComposedData",function(t){var e=t.props,n=t.item,r=t.xAxis,a=t.yAxis,s=t.xAxisTicks,o=t.yAxisTicks,l=t.bandSize,c=t.dataKey,u=t.stackedData,d=t.dataStartIndex,f=t.displayedData,h=t.offset,p=e.layout,m=u&&u.length,x=iW.getBaseValue(e,n,r,a),v=p==="horizontal",b=!1,y=f.map(function(j,k){var S;m?S=u[d+k]:(S=na(j,c),Array.isArray(S)?b=!0:S=[x,S]);var _=S[1]==null||m&&na(j,c)==null;return v?{x:vp({axis:r,ticks:s,bandSize:l,entry:j,index:k}),y:_?null:a.scale(S[1]),value:S,payload:j}:{x:_?null:r.scale(S[1]),y:vp({axis:a,ticks:o,bandSize:l,entry:j,index:k}),value:S,payload:j}}),w;return m||b?w=y.map(function(j){var k=Array.isArray(j.value)?j.value[0]:null;return v?{x:j.x,y:k!=null&&j.y!=null?a.scale(k):null}:{x:k!=null?r.scale(k):null,y:j.y}}):w=v?a.scale(x):r.scale(x),Pc({points:y,baseLine:w,layout:p,isRange:b},h)});rl(Gu,"renderDotItem",function(t,e){var n;if(H.isValidElement(t))n=H.cloneElement(t,e);else if(At(t))n=t(e);else{var r=Gt("recharts-area-dot",typeof t!="boolean"?t.className:""),a=e.key,s=oW(e,YSe);n=H.createElement(jj,jd({},s,{key:a,className:r}))}return n});function Op(t){"@babel/helpers - typeof";return Op=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Op(t)}function a_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s_e(t,e){for(var n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function p_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function m_e(t){var e=t.option,n=t.isActive,r=h_e(t,f_e);return typeof e=="string"?g.createElement(AE,xx({option:g.createElement(uj,xx({type:e},r)),isActive:n,shapeType:"symbols"},r)):g.createElement(AE,xx({option:e,isActive:n,shapeType:"symbols"},r))}function Tp(t){"@babel/helpers - typeof";return Tp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tp(t)}function yx(){return yx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function uNe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function dNe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function fNe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?o:e&&e.length&&$e(a)&&$e(s)?e.slice(a,s+1):[]};function EW(t){return t==="number"?[0,"auto"]:void 0}var QE=function(e,n,r,a){var s=e.graphicalItems,o=e.tooltipAxis,l=Rj(n,e);return r<0||!s||!s.length||r>=l.length?null:s.reduce(function(c,u){var d,f=(d=u.props.data)!==null&&d!==void 0?d:n;f&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=r&&(f=f.slice(e.dataStartIndex,e.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=f===void 0?l:f;h=L1(p,o.dataKey,a)}else h=f&&f[r]||l[r];return h?[].concat(Dp(c),[mV(u,h)]):c},[])},S$=function(e,n,r,a){var s=a||{x:e.chartX,y:e.chartY},o=SNe(s,r),l=e.orderedTooltipTicks,c=e.tooltipAxis,u=e.tooltipTicks,d=ove(o,l,u,c);if(d>=0&&u){var f=u[d]&&u[d].value,h=QE(e,n,d,f),p=_Ne(r,l,d,s);return{activeTooltipIndex:d,activeLabel:f,activePayload:h,activeCoordinate:p}}return null},NNe=function(e,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=e.stackOffset,p=fV(d,s);return r.reduce(function(m,x){var v,b=x.type.defaultProps!==void 0?je(je({},x.type.defaultProps),x.props):x.props,y=b.type,w=b.dataKey,j=b.allowDataOverflow,k=b.allowDuplicatedCategory,S=b.scale,_=b.ticks,C=b.includeHidden,E=b[o];if(m[E])return m;var P=Rj(e.data,{graphicalItems:a.filter(function(I){var q,M=o in I.props?I.props[o]:(q=I.type.defaultProps)===null||q===void 0?void 0:q[o];return M===E}),dataStartIndex:c,dataEndIndex:u}),R=P.length,A,T,D;Z_e(b.domain,j,y)&&(A=hE(b.domain,null,j),p&&(y==="number"||S!=="auto")&&(D=px(P,w,"category")));var L=EW(y);if(!A||A.length===0){var X,J=(X=b.domain)!==null&&X!==void 0?X:L;if(w){if(A=px(P,w,y),y==="category"&&p){var U=Kae(A);k&&U?(T=A,A=Sw(0,R)):k||(A=tI(J,A,x).reduce(function(I,q){return I.indexOf(q)>=0?I:[].concat(Dp(I),[q])},[]))}else if(y==="category")k?A=A.filter(function(I){return I!==""&&!_t(I)}):A=tI(J,A,x).reduce(function(I,q){return I.indexOf(q)>=0||q===""||_t(q)?I:[].concat(Dp(I),[q])},[]);else if(y==="number"){var Y=fve(P,a.filter(function(I){var q,M,B=o in I.props?I.props[o]:(q=I.type.defaultProps)===null||q===void 0?void 0:q[o],z="hide"in I.props?I.props.hide:(M=I.type.defaultProps)===null||M===void 0?void 0:M.hide;return B===E&&(C||!z)}),w,s,d);Y&&(A=Y)}p&&(y==="number"||S!=="auto")&&(D=px(P,w,"category"))}else p?A=Sw(0,R):l&&l[E]&&l[E].hasStack&&y==="number"?A=h==="expand"?[0,1]:pV(l[E].stackGroups,c,u):A=dV(P,a.filter(function(I){var q=o in I.props?I.props[o]:I.type.defaultProps[o],M="hide"in I.props?I.props.hide:I.type.defaultProps.hide;return q===E&&(C||!M)}),y,d,!0);if(y==="number")A=XE(f,A,E,s,_),J&&(A=hE(J,A,j));else if(y==="category"&&J){var W=J,G=A.every(function(I){return W.indexOf(I)>=0});G&&(A=W)}}return je(je({},m),{},xt({},E,je(je({},b),{},{axisType:s,domain:A,categoricalDomain:D,duplicateDomain:T,originalDomain:(v=b.domain)!==null&&v!==void 0?v:L,isCategorical:p,layout:d})))},{})},CNe=function(e,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,o=n.axisIdKey,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.layout,f=e.children,h=Rj(e.data,{graphicalItems:r,dataStartIndex:c,dataEndIndex:u}),p=h.length,m=fV(d,s),x=-1;return r.reduce(function(v,b){var y=b.type.defaultProps!==void 0?je(je({},b.type.defaultProps),b.props):b.props,w=y[o],j=EW("number");if(!v[w]){x++;var k;return m?k=Sw(0,p):l&&l[w]&&l[w].hasStack?(k=pV(l[w].stackGroups,c,u),k=XE(f,k,w,s)):(k=hE(j,dV(h,r.filter(function(S){var _,C,E=o in S.props?S.props[o]:(_=S.type.defaultProps)===null||_===void 0?void 0:_[o],P="hide"in S.props?S.props.hide:(C=S.type.defaultProps)===null||C===void 0?void 0:C.hide;return E===w&&!P}),"number",d),a.defaultProps.allowDataOverflow),k=XE(f,k,w,s)),je(je({},v),{},xt({},w,je(je({axisType:s},a.defaultProps),{},{hide:!0,orientation:Fi(kNe,"".concat(s,".").concat(x%2),null),domain:k,originalDomain:j,isCategorical:m,layout:d})))}return v},{})},ENe=function(e,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,d=e.children,f="".concat(a,"Id"),h=Ws(d,s),p={};return h&&h.length?p=NNe(e,{axes:h,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u}):o&&o.length&&(p=CNe(e,{Axis:s,graphicalItems:o,axisType:a,axisIdKey:f,stackGroups:l,dataStartIndex:c,dataEndIndex:u})),p},ANe=function(e){var n=Vc(e),r=ql(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:c3(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:pw(n,r)}},_$=function(e){var n=e.children,r=e.defaultShowTooltip,a=oi(n,kp),s=0,o=0;return e.data&&e.data.length!==0&&(o=e.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(o=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},ONe=function(e){return!e||!e.length?!1:e.some(function(n){var r=Jl(n&&n.type);return r&&r.indexOf("Bar")>=0})},N$=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},TNe=function(e,n){var r=e.props,a=e.graphicalItems,s=e.xAxisMap,o=s===void 0?{}:s,l=e.yAxisMap,c=l===void 0?{}:l,u=r.width,d=r.height,f=r.children,h=r.margin||{},p=oi(f,kp),m=oi(f,ul),x=Object.keys(c).reduce(function(k,S){var _=c[S],C=_.orientation;return!_.mirror&&!_.hide?je(je({},k),{},xt({},C,k[C]+_.width)):k},{left:h.left||0,right:h.right||0}),v=Object.keys(o).reduce(function(k,S){var _=o[S],C=_.orientation;return!_.mirror&&!_.hide?je(je({},k),{},xt({},C,Fi(k,"".concat(C))+_.height)):k},{top:h.top||0,bottom:h.bottom||0}),b=je(je({},v),x),y=b.bottom;p&&(b.bottom+=p.props.height||kp.defaultProps.height),m&&n&&(b=uve(b,a,r,n));var w=u-b.left-b.right,j=d-b.top-b.bottom;return je(je({brushBottom:y},b),{},{width:Math.max(w,0),height:Math.max(j,0)})},PNe=function(e,n){if(n==="xAxis")return e[n].width;if(n==="yAxis")return e[n].height},q3=function(e){var n=e.chartName,r=e.GraphicalChild,a=e.defaultTooltipEventType,s=a===void 0?"axis":a,o=e.validateTooltipEventTypes,l=o===void 0?["axis"]:o,c=e.axisComponents,u=e.legendContent,d=e.formatAxisMap,f=e.defaultProps,h=function(b,y){var w=y.graphicalItems,j=y.stackGroups,k=y.offset,S=y.updateId,_=y.dataStartIndex,C=y.dataEndIndex,E=b.barSize,P=b.layout,R=b.barGap,A=b.barCategoryGap,T=b.maxBarSize,D=N$(P),L=D.numericAxisName,X=D.cateAxisName,J=ONe(w),U=[];return w.forEach(function(Y,W){var G=Rj(b.data,{graphicalItems:[Y],dataStartIndex:_,dataEndIndex:C}),I=Y.type.defaultProps!==void 0?je(je({},Y.type.defaultProps),Y.props):Y.props,q=I.dataKey,M=I.maxBarSize,B=I["".concat(L,"Id")],z=I["".concat(X,"Id")],Z={},pe=c.reduce(function(Be,st){var F=y["".concat(st.axisType,"Map")],se=I["".concat(st.axisType,"Id")];F&&F[se]||st.axisType==="zAxis"||ef();var ie=F[se];return je(je({},Be),{},xt(xt({},st.axisType,ie),"".concat(st.axisType,"Ticks"),ql(ie)))},Z),ae=pe[X],ue=pe["".concat(X,"Ticks")],de=j&&j[B]&&j[B].hasStack&&Sve(Y,j[B].stackGroups),Q=Jl(Y.type).indexOf("Bar")>=0,fe=pw(ae,ue),ne=[],ce=J&&lve({barSize:E,stackGroups:j,totalSize:PNe(pe,X)});if(Q){var he,be,Pe=_t(M)?T:M,Ce=(he=(be=pw(ae,ue,!0))!==null&&be!==void 0?be:Pe)!==null&&he!==void 0?he:0;ne=cve({barGap:R,barCategoryGap:A,bandSize:Ce!==fe?Ce:fe,sizeList:ce[z],maxBarSize:Pe}),Ce!==fe&&(ne=ne.map(function(Be){return je(je({},Be),{},{position:je(je({},Be.position),{},{offset:Be.position.offset-Ce/2})})}))}var Re=Y&&Y.type&&Y.type.getComposedData;Re&&U.push({props:je(je({},Re(je(je({},pe),{},{displayedData:G,props:b,dataKey:q,item:Y,bandSize:fe,barPosition:ne,offset:k,stackedData:de,layout:P,dataStartIndex:_,dataEndIndex:C}))),{},xt(xt(xt({key:Y.key||"item-".concat(W)},L,pe[L]),X,pe[X]),"animationId",S)),childIndex:ose(Y,b.children),item:Y})}),U},p=function(b,y){var w=b.props,j=b.dataStartIndex,k=b.dataEndIndex,S=b.updateId;if(!YM({props:w}))return null;var _=w.children,C=w.layout,E=w.stackOffset,P=w.data,R=w.reverseStackOrder,A=N$(C),T=A.numericAxisName,D=A.cateAxisName,L=Ws(_,r),X=wve(P,L,"".concat(T,"Id"),"".concat(D,"Id"),E,R),J=c.reduce(function(I,q){var M="".concat(q.axisType,"Map");return je(je({},I),{},xt({},M,ENe(w,je(je({},q),{},{graphicalItems:L,stackGroups:q.axisType===T&&X,dataStartIndex:j,dataEndIndex:k}))))},{}),U=TNe(je(je({},J),{},{props:w,graphicalItems:L}),y==null?void 0:y.legendBBox);Object.keys(J).forEach(function(I){J[I]=d(w,J[I],U,I.replace("Map",""),n)});var Y=J["".concat(D,"Map")],W=ANe(Y),G=h(w,je(je({},J),{},{dataStartIndex:j,dataEndIndex:k,updateId:S,graphicalItems:L,stackGroups:X,offset:U}));return je(je({formattedGraphicalItems:G,graphicalItems:L,offset:U,stackGroups:X},W),J)},m=function(v){function b(y){var w,j,k;return dNe(this,b),k=pNe(this,b,[y]),xt(k,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),xt(k,"accessibilityManager",new J_e),xt(k,"handleLegendBBoxUpdate",function(S){if(S){var _=k.state,C=_.dataStartIndex,E=_.dataEndIndex,P=_.updateId;k.setState(je({legendBBox:S},p({props:k.props,dataStartIndex:C,dataEndIndex:E,updateId:P},je(je({},k.state),{},{legendBBox:S}))))}}),xt(k,"handleReceiveSyncEvent",function(S,_,C){if(k.props.syncId===S){if(C===k.eventEmitterSymbol&&typeof k.props.syncMethod!="function")return;k.applySyncEvent(_)}}),xt(k,"handleBrushChange",function(S){var _=S.startIndex,C=S.endIndex;if(_!==k.state.dataStartIndex||C!==k.state.dataEndIndex){var E=k.state.updateId;k.setState(function(){return je({dataStartIndex:_,dataEndIndex:C},p({props:k.props,dataStartIndex:_,dataEndIndex:C,updateId:E},k.state))}),k.triggerSyncEvent({dataStartIndex:_,dataEndIndex:C})}}),xt(k,"handleMouseEnter",function(S){var _=k.getMouseInfo(S);if(_){var C=je(je({},_),{},{isTooltipActive:!0});k.setState(C),k.triggerSyncEvent(C);var E=k.props.onMouseEnter;At(E)&&E(C,S)}}),xt(k,"triggeredAfterMouseMove",function(S){var _=k.getMouseInfo(S),C=_?je(je({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};k.setState(C),k.triggerSyncEvent(C);var E=k.props.onMouseMove;At(E)&&E(C,S)}),xt(k,"handleItemMouseEnter",function(S){k.setState(function(){return{isTooltipActive:!0,activeItem:S,activePayload:S.tooltipPayload,activeCoordinate:S.tooltipPosition||{x:S.cx,y:S.cy}}})}),xt(k,"handleItemMouseLeave",function(){k.setState(function(){return{isTooltipActive:!1}})}),xt(k,"handleMouseMove",function(S){S.persist(),k.throttleTriggeredAfterMouseMove(S)}),xt(k,"handleMouseLeave",function(S){k.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};k.setState(_),k.triggerSyncEvent(_);var C=k.props.onMouseLeave;At(C)&&C(_,S)}),xt(k,"handleOuterEvent",function(S){var _=ise(S),C=Fi(k.props,"".concat(_));if(_&&At(C)){var E,P;/.*touch.*/i.test(_)?P=k.getMouseInfo(S.changedTouches[0]):P=k.getMouseInfo(S),C((E=P)!==null&&E!==void 0?E:{},S)}}),xt(k,"handleClick",function(S){var _=k.getMouseInfo(S);if(_){var C=je(je({},_),{},{isTooltipActive:!0});k.setState(C),k.triggerSyncEvent(C);var E=k.props.onClick;At(E)&&E(C,S)}}),xt(k,"handleMouseDown",function(S){var _=k.props.onMouseDown;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleMouseUp",function(S){var _=k.props.onMouseUp;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleTouchMove",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.throttleTriggeredAfterMouseMove(S.changedTouches[0])}),xt(k,"handleTouchStart",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.handleMouseDown(S.changedTouches[0])}),xt(k,"handleTouchEnd",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&k.handleMouseUp(S.changedTouches[0])}),xt(k,"handleDoubleClick",function(S){var _=k.props.onDoubleClick;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"handleContextMenu",function(S){var _=k.props.onContextMenu;if(At(_)){var C=k.getMouseInfo(S);_(C,S)}}),xt(k,"triggerSyncEvent",function(S){k.props.syncId!==void 0&&AS.emit(OS,k.props.syncId,S,k.eventEmitterSymbol)}),xt(k,"applySyncEvent",function(S){var _=k.props,C=_.layout,E=_.syncMethod,P=k.state.updateId,R=S.dataStartIndex,A=S.dataEndIndex;if(S.dataStartIndex!==void 0||S.dataEndIndex!==void 0)k.setState(je({dataStartIndex:R,dataEndIndex:A},p({props:k.props,dataStartIndex:R,dataEndIndex:A,updateId:P},k.state)));else if(S.activeTooltipIndex!==void 0){var T=S.chartX,D=S.chartY,L=S.activeTooltipIndex,X=k.state,J=X.offset,U=X.tooltipTicks;if(!J)return;if(typeof E=="function")L=E(U,S);else if(E==="value"){L=-1;for(var Y=0;Y=0){var de,Q;if(T.dataKey&&!T.allowDuplicatedCategory){var fe=typeof T.dataKey=="function"?ue:"payload.".concat(T.dataKey.toString());de=L1(Y,fe,L),Q=W&&G&&L1(G,fe,L)}else de=Y==null?void 0:Y[D],Q=W&&G&&G[D];if(z||B){var ne=S.props.activeIndex!==void 0?S.props.activeIndex:D;return[g.cloneElement(S,je(je(je({},E.props),pe),{},{activeIndex:ne})),null,null]}if(!_t(de))return[ae].concat(Dp(k.renderActivePoints({item:E,activePoint:de,basePoint:Q,childIndex:D,isRange:W})))}else{var ce,he=(ce=k.getItemByXY(k.state.activeCoordinate))!==null&&ce!==void 0?ce:{graphicalItem:ae},be=he.graphicalItem,Pe=be.item,Ce=Pe===void 0?S:Pe,Re=be.childIndex,Be=je(je(je({},E.props),pe),{},{activeIndex:Re});return[g.cloneElement(Ce,Be),null,null]}return W?[ae,null,null]:[ae,null]}),xt(k,"renderCustomized",function(S,_,C){return g.cloneElement(S,je(je({key:"recharts-customized-".concat(C)},k.props),k.state))}),xt(k,"renderMap",{CartesianGrid:{handler:Wv,once:!0},ReferenceArea:{handler:k.renderReferenceElement},ReferenceLine:{handler:Wv},ReferenceDot:{handler:k.renderReferenceElement},XAxis:{handler:Wv},YAxis:{handler:Wv},Brush:{handler:k.renderBrush,once:!0},Bar:{handler:k.renderGraphicChild},Line:{handler:k.renderGraphicChild},Area:{handler:k.renderGraphicChild},Radar:{handler:k.renderGraphicChild},RadialBar:{handler:k.renderGraphicChild},Scatter:{handler:k.renderGraphicChild},Pie:{handler:k.renderGraphicChild},Funnel:{handler:k.renderGraphicChild},Tooltip:{handler:k.renderCursor,once:!0},PolarGrid:{handler:k.renderPolarGrid,once:!0},PolarAngleAxis:{handler:k.renderPolarAxis},PolarRadiusAxis:{handler:k.renderPolarAxis},Customized:{handler:k.renderCustomized}}),k.clipPathId="".concat((w=y.id)!==null&&w!==void 0?w:vf("recharts"),"-clip"),k.throttleTriggeredAfterMouseMove=uU(k.triggeredAfterMouseMove,(j=y.throttleDelay)!==null&&j!==void 0?j:1e3/60),k.state={},k}return xNe(b,v),hNe(b,[{key:"componentDidMount",value:function(){var w,j;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(j=this.props.margin.top)!==null&&j!==void 0?j:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,j=w.children,k=w.data,S=w.height,_=w.layout,C=oi(j,xa);if(C){var E=C.props.defaultIndex;if(!(typeof E!="number"||E<0||E>this.state.tooltipTicks.length-1)){var P=this.state.tooltipTicks[E]&&this.state.tooltipTicks[E].value,R=QE(this.state,k,E,P),A=this.state.tooltipTicks[E].coordinate,T=(this.state.offset.top+S)/2,D=_==="horizontal",L=D?{x:A,y:T}:{y:A,x:T},X=this.state.formattedGraphicalItems.find(function(U){var Y=U.item;return Y.type.name==="Scatter"});X&&(L=je(je({},L),X.props.points[E].tooltipPosition),R=X.props.points[E].tooltipPayload);var J={activeTooltipIndex:E,isTooltipActive:!0,activeLabel:P,activePayload:R,activeCoordinate:L};this.setState(J),this.renderCursor(C),this.accessibilityManager.setIndex(E)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,j){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==j.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var k,S;this.accessibilityManager.setDetails({offset:{left:(k=this.props.margin.left)!==null&&k!==void 0?k:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0}})}return null}},{key:"componentDidUpdate",value:function(w){EC([oi(w.children,xa)],[oi(this.props.children,xa)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=oi(this.props.children,xa);if(w&&typeof w.props.shared=="boolean"){var j=w.props.shared?"axis":"item";return l.indexOf(j)>=0?j:s}return s}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var j=this.container,k=j.getBoundingClientRect(),S=Rme(k),_={chartX:Math.round(w.pageX-S.left),chartY:Math.round(w.pageY-S.top)},C=k.width/j.offsetWidth||1,E=this.inRange(_.chartX,_.chartY,C);if(!E)return null;var P=this.state,R=P.xAxisMap,A=P.yAxisMap,T=this.getTooltipEventType(),D=S$(this.state,this.props.data,this.props.layout,E);if(T!=="axis"&&R&&A){var L=Vc(R).scale,X=Vc(A).scale,J=L&&L.invert?L.invert(_.chartX):null,U=X&&X.invert?X.invert(_.chartY):null;return je(je({},_),{},{xValue:J,yValue:U},D)}return D?je(je({},_),D):null}},{key:"inRange",value:function(w,j){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=this.props.layout,_=w/k,C=j/k;if(S==="horizontal"||S==="vertical"){var E=this.state.offset,P=_>=E.left&&_<=E.left+E.width&&C>=E.top&&C<=E.top+E.height;return P?{x:_,y:C}:null}var R=this.state,A=R.angleAxisMap,T=R.radiusAxisMap;if(A&&T){var D=Vc(A);return aI({x:_,y:C},D)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,j=this.getTooltipEventType(),k=oi(w,xa),S={};k&&j==="axis"&&(k.props.trigger==="click"?S={onClick:this.handleClick}:S={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=F1(this.props,this.handleOuterEvent);return je(je({},_),S)}},{key:"addListener",value:function(){AS.on(OS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){AS.removeListener(OS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,j,k){for(var S=this.state.formattedGraphicalItems,_=0,C=S.length;_t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ge=(t,e)=>{const n=g.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:c,...u},d)=>g.createElement("svg",{ref:d,...RNe,width:a,height:a,stroke:r,strokeWidth:o?Number(s)*24/Number(a):s,className:["lucide",`lucide-${MNe(t)}`,l].join(" "),...u},[...e.map(([f,h])=>g.createElement(f,h)),...Array.isArray(c)?c:[c]]));return n.displayName=`${t}`,n};/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Uh=Ge("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Mj=Ge("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const I0=Ge("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ju=Ge("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const OW=Ge("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yb=Ge("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zw=Ge("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DNe=Ge("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Dj=Ge("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jh=Ge("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const INe=Ge("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gi=Ge("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ln=Ge("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $Ne=Ge("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const So=Ge("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hs=Ge("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LNe=Ge("CircleAlert",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const TW=Ge("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ip=Ge("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ij=Ge("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PW=Ge("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ld=Ge("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RW=Ge("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nf=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const C$=Ge("CornerDownRight",[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FNe=Ge("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tA=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BNe=Ge("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $j=Ge("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jf=Ge("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const MW=Ge("FileText",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zNe=Ge("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $p=Ge("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UNe=Ge("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Lj=Ge("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VNe=Ge("GitCompare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const WNe=Ge("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const HNe=Ge("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qu=Ge("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K3=Ge("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Y3=Ge("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fj=Ge("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DW=Ge("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IW=Ge("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Su=Ge("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nA=Ge("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $W=Ge("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LW=Ge("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Sy=Ge("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _o=Ge("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const GNe=Ge("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jl=Ge("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rf=Ge("PieChart",[["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}],["path",{d:"M22 12A10 10 0 0 0 12 2v10z",key:"1rfc4y"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Os=Ge("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qn=Ge("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _y=Ge("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Es=Ge("RefreshCw",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FW=Ge("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Lp=Ge("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BW=Ge("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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qNe=Ge("ShieldAlert",[["path",{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",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const X3=Ge("ShieldCheck",[["path",{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",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ec=Ge("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zW=Ge("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PS=Ge("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7",key:"jon5kx"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ny=Ge("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Cy=Ge("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const KNe=Ge("ToggleRight",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wn=Ge("Trash2",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const J3=Ge("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bj=Ge("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wm=Ge("TriangleAlert",[["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"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UW=Ge("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const E$=Ge("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Z3=Ge("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vr=Ge("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** - * @license lucide-react v0.363.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VW=Ge("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"}]]),YNe="modulepreload",XNe=function(t){return"/decision-engine/"+t},A$={},JNe=function(e,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(n.map(c=>{if(c=XNe(c),c in A$)return;A$[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":YNe,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&s(l.reason);return e().catch(s)})};let O$=null;const Sd={get:()=>O$,set:t=>{O$=t}},WW="public",ZNe="/decision-engine/api",RS=ZNe.replace(/\/$/,""),HW="decision-engine";function Q3(t){if(/^https?:\/\//.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return e.startsWith(`${RS}/`)||e===RS?e:`${RS}${e}`}function QNe(t){return`${window.location.origin}${Q3(t)}`}function T$(t){return typeof t=="string"&&t.trim()?t.trim():typeof t=="number"||typeof t=="boolean"?String(t):null}function GW(t){if(!t||typeof t!="object")return T$(t);const e=t,n=["message","error_message","user_message","developer_message","error","detail","details"];for(const r of n){const a=T$(e[r]);if(a)return a}for(const r of["data","error_info","context"]){const a=GW(e[r]);if(a)return a}return null}const eCe=200,rA="Something went wrong. Please try again.";function qW(t,e,n){const r=n.trim();r&&console.error(`[api] ${t} ${e||""}`.trim(),r.slice(0,2e3));const a=/^\s*({const{useAuthStore:c}=await Promise.resolve().then(()=>fEe);return{useAuthStore:c}},void 0).then(({useAuthStore:c})=>{c.getState().clearAuth()}),window.location.href="/decision-engine/login",new Error("Session expired")}if(!s.ok){const l=new Error(qW(s.status,s.statusText,o));throw l.status=s.status,l.responseText=o,l}if(!o.trim())return;try{return JSON.parse(o)}catch(l){const c=new Error(rA);throw c.status=s.status,c.responseText=o,c.cause=l,console.error(`[api] ${s.status} non-JSON response`,o.slice(0,2e3)),c}}catch(r){throw r}}async function Fe(t,e){return aa(t,{method:"POST",body:e!==void 0?JSON.stringify(e):void 0})}async function zj(t,e){return aa(t,{method:"PUT",body:e!==void 0?JSON.stringify(e):void 0})}async function km(t){return aa(t,{method:"DELETE"})}function eT(t,e,n){const r=Q3(t),a=Sd.get();return new Promise((s,o)=>{const l=new XMLHttpRequest;l.open("POST",r),l.setRequestHeader("Content-Type","application/octet-stream"),l.setRequestHeader("x-tenant-id",WW),l.setRequestHeader("x-feature",HW),a&&l.setRequestHeader("Authorization",`Bearer ${a}`),l.upload.onprogress=c=>{c.lengthComputable&&(n==null||n({loaded:c.loaded,total:c.total,phase:"uploading"}))},l.upload.onload=()=>{n==null||n({loaded:e.size,total:e.size,phase:"processing"})},l.onload=()=>{const c=l.responseText??"";if(l.status>=200&&l.status<300){if(!c.trim()){s(void 0);return}try{s(JSON.parse(c))}catch{o(new Error("Invalid JSON in upload response"))}return}const u=new Error(qW(l.status,l.statusText,c));u.status=l.status,u.responseText=c,o(u)},l.timeout=30*60*1e3,l.onerror=()=>o(new Error("Could not reach the server. Check your connection and try again.")),l.ontimeout=()=>o(new Error("Upload timed out. Please try again.")),l.onabort=()=>o(new Error("Upload cancelled.")),l.send(e)})}async function Dt(t){return aa(t)}const Sh={GSM_RETRY_IN_SIMULATION:!1,SMART_RETRY_IN_ANALYTICS:!1,SMART_RETRY_IN_SIMULATION:!1},Zc={backgroundColor:"var(--chart-tooltip-bg)",border:"1px solid var(--chart-tooltip-border)",borderRadius:"14px",color:"var(--chart-tooltip-text)",boxShadow:"var(--chart-tooltip-shadow)",padding:"10px 12px"},Qc={color:"var(--chart-tooltip-label)",fontWeight:600,marginBottom:8},_h={color:"var(--chart-tooltip-text)"},tCe={primary:"bg-brand-600 text-white hover:bg-brand-700 disabled:opacity-50 shadow-sm border border-transparent dark:bg-white dark:text-black dark:hover:bg-slate-200",secondary:"bg-white text-slate-700 border border-slate-200 hover:bg-slate-50 hover:text-slate-900 disabled:opacity-40 shadow-sm dark:bg-[#121214] dark:text-[#a1a1aa] dark:border-[#27272a] dark:hover:bg-[#18181b] dark:hover:text-white",ghost:"text-slate-500 hover:text-slate-900 hover:bg-slate-100 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:text-white dark:hover:bg-[#121214]",danger:"bg-red-50 text-red-600 hover:bg-red-100 border border-red-200 disabled:opacity-40 dark:bg-[#2a0505] dark:text-red-500 dark:hover:bg-[#380808] dark:border-[#5c1c1c]"},nCe={sm:"px-4 py-1.5 text-xs font-semibold",md:"px-5 py-2.5 text-sm font-semibold"};function we({variant:t="primary",size:e="md",className:n="",...r}){return i.jsx("button",{className:`relative inline-flex items-center justify-center gap-2 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-brand-500/50 focus:ring-offset-1 focus:ring-offset-transparent focus:border-transparent ${tCe[t]} ${nCe[e]} ${n}`,...r,children:r.children})}function Te({children:t,className:e="",onClick:n}){const r=`relative min-w-0 overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-[0_18px_60px_-42px_rgba(15,23,42,0.15)] dark:border-[#2a303a] dark:bg-[#11151d] dark:shadow-[0_18px_60px_-42px_rgba(0,0,0,0.7)] ${n?"cursor-pointer text-left transition duration-300 hover:-translate-y-0.5 hover:border-[#3b82f6]/35 hover:bg-slate-50 dark:hover:bg-[#141923]":""} ${e}`,a=i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-[#3b82f6]/25 to-transparent dark:via-[#3b82f6]/30"}),i.jsx("div",{className:"absolute inset-0 bg-[linear-gradient(180deg,rgba(255,255,255,0.55),transparent_26%)] dark:bg-[linear-gradient(180deg,rgba(255,255,255,0.02),transparent_26%)]"}),i.jsx("div",{className:"relative min-w-0 flex flex-col h-full",children:t})]});return n?i.jsx("button",{type:"button",onClick:n,className:r,children:a}):i.jsx("div",{className:r,children:a})}function yt({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 border-b border-slate-200 px-6 py-5 dark:border-[#2a303a] ${e}`,children:t})}function He({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 px-6 py-5 ${e}`,children:t})}function vn({children:t,className:e=""}){return i.jsx("p",{className:`block max-w-full truncate text-[12px] font-medium leading-4 text-slate-500 dark:text-[#8d96aa] ${e}`,children:t})}function aA({children:t,className:e=""}){return i.jsx("div",{className:`min-w-0 overflow-hidden rounded-[22px] border border-slate-200 bg-white/80 px-4 py-4 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none ${e}`,children:t})}const rCe={green:"bg-emerald-500/10 text-emerald-600 ring-1 ring-inset ring-emerald-500/20 dark:text-emerald-300",gray:"bg-slate-900/[0.04] text-slate-700 ring-1 ring-inset ring-slate-900/8 dark:bg-white/[0.05] dark:text-slate-300 dark:ring-white/8",blue:"bg-sky-500/12 text-sky-700 ring-1 ring-inset ring-sky-500/22 dark:bg-sky-400/14 dark:text-sky-200 dark:ring-sky-400/28",red:"bg-red-500/10 text-red-600 ring-1 ring-inset ring-red-500/20 dark:text-red-300",orange:"bg-orange-500/10 text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300",purple:"bg-purple-500/10 text-purple-600 ring-1 ring-inset ring-purple-500/20 dark:text-purple-300"};function Me({variant:t="gray",children:e}){return i.jsx("span",{className:`inline-flex max-w-full min-w-0 items-center gap-1 overflow-hidden rounded-md px-2 py-0.5 text-xs font-medium tracking-wide ${rCe[t]}`,children:i.jsx("span",{className:"min-w-0 truncate",children:e})})}function at({size:t=20}){return i.jsxs("svg",{className:"animate-spin text-brand-600",width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:[i.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),i.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]})}function vt({error:t}){return t?i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-4 py-3 text-sm text-red-400 font-mono",children:t}):null}const aCe=["15m","1h","12h","1d","1w"],sCe=[{value:"15m",label:"Last 15 mins"},{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"},{value:"custom",label:"Custom window"}],iCe={"15m":15*60*1e3,"1h":60*60*1e3,"12h":12*60*60*1e3,"1d":24*60*60*1e3,"1w":7*24*60*60*1e3};function eu(t){const e=Date.now();return{start_ms:e-iCe[t],end_ms:e}}function oCe(t){return t==="custom"||aCe.includes(t)?t:"1d"}function $s(t){const e=new Date(t),n=r=>r.toString().padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`}function $0(t){const e=new Date(t).getTime();return Number.isFinite(e)?e:null}function Fp(t,e){const n=$0(t),r=$0(e),a=Date.now();if(!(n===null||r===null)&&!(r<=n||n>a||r>a))return{start_ms:n,end_ms:r}}function Uw(t){return new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}).format(new Date(t))}function lCe(t,e){return e?`${Uw(e.start_ms)} to ${Uw(e.end_ms)}`:"Custom window"}function MS(t){return t.toString().padStart(2,"0")}function rd(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function Fg(t){return new Date(t.getFullYear(),t.getMonth(),1)}function Bg(t){const e=new Date;return t.getTime()>e.getTime()?e:t}function cCe(t){return new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(t)}function uCe(t){return new Intl.DateTimeFormat(void 0,{month:"long",year:"numeric"}).format(t)}function dCe(t){const e=Fg(t),n=new Date(e);n.setDate(n.getDate()-e.getDay());const r=Array.from({length:42},(s,o)=>{const l=new Date(n);return l.setDate(n.getDate()+o),{key:`${l.getFullYear()}-${l.getMonth()}-${l.getDate()}`,date:l,inMonth:l.getMonth()===t.getMonth()}});return r.slice(35).every(s=>!s.inMonth)?r.slice(0,35):r}function DS(t,e){const n=new Date(t);return n.setHours(e.getHours(),e.getMinutes(),0,0),n}function P$(t,e){const n=$0(t);return n===null?e:Bg(new Date(n))}function fCe({start:t,end:e,onApply:n,onCancel:r}){const a=new Date,s=g.useMemo(()=>P$(e,new Date),[e]),o=g.useMemo(()=>P$(t,new Date(s.getTime()-24*60*60*1e3)),[t,s]),[l,c]=g.useState({start:o,end:s}),[u,d]=g.useState(null),[f,h]=g.useState(Fg(s));g.useEffect(()=>{c({start:o,end:s}),h(Fg(s))},[o.getTime(),s.getTime()]);const p=g.useMemo(()=>dCe(f),[f]),m=Fg(f).getTime()>=Fg(a).getTime(),x=l.end??u,v=l.end!==null,b=l.end?{start:$s(l.start.getTime()),end:$s(l.end.getTime())}:null,y=b?Fp(b.start,b.end):void 0;function w(_){c(C=>C.end===null?rd(_).getTime(){const R=_==="start"?P.start:P.end;if(!R)return P;const A=new Date(R);return C==="hours"?A.setHours(Number(E)):A.setMinutes(Number(E)),{...P,[_]:Bg(A)}})}function k(){b&&n(b.start,b.end)}function S(_){const C=rd(_).getTime(),E=rd(l.start).getTime(),P=x?rd(x).getTime():null;return C===E||P!==null&&C===P?"edge":P!==null&&C>E&&Ch(_=>new Date(_.getFullYear(),_.getMonth()-1,1)),"aria-label":"Previous month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white",children:i.jsx($Ne,{size:12})}),i.jsx("button",{type:"button",disabled:m,onClick:()=>h(_=>new Date(_.getFullYear(),_.getMonth()+1,1)),"aria-label":"Next month",className:"flex h-6 w-6 items-center justify-center rounded-lg border border-slate-200 text-slate-500 transition hover:border-slate-300 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-35 disabled:hover:border-slate-200 disabled:hover:text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] dark:hover:text-white dark:disabled:hover:text-[#8a8a93]",children:i.jsx(So,{size:12})})]})]}),i.jsx("div",{className:"grid grid-cols-7 text-center text-[11px] font-semibold uppercase leading-4 tracking-[0.1em] text-slate-500 dark:text-[#78849a]",children:["S","M","T","W","T","F","S"].map((_,C)=>i.jsx("span",{className:"py-0.5",children:_},C))}),i.jsx("div",{className:"grid grid-cols-7",onMouseLeave:()=>d(null),children:p.map(_=>{const C=rd(_.date).getTime()>rd(a).getTime(),E=C?"idle":S(_.date);return i.jsx("div",{className:`py-px ${E==="idle"?"":"bg-brand-500/10 dark:bg-brand-500/15"}`,children:i.jsx("button",{type:"button",disabled:C,"aria-label":cCe(_.date),onClick:()=>w(_.date),onMouseEnter:()=>d(v?null:_.date),className:`flex h-7 w-full items-center justify-center rounded-md text-[12px] leading-4 transition ${C?"cursor-not-allowed text-slate-500 opacity-35 dark:text-[#78849a]":E==="edge"?"bg-brand-600 text-white shadow-[0_8px_20px_-14px_rgba(59,130,246,0.7)] dark:bg-brand-500":E==="inside"?"text-brand-700 dark:text-brand-200":_.inMonth?"text-slate-700 hover:bg-slate-100 dark:text-[#e5ecf7] dark:hover:bg-[#1a2130]":"text-slate-500 hover:bg-slate-100 dark:text-[#4b5565] dark:hover:bg-[#161b24]"}`,children:_.date.getDate()})},_.key)})}),i.jsx("div",{className:"mt-2 space-y-1.5 border-t border-slate-100 pt-2 dark:border-[#2a303a]",children:["start","end"].map(_=>{const C=_==="start"?l.start:l.end;return i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"w-9 text-[11px] font-medium leading-4 text-slate-500 dark:text-[#8a8a93]",children:_==="start"?"From":"To"}),i.jsx(R$,{unit:"hours",value:C,disabled:!C,onChange:E=>j(_,"hours",E)}),i.jsx("span",{className:"text-[11px] font-semibold leading-4 text-slate-500 dark:text-[#8a8a93]",children:":"}),i.jsx(R$,{unit:"minutes",value:C,disabled:!C,onChange:E=>j(_,"minutes",E)}),i.jsx("span",{className:"ml-auto truncate text-[11px] leading-4 text-slate-500 dark:text-[#8a8a93]",children:C?new Intl.DateTimeFormat(void 0,{day:"2-digit",month:"short"}).format(C):"Pick a day"})]},_)})}),b&&!y?i.jsx("p",{className:"mt-2 text-[11px] leading-4 text-red-600 dark:text-red-400",children:"The end must come after the start, and neither may be in the future."}):null,i.jsxs("div",{className:"mt-2.5 flex items-center justify-end gap-1.5",children:[r?i.jsx(we,{size:"sm",variant:"secondary",onClick:r,children:"Cancel"}):null,i.jsx(we,{size:"sm",onClick:k,disabled:!y,children:"Apply"})]})]})}function R$({unit:t,value:e,disabled:n,onChange:r}){const a=t==="hours"?24:60,s=e?t==="hours"?e.getHours():e.getMinutes():0;return i.jsx("select",{value:MS(s),disabled:n,onChange:o=>r(o.target.value),"aria-label":t==="hours"?"Hour":"Minute",className:"h-7 w-[52px] rounded-lg border border-slate-200 bg-white/90 px-1.5 text-[12px] leading-4 text-slate-700 disabled:opacity-40 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7]",children:Array.from({length:a},(o,l)=>i.jsx("option",{value:MS(l),children:MS(l)},l))})}function tT({range:t,customStart:e,customEnd:n,onRangeChange:r,onCustomChange:a,align:s="right",className:o=""}){const l=g.useRef(null),[c,u]=g.useState(!1);g.useEffect(()=>{if(!c)return;function h(m){var x;(x=l.current)!=null&&x.contains(m.target)||u(!1)}function p(m){m.key==="Escape"&&u(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[c]),g.useEffect(()=>{t!=="custom"&&u(!1)},[t]);const d=t==="custom"?Fp(e,n):void 0;function f(h){if(h==="custom"){u(p=>t==="custom"?!p:!0),t!=="custom"&&r("custom");return}u(!1),r(h)}return i.jsxs("div",{ref:l,className:`relative ${o}`,children:[i.jsx("div",{className:"flex flex-wrap items-center gap-1 rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d]",children:sCe.map(h=>i.jsx(we,{size:"sm",variant:"secondary",title:h.label,className:hCe(t===h.value),onClick:()=>f(h.value),children:h.value==="custom"?"Custom":h.value},h.value))}),t==="custom"&&c?i.jsxs("div",{className:`absolute top-[calc(100%+10px)] z-[90] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-[0_24px_70px_-34px_rgba(15,23,42,0.48)] backdrop-blur dark:border-[#2a303a] dark:bg-[#11151d]/95 dark:shadow-[0_24px_70px_-34px_rgba(0,0,0,0.72)] ${s==="left"?"left-0":"right-0"}`,children:[i.jsxs("div",{className:"mb-3",children:[i.jsx("p",{className:"text-[13px] font-semibold leading-[18px] text-slate-900 dark:text-white",children:"Select time range"}),i.jsx("p",{className:"mt-1 text-[12px] leading-[18px] text-slate-500 dark:text-[#8a8a93]",children:d?lCe("custom",d):"Click a start day, then an end day"})]}),i.jsx(fCe,{start:e,end:n,onCancel:()=>u(!1),onApply:(h,p)=>{a(h,p),u(!1)}})]}):null]})}function hCe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}const M$="text-lg font-semibold text-slate-900 dark:text-white",pCe="mt-0.5 text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ra="text-[15px] leading-[22px] font-semibold text-slate-900 dark:text-white",fc="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#9ca7ba]",ks="text-[13px] leading-[18px] font-medium text-slate-700 dark:text-[#c7cfdd]",pl="max-w-[57ch] text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96aa]";function Ba({title:t,description:e,badge:n,className:r=""}){return i.jsxs("div",{className:r||void 0,children:[n?i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h1",{className:M$,children:t}),n]}):i.jsx("h1",{className:M$,children:t}),e?i.jsx("p",{className:pCe,children:e}):null]})}function D$(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function mCe(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,notation:"compact",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(0)} ${e}`}}const gCe=["transactions","rule_based"],I$={transactions:"Multi-objective",rule_based:"Rule based / Volume based"},ao=["#0069ED","#14b8a6","#f97316","#e11d48","#8b5cf6","#22c55e"],IS={zIndex:30,outline:"none"},$$={dimensions:{},gateways:[]},mg=3,$S=50,xCe=5,L$=10,yCe=[750,2e3,4e3],Xb={share:{title:"Selected gateways over time",purpose:"Use this to see when traffic shifted from one connector to another for the selected merchant and routing slice.",calculation:"Decision events are grouped by time and chosen connector. The chart shows how many filtered decisions each gateway received over time.",source:"Reads ClickHouse-backed domain analytics rows from `analytics_domain_events`."},alignment:{title:"Routing alignment",purpose:"Use this to see whether the best-scoring connector is also leading traffic share.",calculation:"Compares the latest connector success-rate score with the gateways actually selected in the same time window.",source:"Reads the same ClickHouse-backed routing-stats response used by the gateway share and connector success-rate charts."},sr:{title:"Connector success rate over time",purpose:"Use this to explain why a connector won routing at a given time, based on the recorded historical score trail.",calculation:"Stored `score_snapshot` events are grouped over the selected window and averaged per connector. The line values are displayed as percentages.",source:"Reads ClickHouse-backed `score_snapshot` analytics rows from `analytics_domain_events`. The current score state still originates from Redis-backed scoring flows."},preview_activity:{title:"Connector selections over time",purpose:"Use this to see which connectors were selected over the chosen decision window.",calculation:"Returned decision traces are grouped by time using each trace's latest activity timestamp, then grouped by latest selected connector. The chart shows connector counts over time.",source:"Reads rule decision activity through `/analytics/preview-trace`."}};function YW(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Hv(t,e,n,r){const a={range:e==="custom"?"1h":e,start_ms:n==null?void 0:n.start_ms,end_ms:n==null?void 0:n.end_ms,gateway:r!=null&&r.gateways.length?r.gateways.join(","):void 0};Object.entries((r==null?void 0:r.dimensions)||{}).forEach(([o,l])=>{l&&(a[o]=l)});const s=YW(a);return s?`${t}?${s}`:t}function sA(t,e,n,r){const a={range:t==="custom"?"1h":t,start_ms:r==null?void 0:r.start_ms,end_ms:r==null?void 0:r.end_ms,page:e,page_size:n},s=YW(a);return s?`/analytics/preview-trace?${s}`:"/analytics/preview-trace"}async function vCe(t,e){const n=await Dt(sA(t,1,$S,e)),r=Math.min(Math.ceil(n.total_results/$S),xCe);if(r<=1)return n;const a=await Promise.all(Array.from({length:r-1},(s,o)=>Dt(sA(t,o+2,$S,e))));return{...n,results:[n.results,...a.map(s=>s.results)].flat()}}function ci(t,e=2){if(t==null||Number.isNaN(Number(t)))return"0";const n=Number(t);return Number.isInteger(n)?n.toString():n.toFixed(e)}function XW(t){return Number.isFinite(t)?t<=1?t*100:t:0}function Ko(t,e=1){return t==null||Number.isNaN(Number(t))?"0%":`${ci(XW(Number(t)),e)}%`}function bCe(t,e=1){return t===void 0||!Number.isFinite(t)?"No runner-up":`${t>0?"+":t<0?"-":""}${ci(Math.abs(t),e)} pp`}function LS(t,e){const n=t[e];return typeof n=="number"&&Number.isFinite(n)?n:0}function wCe(t,e){const n=Math.max(0,e.end_ms-e.start_ms);return n<=24*60*60*1e3?new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(t)):n<=7*24*60*60*1e3?new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short",hour:"2-digit"}).format(new Date(t)):new Intl.DateTimeFormat(void 0,{day:"numeric",month:"short"}).format(new Date(t))}function zf(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function kCe(t,e){const n=e?e.end_ms-e.start_ms:t==="15m"?9e5:t==="1h"?36e5:t==="12h"?432e5:t==="1d"?864e5:6048e5;return n<=15*60*1e3?60*1e3:n<=60*60*1e3?5*60*1e3:n<=12*60*60*1e3||n<=24*60*60*1e3?60*60*1e3:24*60*60*1e3}function iA(t,e){return t-t%Math.max(1,e)}function F$(t){return Array.from(new Set(t)).sort((e,n)=>e.localeCompare(n)).slice(0,6)}function FS(t,e){const n=[],r=Math.max(1,e),a=iA(t.start_ms,r),s=iA(t.end_ms,r);for(let o=a;o<=s;o+=r)n.push(o);return n}function Il({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-dashed border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function Gv({title:t,body:e}){return i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white/60 px-6 py-12 text-center dark:border-[#222227] dark:bg-[#0b0b0d]",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:20})}),i.jsx("p",{className:"mt-5 text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e})]})}function jCe(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 shadow-sm outline-none transition focus:border-brand-500 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#e5e7eb]"}function B$(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Jb({content:t}){const[e,n]=g.useState(!1),r=g.useRef(null),[a,s]=g.useState({top:0,left:0,width:320});return g.useEffect(()=>{if(!e)return;function o(l){var c;(c=r.current)!=null&&c.contains(l.target)||n(!1)}return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[e]),g.useLayoutEffect(()=>{if(!e||!r.current)return;const o=320,l=280,c=16,u=12;function d(){if(!r.current)return;const f=r.current.getBoundingClientRect(),h=Math.min(o,window.innerWidth-c*2),p=Math.min(Math.max(f.right-h,c),window.innerWidth-h-c),x=f.bottom+u+l>window.innerHeight-c?Math.max(f.top-l-u,c):f.bottom+u;s({top:x,left:p,width:h})}return d(),window.addEventListener("resize",d),window.addEventListener("scroll",d,!0),()=>{window.removeEventListener("resize",d),window.removeEventListener("scroll",d,!0)}},[e]),i.jsxs("div",{ref:r,className:"relative shrink-0",children:[i.jsx("button",{type:"button","aria-label":`About ${t.title}`,onClick:()=>n(o=>!o),className:`flex h-7 w-7 items-center justify-center rounded-full border text-[13px] font-semibold transition ${e?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-500 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#8a8a93] dark:hover:text-white"} leading-[18px]`,children:"i"}),e?i.jsxs("div",{style:{position:"fixed",top:a.top,left:a.left,width:a.width},className:"z-[120] rounded-2xl border border-slate-200 bg-white/95 p-4 shadow-2xl backdrop-blur dark:border-[#1d1d23] dark:bg-[#09090d]/95",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.title}),i.jsxs("div",{className:"mt-3 space-y-3 text-[13px] leading-6 text-slate-600 dark:text-[#b3b3bd]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Why it matters"}),i.jsx("p",{className:"mt-2",children:t.purpose})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"How it is calculated"}),i.jsx("p",{className:"mt-2",children:t.calculation})]}),i.jsxs("div",{children:[i.jsx("p",{className:"font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93]",children:"Data source"}),i.jsx("p",{className:"mt-2",children:t.source})]})]})]}):null]})}function SCe({summary:t,comparisonRows:e,expanded:n,onToggle:r}){var p,m,x,v;const a=t.srLeader&&t.srRunnerUp?t.srLeader.value-t.srRunnerUp.value:void 0,s=t.srLeaderVolume?`${ci(t.srLeaderVolume.count,0)} payments for ${t.srLeaderVolume.gateway}`:"No traffic share",o=t.comparableDecisionCount?`${ci(t.leaderDecisionCount,0)} of ${ci(t.comparableDecisionCount,0)} payments matched the best score`:s,l=t.alignmentPercent===null?"Not enough data":`${Ko(t.alignmentPercent)} traffic share`,c=((p=t.srLeader)==null?void 0:p.gateway)||"--",u=((m=t.volumeLeader)==null?void 0:m.gateway)||"--",d=!!(t.srLeader&&t.volumeLeader)&&((x=t.srLeader)==null?void 0:x.gateway)!==((v=t.volumeLeader)==null?void 0:v.gateway),f=t.volumeLeader?d?"orange":"green":"gray",h=[t.srLeader?`Best score: ${c}`:"No score",t.volumeLeader?`Traffic leader: ${u}`:"No traffic",l].join(" · ");return i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{className:n?"px-5 py-3":"px-5 py-3 !border-b-0",children:i.jsxs("div",{className:`flex flex-wrap justify-between gap-3 ${n?"items-start":"items-center"}`,children:[n?i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Routing alignment"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Traffic share: checks if the best-scoring connector is also getting the largest share."})]}):i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Ip,{size:18,className:"shrink-0 text-emerald-700"}),i.jsxs("span",{className:"min-w-0 text-[13px] text-slate-600 dark:text-[#9aa7bb] leading-[18px]",children:[i.jsx("span",{className:"font-semibold text-slate-800 dark:text-white",children:"Routing alignment"})," — ",h]})]}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:n?i.jsxs(i.Fragment,{children:[i.jsx(Jb,{content:Xb.alignment}),i.jsx(we,{size:"sm",variant:"secondary",onClick:r,children:"Hide details"})]}):i.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 text-[13px] font-semibold text-brand-600 transition hover:text-brand-700 dark:text-brand-300 dark:hover:text-brand-200 leading-[18px]",children:["Show details",i.jsx(So,{size:16})]})})]})}),n?i.jsxs(He,{className:"space-y-5 px-5 py-3",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsxs(Me,{variant:"gray",children:["Best score: ",c]}),i.jsxs(Me,{variant:f,children:["Traffic leader: ",u]})]}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t.headline}),i.jsx("p",{className:"text-[13px] leading-[21px] text-slate-500 dark:text-[#8a8a93]",children:t.detail})]}),i.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-2 rounded-2xl border border-slate-200 bg-slate-50/80 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("span",{className:"text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:t.alignmentPercent===null?"Not enough data":Ko(t.alignmentPercent)}),i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:o})]}),e.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("div",{className:"min-w-[640px]",children:[i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] font-medium text-slate-500 dark:border-[#2a303a] dark:text-[#8a8a93] leading-[18px]",children:[i.jsx("span",{children:"Connector"}),i.jsx("span",{children:"Success rate"}),i.jsx("span",{children:"Traffic"}),i.jsx("span",{children:"Share"}),i.jsx("span",{children:"Role"})]}),e.map(b=>i.jsxs("div",{className:"grid grid-cols-[minmax(0,1.2fr)_0.9fr_0.65fr_0.65fr_1fr] gap-3 border-b border-slate-200 px-3 py-3 text-[13px] last:border-b-0 dark:border-[#2a303a] leading-[18px]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:b.color}}),i.jsx("span",{className:"truncate font-medium text-slate-900 dark:text-white",children:b.gateway})]}),i.jsxs("span",{className:"flex flex-wrap items-baseline gap-2 text-slate-600 dark:text-[#cbd5e1]",children:[b.srValue===null?"--":Ko(b.srValue),b.isSrLeader&&a!==void 0?i.jsxs("span",{className:"text-slate-500 dark:text-[#78849a]",children:[bCe(a)," vs next"]}):null]}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:ci(b.count,0)}),i.jsx("span",{className:"text-slate-600 dark:text-[#cbd5e1]",children:Ko(b.share)}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[b.isSrLeader?i.jsx(Me,{variant:"blue",children:"Best score"}):null,b.isVolumeLeader?i.jsx(Me,{variant:"green",children:"Traffic leader"}):null,!b.isSrLeader&&!b.isVolumeLeader?i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Secondary"}):null]})]},b.gateway))]})}):i.jsx(Il,{title:"No connector comparison yet",body:"This view needs both payment traffic and connector scores in the selected time window."})]}):null]})}function _Ce(t){return t==="/decide_gateway"?"Decide Gateway":t==="/update_gateway"?"Update Gateway":t==="/rule_evaluate"?"Rule Evaluate":t}function z$(t){return t>=.85?"text-emerald-700 dark:text-emerald-400":t>=.7?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}function NCe(t){return t>=85?"green":t>=70?"orange":"red"}function CCe(){var un,as,xn,ia,jr,oa,ja,El,ss,la,Sa,Yu,_a,or,Ns,Xu,Po,Na,Cf,Rt,ca,Sr,_r,Jt,qr;const t=wl(),[e,n]=g.useState("1d"),[r,a]=vc(),s=r.get("view"),o=gCe.includes(s)?s:"transactions",l=re=>{a(ke=>{const _e=new URLSearchParams(ke);return re==="transactions"?_e.delete("view"):_e.set("view",re),_e},{replace:!0})};g.useEffect(()=>{s!==(o==="transactions"?null:o)&&l(o)},[o,s]);const[c,u]=g.useState($$),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),[v,b]=g.useState(1),[y,w]=g.useState(()=>$s(Date.now()-24*60*60*1e3)),[j,k]=g.useState(()=>$s(Date.now())),[S,_]=g.useState(()=>eu("1d")),C=g.useMemo(()=>e==="custom"?Fp(y,j):void 0,[j,y,e]),E=e==="custom"?C:S,P="USD",R=E?Hv("/analytics/overview",e,E):null,A=E?Hv("/analytics/routing-stats",e,E):null,T=(()=>{if(!E)return null;const re=Hv("/analytics/cost-savings",e,E),ke=re.includes("?")?"&":"?";return`${re}${ke}currency=${encodeURIComponent(P)}`})(),D=E?Hv("/analytics/routing-stats",e,E,c):null,L=E?["preview-trace-analytics",e,E.start_ms,E.end_ms]:null,X=E?sA(e,v,L$,E):null,J={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},U={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0},Y={...U,keepPreviousData:!0},W={revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0,keepPreviousData:!0},G=ct(R,Dt,J),I=ct(A,Dt,U),q=ct(T,Dt,U),M=ct(D,Dt,Y),B=ct(L,async re=>{const[,ke,_e,ze]=re;return vCe(ke,_e!==null&&ze!==null?{start_ms:Number(_e),end_ms:Number(ze)}:void 0)},{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnMount:!0}),z=ct(X,Dt,W);g.useEffect(()=>{const re=()=>{if(G.mutate(),o==="transactions"){I.mutate(),M.mutate();return}B.mutate(),z.mutate()};re();const ke=yCe.map(_e=>window.setTimeout(re,_e));return()=>{ke.forEach(_e=>window.clearTimeout(_e))}},[t.key,o]);const Z=!G.data&&G.isLoading||!I.data&&I.isLoading||!M.data&&M.isLoading,pe=!G.data&&G.isLoading||!B.data&&B.isLoading,ae=((un=G.error)==null?void 0:un.message)||((as=I.error)==null?void 0:as.message)||((xn=M.error)==null?void 0:xn.message)||null,ue=((ia=G.error)==null?void 0:ia.message)||((jr=B.error)==null?void 0:jr.message)||((oa=z.error)==null?void 0:oa.message)||null,de=o==="transactions"?Z:pe,Q=o==="transactions"?ae:ue,fe={dimensions:((El=(ja=I.data)==null?void 0:ja.available_filters)==null?void 0:El.dimensions)||((la=(ss=M.data)==null?void 0:ss.available_filters)==null?void 0:la.dimensions)||[],missing_dimensions:((Yu=(Sa=I.data)==null?void 0:Sa.available_filters)==null?void 0:Yu.missing_dimensions)||((or=(_a=M.data)==null?void 0:_a.available_filters)==null?void 0:or.missing_dimensions)||[],gateways:((Xu=(Ns=I.data)==null?void 0:Ns.available_filters)==null?void 0:Xu.gateways)||((Na=(Po=M.data)==null?void 0:Po.available_filters)==null?void 0:Na.gateways)||[]},ne=g.useMemo(()=>new Map(fe.dimensions.map(re=>[re.key,re])),[fe.dimensions]);g.useEffect(()=>{u(re=>{const ke=Object.fromEntries(Object.entries(re.dimensions).filter(([ze,Je])=>{if(!Je)return!1;const Ze=ne.get(ze);return Ze?Ze.values.includes(Je):!1})),_e=re.gateways.filter(ze=>fe.gateways.includes(ze));return Object.keys(ke).length===Object.keys(re.dimensions).length&&Object.entries(ke).every(([ze,Je])=>re.dimensions[ze]===Je)&&_e.length===re.gateways.length&&_e.every((ze,Je)=>ze===re.gateways[Je])?re:{dimensions:ke,gateways:_e}})},[ne,fe.gateways]),g.useEffect(()=>{fe.dimensions.length<=mg&&m&&x(!1)},[fe.dimensions.length,m]),g.useEffect(()=>{b(1)},[e,E==null?void 0:E.start_ms,E==null?void 0:E.end_ms]);const ce=g.useMemo(()=>E||eu(e),[E,e]),he=g.useMemo(()=>{var ke,_e;const re=[{route:"/decide_gateway",count:0},{route:"/update_gateway",count:0},{route:"/rule_evaluate",count:0}];return(_e=(ke=G.data)==null?void 0:ke.route_hits)!=null&&_e.length?re.map(ze=>{var Je,Ze;return{...ze,count:((Ze=(Je=G.data)==null?void 0:Je.route_hits.find(St=>St.route===ze.route))==null?void 0:Ze.count)||0}}):re},[G.data]),be=g.useMemo(()=>he.filter(re=>re.route!=="/rule_evaluate"),[he]),Pe=g.useMemo(()=>{var ze;const re=((ze=G.data)==null?void 0:ze.top_scores)??[],ke=re.reduce((Je,Ze)=>Je+Ze.transaction_count,0);return ke?re.reduce((Je,Ze)=>Je+Ze.score_value*Ze.transaction_count,0)/ke:null},[G.data]),Ce=g.useMemo(()=>{var re;return((re=he.find(ke=>ke.route==="/rule_evaluate"))==null?void 0:re.count)||0},[he]),Re=((Cf=B.data)==null?void 0:Cf.results)||[],Be=((Rt=z.data)==null?void 0:Rt.results)||[],st=g.useMemo(()=>{const re=new Map;for(const ke of Re){const _e=ke.latest_gateway||"No gateway selected";re.set(_e,(re.get(_e)||0)+1)}return Array.from(re.entries()).map(([ke,_e])=>({gateway:ke,count:_e})).sort((ke,_e)=>_e.count-ke.count).slice(0,6)},[Re]),F=g.useMemo(()=>{const re=new Map;for(const ke of Re){const _e=ke.latest_status||"unknown";re.set(_e,(re.get(_e)||0)+1)}return Array.from(re.entries()).map(([ke,_e])=>({status:ke,count:_e})).sort((ke,_e)=>_e.count-ke.count)},[Re]),se=g.useMemo(()=>F.reduce((re,ke)=>re+ke.count,0),[F]),ie=g.useMemo(()=>{var ke;return se?(((ke=F.find(_e=>_e.status==="success"))==null?void 0:ke.count)??0)/se:null},[F,se]),Se=g.useMemo(()=>kCe(e,E),[E,e]),te=g.useMemo(()=>re=>wCe(Number(re),ce),[ce]),me=g.useMemo(()=>{const re=st.map(_e=>_e.gateway).slice(0,6),ke=new Map;for(const _e of FS(ce,Se))ke.set(_e,re.reduce((ze,Je)=>(ze[Je]=0,ze),{bucket_ms:_e}));for(const _e of Re){const ze=_e.latest_gateway||"No gateway selected";if(!re.includes(ze))continue;const Je=iA(_e.last_seen_ms,Se),Ze=ke.get(Je)||re.reduce((St,Cn)=>(St[Cn]=0,St),{bucket_ms:Je});Ze[ze]=(Ze[ze]||0)+1,ke.set(Je,Ze)}return{gateways:re,rows:Array.from(ke.values()).sort((_e,ze)=>_e.bucket_ms-ze.bucket_ms)}},[Se,ce,Re,st]),ve=(ca=Re[0])==null?void 0:ca.last_seen_ms,Ee=((Sr=z.data)==null?void 0:Sr.total_results)||0,Oe=Math.max(1,Math.ceil(Ee/L$)),Tt=st.filter(re=>re.gateway!=="No gateway selected").length,Bt=((_r=st[0])==null?void 0:_r.count)||1,Pt=Ce>0&&!B.error&&!z.error&&Re.length===0&&Be.length===0;g.useEffect(()=>{if(!Ee&&v!==1){b(1);return}v>Oe&&b(Oe)},[v,Oe,Ee]);const sn=g.useMemo(()=>{var ze;const re=((ze=M.data)==null?void 0:ze.gateway_share)||[],ke=F$(re.map(Je=>Je.gateway||"No gateway selected"));if(!ke.length)return{gateways:ke,rows:[]};const _e=new Map;for(const Je of FS(ce,Se))_e.set(Je,ke.reduce((Ze,St)=>(Ze[St]=0,Ze),{bucket_ms:Je}));for(const Je of re){const Ze=Je.gateway||"No gateway selected";if(!ke.includes(Ze))continue;const St=_e.get(Je.bucket_ms)||ke.reduce((Cn,Qt)=>(Cn[Qt]=0,Cn),{bucket_ms:Je.bucket_ms});St[Ze]=Je.count,_e.set(Je.bucket_ms,St)}return{gateways:ke,rows:Array.from(_e.values()).sort((Je,Ze)=>Je.bucket_ms-Ze.bucket_ms)}},[Se,ce,M.data]),It=g.useMemo(()=>{var ze,Je;const re=F$((((ze=M.data)==null?void 0:ze.sr_trend)||[]).map(Ze=>Ze.gateway));if(!re.length)return{gateways:re,rows:[]};const ke=new Map;for(const Ze of FS(ce,Se))ke.set(Ze,re.reduce((St,Cn)=>(St[Cn]=null,St),{bucket_ms:Ze}));for(const Ze of((Je=M.data)==null?void 0:Je.sr_trend)||[]){if(!re.includes(Ze.gateway))continue;const St=ke.get(Ze.bucket_ms)||re.reduce((Cn,Qt)=>(Cn[Qt]=null,Cn),{bucket_ms:Ze.bucket_ms});St[Ze.gateway]=XW(Ze.score_value),ke.set(Ze.bucket_ms,St)}const _e=Array.from(ke.values()).sort((Ze,St)=>Number(Ze.bucket_ms)-Number(St.bucket_ms));for(const Ze of re){let St=null,Cn=!1;for(const Qt of _e){if(typeof Qt[Ze]=="number"){St=Qt[Ze],Cn=!0;continue}Cn&&(Qt[Ze]=St)}}return{gateways:re,rows:_e}},[Se,ce,M.data]),xr=g.useMemo(()=>{if(!It.rows.length)return[];const re=[...It.rows].reverse().find(ke=>It.gateways.some(_e=>typeof ke[_e]=="number"));return re?It.gateways.map(ke=>({gateway:ke,value:typeof re[ke]=="number"?re[ke]:null})).filter(ke=>ke.value!==null):[]},[It]),er=g.useMemo(()=>[...xr].sort((re,ke)=>ke.value-re.value),[xr]),za=g.useMemo(()=>It.gateways.reduce((re,ke)=>(re[ke]=It.rows.filter(_e=>typeof _e[ke]=="number").length,re),{}),[It]),Gr=g.useMemo(()=>{const re=It.rows.flatMap(Je=>It.gateways.map(Ze=>Je[Ze]).filter(Ze=>typeof Ze=="number"));if(!re.length)return[0,100];const ke=Math.min(...re),_e=Math.max(...re),ze=ke===_e?5:Math.max(2,(_e-ke)*.35);return[Math.max(0,Math.floor(ke-ze)),Math.min(100,Math.ceil(_e+ze))]},[It]),pn=g.useMemo(()=>{const re=new Map;for(const _e of sn.rows)for(const ze of sn.gateways)re.set(ze,(re.get(ze)||0)+LS(_e,ze));const ke=Array.from(re.values()).reduce((_e,ze)=>_e+ze,0);return sn.gateways.map(_e=>{const ze=re.get(_e)||0;return{gateway:_e,count:ze,share:ke?ze/ke*100:0}}).filter(_e=>_e.count>0).sort((_e,ze)=>ze.count-_e.count)},[sn]),mt=g.useMemo(()=>{const re=er[0]||null,ke=er[1]||null,_e=pn[0]||null,ze=re?pn.find(is=>is.gateway===re.gateway)||{gateway:re.gateway,count:0,share:0}:null,Je=new Map(It.rows.map(is=>[Number(is.bucket_ms),is]));let Ze=0,St=0;for(const is of sn.rows){const Un=sn.gateways.reduce((Vn,Ea)=>Vn+LS(is,Ea),0);if(Un<=0)continue;const Yi=Je.get(Number(is.bucket_ms));if(!Yi)continue;const Ca=It.gateways.map(Vn=>{const Ea=Yi[Vn];return typeof Ea=="number"&&Number.isFinite(Ea)?{gateway:Vn,value:Ea}:null}).filter(Vn=>Vn!==null).sort((Vn,Ea)=>Ea.value-Vn.value);if(!Ca.length)continue;const os=Ca[0].value,Ju=Ca.filter(Vn=>Math.abs(Vn.value-os)<1e-4).reduce((Vn,Ea)=>Vn+LS(is,Ea.gateway),0);St+=Un,Ze+=Ju}const Cn=St?Ze/St*100:null;let Qt="Waiting for traffic share and connector scores.",Rn="Run payments and send score updates in this time window to compare routing traffic.";if(re&&_e){const is=re.gateway!==_e.gateway,Un=St>0?`${re.gateway} handled ${ci((ze==null?void 0:ze.count)||0,0)} of ${ci(St,0)} payments (${Ko((ze==null?void 0:ze.share)||0)} traffic share).`:"Traffic and score updates did not happen close enough together to compare.";is?(Qt=`${re.gateway} has the better success rate; ${_e.gateway} still leads traffic share.`,Rn=`${Un} Traffic share is cumulative for this window, so earlier ${_e.gateway} selections can keep it ahead even after failures reduce its score.`):(Qt=`${re.gateway} has the better success rate and leads traffic share.`,Rn=Un)}else re?(Qt=`${re.gateway} has the better success rate, but no traffic share is available.`,Rn="Run decide-gateway traffic in this time window to compare scores against actual selections."):_e&&(Qt=`${_e.gateway} leads traffic share, but connector success rate is not available.`,Rn="Send update-gateway-score traffic in this time window to compare selections against success rates.");return{srLeader:re,srRunnerUp:ke,volumeLeader:_e,srLeaderVolume:ze,alignmentPercent:Cn,leaderDecisionCount:Ze,comparableDecisionCount:St,headline:Qt,detail:Rn}},[It,sn,pn,er]),Mt=g.useMemo(()=>{const re=new Map(er.map(Je=>[Je.gateway,Je.value])),ke=new Map(pn.map(Je=>[Je.gateway,Je])),_e=Array.from(new Set([...It.gateways,...sn.gateways])),ze=new Map(_e.map((Je,Ze)=>[Je,ao[Ze%ao.length]]));return _e.map(Je=>{var St,Cn;const Ze=ke.get(Je);return{gateway:Je,srValue:re.get(Je)??null,count:(Ze==null?void 0:Ze.count)||0,share:(Ze==null?void 0:Ze.share)||0,color:ze.get(Je)||ao[0],isSrLeader:((St=mt.srLeader)==null?void 0:St.gateway)===Je,isVolumeLeader:((Cn=mt.volumeLeader)==null?void 0:Cn.gateway)===Je}}).filter(Je=>Je.srValue!==null||Je.count>0).sort((Je,Ze)=>{const St=Je.srValue??-1,Cn=Ze.srValue??-1;return Cn!==St?Cn-St:Ze.count-Je.count}).slice(0,6)},[It.gateways,sn.gateways,pn,er,(Jt=mt.srLeader)==null?void 0:Jt.gateway,(qr=mt.volumeLeader)==null?void 0:qr.gateway]),gt=g.useMemo(()=>m||fe.dimensions.length<=mg?fe.dimensions:fe.dimensions.slice(0,mg),[fe.dimensions,m]),Lr=fe.dimensions.length>mg,zn=Lr?fe.dimensions.length-mg:0,mn=g.useMemo(()=>{const re=fe.dimensions.flatMap(_e=>{const ze=c.dimensions[_e.key];return ze?[{key:`dimension:${_e.key}`,label:`${_e.label}: ${ze}`}]:[]}),ke=c.gateways.map(_e=>({key:`gateway:${_e}`,label:`Connector: ${_e}`}));return[...re,...ke]},[fe.dimensions,c]);function ge(re){if(n(re),re==="custom")return;const ke=eu(re);_(ke),w($s(ke.start_ms)),k($s(ke.end_ms))}function ut(){if(e!=="custom"){_(eu(e));return}G.mutate(),I.mutate(),M.mutate(),B.mutate(),z.mutate()}function ft(re){u(ke=>{const _e=ke.gateways.includes(re);return{...ke,gateways:_e?ke.gateways.filter(ze=>ze!==re):[...ke.gateways,re]}})}function Kt(){u($$)}function gn(re){if(re.startsWith("dimension:")){zt(re.replace("dimension:",""),"");return}re.startsWith("gateway:")&&ft(re.replace("gateway:",""))}function zt(re,ke){u(_e=>{const ze={..._e.dimensions};return ke?ze[re]=ke:delete ze[re],{..._e,dimensions:ze}})}return i.jsxs("div",{className:"space-y-8 px-5 sm:px-5 lg:px-8 xl:px-8",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx("div",{className:"space-y-2",children:i.jsx(Ba,{title:"Analytics",description:"Real-time multi-gateway routing performance overview."})}),i.jsxs("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:[i.jsx(we,{size:"sm",variant:"secondary",className:B$(o==="transactions"),onClick:()=>l("transactions"),children:I$.transactions}),i.jsx(we,{size:"sm",variant:"secondary",className:B$(o==="rule_based"),onClick:()=>l("rule_based"),children:I$.rule_based})]}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(tT,{range:e,customStart:y,customEnd:j,onRangeChange:ge,onCustomChange:(re,ke)=>{w(re),k(ke)}}),i.jsx(we,{size:"sm",variant:"secondary",onClick:ut,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(Es,{className:"h-4 w-4"})})]})]}),i.jsx(vt,{error:Q}),de?i.jsxs("div",{className:"flex items-center gap-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[i.jsx(at,{size:16}),"Loading analytics…"]}):null,i.jsx("div",{className:"relative",children:o==="transactions"?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Overall auth rate"}),Pe!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${z$(Pe)} leading-[42px]`,children:Ko(Pe)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Weighted across all gateways"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No score data yet"})]})]})}),be.map(re=>i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:_Ce(re.route)}),i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-slate-950 dark:text-white leading-[42px]",children:ci(re.count,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.route==="/decide_gateway"?"routing decisions":"score feedback calls"})]})},re.route)),i.jsx(Te,{className:"!rounded-2xl",children:i.jsxs(He,{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Total cost saved"}),q.data&&q.data.currency&&q.data.totals.saved_value>0?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold tabular-nums text-emerald-700 dark:text-emerald-400 leading-[42px]",children:D$(q.data.totals.saved_value,q.data.currency)}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:[ci(q.data.totals.cost_won_count,0)," of ",ci(q.data.totals.total_decisions,0)," cost decisions"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:q.data?"No multi-objective wins yet":"Loading…"})]})]})})]}),i.jsx(SCe,{summary:mt,comparisonRows:Mt,expanded:h,onToggle:()=>p(re=>!re)}),Sh.SMART_RETRY_IN_ANALYTICS,i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Selected gateways over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector decision counts for the same active filters used by the success-rate chart."})]}),i.jsx(Jb,{content:Xb.share})]})}),i.jsx(He,{children:sn.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:sn.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11}}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),sn.gateways.map((re,ke)=>i.jsx(pi,{dataKey:re,fill:ao[ke%ao.length],name:re,radius:[3,3,0,0]},re))]})})}):i.jsx(Il,{title:"No gateway share history yet",body:"Gateway traffic will appear here after payments are routed in this window."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsx("div",{className:"flex items-start justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Cost saved over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Savings from multi-objective routing promoting the higher-EV PSP within the derived auth band."})]})})}),i.jsx(He,{children:q.data&&q.data.currency&&q.data.trend.length>0?i.jsx("div",{className:"h-72",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:q.data.trend,barCategoryGap:"35%",children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11},tickFormatter:re=>mCe(re,q.data.currency),width:70}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),formatter:re=>[D$(re,q.data.currency),"Saved"],contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"saved_value",fill:"#10b981",name:"Saved",radius:[3,3,0,0]})]})})}):i.jsx(Il,{title:"No cost savings yet",body:"Cost savings appear once multi-objective routing promotes a higher-EV PSP within the derived auth band."})})]}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector success rate over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] max-w-[57ch] leading-[18px]",children:"Historical connector success rate for the active filters; compare it with selected volume above."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>f(re=>!re),children:d?"Hide filters":"Show filters"}),i.jsx(Jb,{content:Xb.sr})]})]})}),i.jsxs(He,{className:"space-y-5",children:[d?i.jsxs("div",{className:"space-y-3 border-b border-slate-200 pb-5 dark:border-[#1d1d23]",children:[fe.dimensions.length?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:gt.map(re=>i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.label}),i.jsxs("select",{value:c.dimensions[re.key]||"",onChange:ke=>zt(re.key,ke.target.value),className:jCe(),disabled:!re.values.length,children:[i.jsxs("option",{value:"",children:["Any ",re.label.toLowerCase()]}),re.values.map(ke=>i.jsx("option",{value:ke,children:ke},ke))]})]},re.key))}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connectors"}),fe.gateways.length?fe.gateways.map(re=>{const ke=c.gateways.includes(re);return i.jsx("button",{type:"button","aria-pressed":ke,onClick:()=>ft(re),className:`rounded-full border px-3 py-2 text-[13px] font-medium transition ${ke?"border-brand-500/50 bg-brand-500/10 text-brand-700 dark:text-brand-200":"border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:text-slate-900 dark:border-[#27272a] dark:bg-[#121214] dark:text-[#a1a1aa] dark:hover:text-white"} leading-[18px]`,children:re},re)}):i.jsx("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No connector history yet for the selected window."})]})]}):fe.missing_dimensions.length?i.jsx(Il,{title:"No routing dimension values in this window",body:"Score history exists, but no routing dimensions have values recorded in the selected time window yet."}):null,i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[Lr?i.jsx("button",{type:"button",onClick:()=>x(re=>!re),className:"text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:m?"Fewer dimensions":`${zn} more dimension${zn===1?"":"s"}`}):null,fe.missing_dimensions.length?i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["No values yet: ",fe.missing_dimensions.map(re=>re.label).join(", ")]}):null,mn.map(re=>i.jsxs("button",{type:"button",onClick:()=>gn(re.key),className:"inline-flex items-center gap-2 rounded-full border border-brand-500/30 bg-brand-500/10 px-3 py-2 text-[13px] font-medium text-brand-700 transition hover:bg-brand-500/15 dark:text-brand-200 leading-[18px]",children:[i.jsx("span",{children:re.label}),i.jsx("span",{"aria-hidden":"true",children:"×"})]},re.key)),mn.length?i.jsx("button",{type:"button",onClick:Kt,className:"ml-auto text-[13px] font-medium text-slate-500 transition hover:text-slate-900 dark:text-[#8a8a93] dark:hover:text-white leading-[18px]",children:"Clear filters"}):null]})]}):null,xr.length?i.jsx("div",{className:"flex flex-wrap gap-2",children:xr.map(re=>i.jsxs(Me,{variant:NCe(re.value),children:[re.gateway,": ",Ko(re.value)]},re.gateway))}):null,It.rows.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(AW,{data:It.rows,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0"}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{domain:Gr,tick:{fontSize:11},tickFormatter:re=>`${ci(Number(re),0)}%`}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),formatter:(re,ke)=>[Ko(re),String(ke)],contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),It.gateways.map((re,ke)=>i.jsx(dc,{type:"monotone",dataKey:re,stroke:ao[ke%ao.length],strokeWidth:3,dot:za[re]<=1?{r:4,strokeWidth:2}:!1,activeDot:{r:5},connectNulls:!0,name:re},re))]})})}):i.jsx(Il,{title:"No connector score history yet",body:"Connector history will appear after decide-gateway and update-gateway-score activity in this window."})]})]})]}):i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{className:"!rounded-2xl",children:i.jsx(He,{children:i.jsxs("div",{className:"grid gap-5 sm:grid-cols-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule match rate"}),ie!==null?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:`mt-2 text-[34px] font-semibold tabular-nums ${z$(ie)} leading-[42px]`,children:Ko(ie)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Decisions matched to a configured rule"})]}):i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"mt-2 text-[34px] font-semibold text-slate-500 dark:text-slate-400 leading-[42px]",children:"—"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"No decision data yet"})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Rule Evaluate"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:ci(Ce,0)}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"routing decisions"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Gateways active"}),i.jsx("p",{className:"mt-2 text-[21px] font-semibold tabular-nums text-slate-950 dark:text-white leading-7",children:Tt}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"unique connectors selected"})]})]})})}),i.jsxs(Te,{className:"!rounded-2xl overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Connector selections over time"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Connector counts over time for selected rule decisions."})]}),i.jsx(Jb,{content:Xb.preview_activity})]})}),i.jsx(He,{children:me.gateways.length?i.jsx("div",{className:"h-80",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(vx,{data:me.rows,barCategoryGap:"35%",barGap:3,children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",vertical:!1}),i.jsx(ys,{dataKey:"bucket_ms",tickFormatter:te,tick:{fontSize:11}}),i.jsx(Qa,{tick:{fontSize:11}}),i.jsx(xa,{labelFormatter:re=>zf(Number(re)),contentStyle:Zc,labelStyle:Qc,itemStyle:_h,wrapperStyle:IS}),i.jsx(ul,{}),me.gateways.map((re,ke)=>i.jsx(pi,{dataKey:re,fill:re==="No gateway selected"?"#64748b":ao[ke%ao.length],radius:[6,6,0,0],name:re},re))]})})}):Pt?i.jsx(Gv,{title:"Processing recent rule decisions",body:"Rule evaluate calls were received. Recent decisions are still being processed, and this view will update automatically."}):i.jsx(Il,{title:"No connector selections yet",body:"Rule decision traffic will appear here after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid items-stretch gap-5 xl:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Recent decisions"}),i.jsxs("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:["Latest decisions from ",i.jsx("code",{children:"/routing/evaluate"}),"."]})]}),i.jsx(Me,{variant:"purple",children:ve?`Latest ${zf(ve)}`:"No activity"})]})}),i.jsx(He,{children:Re.length?i.jsx("div",{className:"space-y-2",children:Re.slice(0,10).map(re=>{var _e,ze;const ke=(ze=(_e=re.latest_status)==null?void 0:_e.toLowerCase())!=null&&ze.includes("fail")?"red":re.latest_status==="default_selection"?"orange":"green";return i.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-slate-100 bg-slate-50/60 px-3 py-2.5 dark:border-[#1d1d23] dark:bg-[#0c0c0e]",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(Me,{variant:ke,children:re.latest_status||"decision"}),re.latest_gateway?i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-700 dark:text-[#c8d3e6] leading-[18px]",children:re.latest_gateway}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:zf(re.last_seen_ms)})]},re.lookup_key)})}):Pt?i.jsx(Gv,{title:"Processing recent decisions",body:"Rule evaluate calls were received. Decision rows will appear as soon as they are ready."}):i.jsx(Il,{title:"No decisions yet",body:"Recent rule decisions will appear after /routing/evaluate calls in this window."})})]}),i.jsxs("div",{className:"grid h-full gap-5 xl:grid-rows-2",children:[i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Gateway activity"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"Recent decisions grouped by latest chosen gateway."})]})}),i.jsx(He,{children:st.length?i.jsx("div",{className:"space-y-3",children:st.map((re,ke)=>i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("p",{className:"text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:re.gateway}),i.jsx("p",{className:"text-[13px] font-semibold text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:re.count})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${re.count/Bt*100}%`,backgroundColor:ao[ke%ao.length]}})})]},re.gateway))}):Pt?i.jsx(Gv,{title:"Waiting for gateway activity",body:"Recent rule decisions are still being processed. Gateway activity will appear automatically once rows are available."}):i.jsx(Il,{title:"No gateway activity yet",body:"Once rule decisions are captured, this panel will show which connectors are being selected."})})]}),i.jsxs(Te,{className:"!rounded-2xl h-full overflow-visible",children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-[13px] font-semibold text-slate-800 dark:text-white leading-[18px]",children:"Decision outcomes"}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:"How decisions resolved — rule match vs. default fallback."})]})}),i.jsx(He,{children:F.length?i.jsx("div",{className:"space-y-5",children:F.map(re=>{const ke=se?re.count/se*100:0,_e=re.status.toLowerCase().includes("fail")?"red":re.status==="default_selection"?"orange":"green",ze=_e==="green"?"#22c55e":_e==="orange"?"#f97316":"#ef4444";return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx(Me,{variant:_e,children:re.status}),i.jsxs("span",{className:"text-[13px] font-semibold tabular-nums text-slate-900 dark:text-white leading-[18px]",children:[re.count," ",i.jsxs("span",{className:"font-normal text-slate-500 dark:text-[#8a8a93]",children:["(",Ko(ke),")"]})]})]}),i.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#141822]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${ke}%`,backgroundColor:ze}})})]},re.status)})}):Pt?i.jsx(Gv,{title:"Waiting for decision outcomes",body:"Recent decision traffic is still being ingested. Outcome summaries will appear here automatically once the decision rows land."}):i.jsx(Il,{title:"No decision outcomes yet",body:"Recent rule decision results will appear here once decision traffic is recorded."})})]})]})]})]})})]})}const ECe={info:{box:"border-slate-200 bg-slate-50 text-slate-700 dark:border-[#2a303a] dark:bg-[#111820] dark:text-[#c7cfdd]",icon:"text-slate-500 dark:text-[#8d96aa]",Glyph:qu},success:{box:"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300",icon:"text-emerald-700 dark:text-emerald-400",Glyph:Ip},warning:{box:"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300",icon:"text-amber-700 dark:text-amber-400",Glyph:wm},danger:{box:"border-red-200 bg-red-50 text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",icon:"text-red-700 dark:text-red-400",Glyph:Ij}};function $a({tone:t="info",children:e,className:n=""}){const{box:r,icon:a,Glyph:s}=ECe[t];return i.jsxs("div",{role:"status",className:`flex items-start gap-2.5 rounded-lg border px-4 py-3 text-[13px] leading-[18px] ${r} ${n}`,children:[i.jsx(s,{size:16,"aria-hidden":!0,className:`mt-px shrink-0 ${a}`}),i.jsx("div",{className:"min-w-0 flex-1",children:e})]})}const BS=[{key:"payment_method",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],U$=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function V$(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function JW(t,e,n){for(const r of t.condition??[]){if(!r.lhs||e.has(r.lhs))continue;const a=r.value;if(!a)continue;let s="enum_variant",o="";a.type==="enum_variant"&&typeof a.value=="string"?(s="enum_variant",o=a.value):a.type==="enum_variant_array"&&Array.isArray(a.value)?(s="enum_variant",o=a.value[0]??""):a.type==="number"&&typeof a.value=="number"?(s="number",o=String(a.value)):a.type==="str_value"&&typeof a.value=="string"?(s="str_value",o=a.value):a.type==="number_array"&&Array.isArray(a.value)?(s="number",o=String(a.value[0]??0)):a.type==="metadata_variant"&&(s="metadata_variant",o=typeof a.value=="string"?a.value:"");const l=n[r.lhs];if((l==null?void 0:l.type)==="enum"){const c=l.values??[];c.length>0&&!c.includes(o)&&(o=c[0])}e.set(r.lhs,{key:r.lhs,type:s,value:o,metadataKey:""})}for(const r of t.nested??[])JW(r,e,n)}function zS(t,e){const n=t.algorithm_data||t.algorithm;if(!n||n.type!=="advanced")return[];const r=n.data;if(!(r!=null&&r.rules))return[];const a=new Map;for(const s of r.rules)for(const o of s.statements??[])JW(o,a,e);return Array.from(a.values())}function ACe(t){return t.toLowerCase().includes("no active routing algorithm")||t.toLowerCase().includes("active routing algorithm is not a volume split")}function ZW({merchantId:t,routingKeysConfig:e,routingConfigUnavailable:n,routingKeysLoading:r,resetSignal:a,onRunComplete:s,onOpenTrace:o}){const l=Hr(),c=g.useMemo(()=>Object.keys(e).sort(),[e]),{data:u}=ct(t?["active-routing",t]:null,()=>Fe(`/routing/list/active/${t}`),{revalidateOnFocus:!1}),{data:d}=ct(t?["routing-list",t]:null,()=>Fe(`/routing/list/${t}`),{revalidateOnFocus:!1}),f=(u==null?void 0:u.find(G=>{var I;return((I=G.algorithm_data||G.algorithm)==null?void 0:I.type)==="ab_test"}))??null,[h,p]=g.useState(BS),[m,x]=g.useState(U$),[v,b]=g.useState(null),[y,w]=g.useState(null),[j,k]=g.useState(!1),[S,_]=g.useState(null),[C,E]=g.useState(!1),[P,R]=g.useState(!1);g.useEffect(()=>{if(a===0)return;const G=BS.map(I=>{var q,M;return I.type==="enum_variant"&&I.value===""?{...I,value:((M=(q=e[I.key])==null?void 0:q.values)==null?void 0:M[0])??""}:I});p(G),x(U$),b(null),w(null),_(null),E(!1)},[a]),g.useEffect(()=>{var B;if(!u||!d||r||n)return;let I=u.find(z=>{var pe;const Z=(pe=z.algorithm_data||z.algorithm)==null?void 0:pe.type;return Z==="advanced"||Z==="priority"||Z==="single"}),q="";if(!I&&f){const z=(B=f.algorithm_data||f.algorithm)==null?void 0:B.data,Z=z!=null&&z.control_algorithm_id?d.find(ae=>ae.id===z.control_algorithm_id):void 0,pe=z!=null&&z.variant_algorithm_id?d.find(ae=>ae.id===z.variant_algorithm_id):void 0;Z&&zS(Z,e).length>0?(I=Z,q=" (control arm)"):pe&&zS(pe,e).length>0&&(I=pe,q=" (variant arm)")}if(!I)return;const M=zS(I,e);M.length!==0&&(p(z=>z.every(pe=>pe.value===""||BS.some(ae=>ae.key===pe.key))?M:z),w(I.name+q))},[u,d,r,n,e]);function A(){var B;const G=c[0]??"",I=e[G],q=V$(I==null?void 0:I.type),M=q==="enum_variant"?((B=I==null?void 0:I.values)==null?void 0:B[0])??"":"";p(z=>[...z,{key:G,type:q,value:M,metadataKey:""}])}function T(G){w(null),p(I=>I.filter((q,M)=>M!==G))}function D(G,I,q){w(null),p(M=>M.map((B,z)=>z===G?{...B,[I]:q}:B))}function L(G,I){var z;w(null);const q=e[I],M=V$(q==null?void 0:q.type),B=M==="enum_variant"?((z=q==null?void 0:q.values)==null?void 0:z[0])??"":"";p(Z=>Z.map((pe,ae)=>ae===G?{...pe,key:I,type:M,value:B,metadataKey:""}:pe))}function X(G,I){w(null),p(q=>q.map((M,B)=>B===G?{...M,metadataKey:I}:M))}function J(){x(G=>[...G,{gateway_name:"",gateway_id:""}])}function U(G){x(I=>I.filter((q,M)=>M!==G))}function Y(G,I,q){x(M=>M.map((B,z)=>z===G?{...B,[I]:q}:B))}async function W(){if(n){_("Routing key config unavailable. Fix /config/routing-keys and retry.");return}k(!0),_(null),E(!1),b(null);const G=`rule_decision_${Date.now()}`;try{const I={};h.forEach(M=>{M.key&&(M.type==="metadata_variant"?I[M.key]={type:M.type,value:{key:M.metadataKey||M.key,value:M.value}}:M.type==="number"?I[M.key]={type:M.type,value:parseFloat(M.value)||0}:M.value!==""&&(I[M.key]={type:M.type,value:M.value}))});const q=await Fe("/routing/evaluate",{created_by:t||"test_user",payment_id:G,fallback_output:m.filter(M=>M.gateway_name),parameters:I});b(q),s()}catch(I){const q=I instanceof Error?I.message:"Request failed";ACe(q)?E(!0):_(q)}finally{k(!1)}}return i.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:"Rule Evaluation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:"Rule Evaluation Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!t&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),r&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),n&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),f&&i.jsxs("div",{className:"flex items-start gap-2 px-3 py-2.5 rounded-lg bg-amber-50 border border-amber-200 dark:bg-amber-900/20 dark:border-amber-700/40",children:[i.jsx("span",{className:"text-amber-700 mt-0.5 shrink-0",children:"⚠"}),i.jsxs("p",{className:"text-xs text-amber-700 dark:text-amber-300 leading-relaxed",children:[i.jsxs("span",{className:"font-semibold",children:['A/B experiment "',f.name,'" is active.']})," ","Results reflect whichever arm is assigned to the simulated payment ID — this mirrors real traffic. Stop the experiment to see baseline routing."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"}),y&&i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300 leading-4",children:["⚗ Prefilled from: ",y]})]}),i.jsx("div",{className:"space-y-1.5",children:h.map((G,I)=>{var q;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:G.key,onChange:M=>L(I,M.target.value),disabled:n||r,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:c.length===0?i.jsx("option",{value:"",children:"No keys available"}):c.map(M=>i.jsx("option",{value:M,children:M},M))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),G.type==="enum_variant"?i.jsx("select",{value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((q=e[G.key])==null?void 0:q.values)||[]).map(M=>i.jsx("option",{value:M,children:M},M))}):G.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):G.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>T(I),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),G.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:G.metadataKey||"",onChange:M=>X(I,M.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:G.value,onChange:M=>D(I,"value",M.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},I)})}),i.jsxs("button",{onClick:A,disabled:n||r||c.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:m.map((G,I)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:I+1}),i.jsx("input",{placeholder:"gateway name",value:G.gateway_name,onChange:q=>Y(I,"gateway_name",q.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:G.gateway_id||"",onChange:q=>Y(I,"gateway_id",q.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>U(I),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},I))}),i.jsxs("button",{onClick:J,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:S}),C&&i.jsxs($a,{tone:"warning",children:[i.jsx("p",{className:"font-semibold mb-1",children:"Configure rule-based routing first"}),i.jsx("p",{className:"mb-2 max-w-[57ch]",children:"Rule evaluation needs an active rule-based strategy before it can return a policy decision."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>l("/routing/rules"),children:"Configure routing"})]}),i.jsx(we,{onClick:W,disabled:j||n||!t,className:"w-full justify-center",children:j?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})})]})]}),i.jsx("div",{className:"space-y-4",children:v?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:v.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",v.output.type]})]}),v.payment_id&&i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>o(v.payment_id,"Rule Evaluation Decision"),children:"View decision trace"})]}),v.output.type==="single"&&v.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:v.output.connector.gateway_name}),v.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",v.output.connector.gateway_id]})]}),v.output.type==="priority"&&v.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:v.output.connectors.map((G,I)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:I+1}),i.jsx("span",{className:"font-medium",children:G.gateway_name}),G.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",G.gateway_id,")"]})]},I))})]}),v.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>R(G=>!G),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),P?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),P&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(v,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})})})]})}function bx({value:t,onChange:e,options:n,placeholder:r,className:a=""}){const[s,o]=g.useState(!1),[l,c]=g.useState(-1),[u,d]=g.useState({}),f=g.useRef(null),h=g.useRef(null),p=g.useMemo(()=>t?n.filter(b=>b.toLowerCase().includes(t.toLowerCase())):n,[n,t]),m=g.useCallback(()=>{o(!1),c(-1)},[]);function x(){var y;const b=(y=f.current)==null?void 0:y.getBoundingClientRect();b&&(d({position:"fixed",top:b.bottom+4,left:b.left,width:b.width,zIndex:9999}),c(-1),o(!0))}g.useEffect(()=>{if(!s)return;function b(y){var j,k;const w=y.target;!((j=f.current)!=null&&j.contains(w))&&!((k=h.current)!=null&&k.contains(w))&&m()}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s,m]),g.useEffect(()=>{c(-1)},[p.length]);function v(b){if(!s&&b.key!=="Escape"&&b.key!=="Tab"){x();return}switch(b.key){case"ArrowDown":b.preventDefault(),c(y=>yy>0?y-1:p.length-1);break;case"Enter":l>=0&&p[l]!==void 0&&(b.preventDefault(),e(p[l]),m());break;case"Escape":m();break}}return i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:f,type:"text",value:t,placeholder:r,className:a,onChange:b=>{e(b.target.value),x()},onFocus:x,onKeyDown:v,autoComplete:"off"}),s&&p.length>0&&gs.createPortal(i.jsx("div",{ref:h,style:u,className:"rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg overflow-hidden",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(p.length*32+8,240)}px`},children:p.map((b,y)=>i.jsx("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{e(b),m()},className:`w-full text-left px-3 py-2 text-xs transition-colors ${y===l?"bg-brand-500 text-white":b===t?"bg-brand-50/50 dark:bg-brand-900/10 text-brand-600 dark:text-brand-400 font-medium":"hover:bg-slate-50 dark:hover:bg-[#1c1c24] text-slate-700 dark:text-slate-200"}`,children:b},b))})}),document.body)]})}function Zb({text:t,children:e}){const[n,r]=g.useState(!1),[a,s]=g.useState({}),o=g.useRef(null);function l(){var u;const c=(u=o.current)==null?void 0:u.getBoundingClientRect();c&&(s({position:"fixed",top:c.top-6,left:c.left+c.width/2,transform:"translate(-50%, -100%)",zIndex:9999}),r(!0))}return g.useEffect(()=>{if(!n)return;function c(){r(!1)}return document.addEventListener("scroll",c,!0),()=>document.removeEventListener("scroll",c,!0)},[n]),i.jsxs("span",{ref:o,onMouseEnter:l,onMouseLeave:()=>r(!1),className:"inline-flex",children:[e,n&&gs.createPortal(i.jsx("span",{style:a,className:"pointer-events-none rounded-md bg-slate-800 dark:bg-slate-700 px-2 py-1 text-[11px] text-white shadow-md whitespace-nowrap leading-4",children:t}),document.body)]})}const _u={error_code:"",error_message:"",issuer_error_code:"",card_network:""},qv="w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs focus:outline-none focus:border-brand-500 text-slate-800 dark:text-slate-100 placeholder-slate-500",Kv="block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1";function nT(t){switch(t){case"Issue with Payment Method details":return!1;case"Issue with Integration":case"Issue with Configurations":case"Technical issue with PSP":case"Something went wrong":return!0;default:return null}}function OCe(t){switch(t.toLowerCase()){case"decline":return"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400";case"retry":return"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400";case"step_up":case"challenge":return"bg-blue-50 text-blue-600 dark:bg-blue-950/40 dark:text-blue-400";case"success":case"force_2ds_pass":return"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300";default:return"bg-slate-100 text-slate-500 dark:bg-[#1a1a24] dark:text-slate-400"}}function oA({info:t,onChange:e,rules:n,connector:r,showClassification:a=!0}){const[s,o]=g.useState(!1),l=g.useMemo(()=>[...new Set(n.filter(f=>!r||f.connector===r).map(f=>f.errorCode).filter(Boolean))].sort(),[n,r]),c=g.useMemo(()=>[...new Set(n.filter(f=>(!r||f.connector===r)&&(!t.error_code||f.errorCode===t.error_code)).map(f=>f.errorMessage).filter(Boolean))].sort(),[n,r,t.error_code]),u=g.useMemo(()=>{if(!t.error_code)return null;const f=n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.subFlow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code&&h.flow==="Authorize")??n.find(h=>(!r||h.connector===r)&&h.errorCode===t.error_code);return f?{unifiedMessage:f.unifiedMessage??null,decision:f.decision||null,penalized:nT(f.unifiedMessage)}:null},[n,r,t.error_code]),d=Object.values(t).some(Boolean);return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("button",{type:"button",onClick:()=>o(f=>!f),className:"w-full flex items-center justify-between gap-2 px-2.5 py-2 bg-slate-50 dark:bg-[#0d0d13] hover:bg-slate-100 dark:hover:bg-[#111118] transition-colors",children:[i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 shrink-0 leading-4",children:"Decline Error"}),t.error_code?i.jsx("span",{className:"font-mono text-[11px] text-brand-600 dark:text-brand-400 bg-brand-50 dark:bg-brand-900/30 px-1.5 py-0.5 rounded shrink-0 leading-4",children:t.error_code}):i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:"not set"}),a&&(u==null?void 0:u.decision)&&i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${OCe(u.decision)} leading-4`,children:u.decision}),a&&(u==null?void 0:u.penalized)!=null&&i.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-semibold shrink-0 ${u.penalized?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300"} leading-4`,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${u.penalized?"bg-red-500":"bg-emerald-500"}`}),u.penalized?"Penalized":"Penalty skipped"]})]}),i.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[d&&i.jsx(Zb,{text:"Clear error info",children:i.jsx("span",{role:"button",onClick:f=>{f.stopPropagation(),e({error_code:"",error_message:"",issuer_error_code:"",card_network:""})},className:"rounded p-0.5 text-slate-500 hover:text-red-600 transition-colors",children:i.jsx(FW,{size:11})})}),i.jsx(ln,{size:13,className:`text-slate-500 transition-transform duration-200 ${s?"rotate-180":""}`})]})]}),s&&i.jsxs("div",{className:"px-2.5 py-2.5 space-y-2 border-t border-slate-200 dark:border-[#222226]",children:[(u==null?void 0:u.unifiedMessage)&&i.jsx("div",{className:`flex items-center gap-2 px-2.5 py-1.5 rounded-lg border-l-2 text-[11px] ${u.penalized===!0?"bg-red-50 border-red-400 text-red-700 dark:bg-red-950/20 dark:border-red-600 dark:text-red-400":u.penalized===!1?"bg-emerald-50 border-emerald-400 text-emerald-700 dark:bg-emerald-950/20 dark:border-emerald-600 dark:text-emerald-300":"bg-slate-50 border-slate-300 text-slate-500 dark:bg-[#111118] dark:border-slate-600 dark:text-slate-400"} leading-4`,children:i.jsx("span",{children:u.unifiedMessage})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Error Code"}),i.jsx(bx,{value:t.error_code,onChange:f=>e({error_code:f,error_message:""}),options:l,placeholder:"e.g. declined",className:qv})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Issuer Code"}),i.jsx("input",{value:t.issuer_error_code,onChange:f=>e({issuer_error_code:f.target.value}),placeholder:"e.g. 51",className:qv})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Error Message"}),i.jsx(bx,{value:t.error_message,onChange:f=>e({error_message:f}),options:c,placeholder:"e.g. Insufficient funds",className:qv})]}),i.jsxs("div",{children:[i.jsx("label",{className:Kv,children:"Card Network"}),i.jsx("input",{value:t.card_network,onChange:f=>e({card_network:f.target.value}),placeholder:"e.g. Visa",className:qv})]})]})]})}function QW({merchantId:t,gsmRules:e,decideParams:n}){const[r,a]=g.useState(null),[s,o]=g.useState({}),[l,c]=g.useState({}),u=g.useMemo(()=>{const f=e.filter(p=>p.subFlow==="Authorize"||p.flow==="Authorize");return[...new Set(f.map(p=>p.unifiedMessage).filter(Boolean))].map(p=>{const m=nT(p)!==!1,x=f.filter(b=>b.unifiedMessage===p),v=[...new Set(x.map(b=>b.connector))];return{key:p,label:p,penalized:m,connectors:v,rulesForMsg:x}}).sort((p,m)=>Number(p.penalized)-Number(m.penalized))},[e]);async function d(f,h,p,m,x,v){var b,y;if(t){c(w=>({...w,[f]:{scoreBefore:null,scoreAfter:null,loading:!0,error:null}}));try{const k=n.eligibleGateways.split(",").map(L=>L.trim()).filter(Boolean).filter(L=>L!==h)[0]??(h==="stripe"?"adyen":"stripe"),S=[h,k],_={merchantId:t,paymentInfo:{paymentId:"",amount:parseFloat(n.amount)||1e3,currency:n.currency||"USD",paymentType:"ORDER_PAYMENT",paymentMethodType:n.paymentMethodType||"CARD",paymentMethod:n.paymentMethod||"CREDIT",authType:n.authType||"NO_THREE_DS",cardBrand:n.cardBrand||"VISA"},eligibleGatewayList:S,rankingAlgorithm:n.rankingAlgorithm,eliminationEnabled:!1},C=Date.now(),E=`scenario_test_${C}_0`,R=((b=(await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:E}})).gateway_priority_map)==null?void 0:b[h])??null;for(let L=1;L<=5;L++){const X=`scenario_test_${C}_${L}`;await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:X}}),await Fe("/update-gateway-score",{merchantId:t,gateway:h,gatewayReferenceId:null,status:"FAILURE",paymentId:X,errorInfo:{connector:h,flow:x,subFlow:v,errorCode:p,errorMessage:m}})}const A=`scenario_test_${C}_after`,D=((y=(await Fe("/decide-gateway",{..._,paymentInfo:{..._.paymentInfo,paymentId:A}})).gateway_priority_map)==null?void 0:y[h])??null;c(L=>({...L,[f]:{scoreBefore:R,scoreAfter:D,loading:!1,error:null}}))}catch(w){const j=w instanceof Error?w.message:"Test failed";c(k=>({...k,[f]:{scoreBefore:null,scoreAfter:null,loading:!1,error:j}}))}}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Penalty Classification Guide"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"How the routing engine decides whether a failed payment penalises the gateway score."})]})}),i.jsx(He,{className:"space-y-4",children:e.length===0?i.jsx("p",{className:"text-xs text-slate-500",children:"Loading GSM rules…"}):i.jsxs(i.Fragment,{children:[["protected","penalized"].map(f=>{const h=u.filter(m=>(m.penalized?"penalized":"protected")===f);if(!h.length)return null;const p=f==="protected";return i.jsxs("div",{children:[i.jsx("p",{className:`text-[11px] font-semibold uppercase tracking-wider mb-2 ${p?"text-emerald-700 dark:text-emerald-400":"text-red-600 dark:text-red-400"} max-w-[68ch] leading-4`,children:p?"✓ Protected — gateway score unchanged":"✗ Penalised — gateway score decremented"}),i.jsx("div",{className:"space-y-2",children:h.map(m=>{var C,E;const x=m.rulesForMsg.slice(0,20),v=m.connectors,b=r===m.key,y=s[m.key]??v[0]??"",w=x.find(P=>P.connector===y&&P.subFlow==="Authorize")??x.find(P=>P.connector===y),j=l[m.key],k=(j==null?void 0:j.scoreBefore)!=null&&(j==null?void 0:j.scoreAfter)!=null?j.scoreAfter-j.scoreBefore:null,S=k!=null&&Math.abs(k)>.001,_=p?k!=null&&k<-.001:S;return i.jsxs("div",{className:`rounded-lg border overflow-hidden transition-all ${p?"border-emerald-200 dark:border-emerald-800/40":"border-red-200 dark:border-red-800/40"}`,children:[i.jsxs("button",{type:"button",onClick:()=>a(b?null:m.key),className:`w-full flex items-center justify-between px-3 py-2.5 text-left transition-colors ${p?"bg-emerald-50/50 dark:bg-emerald-900/10 hover:bg-emerald-50 dark:hover:bg-emerald-900/20":"bg-red-50/50 dark:bg-red-900/10 hover:bg-red-50 dark:hover:bg-red-900/20"}`,children:[i.jsx("div",{className:"flex items-center gap-2 min-w-0",children:i.jsx("span",{className:"text-xs font-semibold text-slate-800 dark:text-slate-100",children:m.label})}),i.jsxs("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[i.jsxs("span",{className:"text-[11px] text-slate-500 leading-4",children:[v.length," connector",v.length!==1?"s":""]}),i.jsx(ln,{size:12,className:`text-slate-500 transition-transform ${b?"rotate-180":""}`})]})]}),b&&i.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24] bg-white dark:bg-[#0d1117]",children:[i.jsxs("div",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:"Unified message: "}),i.jsx("span",{className:"font-mono",children:m.key})]}),v.length>0&&i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Select connector to test:"}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:v.map(P=>i.jsx("button",{type:"button",onClick:()=>o(R=>({...R,[m.key]:P})),className:`rounded-full px-2.5 py-1 text-[11px] font-medium ring-1 ring-inset transition-colors ${y===P?p?"bg-emerald-50 text-emerald-700 ring-emerald-300 dark:bg-emerald-900/30 dark:text-emerald-300 dark:ring-emerald-700":"bg-red-50 text-red-700 ring-red-300 dark:bg-red-900/30 dark:text-red-300 dark:ring-red-700":"bg-slate-50 text-slate-600 ring-slate-200 hover:bg-slate-100 dark:bg-[#1c1c24] dark:text-slate-400 dark:ring-[#2a2a35]"} leading-4`,children:P},P))})]}),w&&i.jsxs("div",{className:"rounded-lg bg-slate-50 dark:bg-[#10131c] px-3 py-2 text-[11px] space-y-0.5 leading-4",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Error code: "}),i.jsx("span",{className:"font-mono font-medium text-slate-700 dark:text-slate-200",children:w.errorCode})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-slate-500",children:"Message: "}),i.jsx("span",{className:"text-slate-600 dark:text-slate-300",children:w.errorMessage})]})]}),y&&w&&i.jsx("button",{type:"button",disabled:!t||(j==null?void 0:j.loading),onClick:()=>d(m.key,y,w.errorCode,w.errorMessage,w.flow,w.subFlow),className:`flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${p?"bg-emerald-600 text-white hover:bg-emerald-700":"bg-red-500 text-white hover:bg-red-600"}`,children:j!=null&&j.loading?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:12})," Injecting 5 failures…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:12})," Test with ",y]})}),!t&&i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-400 leading-4",children:"Set a merchant ID in the top bar to run tests."}),j&&!j.loading&&i.jsx("div",{className:`rounded-lg border px-3 py-2.5 space-y-1.5 ${j.error||_?"border-amber-200 bg-amber-50 dark:border-amber-800/40 dark:bg-amber-900/10":p?"border-emerald-200 bg-emerald-50 dark:border-emerald-800/40 dark:bg-emerald-900/10":"border-red-200 bg-red-50 dark:border-red-800/40 dark:bg-red-900/10"}`,children:j.error?i.jsx("p",{className:"text-[11px] text-amber-700 dark:text-amber-300 leading-4",children:j.error}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 text-[11px] leading-4",children:[i.jsx("span",{className:"text-slate-500",children:"Score:"}),i.jsx("span",{className:"font-mono font-semibold text-slate-700 dark:text-slate-200",children:((C=j.scoreBefore)==null?void 0:C.toFixed(3))??"—"}),i.jsx("span",{className:"text-slate-500",children:"→"}),i.jsx("span",{className:`font-mono font-semibold ${S?"text-red-600 dark:text-red-400":"text-emerald-700 dark:text-emerald-400"}`,children:((E=j.scoreAfter)==null?void 0:E.toFixed(3))??"—"}),k!=null&&i.jsxs("span",{className:`text-[11px] font-medium ${S?"text-red-600":"text-emerald-700"} leading-4`,children:["(",k>0?"+":"",k.toFixed(3),")"]})]}),i.jsx("p",{className:`text-[11px] font-medium ${_?"text-amber-700 dark:text-amber-300":p?"text-emerald-700 dark:text-emerald-300":"text-red-600 dark:text-red-400"} leading-4`,children:p?_?`⚠ Score decreased — gateway was penalised (${k.toFixed(3)})`:k!=null&&k>.001?`✓ Score increased (+${k.toFixed(3)}) — no penalty applied (hedging)`:"✓ Score unchanged — gateway not penalised as expected":S?`✗ Gateway penalised (score dropped ${Math.abs(k).toFixed(3)})`:"⚠ Score unchanged — penalty may not have applied yet"})]})})]})]},m.key)})})]},f)}),i.jsxs("p",{className:"text-[11px] text-slate-500 dark:text-slate-400 pt-1 border-t border-slate-100 dark:border-[#1c1c24] leading-4",children:["Errors with no matching GSM rule, or calls made without ",i.jsx("span",{className:"font-mono",children:"error_info"}),", are always penalised. The GSM scoring filter must be enabled under SR Routing settings for skip-penalty logic to apply. Configure simulation parameters on the left and run to observe score changes live."]})]})})]})}const TCe={},W$=t=>{let e;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(e):d;if(!Object.is(h,e)){const p=e;e=f??(typeof h!="object"||h===null)?h:Object.assign({},e,h),n.forEach(m=>m(e,p))}},a=()=>e,c={setState:r,getState:a,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(TCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=e=t(r,a,c);return c},PCe=t=>t?W$(t):W$;var eH={exports:{}},tH={};/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Uj=g,RCe=xC;function MCe(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var DCe=typeof Object.is=="function"?Object.is:MCe,ICe=RCe.useSyncExternalStore,$Ce=Uj.useRef,LCe=Uj.useEffect,FCe=Uj.useMemo,BCe=Uj.useDebugValue;tH.useSyncExternalStoreWithSelector=function(t,e,n,r,a){var s=$Ce(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=FCe(function(){function c(p){if(!u){if(u=!0,d=p,p=r(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return f=m}return f=p}if(m=f,DCe(d,p))return m;var x=r(p);return a!==void 0&&a(m,x)?(d=p,m):(d=p,f=x)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return c(e())},h===null?void 0:function(){return c(h())}]},[e,n,r,a]);var l=ICe(t,s[0],s[1]);return LCe(function(){o.hasValue=!0,o.value=l},[l]),BCe(l),l};eH.exports=tH;var zCe=eH.exports;const UCe=Nn(zCe),nH={},{useDebugValue:VCe}=H,{useSyncExternalStoreWithSelector:WCe}=UCe;let H$=!1;const HCe=t=>t;function GCe(t,e=HCe,n){(nH?"production":void 0)!=="production"&&n&&!H$&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),H$=!0);const r=WCe(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return VCe(r),r}const qCe=t=>{(nH?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const e=typeof t=="function"?PCe(t):t,n=(r,a)=>GCe(e,r,a);return Object.assign(n,e),n},rH=t=>qCe,KCe={};function YCe(t,e){let n;try{n=t()}catch{return}return{getItem:a=>{var s;const o=c=>c===null?null:JSON.parse(c,void 0),l=(s=n.getItem(a))!=null?s:null;return l instanceof Promise?l.then(o):o(l)},setItem:(a,s)=>n.setItem(a,JSON.stringify(s,void 0)),removeItem:a=>n.removeItem(a)}}const L0=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return L0(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return L0(r)(n)}}}},XCe=(t,e)=>(n,r,a)=>{let s={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:v=>v,version:0,merge:(v,b)=>({...b,...v}),...e},o=!1;const l=new Set,c=new Set;let u;try{u=s.getStorage()}catch{}if(!u)return t((...v)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...v)},r,a);const d=L0(s.serialize),f=()=>{const v=s.partialize({...r()});let b;const y=d({state:v,version:s.version}).then(w=>u.setItem(s.name,w)).catch(w=>{b=w});if(b)throw b;return y},h=a.setState;a.setState=(v,b)=>{h(v,b),f()};const p=t((...v)=>{n(...v),f()},r,a);let m;const x=()=>{var v;if(!u)return;o=!1,l.forEach(y=>y(r()));const b=((v=s.onRehydrateStorage)==null?void 0:v.call(s,r()))||void 0;return L0(u.getItem.bind(u))(s.name).then(y=>{if(y)return s.deserialize(y)}).then(y=>{if(y)if(typeof y.version=="number"&&y.version!==s.version){if(s.migrate)return s.migrate(y.state,y.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return y.state}).then(y=>{var w;return m=s.merge(y,(w=r())!=null?w:p),n(m,!0),f()}).then(()=>{b==null||b(m,void 0),o=!0,c.forEach(y=>y(m))}).catch(y=>{b==null||b(void 0,y)})};return a.persist={setOptions:v=>{s={...s,...v},v.getStorage&&(u=v.getStorage())},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>x(),hasHydrated:()=>o,onHydrate:v=>(l.add(v),()=>{l.delete(v)}),onFinishHydration:v=>(c.add(v),()=>{c.delete(v)})},x(),m||p},JCe=(t,e)=>(n,r,a)=>{let s={storage:YCe(()=>localStorage),partialize:x=>x,version:0,merge:(x,v)=>({...v,...x}),...e},o=!1;const l=new Set,c=new Set;let u=s.storage;if(!u)return t((...x)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...x)},r,a);const d=()=>{const x=s.partialize({...r()});return u.setItem(s.name,{state:x,version:s.version})},f=a.setState;a.setState=(x,v)=>{f(x,v),d()};const h=t((...x)=>{n(...x),d()},r,a);a.getInitialState=()=>h;let p;const m=()=>{var x,v;if(!u)return;o=!1,l.forEach(y=>{var w;return y((w=r())!=null?w:h)});const b=((v=s.onRehydrateStorage)==null?void 0:v.call(s,(x=r())!=null?x:h))||void 0;return L0(u.getItem.bind(u))(s.name).then(y=>{if(y)if(typeof y.version=="number"&&y.version!==s.version){if(s.migrate)return[!0,s.migrate(y.state,y.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,y.state];return[!1,void 0]}).then(y=>{var w;const[j,k]=y;if(p=s.merge(k,(w=r())!=null?w:h),n(p,!0),j)return d()}).then(()=>{b==null||b(p,void 0),p=r(),o=!0,c.forEach(y=>y(p))}).catch(y=>{b==null||b(void 0,y)})};return a.persist={setOptions:x=>{s={...s,...x},x.storage&&(u=x.storage)},clearStorage:()=>{u==null||u.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>m(),hasHydrated:()=>o,onHydrate:x=>(l.add(x),()=>{l.delete(x)}),onFinishHydration:x=>(c.add(x),()=>{c.delete(x)})},s.skipHydration||m(),p||h},ZCe=(t,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((KCe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),XCe(t,e)):JCe(t,e),aH=ZCe,$r=rH()(aH(t=>({merchantId:"",setMerchantId:e=>{console.log(` -[STORE] Merchant ID changed: "${e}"`),t({merchantId:e})}}),{name:"merchant-store"}));function Sl(t){const e=t?`/merchant-account/${t}/features`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:3e5});function o(c){var u;return((u=n==null?void 0:n.features.find(d=>d.feature===c))==null?void 0:u.enabled)??!1}async function l(c,u){if(!t)throw new Error("Set a merchant ID first");const d=await Fe(`/merchant-account/${t}/features/${c}`,{enabled:u});return await s(d,!1),d}return{data:n,error:r,isLoading:a,isEnabled:o,setFeatureEnabled:l}}const rT="hs-dashboard-handoff",QCe="connectors",eEe="rule_id",tEe=["/routing/rules","/routing/volume"];function sH(t){if(!Array.isArray(t))return null;const e=t.filter(n=>!!n&&typeof n=="object"&&typeof n.merchant_connector_id=="string"&&typeof n.connector_name=="string");return e.length>0?e:null}function nEe(t){try{return sH(JSON.parse(t))}catch{return null}}function rEe(){const t=window.location.hash.replace(/^#/,"");if(!t)return null;const e=new URLSearchParams(t),n=e.get(QCe),r=e.get(eEe);return!n&&!r?null:{connectors:n?nEe(n):null,ruleId:r||null}}function aEe(){const t="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/",e=window.location.pathname;return t&&e.startsWith(t)?e.slice(t.length)||"/":e}function sEe(t){return/^\/(?![/\\])/.test(t)}function iEe(t){if(!new URLSearchParams(window.location.search).has("code"))return null;const e=aEe().replace(/\/+$/,"")||"/";return sEe(e)?t&&tEe.includes(e)?`${e}/${encodeURIComponent(t)}/edit`:e:null}function aT(t){try{sessionStorage.setItem(rT,JSON.stringify(t))}catch{}}function oEe(){try{const t=sessionStorage.getItem(rT);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const{connectors:n,ruleId:r,route:a,merchantId:s}=e;return{connectors:sH(n),ruleId:typeof r=="string"&&r?r:null,route:typeof a=="string"&&a?a:null,merchantId:typeof s=="string"&&s?s:null}}catch{return null}}function lEe(){const t=oEe(),e=rEe(),n=(e==null?void 0:e.connectors)??(t==null?void 0:t.connectors)??null,r=(e==null?void 0:e.ruleId)??(t==null?void 0:t.ruleId)??null,a=iEe(r)??(t==null?void 0:t.route)??null;if(!n&&!r&&!a)return null;const s={connectors:n,ruleId:r,route:a,merchantId:(t==null?void 0:t.merchantId)??null};return aT(s),s}let Za=lEe();function iH(){return Za?Za.merchantId?Za.merchantId===$r.getState().merchantId:!0:!1}function cEe(){return iH()?(Za==null?void 0:Za.connectors)??null:null}function uEe(t){!Za||!t||(Za.merchantId=t,aT(Za))}function dEe(){Za=null;try{sessionStorage.removeItem(rT)}catch{}}function oH(){if(!iH()||!(Za!=null&&Za.route))return null;const{route:t}=Za;return Za.route=null,aT(Za),t}function sT(t,e){return t!=null&&t.permissions?t.permissions.includes(e):!0}function Ao(){return hr(t=>sT(t.user,"routing:write"))}const hr=rH()(aH(t=>({token:null,user:null,merchants:[],hasHydrated:!1,setAuth:(e,n,r=[])=>{Sd.set(e),t({token:e,user:n,merchants:r})},updateMerchant:(e,n,r)=>{Sd.set(e),t(a=>({token:e,merchants:r,user:a.user?{...a.user,merchantId:n}:null}))},clearAuth:()=>{Sd.set(null),t({token:null,user:null,merchants:[]}),dEe()},setHasHydrated:e=>t({hasHydrated:e})}),{name:"auth-store",onRehydrateStorage:()=>t=>{t!=null&&t.token&&Sd.set(t.token),t==null||t.setHasHydrated(!0)}})),fEe=Object.freeze(Object.defineProperty({__proto__:null,sessionAllows:sT,useAuthStore:hr,useCanEditRouting:Ao},Symbol.toStringTag,{value:"Module"})),lH={SR_SELECTION_V3_ROUTING:"bg-blue-100 text-blue-800",SR_SELECTION_MULTI_OBJECTIVE:"bg-cyan-100 text-cyan-800",PRIORITY_LOGIC:"bg-purple-100 text-purple-800",NTW_BASED_ROUTING:"bg-green-100 text-green-800",SR_SELECTION_V3_ROUTING_WITH_HEDGING:"bg-orange-100 text-orange-800",HEDGING:"bg-orange-100 text-orange-800"},hEe=["card","card_redirect","pay_later","wallet","bank_redirect","bank_transfer","crypto","bank_debit","reward","real_time_payment","upi","voucher","gift_card","open_banking","mobile_payment","network_token"],pEe={card:["credit","debit","card"],bank_debit:["ach","sepa","bacs","becs","eft_debit_order","sepa_guarenteed_debit"],bank_transfer:["ach","sepa","sepa_bank_transfer","bacs","multibanco","pix","pse","permata_bank_transfer","bca_bank_transfer","bni_va","bri_va","cimb_va","danamon_va","mandiri_va","local_bank_transfer","instant_bank_transfer","pix_key","pix_emv","pix_qr","pix_automatico_push","pix_automatico_qr","payshap","payshap_proxy","instant_bank_transfer_finland","instant_bank_transfer_poland","indonesian_bank_transfer"],wallet:["amazon_pay","apple_pay","google_pay","paypal","ali_pay","ali_pay_hk","dana","mb_way","mobile_pay","samsung_pay","twint","vipps","touch_n_go","swish","we_chat_pay","go_pay","gcash","momo","kakao_pay","cashapp","mifinity","paze","bluecode","skrill","paysera","venmo","revolut_pay"],pay_later:["affirm","alma","afterpay_clearpay","klarna","pay_bright","atome","walley","flexiti","breadpay","payjustnow"],upi:["upi_collect","upi_intent","upi_qr"],voucher:["boleto","efecty","pago_efectivo","red_compra","red_pagos","indomaret","alfamart","oxxo","seven_eleven","lawson","mini_stop","family_mart","seicomart","pay_easy"],bank_redirect:["giropay","ideal","sofort","eft","eps","bancontact_card","blik","local_bank_redirect","online_banking_thailand","online_banking_czech_republic","online_banking_finland","online_banking_fpx","online_banking_poland","online_banking_slovakia","przelewy24","trustly","bizum","interac","open_banking_uk","open_banking_pis","open_banking"],gift_card:["givex","pay_safe_card","bhn_card_network"],card_redirect:["knet","benefit","momo_atm","card_redirect"],real_time_payment:["fps","duit_now","prompt_pay","viet_qr","qris"],crypto:["crypto_currency"],reward:["evoucher","classic_reward"],open_banking:["open_banking_pis"],mobile_payment:["direct_carrier_billing"]};function mEe(t){var r;if(!t)return[];const e=a=>{if(!a||typeof a!="object")return{};const s=a.keys;return s&&typeof s=="object"?s:a},n={...e(t.keys),...e((r=t.routing_config)==null?void 0:r.keys)};return Object.keys(n).length===0?[]:Object.entries(n).map(([a,s])=>{const o=(s.type||s.data_type||"str_value").toString().toLowerCase(),l={key:a,type:o};return s.values&&(l.values=Array.isArray(s.values)?s.values.map(c=>c.trim()):s.values.split(",").map(c=>c.trim())),s.min_value!==void 0&&(l.min_value=s.min_value),s.max_value!==void 0&&(l.max_value=s.max_value),s.min_length!==void 0&&(l.min_length=s.min_length),s.max_length!==void 0&&(l.max_length=s.max_length),s.exact_length!==void 0&&(l.exact_length=s.exact_length),s.regex&&(l.regex=s.regex),l})}function iT(){const{data:t,error:e,isLoading:n}=ct("/config/routing-keys",Dt,{refreshInterval:0,revalidateOnFocus:!1}),r=g.useMemo(()=>mEe(t||null),[t]),a=g.useMemo(()=>r.reduce((o,l)=>(o[l.key]=l,o),{}),[r]),s=g.useMemo(()=>{const o={};return r.forEach(l=>{o[l.key]={type:l.type,values:l.values||[]}}),o},[r]);return{config:t,keys:r,keysByName:a,routingKeysConfig:s,isLoading:n,error:e,getKeyValues:o=>{var l;return((l=a[o])==null?void 0:l.values)||[]},isIntegerKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="integer"},isEnumKey:o=>{var l;return((l=a[o])==null?void 0:l.type)==="enum"}}}function Ey(t){const e=t?`/merchant-account/${t}/debit-routing`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:3e5});async function o(l){if(!t||!e)throw new Error("Set a merchant ID first");const c=await Fe(e,{enabled:l});return await s(c,!1),c}return{data:n,error:r,isLoading:a,isEnabled:!!(n!=null&&n.debit_routing_enabled),mutate:s,setDebitRoutingEnabled:o}}const cH=["SR_BASED_ROUTING","SR_MULTI_OBJECTIVE"],gEe={SR_BASED_ROUTING:"Success Rate Based",SR_MULTI_OBJECTIVE:"Success Rate Based + Multi-Objective"},US="USD",G$=["CREDIT"],q$=["STANDARD","PREMIUM"],K$=["VISA","MASTERCARD"],Y$=[{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD"},{paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"PREMIUM"}],X$={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{..._u}},xEe={stripe:94,adyen:93};function VS(t){return{...X$,successRate:xEe[t.trim().toLowerCase()]??X$.successRate,errorInfo:{..._u}}}function uH(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function yEe(t,e,n){return uH(t/1e4*e,n)}function vEe(t){for(const[e,n]of Object.entries(lH))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Uf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],Vf=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],dH="decision-explorer-state-v2",fH=10*60*1e3,hH={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_BASED_ROUTING"},bEe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},wEe={totalPayments:"10"},kEe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],jEe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function pH(t){return t.map(e=>({...e}))}function mH(t){return t.map(e=>({...e}))}function SEe(t){return cH.includes(t)?t:hH.ranking_algorithm}function gH(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function Nh(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...hH},simulationConfig:{...wEe},gatewaySimConfigs:{},errorInfo:{..._u},debitForm:{...bEe},ruleParams:pH(kEe),fallbackConnectors:mH(jEe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1}}function _Ee(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function oT(t){return`${dH}:${encodeURIComponent(t)}`}function NEe(t){return!!(t&&Date.now()-t>fH)}function lA(t){typeof window>"u"||window.localStorage.removeItem(oT(t))}function CEe(t,e){typeof window>"u"||window.localStorage.setItem(oT(t),JSON.stringify(e))}function J$(t){var e,n,r,a;if(typeof window>"u")return Nh();try{const s=window.localStorage.getItem(oT(t))||window.localStorage.getItem(dH);if(!s)return{...Nh(),scopeKey:t};const o=JSON.parse(s),l=Nh();return o.scopeKey!==t||NEe(o.resultDataUpdatedAtMs)?(lA(t),{...l,scopeKey:t}):{...l,...o,scopeKey:t,resultDataUpdatedAtMs:o.resultDataUpdatedAtMs||null,activeTab:o.activeTab&&o.activeTab!=="single"?o.activeTab:l.activeTab,form:{...l.form,...o.form||{},ranking_algorithm:SEe((e=o.form)==null?void 0:e.ranking_algorithm)},simulationConfig:{...l.simulationConfig,...o.simulationConfig||{}},gatewaySimConfigs:o.gatewaySimConfigs||l.gatewaySimConfigs,errorInfo:{...l.errorInfo,...o.errorInfo||{}},debitForm:{...l.debitForm,...o.debitForm||{},card_type:gH((n=o.debitForm)==null?void 0:n.card_type)},ruleParams:(r=o.ruleParams)!=null&&r.length?pH(o.ruleParams):l.ruleParams,fallbackConnectors:(a=o.fallbackConnectors)!=null&&a.length?mH(o.fallbackConnectors):l.fallbackConnectors,volumeDistribution:o.volumeDistribution||l.volumeDistribution,volumeEvaluationLog:o.volumeEvaluationLog||l.volumeEvaluationLog,simulationResults:o.simulationResults||l.simulationResults}}catch{return{...Nh(),scopeKey:t}}}function zg(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function WS(t=[]){return Array.from(new Set(zg(t)))}function gg(t){return t.replace(/_/g," ").toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function EEe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function HS(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function xH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Ug(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ni(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function Vg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ni(t):"Unknown route"}function Z$(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ni(t):"Unknown event"}function lT(t){return t.flow_type||""}function Wg(t){const e=lT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ni(t.event_stage||e)}function cA(t){const e=lT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function Yv(t){const e=lT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function Q$(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function eL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function AEe(t){return KW(t)===404}function xg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function GS(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function yH(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function OEe(t){return`/analytics/payment-audit?${xH({range:"1d",page:1,page_size:25,payment_id:t})}`}function TEe(t){return`/analytics/preview-trace?${xH({range:"1d",page:1,page_size:25,payment_id:t})}`}function tL(t){if(!t)return null;const e=xg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??GS({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??GS({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=xg(n)?n:null,o=xg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:cA(t)},{label:"Stage",value:Wg(t)},{label:"Route",value:Vg(t.route)},{label:"Timestamp",value:Ug(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ni(t.status)}]:[]],d=GS(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:xg(r)&&!Object.keys(r).length?null:r,responsePayload:xg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function nL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function Xv(t){return t?"border-slate-300 bg-white text-slate-950 shadow-sm dark:border-[#3b82f6]/45 dark:bg-[#182131] dark:text-white":"border-transparent text-slate-500 hover:border-slate-200 hover:bg-white/70 hover:text-slate-900 dark:text-[#8d9ab2] dark:hover:border-[#2a303a] dark:hover:bg-[#151b24] dark:hover:text-white"}function PEe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function REe(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Hg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function qS({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function rL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Ml({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:yH(e)}):i.jsx(Hg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function MEe(){var Zy,Qy,td,ev,tv,nv,rv,Wm,Hm,av,sv,iv,Gm;const t=Hr(),{merchantId:e}=$r(),n=hr(O=>O.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=_Ee((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Sl(a||void 0).isEnabled("gsm-scoring-filter"),c=Ey(a),{routingKeysConfig:u,isLoading:d,error:f}=iT(),h=Object.keys(u).length>0,p=!d&&(!h||!!f),m=g.useMemo(()=>J$(s),[s]),[x,v]=g.useState(m.activeTab),[b,y]=g.useState(m.scopeKey||s),[w,j]=g.useState(m.resultDataUpdatedAtMs),[k,S]=g.useState(m.form),[_,C]=g.useState(m.simulationConfig),[E,P]=g.useState(m.errorInfo),[R,A]=g.useState(m.gatewaySimConfigs),T=g.useRef(R);g.useEffect(()=>{T.current=R},[R]);const D=Object.values(R).some(O=>O.failureMode==="timeout"),L=g.useRef(!1);g.useEffect(()=>()=>{L.current=!0},[]);const[X,J]=g.useState(m.debitForm),[U,Y]=g.useState(0),[W,G]=g.useState(m.ruleParams),[I,q]=g.useState(m.fallbackConnectors),[M,B]=g.useState(m.volumePayments),[z,Z]=g.useState(m.result),[pe,ae]=g.useState(m.debitResult),[ue,de]=g.useState(m.debitPaymentId),[Q,fe]=g.useState(m.singleRunPaymentId),[ne,ce]=g.useState(m.singleRunOutcome),[he,be]=g.useState(m.ruleResult),[Pe,Ce]=g.useState(m.volumeDistribution),[Re,Be]=g.useState(m.volumeEvaluationLog),[st,F]=g.useState(m.volumeProgress),[se,ie]=g.useState(m.simulationResults),[Se,te]=g.useState(!1),[me,ve]=g.useState(m.smartRetryEnabled),[Ee,Oe]=g.useState(null),[Tt,Bt]=g.useState(""),[Pt,sn]=g.useState(!1),[It,xr]=g.useState(new Set),er=O=>xr(V=>{const le=new Set(V);return le.has(O)?le.delete(O):le.add(O),le}),za=g.useRef(null),Gr=g.useRef(null),[pn,mt]=g.useState(null),[Mt,gt]=g.useState(!1),[Lr,zn]=g.useState(!1),[mn,ge]=g.useState(m.responseOpen),[ut,ft]=g.useState(m.debitResponseOpen),[Kt,gn]=g.useState(m.volumeResponseOpen),[zt,un]=g.useState(null),[as,xn]=g.useState(null),[ia,jr]=g.useState("summary"),[oa,ja]=g.useState(null),[El,ss]=g.useState(null),[la,Sa]=g.useState("summary"),[Yu,_a]=g.useState("Rule Evaluation Decision"),or=g.useDeferredValue(se),[Ns,Xu]=g.useState(!1),Po=g.useMemo(()=>Object.keys(u).sort(),[u]),Na=g.useMemo(()=>{var O;return zg(((O=u.payment_method)==null?void 0:O.values)||[])},[u]),Cf=g.useMemo(()=>{var V;const O=k.payment_method_type.toLowerCase();return zg(((V=u[O])==null?void 0:V.values)||[])},[k.payment_method_type,u]),Rt=g.useMemo(()=>{var O;return WS(((O=u.currency)==null?void 0:O.values)||[])},[u]),ca=g.useMemo(()=>{var O;return WS(((O=u.card_network)==null?void 0:O.values)||[])},[u]),Sr=g.useMemo(()=>{var O;return WS(((O=u.authentication_type)==null?void 0:O.values)||[])},[u]),_r=zt?OEe(zt):null,Jt=ct(_r,Dt,{revalidateOnFocus:!1}),qr=oa?TEe(oa):null,re=ct(qr,Dt,{revalidateOnFocus:!1}),{data:ke}=ct("/gsm/options",Dt,{revalidateOnFocus:!1,dedupingInterval:3e5}),_e=(ke==null?void 0:ke.rules)??[],{data:ze}=ct(a?["rule-elimination",a]:null,()=>Fe("/rule/get",{merchant_id:a,algorithm:"elimination"}).catch(()=>null),{revalidateOnFocus:!1,dedupingInterval:6e4}),Je=((Qy=(Zy=ze==null?void 0:ze.config)==null?void 0:Zy.data)==null?void 0:Qy.threshold)!=null;g.useEffect(()=>{p||d||(S(O=>{var Ve;const V={...O};let le=!1;Rt.length>0&&!Rt.includes(V.currency)&&(V.currency=Rt[0],le=!0),Na.length>0&&!Na.includes(V.payment_method_type)&&(V.payment_method_type=Na[0],le=!0);const xe=zg(((Ve=u[V.payment_method_type.toLowerCase()])==null?void 0:Ve.values)||[]);return xe.length>0&&!xe.includes(V.payment_method)&&(V.payment_method=xe[0],le=!0),Sr.length>0&&!Sr.includes(V.auth_type)&&(V.auth_type=Sr[0],le=!0),ca.length>0&&!ca.includes(V.card_brand)&&(V.card_brand=ca[0],le=!0),le?V:O}),G(O=>{let V=!1;const le=O.map(xe=>{if(!xe.key||!u[xe.key])return xe;const Ve=u[xe.key],dt=HS(Ve.type),Le=Ve.values||[],bt=dt==="enum_variant"?Le.includes(xe.value)?xe.value:Le[0]||"":xe.value;return xe.type!==dt||xe.value!==bt?(V=!0,{...xe,type:dt,value:bt}):xe});return V?le:O}))},[p,d,u,Rt,Na,Sr,ca]),g.useEffect(()=>{k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&S(O=>{if(O.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return O;const V={...O};let le=!1;V.currency!==US&&(V.currency=US,le=!0);const xe=Na.find(Ve=>Ve==="CARD")||"CARD";if(V.payment_method_type!==xe&&(V.payment_method_type=xe,le=!0),G$.includes(V.payment_method)||(V.payment_method="CREDIT",le=!0),!K$.includes(V.card_brand)){const Ve=ca.find(dt=>dt==="VISA")||ca.find(dt=>dt==="MASTERCARD")||ca[0]||"VISA";V.card_brand=Ve,le=!0}return q$.includes(V.card_program)||(V.card_program="STANDARD",le=!0),le?V:O})},[k.ranking_algorithm,Na,ca]),g.useEffect(()=>{if(!zt&&!oa&&!pn)return;const O=document.body.style.overflow,V=le=>{le.key==="Escape"&&(un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),mt(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",V),()=>{document.body.style.overflow=O,window.removeEventListener("keydown",V)}},[zt,oa,pn]);function Ze(){const O=Nh();Z(O.result),ae(O.debitResult),de(O.debitPaymentId),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),ie(O.simulationResults),ge(O.responseOpen),ft(O.debitResponseOpen),gn(O.volumeResponseOpen),un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),_a("Rule Evaluation Decision"),j(null),Oe(null),mt(null),gt(!1),L.current=!0,te(!1)}function St(){j(Date.now())}function Cn(O,V){v(O.activeTab),y(O.scopeKey||V),j(O.resultDataUpdatedAtMs),S(O.form),C(O.simulationConfig),A(O.gatewaySimConfigs),P(O.errorInfo),J(O.debitForm),G(O.ruleParams),q(O.fallbackConnectors),B(O.volumePayments),Z(O.result),ae(O.debitResult),de(O.debitPaymentId),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),ie(O.simulationResults),ge(O.responseOpen),ft(O.debitResponseOpen),gn(O.volumeResponseOpen),un(null),xn(null),jr("summary"),ja(null),ss(null),Sa("summary"),_a("Rule Evaluation Decision"),zn(!1),Oe(null),mt(null),gt(!1),L.current=!0,te(!1)}g.useEffect(()=>{b!==s&&Cn(J$(s),s)},[s,b]),g.useEffect(()=>{if(!w)return;const O=b||s,V=fH-(Date.now()-w);if(V<=0){Ze(),lA(O);return}const le=window.setTimeout(()=>{Ze(),lA(O)},V);return()=>window.clearTimeout(le)},[s,w,b]),g.useEffect(()=>{if(b!==s||Se||Mt)return;CEe(s,{scopeKey:s,resultDataUpdatedAtMs:w,activeTab:x,form:k,simulationConfig:_,gatewaySimConfigs:R,errorInfo:E,debitForm:X,ruleParams:W,fallbackConnectors:I,volumePayments:M,result:z,debitResult:pe,debitPaymentId:ue,singleRunPaymentId:Q,singleRunOutcome:ne,ruleResult:he,volumeDistribution:Pe,volumeEvaluationLog:Re,volumeProgress:st,simulationResults:se,responseOpen:mn,debitResponseOpen:ut,volumeResponseOpen:Kt,smartRetryEnabled:me})},[s,b,Se,Mt,w,x,k,_,R,E,X,W,I,M,z,pe,ue,Q,ne,he,Pe,Re,st,se,mn,ut,Kt,me]);function Qt(O,V){S(le=>({...le,[O]:V}))}function Rn(O,V){J(le=>({...le,[O]:V}))}function is(O){P(V=>({...V,...O}))}function Un(O){return T.current[O]??VS(O)}function Yi(O){return Un(O).successRate}function Ca(O){return Un(O).failureMode}function os(O,V){A(le=>({...le,[O]:{...Un(O),...le[O],successRate:V}}))}function Xi(O,V){A(le=>({...le,[O]:{...Un(O),...le[O],failureMode:V}}))}function Ju(O,V,le){const dt=le?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return _e.find(Le=>Le.connector===O&&(Le.subFlow==="Authorize"||Le.flow==="Authorize")&&Le.decision===V&&Le.unifiedMessage!=null&&dt.has(Le.unifiedMessage)&&!!Le.errorCode&&Le.errorCode.toLowerCase()!=="no error code")}function Vn(O,V,le){const xe=Ju(O,V,le);return xe?{error_code:xe.errorCode,error_message:xe.errorMessage,issuer_error_code:"",card_network:""}:{..._u}}function Ea(O,V){A(le=>{const xe=Un(O);return{...le,[O]:{...xe,...le[O],penalized:V,errorInfo:Vn(O,(le[O]??xe).gsmDecision,V)}}})}function Ji(O,V){A(le=>{const xe=Un(O),Ve=le[O]??xe,dt={...Ve.errorInfo,...V};let Le=Ve.gsmDecision,bt=Ve.penalized;if(V.error_code){const pt=_e.find(Ut=>Ut.connector===O&&Ut.errorCode===V.error_code&&(Ut.subFlow==="Authorize"||Ut.flow==="Authorize"))??_e.find(Ut=>Ut.connector===O&&Ut.errorCode===V.error_code);((pt==null?void 0:pt.decision)==="retry"||(pt==null?void 0:pt.decision)==="do_default")&&(Le=pt.decision);const Zt=nT(pt==null?void 0:pt.unifiedMessage);Zt!==null&&(bt=Zt)}return{...le,[O]:{...xe,...Ve,errorInfo:dt,gsmDecision:Le,penalized:bt}}})}function Gy(O,V){return _e.find(le=>le.connector===O&&le.errorCode===V&&le.subFlow==="Authorize")??_e.find(le=>le.connector===O&&le.errorCode===V&&le.flow==="Authorize")??_e.find(le=>le.connector===O&&le.errorCode===V)}function Zu(O){if(!O)return;const V=Un(O).errorInfo;if(!V.error_code)return;const le=Gy(O,V.error_code);return{connector:O,...(le==null?void 0:le.flow)&&{flow:le.flow},...(le==null?void 0:le.subFlow)&&{subFlow:le.subFlow},errorCode:V.error_code,...V.error_message&&{errorMessage:V.error_message},...V.issuer_error_code&&{issuerErrorCode:V.issuer_error_code},...V.card_network&&{cardNetwork:V.card_network}}}function En(O,V=E){if(!O||!V.error_code)return;const le=Gy(O,V.error_code);return{connector:O,...(le==null?void 0:le.flow)&&{flow:le.flow},...(le==null?void 0:le.subFlow)&&{subFlow:le.subFlow},errorCode:V.error_code,...V.error_message&&{errorMessage:V.error_message},...V.issuer_error_code&&{issuerErrorCode:V.issuer_error_code},...V.card_network&&{cardNetwork:V.card_network}}}function Ro(O,V){Oe(null),mt(REe(O,V))}function Zi(O,V,le="Request failed"){const xe=O instanceof Error?O.message:le;if(PEe(xe)){Ro(V,xe);return}Oe(xe)}function Sc(){const O=X.co_badged_networks.split(",").map(V=>V.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:X.merchant_category_code.trim(),acquirer_country:X.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:O,issuer_country:X.issuer_country.trim().toUpperCase(),is_regulated:X.is_regulated,regulated_name:X.is_regulated&&X.regulated_name.trim()?X.regulated_name.trim():null,card_type:gH(X.card_type)}})}function qy(){var Ve;if(Po.length===0)return;const O=Po[0],V=u[O],le=HS(V==null?void 0:V.type),xe=le==="enum_variant"&&((Ve=V==null?void 0:V.values)==null?void 0:Ve[0])||"";G([...W,{key:O,type:le,value:xe,metadataKey:""}])}function _c(O){G(W.filter((V,le)=>le!==O))}function Qu(O,V,le){G(W.map((xe,Ve)=>Ve===O?{...xe,[V]:le}:xe))}function Pm(O,V){G(W.map((le,xe)=>xe===O?{...le,metadataKey:V}:le))}function Rm(O,V){var dt;const le=u[V],xe=HS(le==null?void 0:le.type),Ve=xe==="enum_variant"&&((dt=le==null?void 0:le.values)==null?void 0:dt[0])||"";G(W.map((Le,bt)=>bt===O?{...Le,key:V,type:xe,value:Ve,metadataKey:""}:Le))}function Ky(){q([...I,{gateway_name:"",gateway_id:""}])}function Mm(O){q(I.filter((V,le)=>le!==O))}function Dm(O,V,le){q(I.map((xe,Ve)=>Ve===O?{...xe,[V]:le}:xe))}async function Im(){var le;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");gt(!0),Oe(null),mt(null),fe(null);const O=k.eligible_gateways.split(",").map(xe=>xe.trim()).filter(Boolean),V=`explorer_${Date.now()}`;try{const xe=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:V,amount:parseFloat(k.amount)||1e3,currency:k.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,cardSwitchProvider:k.card_brand,cardType:k.payment_method,...k.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:k.card_program}},eligibleGatewayList:O,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:D}),Ve=await Fe("/update-gateway-score",{merchantId:a,gateway:xe.decided_gateway,gatewayReferenceId:null,status:ne,paymentId:V,enforceDynamicRoutingFailure:null,...ne==="FAILURE"&&{errorInfo:En(xe.decided_gateway)}});if(me&&l&&ne==="FAILURE"&&((le=Ve.gsm_info)==null?void 0:le.decision)==="retry"&&xe.fallback_gateways.length>0){const dt=xe.fallback_gateways[0];await Fe("/update-gateway-score",{merchantId:a,gateway:dt,gatewayReferenceId:null,status:"CHARGED",paymentId:V,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),Z({...xe,decided_gateway:dt}),fe(V)}else Z(xe),fe(V);St()}catch(xe){Zi(xe,"single")}finally{gt(!1)}}async function x2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");gt(!0),Oe(null),mt(null);try{await c.setDebitRoutingEnabled(!0)}catch(O){Zi(O,"debit","Failed to enable debit routing")}finally{gt(!1)}}async function Yy(){if(!a)return Oe("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Ro("debit","Debit routing is disabled.");const O=X.eligible_gateways.split(",").map(le=>le.trim()).filter(Boolean);if(O.length===0)return Oe("Add at least one eligible gateway");gt(!0),Oe(null),mt(null),ae(null);const V=`debit_${Date.now()}`;try{const le=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:V,amount:parseFloat(X.amount)||1e3,currency:X.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:X.auth_type,metadata:Sc()},eligibleGatewayList:O,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});ae(le),de(V),St()}catch(le){Zi(le,"debit")}finally{gt(!1)}}async function y2(){var bt;if(!a)return Oe("Sign in with a merchant-linked account to continue");if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");const O=parseInt(_.totalPayments)||0;if(O<=0)return Oe("Total Payments must be greater than 0");te(!0),Oe(null),mt(null),ie([]),L.current=!1;const V=k.eligible_gateways.split(",").map(pt=>pt.trim()).filter(Boolean),le=[],xe=3;let Ve=0,dt=0;const Le=k.ranking_algorithm==="SR_MULTI_OBJECTIVE";try{for(let pt=0;pt0){Aa=Gn.fallback_gateways[0];const us=Yi(Aa),Er=Math.random()*100150||pt===O-1)&&(ie([...le]),St(),dt=dn)}catch(Gn){if(Ve++,Ve>=xe){Zi(Gn,"batch",`Simulation stopped after ${xe} consecutive backend errors. Check that the server is running.`);return}await new Promise(yr=>setTimeout(yr,1e3));continue}}}finally{ie([...le]),te(!1)}}async function Xs(){if(p)return Oe("Routing key config unavailable. Fix /config/routing-keys and retry.");gt(!0),Oe(null),mt(null),be(null),Ce([]),Be([]),F(0);const O=`rule_decision_${Date.now()}`;try{const V={};W.forEach(xe=>{xe.key&&(xe.type==="metadata_variant"?V[xe.key]={type:xe.type,value:{key:xe.metadataKey||xe.key,value:xe.value}}:xe.type==="number"?V[xe.key]={type:xe.type,value:parseFloat(xe.value)||0}:xe.value!==""&&(V[xe.key]={type:xe.type,value:xe.value}))});const le=await Fe("/routing/evaluate",{created_by:a||"test_user",payment_id:O,fallback_output:I.filter(xe=>xe.gateway_name),parameters:V});if(be(le),St(),le.output.type==="volume_split"&&le.output.splits){const xe=parseInt(M)||100,Ve=le.output.splits.map(dt=>({name:dt.connector.gateway_name,count:Math.round(dt.split/100*xe),percentage:dt.split}));Ce(Ve)}}catch(V){Zi(V,"rule")}finally{gt(!1)}}async function v2(){if(!a)return Oe("Sign in with a merchant-linked account to continue");gt(!0),Oe(null),mt(null),be(null),Ce([]),Be([]),F(0);const O=parseInt(M)||0;if(O<=0)return gt(!1),Oe("Total Payments must be greater than 0");try{const le=`volume_decision_${Date.now()}`,xe=[],Ve=new Map;let dt=null;const Le=bt=>Array.from(Ve.entries()).map(([pt,Zt])=>({name:pt,count:Zt,percentage:Number((Zt/Math.max(1,bt)*100).toFixed(1))})).sort((pt,Zt)=>Zt.count-pt.count);for(let bt=0;bt{const Vt=bt+tr,Wn=`${le}_${Vt}`,cr=await Fe("/routing/evaluate",{created_by:a,payment_id:Wn,fallback_output:I.filter(Hn=>Hn.gateway_name),parameters:{}});return{paymentId:Wn,response:cr}}));for(const{paymentId:Ut,response:tr}of Zt){if(tr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const Vt=EEe(tr);if(!Vt)throw new Error("Volume split evaluation did not return a connector.");dt||(dt=tr,be(tr)),Ve.set(Vt,(Ve.get(Vt)||0)+1),xe.push({paymentId:Ut,connector:Vt})}F(xe.length),Be([...xe]),Ce(Le(xe.length)),St()}}catch(V){Zi(V,"volume")}finally{gt(!1)}}const Ef=z!=null&&z.gateway_priority_map?Object.entries(z.gateway_priority_map).sort(([,O],[,V])=>V-O).map(([O,V])=>({name:O,score:Math.round(V*1e3)/10})):[],Mo=parseInt(_.totalPayments)||0,ls=se.length,Al=Mo>0?Math.round(ls/Mo*100):0,Js=Se||ls>0,ua=g.useMemo(()=>k.eligible_gateways.split(",").map(O=>O.trim().toLowerCase()).filter(Boolean),[k.eligible_gateways]),Af=g.useMemo(()=>Object.fromEntries(ua.map((O,V)=>[O,Vf[V%Vf.length]])),[ua]);g.useEffect(()=>{_e.length===0||ua.length===0||A(O=>{var xe,Ve;let V=!1;const le={...O};for(const dt of ua){if((Ve=(xe=O[dt])==null?void 0:xe.errorInfo)!=null&&Ve.error_code)continue;const Le=O[dt]??VS(dt),bt=Ju(dt,Le.gsmDecision,Le.penalized);bt&&(le[dt]={...Le,errorInfo:{error_code:bt.errorCode,error_message:bt.errorMessage,issuer_error_code:"",card_network:""}},V=!0)}return V?le:O})},[_e,ua]);const lr=g.useMemo(()=>or.reduce((O,V)=>(O[V.decidedGateway]||(O[V.decidedGateway]={total:0,success:0,failure:0}),O[V.decidedGateway].total++,V.status==="CHARGED"?O[V.decidedGateway].success++:O[V.decidedGateway].failure++,O),{}),[or]),$m=g.useMemo(()=>{var Vt;const O=or,V={series:{},paymentNums:[],yMin:0,yMax:100};if(O.length<2)return V;const xe=Math.max(1,Math.floor(O.length/200)),Ve=Object.keys(lr),dt={},Le={};Ve.forEach(Wn=>{Le[Wn]=[]});const bt=[];for(let Wn=0;Wn0&&(crZt&&(Zt=cr));pt>Zt&&(pt=0,Zt=100);const Ut=Math.max(0,pt-5),tr=Math.min(100,Zt+5);return{series:Le,paymentNums:bt,yMin:Ut,yMax:tr}},[or,lr]),Nr=g.useMemo(()=>or.filter(O=>{var V;return(V=O.routingApproach)==null?void 0:V.includes("HEDGING")}).length,[or]),Ol=g.useMemo(()=>{const O=or.filter(le=>le.retryGateway!==void 0).length,V=or.filter(le=>le.retryStatus==="CHARGED").length;return{triggered:O,recovered:V}},[or]),Zs=g.useMemo(()=>{let O=0,V="";for(const le of or)le.costWon&&le.costSavedBps!=null&&le.costSavedBps>0&&le.status==="CHARGED"&&(O+=le.costSavedBps/1e4*le.amount,V=le.currency);return{value:O,currency:V}},[or]),Lm=((td=pe==null?void 0:pe.debit_routing_output)==null?void 0:td.co_badged_card_networks_info)||[],Do=g.useMemo(()=>new Map(Pe.map((O,V)=>[O.name,V])),[Pe]),Xy=g.useMemo(()=>Object.entries(lr).sort((O,V)=>V[1].total-O[1].total),[lr]),b2=g.useMemo(()=>Object.values(lr).reduce((O,V)=>O+V.total,0),[lr]),Of=g.useMemo(()=>[...Pe].sort((O,V)=>V.count-O.count),[Pe]),cs=Of[0],Tf=Re.length,Qi=Number.parseInt(M,10)||0,Jy=Qi>0?Math.min(100,Math.round(st/Qi*100)):0,Ua=g.useMemo(()=>{var V;const O=((V=Jt.data)==null?void 0:V.results)||[];return O.find(le=>le.payment_id===zt)||O[0]||null},[(ev=Jt.data)==null?void 0:ev.results,zt]),yn=g.useMemo(()=>{var V;const O=((V=Jt.data)==null?void 0:V.timeline)||[];return O.find(le=>le.id===as)||O[0]||null},[(tv=Jt.data)==null?void 0:tv.timeline,as]);g.useEffect(()=>{var V,le;if(yn!=null&&yn.id){xn(yn.id);return}const O=(le=(V=Jt.data)==null?void 0:V.timeline)==null?void 0:le[0];O!=null&&O.id&&xn(O.id)},[(nv=Jt.data)==null?void 0:nv.timeline,yn==null?void 0:yn.id]);const Fm=g.useMemo(()=>{var V;const O=[];for(const le of((V=Jt.data)==null?void 0:V.timeline)||[]){const xe=cA(le),Ve=O[O.length-1];!Ve||Ve.phase!==xe?O.push({phase:xe,events:[le]}):Ve.events.push(le)}return O},[(rv=Jt.data)==null?void 0:rv.timeline]),bi=g.useMemo(()=>tL(yn),[yn]),Cr=g.useMemo(()=>{var V;const O=((V=re.data)==null?void 0:V.results)||[];return O.find(le=>le.payment_id===oa)||O[0]||null},[(Wm=re.data)==null?void 0:Wm.results,oa]),jn=g.useMemo(()=>{var V;const O=((V=re.data)==null?void 0:V.timeline)||[];return O.find(le=>le.id===El)||O[0]||null},[(Hm=re.data)==null?void 0:Hm.timeline,El]);g.useEffect(()=>{var V,le;if(jn!=null&&jn.id){ss(jn.id);return}const O=(le=(V=re.data)==null?void 0:V.timeline)==null?void 0:le[0];O!=null&&O.id&&ss(O.id)},[(av=re.data)==null?void 0:av.timeline,jn==null?void 0:jn.id]);const Bm=g.useMemo(()=>{var V;const O=[];for(const le of((V=re.data)==null?void 0:V.timeline)||[]){const xe=cA(le),Ve=O[O.length-1];!Ve||Ve.phase!==xe?O.push({phase:xe,events:[le]}):Ve.events.push(le)}return O},[(sv=re.data)==null?void 0:sv.timeline]),Tl=g.useMemo(()=>tL(jn),[jn]);g.useEffect(()=>{const O=Gr.current;O&&(O.scrollTop=O.scrollHeight)},[or.length]);function zm(O){ja(null),ss(null),Sa("summary"),un(O),xn(null),jr("summary")}function Um(){un(null),xn(null),jr("summary")}function ed(O,V){un(null),xn(null),jr("summary"),_a(V),ja(O),ss(null),Sa("summary")}function Vm(){ja(null),ss(null),Sa("summary")}function Nc(){const O=Nh();function V(le){var dt;const xe={...le};Rt.length>0&&!Rt.includes(xe.currency)&&(xe.currency=Rt[0]),Na.length>0&&!Na.includes(xe.payment_method_type)&&(xe.payment_method_type=Na[0]);const Ve=zg(((dt=u[xe.payment_method_type.toLowerCase()])==null?void 0:dt.values)||[]);return Ve.length>0&&!Ve.includes(xe.payment_method)&&(xe.payment_method=Ve[0]),Sr.length>0&&!Sr.includes(xe.auth_type)&&(xe.auth_type=Sr[0]),ca.length>0&&!ca.includes(xe.card_brand)&&(xe.card_brand=ca[0]),xe}x==="single"?(S(V(O.form)),Z(O.result),fe(O.singleRunPaymentId),ce(O.singleRunOutcome),ge(O.responseOpen)):x==="batch"?(S(V(O.form)),C(O.simulationConfig),A({}),ie(O.simulationResults),te(!1)):x==="rule"?Y(le=>le+1):x==="volume"?(B(O.volumePayments),be(O.ruleResult),Ce(O.volumeDistribution),Be(O.volumeEvaluationLog),F(O.volumeProgress),gn(O.volumeResponseOpen),ja(null),ss(null),Sa("summary"),_a("Volume Split Decision")):x==="debit"&&(J(O.debitForm),ae(O.debitResult),de(O.debitPaymentId),ft(O.debitResponseOpen),un(null),xn(null),jr("summary")),Oe(null),mt(null),gt(!1),zn(!1),un(null),xn(null),jr("summary")}const w2=x==="batch"?"Reset Auth-Rate Based Routing":x==="rule"?"Reset Rule Based Routing":x==="volume"?"Reset Volume Based Routing":"Reset Debit Routing";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx(vn,{children:"Simulation console"}),i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[i.jsx(Ba,{title:"Decision Explorer"}),i.jsx(Me,{variant:"blue",children:a||"No merchant"})]})]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:Nc,children:[i.jsx(Es,{size:14}),w2]})]}),i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50/80 p-1 dark:border-[#242b36] dark:bg-[#0c1118]",children:i.jsxs("div",{className:"grid gap-1 sm:grid-cols-2 xl:grid-cols-4",children:[i.jsxs("button",{onClick:()=>{L.current=!0,v("batch")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="batch")}`,children:[i.jsx("span",{className:"block",children:"Auth-rate"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Score simulation"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("rule")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="rule")}`,children:[i.jsx("span",{className:"block",children:"Rule based"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Policy evaluator"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("volume")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="volume")}`,children:[i.jsx("span",{className:"block",children:"Volume split"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Distribution run"})]}),i.jsxs("button",{onClick:()=>{L.current=!0,v("debit")},className:`rounded-xl border px-4 py-3 text-left text-sm font-semibold transition ${Xv(x==="debit")}`,children:[i.jsx("span",{className:"block",children:"Debit routing"}),i.jsx("span",{className:"mt-1 block text-[11px] font-medium text-slate-500 dark:text-[#738097] leading-4",children:"Network decision"})]})]})}),x==="rule"&&i.jsx(ZW,{merchantId:a,routingKeysConfig:u,routingConfigUnavailable:p,routingKeysLoading:d,resetSignal:U,onRunComplete:St,onOpenTrace:ed}),i.jsxs("div",{className:x==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:x==="rule"?{display:"none"}:void 0,children:[i.jsxs(Te,{className:"!rounded-2xl self-start",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:x==="rule"?"Rule Evaluation":x==="volume"?"Volume Split":x==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:x==="rule"?"Rule Evaluation Parameters":x==="volume"?"Volume Split Configuration":x==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),x!=="volume"&&x!=="debit"&&d&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),x!=="volume"&&x!=="debit"&&p&&i.jsx(vt,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),x==="rule"?i.jsxs(i.Fragment,{children:[d&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),p&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:W.map((O,V)=>{var le;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:O.key,onChange:xe=>Rm(V,xe.target.value),disabled:p||d,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:Po.length===0?i.jsx("option",{value:"",children:"No keys available"}):Po.map(xe=>i.jsx("option",{value:xe,children:xe},xe))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),O.type==="enum_variant"?i.jsx("select",{value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((le=u[O.key])==null?void 0:le.values)||[]).map(xe=>i.jsx("option",{value:xe,children:xe},xe))}):O.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):O.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>_c(V),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),O.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:O.metadataKey||"",onChange:xe=>Pm(V,xe.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:O.value,onChange:xe=>Qu(V,"value",xe.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},V)})}),i.jsxs("button",{onClick:qy,disabled:p||d||Po.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:I.map((O,V)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:V+1}),i.jsx("input",{placeholder:"gateway name",value:O.gateway_name,onChange:le=>Dm(V,"gateway_name",le.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:O.gateway_id||"",onChange:le=>Dm(V,"gateway_id",le.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>Mm(V),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},V))}),i.jsxs("button",{onClick:Ky,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):x==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(at,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx($a,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx($a,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:x2,disabled:!a||Mt,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:X.amount,onChange:O=>Rn("amount",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:X.currency,onChange:O=>Rn("currency",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:X.auth_type,onChange:O=>Rn("auth_type",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:X.card_type,onChange:O=>Rn("card_type",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:X.eligible_gateways,onChange:O=>Rn("eligible_gateways",O.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:X.merchant_category_code,onChange:O=>Rn("merchant_category_code",O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:X.acquirer_country,onChange:O=>Rn("acquirer_country",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:X.co_badged_networks,onChange:O=>Rn("co_badged_networks",O.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:X.issuer_country,onChange:O=>Rn("issuer_country",O.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:X.is_regulated,onChange:O=>Rn("is_regulated",O.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),X.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:X.regulated_name,onChange:O=>Rn("regulated_name",O.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):x==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:M,onChange:O=>B(O.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(we,{onClick:v2,disabled:Mt||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(rf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Qi||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Mt?st:Tf||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${Mt?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${Mt?Jy:Tf&&Qi?Math.min(100,Math.round(Tf/Qi*100)):0}%`}})}),Mt&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[Jy,"%"]})]})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"space-y-2",children:[(()=>{const O=k.ranking_algorithm==="SR_MULTI_OBJECTIVE",V=O?Na.includes("CARD")?["CARD"]:["CARD",...Na]:Na,le=O?[...G$]:Cf,xe=O?[US]:Rt,Ve=O?[...K$]:ca,dt=[{label:"Amount",content:i.jsx("input",{value:k.amount,onChange:Le=>Qt("amount",Le.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500"})},{label:"Currency",content:i.jsx("select",{value:k.currency,onChange:Le=>Qt("currency",Le.target.value),disabled:p||d||O,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:xe.map(Le=>i.jsx("option",{value:Le,children:Le},Le))})},{label:"Method Type",content:i.jsx("select",{value:k.payment_method_type,onChange:Le=>Qt("payment_method_type",Le.target.value),disabled:p||d||O,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:V.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Payment Method",content:i.jsx("select",{value:k.payment_method,onChange:Le=>Qt("payment_method",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:le.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Card Brand",content:i.jsx("select",{value:k.card_brand,onChange:Le=>Qt("card_brand",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Ve.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})},{label:"Auth Type",content:i.jsx("select",{value:k.auth_type,onChange:Le=>Qt("auth_type",Le.target.value),disabled:p||d,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 disabled:opacity-50",children:Sr.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})}];return O&&dt.push({label:"Card Type",content:i.jsx("select",{value:k.card_program,onChange:Le=>Qt("card_program",Le.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:q$.map(Le=>i.jsx("option",{value:Le,children:gg(Le)},Le))})}),i.jsx("div",{className:"grid grid-cols-3 gap-x-3 gap-y-2.5",children:dt.map(({label:Le,content:bt})=>i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:Le}),bt]},Le))})})(),i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1 leading-4",children:"Algorithm"}),i.jsx("select",{value:k.ranking_algorithm,onChange:O=>Qt("ranking_algorithm",O.target.value),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-1.5 text-sm font-medium text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 cursor-pointer",children:cH.map(O=>i.jsx("option",{value:O,children:gEe[O]},O))})]})]}),x==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:ne,onChange:O=>ce(O.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),ne==="FAILURE"&&i.jsx(oA,{info:E,onChange:is,rules:_e})]}),x==="batch"&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] pt-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Uh,{size:13,className:"text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400",children:"Simulation"})]}),i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("label",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:"Payments"}),i.jsx("input",{type:"number",min:1,max:5e3,value:_.totalPayments,onChange:O=>C({totalPayments:O.target.value}),onBlur:O=>{const V=Math.max(1,Math.min(5e3,parseInt(O.target.value)||1));C({totalPayments:String(V)})},className:"w-24 bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-3 py-2 text-sm font-semibold text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"})]})]}),i.jsxs("div",{className:"space-y-2",children:[ua.map(O=>{var bt,pt,Zt,Ut,tr;const V=((bt=R[O])==null?void 0:bt.successRate)??VS(O).successRate,le=((pt=R[O])==null?void 0:pt.failureMode)??"decline";(Zt=R[O])==null||Zt.gsmDecision;const xe=((Ut=R[O])==null?void 0:Ut.penalized)??!0,Ve=It.has(O),dt=V>=80?"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300":V>=50?"bg-amber-50 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300":"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300",Le=V>=80?"#10b981":V>=50?"#f59e0b":"#ef4444";return i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0a0a10] overflow-hidden",children:[i.jsxs("div",{role:"button",tabIndex:0,onClick:()=>er(O),onKeyDown:Vt=>{(Vt.key==="Enter"||Vt.key===" ")&&(Vt.preventDefault(),er(O))},className:"flex items-center gap-2.5 px-3 pt-3 pb-5 cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f18] transition-colors select-none",children:[i.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-lg text-xs font-bold uppercase shrink-0",style:{backgroundColor:`${Af[O]??Vf[0]}22`,color:Af[O]??Vf[0]},children:O.charAt(0)}),i.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100 capitalize shrink-0 w-16 truncate",children:O}),i.jsxs("div",{className:"relative flex-1 min-w-0 mr-2",children:[i.jsx("input",{type:"range",min:0,max:100,value:V,onChange:Vt=>os(O,parseInt(Vt.target.value)),onClick:Vt=>Vt.stopPropagation(),onMouseDown:Vt=>Vt.stopPropagation(),style:{accentColor:Le},className:"w-full h-2 cursor-pointer"}),i.jsxs("div",{className:"absolute top-full left-0 right-2 flex justify-between pointer-events-none",children:[i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"0"}),i.jsx("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 tabular-nums leading-4",children:"100%"})]})]}),i.jsx(Zb,{text:"Simulated success rate for this gateway",children:i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-bold tabular-nums shrink-0 ${dt}`,children:[V,"%"]})}),Sh.GSM_RETRY_IN_SIMULATION,i.jsx("button",{type:"button",disabled:Se,onClick:Vt=>{Vt.stopPropagation();const Wn=ua.filter(cr=>cr!==O);Qt("eligible_gateways",Wn.join(", ")),xr(cr=>{const Hn=new Set(cr);return Hn.delete(O),Hn})},className:"text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400 disabled:opacity-30 disabled:cursor-not-allowed transition-colors shrink-0",children:i.jsx(Vr,{size:13})}),i.jsx(ln,{size:13,className:`text-slate-500 dark:text-slate-400 transition-transform duration-200 shrink-0 ${Ve?"rotate-180":""}`})]}),i.jsx("div",{className:`grid transition-all duration-200 ease-in-out ${Ve?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:i.jsx("div",{className:"overflow-hidden min-h-0",children:i.jsxs("div",{className:"px-4 pb-4 pt-3 space-y-3 border-t border-slate-100 dark:border-[#1c1c24]",children:[i.jsxs("div",{className:`grid grid-cols-2 rounded-lg overflow-hidden border text-xs font-semibold ${Se?"opacity-50 pointer-events-none border-slate-100 dark:border-[#1c1c24]":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsx("button",{type:"button",disabled:Se,onClick:()=>Xi(O,"decline"),className:`py-2 transition-colors ${le==="decline"?"bg-red-50 text-red-600 dark:bg-red-950/40 dark:text-red-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Decline"}),i.jsx("button",{type:"button",disabled:Se,onClick:()=>Xi(O,"timeout"),className:`py-2 border-l border-slate-200 dark:border-[#222226] transition-colors ${le==="timeout"?"bg-amber-50 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400":"text-slate-500 hover:text-slate-600 dark:hover:text-slate-300"}`,children:"Timeout"})]}),le==="timeout"&&i.jsx("p",{className:`text-xs px-3 py-2 rounded-lg ${Je?"bg-amber-50 text-amber-700 dark:bg-amber-950/30 dark:text-amber-400":"bg-red-50 text-red-600 dark:bg-red-950/30 dark:text-red-400"} max-w-[68ch]`,children:Je?`Removed from routing below ${ze.config.data.threshold} threshold.`:"Elimination not configured. Set it up in SR Routing settings."}),le==="decline"&&i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid gap-2 grid-cols-1",children:[Sh.GSM_RETRY_IN_SIMULATION,i.jsxs("div",{children:[i.jsx("label",{className:"block text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400 mb-1.5 leading-4",children:"Score Impact"}),i.jsxs("select",{value:xe?"penalized":"skipped",onChange:Vt=>Ea(O,Vt.target.value==="penalized"),className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-slate-200 dark:border-[#222226] rounded-lg px-2.5 py-1.5 text-xs text-slate-800 dark:text-slate-100 focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"penalized",children:"Penalized"}),i.jsx("option",{value:"skipped",children:"Penalty skipped"})]})]})]}),i.jsx(oA,{info:((tr=R[O])==null?void 0:tr.errorInfo)??_u,onChange:Vt=>Ji(O,Vt),rules:_e,connector:O,showClassification:!1})]})]})})})]},O)}),Pt?i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"relative",children:[i.jsx("input",{ref:za,type:"text",value:Tt,onChange:O=>Bt(O.target.value),onKeyDown:O=>{if(O.key==="Enter"){const V=Tt.trim().toLowerCase();V&&!ua.includes(V)&&(Qt("eligible_gateways",[...ua,V].join(", ")),xr(le=>new Set(le).add(V))),Bt(""),sn(!1)}O.key==="Escape"&&(Bt(""),sn(!1))},onBlur:()=>{Bt(""),sn(!1)},placeholder:"e.g. stripe",autoFocus:!0,className:"w-full bg-slate-50 dark:bg-[#0d0d13] border border-brand-300 dark:border-brand-700 rounded-lg px-3 py-2 pr-16 text-sm text-slate-800 dark:text-slate-100 placeholder-slate-500 focus:outline-none focus:border-brand-500"}),i.jsx("kbd",{className:"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-xs text-slate-500 dark:text-slate-500 bg-slate-100 dark:bg-[#1c1c24] border border-slate-200 dark:border-[#2a2a35] px-1.5 py-0.5 rounded font-mono",children:"Enter ↵"})]}),i.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"Press Enter to add · Esc to cancel"})]}):i.jsxs("button",{type:"button",disabled:Se,onClick:()=>{sn(!0),setTimeout(()=>{var O;return(O=za.current)==null?void 0:O.focus()},0)},className:"w-full rounded-xl border border-dashed border-slate-200 dark:border-[#2a2a3a] flex items-center justify-center gap-2 h-11 text-slate-500 hover:text-brand-600 hover:border-brand-400 dark:hover:text-brand-400 dark:hover:border-brand-600 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",children:[i.jsx(Qn,{size:14}),i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider",children:"Add connector"})]})]})]})]})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:Ee}),x==="rule"?i.jsx(we,{onClick:Xs,disabled:Mt||p,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})}):x==="debit"?i.jsx(we,{onClick:Yy,disabled:Mt||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(_o,{size:14})," Run Debit Routing"]})}):x==="volume"?null:x==="batch"?i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Se?()=>{L.current=!0}:y2,disabled:!a||p,variant:Se?"secondary":"primary",className:"w-full justify-center",children:Se?i.jsxs(i.Fragment,{children:[i.jsx(Vr,{size:14}),"Stop (",se.length,"/",_.totalPayments||0,")"]}):i.jsxs(i.Fragment,{children:[i.jsx(Uh,{size:14})," Run Auth-Rate Simulation"]})})]}):i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Im,disabled:Mt||!a||p,className:"w-full justify-center",children:Mt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Run Single Transaction"]})})]})]})]}),i.jsx("div",{className:"min-w-0 flex flex-col gap-4",children:x==="debit"?pe?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),ue?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>zm(ue),children:"View audit"}):null]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:pe.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:ue})]})]}),pe.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:pe.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(He,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:Lm.map((O,V)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",V+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:O.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[O.saving_percentage.toFixed(2),"%"]})]},`${O.network}-${V}`))})]})})]})]}):i.jsx(vt,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>ft(!ut),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[ut?i.jsx(hs,{size:14}):i.jsx(ln,{size:14}),"Raw response"]}),ut&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(pe,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(He,{className:"py-12 text-center",children:[i.jsx(_o,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):x==="volume"?Pe.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Tf})," evaluations"]}),cs&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:cs.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[cs.percentage,"%"]})]})]})]})]}),he!=null&&he.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>ed(he.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[Of.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:Of.map(O=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${O.percentage}%`,backgroundColor:Uf[(Do.get(O.name)??0)%Uf.length]},title:`${O.name}: ${O.percentage}%`},O.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:Of.map(O=>{const V=Uf[(Do.get(O.name)??0)%Uf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:V}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:O.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[O.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[O.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${O.percentage}%`,backgroundColor:V}})})]},O.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:Re.slice(-200).map((O,V)=>{const le=Math.max(0,Re.length-200)+V;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>ed(O.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:le+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:O.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Uf[(Do.get(O.connector)??0)%Uf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:O.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:xe=>{xe.stopPropagation(),ed(O.paymentId,"Volume Split Decision")},children:"Open"})})]},O.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>gn(O=>!O),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API response"]}),Kt?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]}),Kt&&he&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(he,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(rf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):x==="rule"?he?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:he.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",he.output.type]})]}),he.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>ed(he.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),he.output.type==="single"&&he.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:he.output.connector.gateway_name}),he.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",he.output.connector.gateway_id]})]}),he.output.type==="priority"&&he.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:he.output.connectors.map((O,V)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:V+1}),i.jsx("span",{className:"font-medium",children:O.gateway_name}),O.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",O.gateway_id,")"]})]},V))})]}),he.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ge(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),mn?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),mn&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(he,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):x==="batch"?Js?i.jsxs(i.Fragment,{children:[i.jsxs(Te,{className:"shrink-0",children:[i.jsx(yt,{className:"!py-3",children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Gateway Selection Summary"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[Mo>0&&(()=>{const V=2*Math.PI*6,le=V*(1-Al/100);return i.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",className:"-rotate-90",children:[i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",className:"stroke-slate-200 dark:stroke-slate-700"}),i.jsx("circle",{cx:"8",cy:"8",r:6,fill:"none",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:V,strokeDashoffset:le,className:"stroke-brand-500 transition-[stroke-dashoffset] duration-300"})]})})(),i.jsxs("span",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[ls," / ",Mo||0]}),ls>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),Nr>0?i.jsxs("span",{className:"text-[11px] font-medium text-brand-600 dark:text-sky-400 leading-4",children:[Math.round(Nr/ls*100),"% hedged"]}):i.jsx(Zb,{text:"Enable ENABLE_EXPLORE_AND_EXPLOIT_ON_SRV3_{PMT} or ENABLE_MERCHANT_ON_VOLUME_DISTRIBUTION_FEATURE_SR_V3 in Redis",children:i.jsx("span",{className:"text-[11px] text-amber-700 dark:text-amber-400 cursor-help leading-4",children:"0 hedged"})}),me&&Ol.triggered>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsx(Zb,{text:`${Ol.triggered} retries triggered · ${Ol.recovered} recovered`,children:i.jsxs("span",{className:"text-[11px] font-medium text-orange-700 dark:text-orange-400 cursor-help leading-4",children:[Ol.triggered," retried · ",Ol.recovered," recovered"]})})]}),Zs.value>0&&Zs.currency&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-[11px] font-medium text-emerald-700 dark:text-emerald-400 leading-4",children:["saved ",uH(Zs.value,Zs.currency)]})]})]})]})]})}),i.jsxs(He,{className:"!pt-3",children:[Xy.length>0&&(()=>{const O=b2,V=Xy,le=V.some(([xe])=>{var Ve;return(((Ve=$m.series[xe])==null?void 0:Ve.length)??0)>=2});return i.jsxs("div",{className:"flex flex-wrap gap-3 items-start",children:[i.jsx("div",{className:"flex-1 space-y-2 min-w-[320px]",children:V.map(([xe,Ve])=>{const dt=O>0?Math.round(Ve.total/O*100):0,Le=Ve.total>0?Math.round(Ve.success/Ve.total*100):0,bt=Af[xe]??Vf[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:bt}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 w-20 truncate shrink-0",children:xe}),i.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-slate-100 dark:bg-[#1c1c24] overflow-hidden min-w-0",children:i.jsx("div",{className:"h-full rounded-full transition-[width] duration-300",style:{width:`${dt}%`,backgroundColor:bt}})}),i.jsxs("div",{className:"flex items-center gap-2.5 text-[11px] shrink-0 leading-4",children:[i.jsxs("span",{className:`font-bold tabular-nums ${Le>=80?"text-emerald-700 dark:text-emerald-400":Le>=50?"text-amber-700":"text-red-600"}`,children:[Le,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums",children:[dt,"% routed"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"tabular-nums text-slate-500 dark:text-slate-400",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:Ve.success}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 mx-0.5",children:"/"}),i.jsx("span",{className:"text-red-600",children:Ve.failure})]})]})]})},xe)})}),le&&(()=>{const{series:xe,paymentNums:Ve}=$m,dt=Ve.length,Le=7,bt=Math.max(64,V.length*28),pt=14,Zt=28,Ut=Math.max(200,dt*Le),tr=bt+pt,Vt=6,Wn=wt=>wt/Math.max(dt-1,1)*Ut,{yMin:cr,yMax:Hn}=$m,Gn=Hn-cr||1,yr=wt=>Vt+(Hn-wt)/Gn*(bt-Vt*2),Cc=Gn<=10?2:Gn<=30?5:10,Pf=Math.ceil(cr/Cc)*Cc,Ec=[];for(let wt=Pf;wt<=Hn;wt+=Cc)Ec.push(wt);const Ac=wt=>{if(wt.length<2)return"";const dn=wt.map((Er,Qs)=>[Wn(Qs),yr(Er)]);let us=`M ${dn[0][0]},${dn[0][1]}`;for(let Er=1;Er({n:wt,i:dn})).filter(({i:wt})=>wt%wi===0||wt===dt-1),Pl=Aa.filter((wt,dn)=>dn===Aa.length-2?Aa[Aa.length-1].i-Aa[dn].i>=Math.ceil(wi*.5):!0);return i.jsxs("div",{className:"relative self-start flex-1",style:{minWidth:200+Zt},children:[i.jsx("div",{className:"overflow-x-auto",style:{width:`calc(100% - ${Zt}px)`,scrollbarWidth:"none"},ref:wt=>{wt&&(wt.scrollLeft=wt.scrollWidth)},children:i.jsxs("svg",{width:Ut,height:tr,viewBox:`0 0 ${Ut} ${tr}`,style:{display:"block"},children:[Ec.map(wt=>i.jsx("line",{x1:0,y1:yr(wt),x2:Ut,y2:yr(wt),stroke:"#e2e8f0",strokeWidth:"0.5",strokeDasharray:"2,2"},wt)),V.map(([wt])=>{const dn=xe[wt];if(!dn||dn.length<2)return null;const us=Af[wt]??Vf[0],Er=Ac(dn),Qs=`${Er} L ${Wn(dn.length-1)},${bt} L 0,${bt} Z`;return i.jsxs("g",{children:[i.jsx("path",{d:Qs,fill:us,fillOpacity:.07}),i.jsx("path",{d:Er,fill:"none",stroke:us,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]},wt)}),i.jsx("line",{x1:0,y1:bt,x2:Ut,y2:bt,stroke:"#e2e8f0",strokeWidth:"0.5"}),Pl.map(({n:wt,i:dn},us)=>i.jsx("text",{x:Wn(dn),y:bt+10,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",textAnchor:us===0?"start":us===Pl.length-1?"end":"middle",children:wt},dn))]})}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:Zt},children:i.jsxs("svg",{width:Zt,height:bt,viewBox:`0 0 ${Zt} ${bt}`,style:{display:"block"},children:[i.jsx("line",{x1:2,y1:Vt,x2:2,y2:bt-Vt,stroke:"#cbd5e1",strokeWidth:"0.5"}),Ec.map(wt=>i.jsxs("g",{children:[i.jsx("line",{x1:0,y1:yr(wt),x2:4,y2:yr(wt),stroke:"#cbd5e1",strokeWidth:"0.5"}),i.jsxs("text",{x:6,y:yr(wt)+3,fontSize:"7",fill:"#94a3b8",fontFamily:"monospace",children:[wt,"%"]})]},wt))]})})]})})(),!le&&null]})})(),Object.keys(lr).length===1&&ua.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})]}),i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),or.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[or.length," transactions"]})]}),i.jsx(He,{className:"p-0",children:or.length>0?i.jsx("div",{ref:Gr,className:"max-h-[480px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-10",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Payment ID"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),me&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),me&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"}),i.jsx("th",{className:"w-8"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:or.map((O,V)=>{var xe;const le=V;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>zm(O.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:le+1}),i.jsx("td",{className:"px-3 py-2 max-w-[180px]",children:i.jsx("span",{className:"block truncate font-mono text-xs text-slate-700 dark:text-slate-300 group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:O.paymentId})}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:O.decidedGateway}),i.jsx("td",{className:"px-3 py-2",children:(xe=O.routingApproach)!=null&&xe.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Hedging"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:O.routingApproach==="SR_SELECTION_V3_ROUTING"?"SR V3":O.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?"Multi-Obj":O.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(Me,{variant:O.status==="CHARGED"?"green":O.status==="PENDING_VBV"?"orange":"red",children:O.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:O.costWon&&O.costSavedBps!=null&&O.costSavedBps>0&&O.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:yEe(O.costSavedBps,O.amount,O.currency)}):null}),me&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:O.retryGateway??"—"}),me&&i.jsx("td",{className:"px-3 py-2",children:O.retryStatus?i.jsx(Me,{variant:O.retryStatus==="CHARGED"?"green":O.retryStatus==="PENDING_VBV"?"orange":"red",children:O.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})}),i.jsx("td",{className:"pr-3 py-2",children:i.jsx("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity text-slate-500 dark:text-slate-400",children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",className:"w-3.5 h-3.5",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})})})]},O.paymentId)})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Waiting for the first simulated payment result…"]})})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("button",{type:"button",onClick:()=>Xu(O=>!O),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Ns?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Ns&&i.jsx(QW,{merchantId:a,gsmRules:_e,decideParams:{amount:k.amount,currency:k.currency,paymentMethodType:k.payment_method_type,paymentMethod:k.payment_method,authType:k.auth_type,cardBrand:k.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:k.eligible_gateways}})]}):z?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:z.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${vEe(z.routing_approach)}`,children:z.routing_approach})}),Q?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>zm(Q),children:"View audit"}):null,z.is_scheduled_outage&&i.jsx(Me,{variant:"red",children:"Scheduled Outage"}),Q?i.jsx(Me,{variant:ne==="CHARGED"?"green":"red",children:ne}):null,z.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[z.latency,"ms"]})]})]}),Q?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:Q}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",ne,". Open audit to inspect the full decide and update flow."]})]}):null,z.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:z.routing_dimension})]}),z.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:z.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:z.reset_approach})]})]})]})}),z.multi_objective_info&&i.jsx(DEe,{info:z.multi_objective_info}),Ef.length>0&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Im,className:"text-xs",children:[i.jsx(Es,{size:12})," Refresh"]})]})}),i.jsx(He,{children:i.jsx(tl,{width:"100%",height:Ef.length*40+20,children:i.jsxs(vx,{data:Ef,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(ys,{type:"number",domain:[0,100],tickFormatter:O=>`${O}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(Qa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(xa,{formatter:O=>`${O}%`,contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"score",radius:[0,4,4,0],children:Ef.map((O,V)=>i.jsx(vy,{fill:O.name===z.decided_gateway?"#0069ED":O.score<30?"#ef4444":O.score<60?"#f59e0b":"#10b981"},V))})]})})})]}),z.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>zn(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",Lr?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),Lr&&i.jsx(He,{className:"space-y-2",children:Object.entries(z.filter_wise_gateways).map(([O,V])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:O}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray(V)?V.map(le=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:le},le)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},O))})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ge(O=>!O),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),mn?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),mn&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(z,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})})]}),pn&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>mt(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(BW,{size:22})}),i.jsxs("div",{children:[i.jsx(vn,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:pn.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>mt(null),children:i.jsx(Vr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:pn.body}),pn.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:pn.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(we,{variant:"secondary",onClick:()=>mt(null),children:"Dismiss"}),pn.configurePath&&i.jsx(we,{onClick:()=>{mt(null),t(pn.configurePath)},children:"Configure"})]})]})]})]}),zt&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Um}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:zt}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Ua!=null&&Ua.latest_gateway?i.jsx(Me,{variant:"green",children:Ua.latest_gateway}):null,Ua!=null&&Ua.latest_status?i.jsx(Me,{variant:Q$(Ua.latest_status),children:Ni(Ua.latest_status)}):null,Ua!=null&&Ua.event_count?i.jsxs(Me,{variant:"gray",children:[Ua.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>Jt.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Um,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Jt.isLoading&&!Jt.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading payment audit…"]}):Jt.error?i.jsx(vt,{error:Jt.error.message}):Fm.length?i.jsx("div",{className:"space-y-4",children:Fm.map(O=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:eL(O.phase),children:O.phase})}),i.jsx("div",{className:"space-y-2",children:O.events.map(V=>i.jsxs("button",{type:"button",onClick:()=>{xn(V.id),jr("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(yn==null?void 0:yn.id)===V.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Wg(V)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Ug(V.created_at_ms)})]}),i.jsx(Me,{variant:Yv(V),children:Ni(V.status)||Z$(V.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:Vg(V.route)}),V.gateway?i.jsx(Me,{variant:"green",children:V.gateway}):null,V.request_id?i.jsx(Me,{variant:"blue",children:"Request"}):null]})]},V.id))})]},O.phase))}):i.jsx(Hg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:yn?Wg(yn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:yn?`${Vg(yn.route)} · ${Ug(yn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[yn!=null&&yn.gateway?i.jsx(Me,{variant:"green",children:yn.gateway}):null,yn!=null&&yn.status?i.jsx(Me,{variant:Yv(yn),children:Ni(yn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(O=>i.jsx("button",{type:"button",onClick:()=>jr(O),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${nL(ia===O)}`,children:O==="raw"?"Raw JSON":Ni(O)},O))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Jt.isLoading&&!Jt.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading inspector…"]}):bi?i.jsxs("div",{className:"space-y-5",children:[ia==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(rL,{rows:bi.summaryRows}),bi.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:yH(bi.selectionReason)})]}):null,i.jsx(Ml,{title:"Score Context",value:bi.scoreContext,emptyMessage:"No scoring context was captured for this event."}),bi.signalRecord?i.jsx(Ml,{title:"Additional Signals",value:bi.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,ia==="input"?i.jsx(Ml,{title:"Request Payload",value:bi.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,ia==="response"?i.jsx(Ml,{title:"Response Payload",value:bi.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,ia==="raw"?i.jsx(Ml,{title:"Raw Event JSON",value:bi.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Hg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),oa&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:Vm}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:oa}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Yu,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Cr!=null&&Cr.latest_gateway?i.jsx(Me,{variant:"green",children:Cr.latest_gateway}):null,Cr!=null&&Cr.latest_status?i.jsx(Me,{variant:Q$(Cr.latest_status),children:Ni(Cr.latest_status)}):null,Cr!=null&&Cr.event_count?i.jsxs(Me,{variant:"gray",children:[Cr.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>re.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Vm,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:re.isLoading&&!re.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision trace…"]}):re.error&&AEe(re.error)&&oa?i.jsx(qS,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):re.error?i.jsx(vt,{error:re.error.message}):Bm.length?i.jsx("div",{className:"space-y-4",children:Bm.map(O=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:eL(O.phase),children:O.phase})}),i.jsx("div",{className:"space-y-2",children:O.events.map(V=>i.jsxs("button",{type:"button",onClick:()=>{ss(V.id),Sa("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(jn==null?void 0:jn.id)===V.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Wg(V)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Ug(V.created_at_ms)})]}),i.jsx(Me,{variant:Yv(V),children:Ni(V.status)||Z$(V.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:Vg(V.route)}),V.gateway?i.jsx(Me,{variant:"green",children:V.gateway}):null]})]},V.id))})]},O.phase))}):oa?i.jsx(qS,{title:Cr?"Decision summary available":"Decision trace still arriving",body:Cr?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Hg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:jn?Wg(jn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:jn?`${Vg(jn.route)} · ${Ug(jn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[jn!=null&&jn.gateway?i.jsx(Me,{variant:"green",children:jn.gateway}):null,jn!=null&&jn.status?i.jsx(Me,{variant:Yv(jn),children:Ni(jn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(O=>i.jsx("button",{type:"button",onClick:()=>Sa(O),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${nL(la===O)}`,children:O==="raw"?"Raw JSON":Ni(O)},O))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:re.isLoading&&!re.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision inspector…"]}):Tl?i.jsxs("div",{className:"space-y-5",children:[la==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(rL,{rows:Tl.summaryRows}),i.jsx(Ml,{title:"Decision Signals",value:Tl.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,la==="input"?i.jsx(Ml,{title:"Request Payload",value:Tl.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,la==="response"?i.jsx(Ml,{title:"Response Payload",value:Tl.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,la==="raw"?i.jsx(Ml,{title:"Raw Event JSON",value:Tl.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):oa&&!((Gm=(iv=re.data)==null?void 0:iv.timeline)!=null&&Gm.length)?i.jsx(qS,{title:Cr?"Waiting for detailed decision step":"Waiting for decision step",body:Cr?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Hg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function DEe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(He,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(IEe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function IEe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function Hs({open:t,title:e,description:n,confirmLabel:r="Confirm",cancelLabel:a="Cancel",variant:s="primary",onConfirm:o,onCancel:l}){const c=g.useRef(null);return g.useEffect(()=>{var u;t&&((u=c.current)==null||u.focus())},[t]),g.useEffect(()=>{if(!t)return;function u(d){d.key==="Escape"&&l()}return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[t,l]),t?i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:l}),i.jsxs("div",{ref:c,tabIndex:-1,className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e}),i.jsx("p",{className:"mt-2 max-w-[57ch] text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:n}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:l,children:a}),i.jsx(we,{variant:s==="danger"?"danger":"primary",size:"sm",onClick:o,children:r})]})]})]}):null}function Vj(t){const e=t?`/merchant-account/${t}/cost-coverage`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,dedupingInterval:6e4});return{coverage:n,error:r,isLoading:a,mutate:s}}function vH(t){const e=t?`/merchant-account/${t}/connector-fees`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{fees:n??[],error:r,isLoading:a,mutate:s}}async function $Ee(t,e,n){return zj(`/merchant-account/${t}/connectors/${e}/fee-override`,n)}async function LEe(t,e){return km(`/merchant-account/${t}/connectors/${e}/fee-override`)}function cT(t){var n;let e=(n=t.q)!=null&&n.trim()?1:0;for(const[r,a]of Object.entries(t))r!=="q"&&Array.isArray(a)&&(e+=a.length);return e}function uT(t,e={}){const{limit:n=10,order:r,connector:a,account:s,reportDate:o,ingestionId:l,filters:c}=e;let u=null;if(t){const m=new URLSearchParams({limit:String(n)});for(const[x,v]of Object.entries(c??{}))if(Array.isArray(v))for(const b of v)b!=null&&b.trim()&&m.append(x,b.trim());else typeof v=="string"&&v.trim()&&m.set(x,v.trim());a&&m.set("connector",a),s&&m.set("account",s),o&&m.set("report_date",o),l&&m.set("ingestion_id",l),r==="n"&&m.set("order","txns"),u=`/merchant-account/${t}/cost-clusters?${m.toString()}`}const{data:d,error:f,isLoading:h,mutate:p}=ct(u,Dt,{revalidateOnFocus:!1});return{clusters:d??[],error:f,isLoading:h,mutate:p}}function bH(t,e={}){const{connector:n,account:r,reportDate:a,ingestionId:s}=e;let o=null;if(t){const f=new URLSearchParams;n&&f.set("connector",n),r&&f.set("account",r),a&&f.set("report_date",a),s&&f.set("ingestion_id",s);const h=f.toString();o=`/merchant-account/${t}/cost-cluster-facets${h?`?${h}`:""}`}const{data:l,error:c,isLoading:u}=ct(o,Dt,{revalidateOnFocus:!1});return{facets:g.useMemo(()=>{var h;const f={};for(const p of l??[])(f[h=p.dim]??(f[h]=[])).push(p);return f},[l]),error:c,isLoading:u}}async function wH(t,e,n){return zj(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`,n)}async function FEe(t,e){return km(`/merchant-account/${t}/cost-clusters/${encodeURIComponent(e)}/fee-override`)}function kH(t){const e=t?`/merchant-account/${t}/seed-costs`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{rows:n??[],error:r,isLoading:a,mutate:s}}async function BEe(t,e){return zj(`/merchant-account/${t}/seed-costs`,{rows:e})}async function zEe(t){return km(`/merchant-account/${t}/seed-costs`)}function UEe(t){const e=t?`/merchant-account/${t}/connectors`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{sources:n??[],error:r,isLoading:a,mutate:s}}function dT(t){const e=t?`/merchant-account/${t}/cost-ingestions`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1,refreshInterval:o=>o!=null&&o.some(l=>l.status==="processing"||l.status==="pending")?2e3:0});return{ingestions:n??[],error:r,isLoading:a,mutate:s}}async function VEe(t,e,n){return Fe(`/merchant-account/${t}/connectors/${e}/credentials`,n)}async function WEe(t,e,n){return km(`/merchant-account/${t}/connectors/${e}/credentials/${encodeURIComponent(n)}`)}async function HEe(t,e,n,r,a){return eT(`/merchant-account/${t}/connectors/${e}/report?account=${encodeURIComponent(n)}`,r,a)}const aL=64*1024;async function GEe(t,e,n,r){const a=r?`?account=${encodeURIComponent(r)}`:"";return eT(`/merchant-account/${t}/connectors/${e}/report/validate-headers${a}`,n)}async function qEe(t,e,n,r,a){return Fe(`/merchant-account/${t}/connectors/${e}/report/preview`,{columns:n,sample:r,truncated:a})}function KEe(){const{data:t,error:e,isLoading:n}=ct("/cost-ingestion/connectors",Dt,{revalidateOnFocus:!1});return{connectors:t??[],error:e,isLoading:n}}async function YEe(t,e,n,r,a,s){return zj(`/merchant-account/${t}/connectors/${e}/report/column-mapping?account=${encodeURIComponent(n)}`,{columns:r,sample:a,truncated:s})}async function XEe(t,e){return Fe(`/merchant-account/${t}/connectors/${e}/report/sample`)}async function JEe(t,e){return km(`/merchant-account/${t}/cost-ingestions/${e}`)}function ZEe(t){const e=t?`/merchant-account/${t}/invoice-addons`:null,{data:n,error:r,isLoading:a,mutate:s}=ct(e,Dt,{revalidateOnFocus:!1});return{addons:n??[],error:r,isLoading:a,mutate:s}}async function QEe(t,e,n,r,a,s){const o=new URLSearchParams({account:n});return a&&o.set("invoice_ref",a),eT(`/merchant-account/${t}/connectors/${e}/invoice?${o.toString()}`,r,s)}async function eAe(t,e){return km(`/merchant-account/${t}/connectors/${e}/invoice-addon`)}const uA=1e3,tAe="routing_events_seen",nAe=500,dA="1h";function rAe(t){return t==="15m"||t==="1h"?"1s":"1m"}function jH(t,e){return t?`/analytics/routing-events?range=${e}&bucket=${rAe(e)}`:null}function SH(t){return`${tAe}:${t}`}function sL(t){try{const e=localStorage.getItem(SH(t));if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function aAe(t,e){try{localStorage.setItem(SH(t),JSON.stringify(Array.from(e).slice(-nAe)))}catch{}}const _H=g.createContext(null);function sAe({children:t}){const e=hr(k=>{var S;return(S=k.user)==null?void 0:S.merchantId})??"",[n,r]=g.useState(uA),a=g.useRef(0),[s,o]=g.useState(!1),l=g.useCallback(()=>(a.current+=1,o(!0),()=>{a.current-=1,a.current<=0&&(a.current=0,o(!1))}),[]),{data:c,error:u,isLoading:d,mutate:f}=ct(s?jH(e,dA):null,Dt,{refreshInterval:n,revalidateOnFocus:!1}),[h,p]=g.useState(()=>sL(e));g.useEffect(()=>{p(sL(e))},[e]);const m=g.useCallback(k=>h.has(k),[h]),x=g.useCallback(k=>{p(S=>{const _=new Set(S);for(const C of k)_.add(C.id);return aAe(e,_),_})},[e]),v=g.useCallback(()=>{f()},[f]),b=g.useCallback(k=>{r(k??uA)},[]),y=g.useRef([]);g.useEffect(()=>{c!=null&&c.events&&(y.current=c.events)},[c]);const w=g.useMemo(()=>u?[]:(c==null?void 0:c.events)??y.current,[u,c]),j=g.useMemo(()=>({liveEvents:w,isLoading:d,isUnavailable:!!u,isSeen:m,markSeen:x,refresh:v,requestPollInterval:b,subscribe:l}),[w,d,u,m,x,v,b,l]);return g.createElement(_H.Provider,{value:j},t)}function iAe(){const t=g.useContext(_H);if(!t)throw new Error("useRoutingEvents must be used within a ");return t}function fT(t=dA,e={}){const{refreshInterval:n,enabled:r=!0}=e,a=hr(C=>{var E;return(E=C.user)==null?void 0:E.merchantId})??"",{liveEvents:s,isLoading:o,isUnavailable:l,isSeen:c,markSeen:u,refresh:d,requestPollInterval:f,subscribe:h}=iAe(),p=t===dA;g.useEffect(()=>{if(!(!p||!r))return h()},[p,r,h]),g.useEffect(()=>{if(!(!p||n===void 0))return f(n),()=>f(null)},[p,n,f]);const{data:m,error:x,isLoading:v,mutate:b}=ct(!p&&r?jH(a,t):null,Dt,{refreshInterval:n??uA,revalidateOnFocus:!1}),y=p?s:x?[]:(m==null?void 0:m.events)??[],w=p?o:v,j=p?l:!!x,k=g.useMemo(()=>y.filter(C=>!c(C.id)),[y,c]),S=g.useCallback(()=>{u(y)},[y,u]),_=g.useCallback(()=>{p?d():b()},[p,d,b]);return{events:y,unseenEvents:k,unseenCount:k.length,markAllSeen:S,refresh:_,isLoading:w,isUnavailable:j}}function hT(t){switch(t.event_type){case"leader_changed":return`switching psp to ${t.gateway}`;case"gateway_entered_auth_band":return`${t.gateway} now good enough on success — routing it to save cost`;case"gateway_exited_auth_band":return`${t.gateway} slipped on success — not eligible for cost override anymore`;case"calibration_applied":return oAe(t)}}function oAe(t){const e=[t.payment_method_type,t.payment_method,t.card_network,t.currency,t.country,t.auth_type].filter(s=>!!s),n=e.length?e.join(" · "):"default",r=[];if(t.bucket_size!=null&&r.push(t.previous_bucket_size!=null&&t.previous_bucket_size!==t.bucket_size?`bucket ${t.previous_bucket_size} → ${t.bucket_size}`:`bucket ${t.bucket_size}`),t.hedging_percent!=null){const s=`${t.hedging_percent.toFixed(1)}%`;r.push(t.previous_hedging_percent!=null&&t.previous_hedging_percent!==t.hedging_percent?`hedging ${t.previous_hedging_percent.toFixed(1)}% → ${s}`:`hedging ${s}`)}const a=r.length?r.join(", "):"settings";return`autopilot tuned ${n} — ${a}`}const fA="USD",lAe=["USD","EUR","GBP","AUD","CAD"],cAe=["CREDIT"],uAe=["STANDARD","PREMIUM"],dAe=["VISA","MASTERCARD"],NH=[{label:"US debit",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US standard credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"US"},{label:"US premium credit",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"US corporate",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"COMMERCIAL",cardIssuerCountry:"US"},{label:"Amex US consumer",paymentMethod:"CREDIT",cardSwitchProvider:"AMEX",cardProgram:"PREMIUM",cardIssuerCountry:"US"},{label:"FR debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT debit (Mastercard)",paymentMethod:"DEBIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"FR credit (Visa)",paymentMethod:"CREDIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"FR"},{label:"IT credit (Mastercard)",paymentMethod:"CREDIT",cardSwitchProvider:"MASTERCARD",cardProgram:"STANDARD",cardIssuerCountry:"IT"},{label:"AU debit (Visa)",paymentMethod:"DEBIT",cardSwitchProvider:"VISA",cardProgram:"STANDARD",cardIssuerCountry:"AU"}],fAe=Math.max(0,NH.findIndex(t=>t.label==="US debit"));function KS(t){const e=(t??"").trim().toLowerCase();return e==="mastercard"?"mc":e}function hAe(t,e,n,r){const a=e.toUpperCase(),s=KS(n),o=(r??"").trim().toLowerCase(),l=[c=>KS(c.card_network)===s&&(c.funding??"").toLowerCase()===o,c=>KS(c.card_network)===s,()=>!0];for(const c of l){const u=new Map;for(const h of t){if((h.currency??"").toUpperCase()!==a)continue;const p=(h.issuer_country??"").trim().toUpperCase();!p||!c(h)||u.set(p,(u.get(p)??0)+h.gross_sum)}let d,f=0;for(const[h,p]of u)p>f&&(d=h,f=p);if(d)return d}}function pAe(t,e,n){const r=(t.card_issuing_country??"").trim().toLowerCase();return r.length===2&&r!=="eu"?r.toUpperCase():hAe(n,e,t.card_network??"",t.payment_method_type??"")}function mAe(t,e,n){var o;const r=e.toUpperCase(),a=[],s=new Set;for(const l of t){if(l.is_default||(l.transaction_currency??"").toUpperCase()!==r)continue;const c=[(l.card_network??"").toLowerCase(),(l.payment_method_type??"").toLowerCase(),(l.card_type??"").toLowerCase(),(l.card_issuing_country??"").toLowerCase()].join("|");if(s.has(c))continue;s.add(c);const u=((o=l.label)==null?void 0:o.trim())||`${l.card_network??""} ${l.payment_method_type??""}`.trim()||"Scenario";a.push({label:u,paymentMethod:(l.payment_method_type??"").toUpperCase()==="DEBIT"?"DEBIT":"CREDIT",cardSwitchProvider:(l.card_network??"").toUpperCase()||"VISA",cardProgram:(l.card_type??"").toUpperCase()||"STANDARD",cardIssuerCountry:pAe(l,r,n),exampleAmount:l.example_amount??void 0})}return a}const hA={successRate:70,failureMode:"decline",gsmDecision:"retry",penalized:!0,errorInfo:{..._u}},gAe={stripe:94,adyen:93,braintree:92,chase:92};function Jv(t){return{...hA,successRate:gAe[t.trim().toLowerCase()]??hA.successRate,errorInfo:{..._u}}}function Wf({label:t,abbr:e}){return i.jsxs("p",{className:"text-[14px] font-semibold leading-snug text-slate-500 dark:text-slate-400",children:[t,e&&i.jsx("span",{className:"ml-1 text-[11px] font-normal uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:e})]})}function Qf(t,e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e,currencyDisplay:"narrowSymbol",maximumFractionDigits:2}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function xAe(t,e,n){return Qf(t/1e4*e,n)}function yAe(t){for(const[e,n]of Object.entries(lH))if(t.includes(e)||e.includes(t))return n;return"bg-white/5 text-slate-600 ring-1 ring-inset ring-white/8"}const Hf=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16"],ni=["#3b82f6","#8b5cf6","#f97316","#ec4899","#14b8a6"],iL={stripe:"#8b5cf6",adyen:"#0abf53"},vAe=3e3,bAe={leader_changed:{icon:I0,iconClass:"text-sky-700"},gateway_entered_auth_band:{icon:Cy,iconClass:"text-emerald-700"},gateway_exited_auth_band:{icon:J3,iconClass:"text-amber-700"},calibration_applied:{icon:ec,iconClass:"text-violet-600"}};function Zv(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}const CH="decision-explorer-state-v2",EH=10*60*1e3,AH={amount:"1000",currency:"",payment_method_type:"",payment_method:"",card_brand:"",card_program:"STANDARD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",ranking_algorithm:"SR_MULTI_OBJECTIVE"},wAe={amount:"1000",currency:"USD",auth_type:"THREE_DS",eligible_gateways:"stripe, adyen",merchant_category_code:"merchant_category_code_0001",acquirer_country:"US",co_badged_networks:"VISA, NYCE, PULSE, STAR",issuer_country:"US",is_regulated:!1,regulated_name:"",card_type:"debit"},oL=AH.eligible_gateways.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean);function lL(...t){const e=new Set,n=[];for(const r of t)for(const a of r){const s=a.trim().toLowerCase();s&&!e.has(s)&&(e.add(s),n.push(s))}return n}const pT="5000",kAe=1,yg=50,cL=1,uL=1e5,jAe=10,SAe=100,_Ae=.5,NAe={totalPayments:pT,tps:kAe,minAmount:jAe,maxAmount:SAe},CAe=[{key:"payment_method_type",type:"enum_variant",value:"",metadataKey:""},{key:"currency",type:"enum_variant",value:"",metadataKey:""}],EAe=[{gateway_name:"stripe",gateway_id:"gateway_001"},{gateway_name:"adyen",gateway_id:"gateway_002"}];function OH(t){return t.map(e=>({...e}))}function TH(t){return t.map(e=>({...e}))}function PH(t){return`${t||""}`.toLowerCase()==="credit"?"credit":"debit"}function tu(){return{scopeKey:null,resultDataUpdatedAtMs:null,activeTab:"batch",form:{...AH},simulationConfig:{...NAe},gatewaySimConfigs:{},errorInfo:{..._u},debitForm:{...wAe},ruleParams:OH(CAe),fallbackConnectors:TH(EAe),volumePayments:"100",result:null,debitResult:null,debitPaymentId:null,singleRunPaymentId:null,singleRunOutcome:"CHARGED",ruleResult:null,volumeDistribution:[],volumeEvaluationLog:[],volumeProgress:0,simulationResults:[],responseOpen:!1,debitResponseOpen:!1,volumeResponseOpen:!1,smartRetryEnabled:!1,multiObjScenario:fAe,moCurrency:fA,extraConnectors:[],removedConnectors:[],resumableRun:null}}function AAe(t,e,n){return`${t||e||"anonymous"}:${n||"no-merchant"}`}function mT(t){return`${CH}:${encodeURIComponent(t)}`}function OAe(t){return!!(t&&Date.now()-t>EH)}function pA(t){typeof window>"u"||window.localStorage.removeItem(mT(t))}function TAe(t,e){typeof window>"u"||window.localStorage.setItem(mT(t),JSON.stringify(e))}function dL(t){var e,n,r;if(typeof window>"u")return tu();try{const a=window.localStorage.getItem(mT(t))||window.localStorage.getItem(CH);if(!a)return{...tu(),scopeKey:t};const s=JSON.parse(a),o=tu();return s.scopeKey!==t||OAe(s.resultDataUpdatedAtMs)?(pA(t),{...o,scopeKey:t}):{...o,...s,scopeKey:t,resultDataUpdatedAtMs:s.resultDataUpdatedAtMs||null,activeTab:o.activeTab,form:{...o.form,...s.form||{},ranking_algorithm:"SR_MULTI_OBJECTIVE"},simulationConfig:{...o.simulationConfig,...s.simulationConfig||{},totalPayments:pT},gatewaySimConfigs:s.gatewaySimConfigs||o.gatewaySimConfigs,errorInfo:{...o.errorInfo,...s.errorInfo||{}},debitForm:{...o.debitForm,...s.debitForm||{},card_type:PH((e=s.debitForm)==null?void 0:e.card_type)},ruleParams:(n=s.ruleParams)!=null&&n.length?OH(s.ruleParams):o.ruleParams,fallbackConnectors:(r=s.fallbackConnectors)!=null&&r.length?TH(s.fallbackConnectors):o.fallbackConnectors,volumeDistribution:s.volumeDistribution||o.volumeDistribution,volumeEvaluationLog:s.volumeEvaluationLog||o.volumeEvaluationLog,simulationResults:s.simulationResults||o.simulationResults,extraConnectors:s.extraConnectors||o.extraConnectors,removedConnectors:s.removedConnectors||o.removedConnectors}}catch{return{...tu(),scopeKey:t}}}function Qb(t=[]){return t.map(e=>e.trim()).filter(Boolean).map(e=>e.toUpperCase())}function YS(t=[]){return Array.from(new Set(Qb(t)))}function PAe(t){var e,n,r,a,s;return((n=(e=t.evaluated_output)==null?void 0:e[0])==null?void 0:n.gateway_name)||((r=t.output.connector)==null?void 0:r.gateway_name)||((s=(a=t.output.connectors)==null?void 0:a[0])==null?void 0:s.gateway_name)||null}function XS(t){return t==="enum"?"enum_variant":t==="integer"?"number":t==="udf"||t==="global_ref"?"metadata_variant":"str_value"}function RH(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Gg(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function Ci(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function qg(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Ci(t):"Unknown route"}function fL(t){return t?t==="decide_gateway_decision"?"Decide Gateway":t==="update_gateway_score_update"||t==="update_gateway_score_score_snapshot"||t==="update_score_legacy_score_snapshot"?"Update Gateway":t==="decide_gateway_rule_hit"?"Rule Evaluate":t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"?"Decision Result":t.endsWith("_error")?"Errors":Ci(t):"Unknown event"}function gT(t){return t.flow_type||""}function Kg(t){const e=gT(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"Decision Result":e.endsWith("_error")?"Errors":Ci(t.event_stage||e)}function mA(t){const e=gT(t);return e.startsWith("decide_gateway_")&&e!=="decide_gateway_rule_hit"||t.event_stage==="gateway_decided"?"Decide Gateway":e==="decide_gateway_rule_hit"||t.event_stage==="rule_applied"?"Rule Evaluate":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")||t.event_stage==="score_updated"?"Update Gateway":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"||t.event_stage==="preview_evaluated"?"Decision":"Errors"}function Qv(t){const e=gT(t),n=(t.status||"").toUpperCase();return e.endsWith("_error")||n==="FAILURE"||n.includes("FAILED")||n.includes("DECLINED")?"red":e==="decide_gateway_rule_hit"?"purple":n==="CHARGED"||n==="AUTHORIZED"||n==="SUCCESS"?"green":e.startsWith("routing_evaluate_")&&e!=="routing_evaluate_request_hit"?"purple":e.startsWith("update_gateway_score_")||e.startsWith("update_score_legacy_")?"green":e.startsWith("decide_gateway_")?"blue":"orange"}function hL(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":"gray"}function pL(t){return t==="Decide Gateway"?"blue":t==="Rule Evaluate"||t==="Decision"?"purple":t==="Update Gateway"?"green":t==="Errors"?"red":"gray"}function RAe(t){return KW(t)===404}function vg(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function JS(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function MH(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function MAe(t){return`/analytics/payment-audit?${RH({range:"1d",page:1,page_size:25,payment_id:t})}`}function DAe(t){return`/analytics/preview-trace?${RH({range:"1d",page:1,page_size:25,payment_id:t})}`}function mL(t){if(!t)return null;const e=vg(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??JS({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??JS({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=vg(n)?n:null,o=vg(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:mA(t)},{label:"Stage",value:Kg(t)},{label:"Route",value:qg(t.route)},{label:"Timestamp",value:Gg(t.created_at_ms)},...t.merchant_id?[{label:"Merchant",value:t.merchant_id}]:[],...t.payment_id?[{label:"Payment ID",value:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id}]:[],...t.gateway?[{label:"Gateway",value:t.gateway}]:[],...t.status?[{label:"Status",value:Ci(t.status)}]:[]],d=JS(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:vg(r)&&!Object.keys(r).length?null:r,responsePayload:vg(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function gL(t){return t?"!border-slate-200 !bg-white !text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.28)] dark:!border-[#2a303a] dark:!bg-[#161b24] dark:!text-white":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function IAe(t){const e=t.toLowerCase();return e.includes("no active routing algorithm")||e.includes("active routing algorithm is not a volume split")||e.includes("debit_routing_not_enabled")||e.includes("debit routing is disabled")}function $Ae(t,e){return t==="volume"?{title:"Configure volume split first",body:"Volume evaluation needs an active volume split rule before it can calculate distribution.",detail:e,configurePath:"/routing/volume"}:t==="rule"?{title:"Configure rule-based routing first",body:"Rule evaluation needs an active rule-based strategy before it can return a policy decision.",detail:e,configurePath:"/routing/rules"}:t==="debit"?{title:"Enable debit routing first",body:"Debit network decisions need the merchant debit routing flag enabled before this explorer can run network routing.",detail:e,configurePath:"/routing/debit"}:{title:"Configure auth-rate routing first",body:"Auth-rate simulation needs success-rate routing configured before it can run gateway decisions.",detail:e,configurePath:"/routing/sr"}}function Yg({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-dashed border-slate-200 bg-slate-50/80 px-6 py-12 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e})]})}function ZS({title:t,body:e}){return i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-6 py-10 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx(at,{size:18})}),i.jsx("p",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-2 text-sm text-slate-500 dark:text-[#b2bdd1]",children:e}),i.jsx("div",{className:"mt-5 h-2 overflow-hidden rounded-full bg-slate-200 dark:bg-[#202734]",children:i.jsx("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-brand-500"})}),i.jsx("p",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Waiting for analytics"})]})}function xL({rows:t}){return t.length?i.jsx("div",{className:"grid gap-3 md:grid-cols-2",children:t.map(e=>i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-white/80 px-4 py-3 shadow-[0_14px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#161b24] dark:shadow-none",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8d96aa] leading-4",children:e.label}),i.jsx("p",{className:"mt-2 break-words text-sm text-slate-900 dark:text-white",children:e.value})]},`${e.label}-${e.value}`))}):null}function Dl({title:t,value:e,emptyMessage:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:t})}),e?i.jsx("pre",{className:"overflow-x-auto rounded-[22px] border border-slate-200/80 bg-slate-50/90 px-4 py-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:MH(e)}):i.jsx(Yg,{title:`No ${t.toLowerCase()} captured`,body:n})]})}function yL({value:t,min:e,max:n,ariaLabel:r,className:a,onCommit:s,onSettle:o}){const[l,c]=g.useState(null);return i.jsx("input",{type:"number",min:e,max:n,step:5,"aria-label":r,value:l??String(t),onChange:u=>{const d=u.target.value;c(d);const f=Number(d);d!==""&&Number.isFinite(f)&&s(Math.max(e,Math.min(n,f)))},onBlur:()=>{c(null),o()},className:a})}function LAe(){var YP,XP,JP,ZP,QP,eR,tR,nR,rR,aR,sR;const t=Hr(),{merchantId:e}=$r(),n=hr(N=>N.user),r=(n==null?void 0:n.merchantId)||"",a=e||r,s=AAe((n==null?void 0:n.userId)||"",(n==null?void 0:n.email)||"",a),l=Sl(a||void 0).isEnabled("gsm-scoring-filter"),c=Ey(a),{fees:u}=vH(a||void 0),{rows:d}=kH(a||void 0),{clusters:f}=uT(a||void 0,{limit:2e3}),h=g.useMemo(()=>u.filter(N=>N.model_pct_bps!=null).map(N=>N.connector.toLowerCase()),[u]),{routingKeysConfig:p,isLoading:m,error:x}=iT(),v=Object.keys(p).length>0,b=!m&&(!v||!!x),y=g.useMemo(()=>dL(s),[s]),[w,j]=g.useState(y.activeTab),[k,S]=g.useState(y.scopeKey||s),[_,C]=g.useState(y.resultDataUpdatedAtMs),[E,P]=g.useState(y.form),R=g.useRef(E);g.useEffect(()=>{R.current=E},[E]);const[A,T]=g.useState(y.simulationConfig),D=g.useRef({min:A.minAmount,max:A.maxAmount});g.useEffect(()=>{D.current={min:A.minAmount,max:A.maxAmount}},[A.minAmount,A.maxAmount]);const[L,X]=g.useState(y.errorInfo),[J,U]=g.useState(y.gatewaySimConfigs),Y=g.useRef(J);g.useEffect(()=>{Y.current=J},[J]);const W=Object.values(J).some(N=>N.failureMode==="timeout"),G=g.useRef(!1);g.useEffect(()=>()=>{G.current=!0},[]);const I=g.useRef(0),[q,M]=g.useState(y.debitForm),[B,z]=g.useState(0),[Z,pe]=g.useState(y.ruleParams),[ae,ue]=g.useState(y.fallbackConnectors),[de,Q]=g.useState(y.volumePayments),[fe,ne]=g.useState(y.result),[ce,he]=g.useState(y.debitResult),[be,Pe]=g.useState(y.debitPaymentId),[Ce,Re]=g.useState(y.singleRunPaymentId),[Be,st]=g.useState(y.singleRunOutcome),[F,se]=g.useState(y.ruleResult),[ie,Se]=g.useState(y.volumeDistribution),[te,me]=g.useState(y.volumeEvaluationLog),[ve,Ee]=g.useState(y.volumeProgress),[Oe,Tt]=g.useState(y.simulationResults),Bt=g.useRef(Oe);g.useEffect(()=>{Bt.current=Oe},[Oe]);const[Pt,sn]=g.useState(!1),[It,xr]=g.useState(!1),er=g.useRef(!1),za=g.useRef(0),[Gr,pn]=g.useState(y.resumableRun),[mt,Mt]=g.useState({}),[gt,Lr]=g.useState(y.smartRetryEnabled),zn=g.useRef(gt);g.useEffect(()=>{zn.current=gt},[gt]);const[mn,ge]=g.useState(!1),[ut,ft]=g.useState(!1),[Kt,gn]=g.useState(y.extraConnectors),[zt,un]=g.useState(y.removedConnectors),[as,xn]=g.useState(!1),[ia,jr]=g.useState(""),[oa,ja]=g.useState(null),[El,ss]=g.useState(!1),[la,Sa]=g.useState(y.multiObjScenario),Yu=g.useRef(la);g.useEffect(()=>{Yu.current=la},[la]);const[_a,or]=g.useState(y.moCurrency),Ns=g.useMemo(()=>{const N=mAe(d,_a,f);return N.length?N:NH},[d,_a,f]),Xu=g.useRef(Ns);g.useEffect(()=>{Xu.current=Ns},[Ns]);const Po=g.useMemo(()=>{const N=Array.from(new Set(d.filter($=>!$.is_default).map($=>($.transaction_currency??"").toUpperCase()).filter(Boolean)));return Array.from(new Set([...lAe,...N]))},[d]);g.useEffect(()=>{Sa(N=>N==="ALL"||N{var ee;if(la==="ALL")return;const N=(ee=Ns[la])==null?void 0:ee.exampleAmount;if(N==null||N<=0)return;const $=Math.max(cL,Math.round(N*.5)),K=Math.min(uL,Math.round(N*1.5));T(ye=>ye.minAmount===$&&ye.maxAmount===K?ye:{...ye,minAmount:$,maxAmount:K})},[la,Ns]);const Na="ecom",[Cf,Rt]=g.useState(null),ca=g.useRef(null),[Sr,_r]=g.useState(null),[Jt,qr]=g.useState(!1),[re,ke]=g.useState(!1),[_e,ze]=g.useState(y.responseOpen),[Je,Ze]=g.useState(y.debitResponseOpen),[St,Cn]=g.useState(y.volumeResponseOpen),[Qt,Rn]=g.useState(null),[is,Un]=g.useState(null),[Yi,Ca]=g.useState("summary"),[os,Xi]=g.useState(null),[Ju,Vn]=g.useState(null),[Ea,Ji]=g.useState("summary"),[Gy,Zu]=g.useState("Rule Evaluation Decision"),En=g.useDeferredValue(Oe),[Ro,Zi]=g.useState(null),Sc=fT("1h",{refreshInterval:Pt&&!It?500:15e3}),qy=g.useMemo(()=>{if(Ro==null)return[];const N=Ro-vAe;return Sc.events.filter($=>$.bucket_ms>=N)},[Sc.events,Ro]),[_c,Qu]=g.useState([]),Pm=g.useRef(new Set);g.useEffect(()=>{Pm.current=new Set,Qu([])},[Ro]),g.useEffect(()=>{const N=qy.filter($=>!Pm.current.has($.id));N.length!==0&&(N.forEach($=>Pm.current.add($.id)),Qu($=>$.concat(N).sort((K,ee)=>ee.bucket_ms-K.bucket_ms||ee.id.localeCompare(K.id)).slice(0,200)))},[qy]);const[Rm,Ky]=g.useState(new Set),Mm=g.useRef(new Set),Dm=g.useRef(!1),Im=g.useRef([]);g.useEffect(()=>{const N=_c.map(ee=>ee.id);if(!Dm.current){N.forEach(ee=>Mm.current.add(ee)),Dm.current=!0;return}const $=N.filter(ee=>!Mm.current.has(ee));if($.length===0)return;$.forEach(ee=>Mm.current.add(ee)),Ky(ee=>{const ye=new Set(ee);return $.forEach(Ae=>ye.add(Ae)),ye});const K=window.setTimeout(()=>{Ky(ee=>{const ye=new Set(ee);return $.forEach(Ae=>ye.delete(Ae)),ye})},12e3);Im.current.push(K)},[_c]),g.useEffect(()=>()=>{Im.current.forEach(N=>window.clearTimeout(N))},[]);const x2=g.useMemo(()=>{const N=ye=>ye==="gateway_entered_auth_band"||ye==="gateway_exited_auth_band",$=_c.slice(0,50),K=[];let ee=0;for(;ee<$.length;){const ye=$[ee];if(N(ye.event_type)){let Ae=ee;for(;Ae<$.length&&N($[Ae].event_type)&&$[Ae].gateway===ye.gateway;)Ae++;const nt=Ae-ee;nt>1?K.push({kind:"flap",gateway:ye.gateway,crossings:nt,latest:ye,inBand:ye.event_type==="gateway_entered_auth_band"}):K.push({kind:"single",event:ye}),ee=Ae}else if(ye.event_type==="leader_changed"){let Ae=ee;for(;Ae<$.length&&$[Ae].event_type==="leader_changed";)Ae++;const nt=Ae-ee;if(nt>1){const ot=Array.from(new Set($.slice(ee,Ae).map(Qe=>Qe.gateway))).sort();K.push({kind:"leaderFlap",gateways:ot,crossings:nt,latest:ye})}else K.push({kind:"single",event:ye});ee=Ae}else K.push({kind:"single",event:ye}),ee++}return K},[_c]),[Yy,y2]=g.useState(!1),[Xs,v2]=g.useState(100),Ef=[100,500,"all"],Mo=g.useMemo(()=>Object.keys(p).sort(),[p]),ls=g.useMemo(()=>{var N;return Qb(((N=p.payment_method)==null?void 0:N.values)||[])},[p]),Al=g.useMemo(()=>{var N;return YS(((N=p.currency)==null?void 0:N.values)||[])},[p]),Js=g.useMemo(()=>{var N;return YS(((N=p.card_network)==null?void 0:N.values)||[])},[p]),ua=g.useMemo(()=>{var N;return YS(((N=p.authentication_type)==null?void 0:N.values)||[])},[p]),Af=Qt?MAe(Qt):null,lr=ct(Af,Dt,{revalidateOnFocus:!1}),$m=os?DAe(os):null,Nr=ct($m,Dt,{revalidateOnFocus:!1}),{data:Ol}=ct("/gsm/options",Dt,{revalidateOnFocus:!1,dedupingInterval:3e5}),Zs=(Ol==null?void 0:Ol.rules)??[];g.useEffect(()=>{b||m||(P(N=>{var ye;const $={...N};let K=!1;Al.length>0&&!Al.includes($.currency)&&($.currency=Al[0],K=!0),ls.length>0&&!ls.includes($.payment_method_type)&&($.payment_method_type=ls[0],K=!0);const ee=Qb(((ye=p[$.payment_method_type.toLowerCase()])==null?void 0:ye.values)||[]);return ee.length>0&&!ee.includes($.payment_method)&&($.payment_method=ee[0],K=!0),ua.length>0&&!ua.includes($.auth_type)&&($.auth_type=ua[0],K=!0),Js.length>0&&!Js.includes($.card_brand)&&($.card_brand=Js[0],K=!0),K?$:N}),pe(N=>{let $=!1;const K=N.map(ee=>{if(!ee.key||!p[ee.key])return ee;const ye=p[ee.key],Ae=XS(ye.type),nt=ye.values||[],ot=Ae==="enum_variant"?nt.includes(ee.value)?ee.value:nt[0]||"":ee.value;return ee.type!==Ae||ee.value!==ot?($=!0,{...ee,type:Ae,value:ot}):ee});return $?K:N}))},[b,m,p,Al,ls,ua,Js]),g.useEffect(()=>{E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&P(N=>{if(N.ranking_algorithm!=="SR_MULTI_OBJECTIVE")return N;const $={...N};let K=!1;$.currency!==_a&&($.currency=_a,K=!0);const ee=ls.find(ye=>ye==="CARD")||"CARD";if($.payment_method_type!==ee&&($.payment_method_type=ee,K=!0),cAe.includes($.payment_method)||($.payment_method="CREDIT",K=!0),!dAe.includes($.card_brand)){const ye=Js.find(Ae=>Ae==="VISA")||Js.find(Ae=>Ae==="MASTERCARD")||Js[0]||"VISA";$.card_brand=ye,K=!0}return uAe.includes($.card_program)||($.card_program="STANDARD",K=!0),K?$:N})},[E.ranking_algorithm,ls,Js,_a]),g.useEffect(()=>{if(Pt)return;const N=E.ranking_algorithm==="SR_MULTI_OBJECTIVE"?lL(oL,h,Kt):lL(oL,Kt),$=new Set(zt),K=N.filter(ee=>!$.has(ee)).join(", ");P(ee=>ee.eligible_gateways===K?ee:{...ee,eligible_gateways:K})},[E.ranking_algorithm,h,Kt,zt,Pt]),g.useEffect(()=>{if(!Qt&&!os&&!Sr)return;const N=document.body.style.overflow,$=K=>{K.key==="Escape"&&(Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),_r(null))};return document.body.style.overflow="hidden",window.addEventListener("keydown",$),()=>{document.body.style.overflow=N,window.removeEventListener("keydown",$)}},[Qt,os,Sr]);function Lm(){const N=tu();ne(N.result),he(N.debitResult),Pe(N.debitPaymentId),Re(N.singleRunPaymentId),st(N.singleRunOutcome),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Tt(N.simulationResults),Zi(null),ze(N.responseOpen),Ze(N.debitResponseOpen),Cn(N.volumeResponseOpen),Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),Zu("Rule Evaluation Decision"),C(null),pn(null),Rt(null),_r(null),qr(!1),G.current=!0,I.current++,sn(!1)}function Do(){C(Date.now())}function Xy(N,$){j(N.activeTab),S(N.scopeKey||$),C(N.resultDataUpdatedAtMs),P(N.form),T(N.simulationConfig),U(N.gatewaySimConfigs),X(N.errorInfo),M(N.debitForm),pe(N.ruleParams),ue(N.fallbackConnectors),Q(N.volumePayments),ne(N.result),he(N.debitResult),Pe(N.debitPaymentId),Re(N.singleRunPaymentId),st(N.singleRunOutcome),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Tt(N.simulationResults),Zi(null),ze(N.responseOpen),Ze(N.debitResponseOpen),Cn(N.volumeResponseOpen),Sa(N.multiObjScenario),or(N.moCurrency),gn(N.extraConnectors),un(N.removedConnectors),pn(N.resumableRun),Rn(null),Un(null),Ca("summary"),Xi(null),Vn(null),Ji("summary"),Zu("Rule Evaluation Decision"),ke(!1),Rt(null),_r(null),qr(!1),G.current=!0,I.current++,sn(!1)}g.useEffect(()=>{k!==s&&Xy(dL(s),s)},[s,k]),g.useEffect(()=>{if(!_)return;const N=k||s,$=EH-(Date.now()-_);if($<=0){Lm(),pA(N);return}const K=window.setTimeout(()=>{Lm(),pA(N)},$);return()=>window.clearTimeout(K)},[s,_,k]),g.useEffect(()=>{if(k!==s||Jt||Pt&&!It)return;const N=It?{total:parseInt(A.totalPayments)||0,nextIndex:za.current}:Gr;TAe(s,{scopeKey:s,resultDataUpdatedAtMs:_,activeTab:w,form:E,simulationConfig:A,gatewaySimConfigs:J,errorInfo:L,debitForm:q,ruleParams:Z,fallbackConnectors:ae,volumePayments:de,result:fe,debitResult:ce,debitPaymentId:be,singleRunPaymentId:Ce,singleRunOutcome:Be,ruleResult:F,volumeDistribution:ie,volumeEvaluationLog:te,volumeProgress:ve,simulationResults:Oe,responseOpen:_e,debitResponseOpen:Je,volumeResponseOpen:St,smartRetryEnabled:gt,multiObjScenario:la,moCurrency:_a,extraConnectors:Kt,removedConnectors:zt,resumableRun:N})},[s,k,Pt,It,Gr,Jt,_,w,E,A,J,L,q,Z,ae,de,fe,ce,be,Ce,Be,F,ie,te,ve,Oe,_e,Je,St,gt,la,_a,Kt,zt]);function b2(){Gr&&Gm({resumeFrom:Gr.nextIndex})}function Of(){pn(null),Lm()}function cs(N,$){M(K=>({...K,[N]:$}))}function Tf(N){X($=>({...$,...N}))}function Qi(N){return Y.current[N]??Jv(N)}function Jy(N){return Qi(N).successRate}function Ua(N){return Qi(N).failureMode}function yn(N,$){U(K=>({...K,[N]:{...Qi(N),...K[N],successRate:$}}))}function Fm(N){return Number.isFinite(N)?Math.round(Math.max(0,Math.min(100,N))):0}function bi(){jr(""),ja(null),xn(!0)}function Cr(){const N=ia.trim().toLowerCase();if(!N){ja("Enter a connector name.");return}if(!/^[a-z0-9_-]+$/.test(N)){ja("Use only letters, numbers, hyphens or underscores.");return}if(pt.includes(N)){ja(`${N.charAt(0).toUpperCase()+N.slice(1)} is already in the comparison.`);return}gn($=>$.includes(N)?$:[...$,N]),un($=>$.filter(K=>K!==N)),xn(!1)}function jn(N){const $=N.trim().toLowerCase();gn(K=>K.filter(ee=>ee!==$)),un(K=>K.includes($)?K:[...K,$])}function Bm(N,$,K){const Ae=K?new Set(["Issue with Integration","Issue with Configurations","Technical issue with PSP","Something went wrong"]):new Set(["Issue with Payment Method details"]);return Zs.find(nt=>nt.connector===N&&(nt.subFlow==="Authorize"||nt.flow==="Authorize")&&nt.decision===$&&nt.unifiedMessage!=null&&Ae.has(nt.unifiedMessage)&&!!nt.errorCode&&nt.errorCode.toLowerCase()!=="no error code")}function Tl(N,$){return Zs.find(K=>K.connector===N&&K.errorCode===$&&K.subFlow==="Authorize")??Zs.find(K=>K.connector===N&&K.errorCode===$&&K.flow==="Authorize")??Zs.find(K=>K.connector===N&&K.errorCode===$)}function zm(N){if(!N)return;const $=Qi(N).errorInfo;if(!$.error_code)return;const K=Tl(N,$.error_code);return{connector:N,...(K==null?void 0:K.flow)&&{flow:K.flow},...(K==null?void 0:K.subFlow)&&{subFlow:K.subFlow},errorCode:$.error_code,...$.error_message&&{errorMessage:$.error_message},...$.issuer_error_code&&{issuerErrorCode:$.issuer_error_code},...$.card_network&&{cardNetwork:$.card_network}}}function Um(N,$){if(!N)return;const K=Bm(N,$?"retry":"do_default",Qi(N).penalized);return K!=null&&K.errorCode?{connector:N,...K.flow&&{flow:K.flow},...K.subFlow&&{subFlow:K.subFlow},errorCode:K.errorCode,...K.errorMessage&&{errorMessage:K.errorMessage}}:zm(N)}function ed(N,$=L){if(!N||!$.error_code)return;const K=Tl(N,$.error_code);return{connector:N,...(K==null?void 0:K.flow)&&{flow:K.flow},...(K==null?void 0:K.subFlow)&&{subFlow:K.subFlow},errorCode:$.error_code,...$.error_message&&{errorMessage:$.error_message},...$.issuer_error_code&&{issuerErrorCode:$.issuer_error_code},...$.card_network&&{cardNetwork:$.card_network}}}function Vm(N,$){Rt(null),_r($Ae(N,$))}function Nc(N,$,K="Request failed"){const ee=N instanceof Error?N.message:K;if(IAe(ee)){Vm($,ee);return}Rt(ee)}function w2(){const N=q.co_badged_networks.split(",").map($=>$.trim().toUpperCase()).filter(Boolean);return JSON.stringify({merchant_category_code:q.merchant_category_code.trim(),acquirer_country:q.acquirer_country.trim().toUpperCase(),co_badged_card_data:{co_badged_card_networks:N,issuer_country:q.issuer_country.trim().toUpperCase(),is_regulated:q.is_regulated,regulated_name:q.is_regulated&&q.regulated_name.trim()?q.regulated_name.trim():null,card_type:PH(q.card_type)}})}function Zy(){var ye;if(Mo.length===0)return;const N=Mo[0],$=p[N],K=XS($==null?void 0:$.type),ee=K==="enum_variant"&&((ye=$==null?void 0:$.values)==null?void 0:ye[0])||"";pe([...Z,{key:N,type:K,value:ee,metadataKey:""}])}function Qy(N){pe(Z.filter(($,K)=>K!==N))}function td(N,$,K){pe(Z.map((ee,ye)=>ye===N?{...ee,[$]:K}:ee))}function ev(N,$){pe(Z.map((K,ee)=>ee===N?{...K,metadataKey:$}:K))}function tv(N,$){var Ae;const K=p[$],ee=XS(K==null?void 0:K.type),ye=ee==="enum_variant"&&((Ae=K==null?void 0:K.values)==null?void 0:Ae[0])||"";pe(Z.map((nt,ot)=>ot===N?{...nt,key:$,type:ee,value:ye,metadataKey:""}:nt))}function nv(){ue([...ae,{gateway_name:"",gateway_id:""}])}function rv(N){ue(ae.filter(($,K)=>K!==N))}function Wm(N,$,K){ue(ae.map((ee,ye)=>ye===N?{...ee,[$]:K}:ee))}async function Hm(){var K;if(!a)return Rt("Sign in with a merchant-linked account to continue");if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");qr(!0),Rt(null),_r(null),Re(null);const N=E.eligible_gateways.split(",").map(ee=>ee.trim()).filter(Boolean),$=`explorer_${Date.now()}`;try{const ee=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:$,amount:parseFloat(E.amount)||1e3,currency:E.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,cardSwitchProvider:E.card_brand,cardType:E.payment_method,...E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&{cardProgram:E.card_program}},eligibleGatewayList:N,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:W}),ye=await Fe("/update-gateway-score",{merchantId:a,gateway:ee.decided_gateway,gatewayReferenceId:null,status:Be,paymentId:$,enforceDynamicRoutingFailure:null,...Be==="FAILURE"&&{errorInfo:ed(ee.decided_gateway)}});if(gt&&l&&Be==="FAILURE"&&((K=ye.gsm_info)==null?void 0:K.decision)==="retry"&&ee.fallback_gateways.length>0){const Ae=ee.fallback_gateways[0];await Fe("/update-gateway-score",{merchantId:a,gateway:Ae,gatewayReferenceId:null,status:"CHARGED",paymentId:$,enforceDynamicRoutingFailure:null,isSmartRetry:!0}),ne({...ee,decided_gateway:Ae}),Re($)}else ne(ee),Re($);Do()}catch(ee){Nc(ee,"single")}finally{qr(!1)}}async function av(){if(!a)return Rt("Sign in with a merchant-linked account to continue");qr(!0),Rt(null),_r(null);try{await c.setDebitRoutingEnabled(!0)}catch(N){Nc(N,"debit","Failed to enable debit routing")}finally{qr(!1)}}async function sv(){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(!c.isEnabled)return Vm("debit","Debit routing is disabled.");const N=q.eligible_gateways.split(",").map(K=>K.trim()).filter(Boolean);if(N.length===0)return Rt("Add at least one eligible gateway");qr(!0),Rt(null),_r(null),he(null);const $=`debit_${Date.now()}`;try{const K=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:$,amount:parseFloat(q.amount)||1e3,currency:q.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:"CARD",paymentMethod:"DEBIT",authType:q.auth_type,metadata:w2()},eligibleGatewayList:N,rankingAlgorithm:"NTW_BASED_ROUTING",eliminationEnabled:!1});he(K),Pe($),Do()}catch(K){Nc(K,"debit")}finally{qr(!1)}}async function iv(){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(!Pt){ge(!0),Rt(null);try{await Fe("/gateway-score/reset",{merchantId:a}),Tt([]),Mt({}),Sc.refresh(),Rt(null)}catch(N){Rt(N instanceof Error?N.message:"Failed to flush gateway scores")}finally{ge(!1)}}}async function Gm(N={}){if(!a)return Rt("Sign in with a merchant-linked account to continue");if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");const $=parseInt(A.totalPayments)||0;if($<=0)return Rt("Total Payments must be greater than 0");const K=N.resumeFrom&&N.resumeFrom>0&&N.resumeFrom<$?N.resumeFrom:0,ee=K>0;sn(!0),xr(!1),er.current=!1,pn(null),Zi(Date.now()),Rt(null),_r(null),ee||Tt([]),G.current=!1;const ye=++I.current,Ae=()=>I.current===ye,nt=E.eligible_gateways.split(",").map(ur=>ur.trim()).filter(Boolean),ot=ee?[...Bt.current]:[],Qe=3;let rt=0,In=0,vr=0;const nr={},$n=ur=>{const ti=Math.max(0,Math.min(1,Jy(ur)/100));return nr[ur]===void 0&&(nr[ur]=Math.random()),nr[ur]+=ti,nr[ur]>=1?(nr[ur]-=1,!0):!1},Fr=E.ranking_algorithm==="SR_MULTI_OBJECTIVE",da=Math.max(1,Math.min(yg,Math.round(A.tps)||1)),$o=async ur=>{var oR,lR,cR,uR;const ti=`sim_${Date.now()}_${ur}`,Lo=Yu.current,Wt=Xu.current,kt=Fr?Lo==="ALL"?Wt[ur%Wt.length]:Wt[Lo]??Wt[0]:null,jt=Fr?"CARD":E.payment_method_type,dr=kt?kt.paymentMethod:E.payment_method,fa=kt?kt.cardSwitchProvider:E.card_brand,eo=kt?kt.cardProgram:E.card_program,ha=kt?kt.cardIssuerCountry:void 0,to=Math.min(D.current.min,D.current.max),ov=Math.max(D.current.min,D.current.max),lv=Fr?Math.floor(to+Math.random()*(ov-to+1)):parseFloat(E.amount)||1e3,Mf=await Fe("/decide-gateway",{merchantId:a,paymentInfo:{paymentId:ti,amount:lv,currency:R.current.currency,paymentType:"ORDER_PAYMENT",paymentMethodType:jt,paymentMethod:dr,authType:E.auth_type,cardBrand:fa,cardSwitchProvider:fa,cardType:dr,cardProgram:eo,...ha&&{cardIssuerCountry:ha},channel:Na},eligibleGatewayList:nt,rankingAlgorithm:"SR_BASED_ROUTING",eliminationEnabled:W}),Ym=Mf.decided_gateway,JX=$n(Ym),ZX=Ua(Ym),cv=JX?"CHARGED":ZX==="timeout"?"PENDING_VBV":"FAILURE",iR=zn.current&&cv==="FAILURE"&&Mf.fallback_gateways.length>0&&Math.random()<_Ae;await Fe("/update-gateway-score",{merchantId:a,gateway:Ym,gatewayReferenceId:null,status:cv,paymentId:ti,enforceDynamicRoutingFailure:null,...cv==="FAILURE"&&{errorInfo:Um(Ym,iR)}});let Df,uv;if(iR){Df=Mf.fallback_gateways[0];const Xm=$n(Df),QX=Ua(Df);uv=Xm?"CHARGED":QX==="timeout"?"PENDING_VBV":"FAILURE",await Fe("/update-gateway-score",{merchantId:a,gateway:Df,gatewayReferenceId:null,status:uv,paymentId:ti,enforceDynamicRoutingFailure:null,isSmartRetry:!0,...uv==="FAILURE"&&{errorInfo:Um(Df,!1)}})}const Ar=Mf.multi_objective_info??null;return{paymentId:ti,decidedGateway:Ym,status:cv,timestamp:new Date().toISOString(),routingApproach:Mf.routing_approach??null,gatewayPriorityMap:Mf.gateway_priority_map??null,retryGateway:Df,retryStatus:uv,costSavedBps:(Ar==null?void 0:Ar.costSavedBps)??null,costWon:(Ar==null?void 0:Ar.outcome)==="COST_WON",authWon:(Ar==null?void 0:Ar.outcome)==="AUTH_WON",headAuthRate:((lR=(oR=Ar==null?void 0:Ar.ranked)==null?void 0:oR.find(Xm=>Xm.isSrHead))==null?void 0:lR.authRate)??null,chosenAuthRate:((uR=(cR=Ar==null?void 0:Ar.ranked)==null?void 0:cR.find(Xm=>Xm.isChosen))==null?void 0:uR.authRate)??null,margin:(Ar==null?void 0:Ar.margin)??null,evGapTop2:(Ar==null?void 0:Ar.evGapTop2)??null,amount:lv,currency:R.current.currency,cardNetwork:fa,cardProgram:eo,cardIssuerRegion:ha,cardScenario:kt==null?void 0:kt.label}};try{let ur=K,ti=null;const Lo=kt=>{if(!Ae())return;const jt=Date.now();(kt||jt-In>150)&&(Tt([...ot]),Do(),In=jt),(kt||jt-vr>250)&&(Sc.refresh(),vr=jt)},Wt=async()=>{for(;;){if(G.current||!Ae())return;if(er.current){for(za.current=ot.length,Lo(!0);er.current&&!G.current&&Ae();)await new Promise(jt=>setTimeout(jt,120));continue}const kt=ur;if(kt>=$)return;ur++;try{const jt=await $o(kt);ot.push(jt),rt=0}catch(jt){if(ti=jt,rt++,rt>=Qe){G.current=!0;return}await new Promise(dr=>setTimeout(dr,300))}if(!Ae())return;za.current=ot.length,Lo(!1)}};if(await Promise.all(Array.from({length:da},()=>Wt())),rt>=Qe&&Ae()){Nc(ti,"batch",`Simulation stopped after ${Qe} consecutive errors. Check that the server is running.`);return}}finally{Ae()&&(Tt([...ot]),sn(!1),xr(!1),er.current=!1),Sc.refresh()}}function O(){er.current=!0,xr(!0)}function V(){er.current=!1,xr(!1)}async function le(){if(b)return Rt("Routing key config unavailable. Fix /config/routing-keys and retry.");qr(!0),Rt(null),_r(null),se(null),Se([]),me([]),Ee(0);const N=`rule_decision_${Date.now()}`;try{const $={};Z.forEach(ee=>{ee.key&&(ee.type==="metadata_variant"?$[ee.key]={type:ee.type,value:{key:ee.metadataKey||ee.key,value:ee.value}}:ee.type==="number"?$[ee.key]={type:ee.type,value:parseFloat(ee.value)||0}:ee.value!==""&&($[ee.key]={type:ee.type,value:ee.value}))});const K=await Fe("/routing/evaluate",{created_by:a||"test_user",payment_id:N,fallback_output:ae.filter(ee=>ee.gateway_name),parameters:$});if(se(K),Do(),K.output.type==="volume_split"&&K.output.splits){const ee=parseInt(de)||100,ye=K.output.splits.map(Ae=>({name:Ae.connector.gateway_name,count:Math.round(Ae.split/100*ee),percentage:Ae.split}));Se(ye)}}catch($){Nc($,"rule")}finally{qr(!1)}}async function xe(){if(!a)return Rt("Sign in with a merchant-linked account to continue");qr(!0),Rt(null),_r(null),se(null),Se([]),me([]),Ee(0);const N=parseInt(de)||0;if(N<=0)return qr(!1),Rt("Total Payments must be greater than 0");try{const K=`volume_decision_${Date.now()}`,ee=[],ye=new Map;let Ae=null;const nt=ot=>Array.from(ye.entries()).map(([Qe,rt])=>({name:Qe,count:rt,percentage:Number((rt/Math.max(1,ot)*100).toFixed(1))})).sort((Qe,rt)=>rt.count-Qe.count);for(let ot=0;ot{const nr=ot+vr,$n=`${K}_${nr}`,Fr=await Fe("/routing/evaluate",{created_by:a,payment_id:$n,fallback_output:ae.filter(da=>da.gateway_name),parameters:{}});return{paymentId:$n,response:Fr}}));for(const{paymentId:In,response:vr}of rt){if(vr.output.type!=="volume_split")throw new Error("Active routing algorithm is not a volume split rule.");const nr=PAe(vr);if(!nr)throw new Error("Volume split evaluation did not return a connector.");Ae||(Ae=vr,se(vr)),ye.set(nr,(ye.get(nr)||0)+1),ee.push({paymentId:In,connector:nr})}Ee(ee.length),me([...ee]),Se(nt(ee.length)),Do()}}catch($){Nc($,"volume")}finally{qr(!1)}}const Ve=fe!=null&&fe.gateway_priority_map?Object.entries(fe.gateway_priority_map).sort(([,N],[,$])=>$-N).map(([N,$])=>({name:N,score:Math.round($*1e4)/100})):[],dt=parseInt(A.totalPayments)||0,Le=Oe.length,bt=Pt||Le>0,pt=g.useMemo(()=>E.eligible_gateways.split(",").map(N=>N.trim().toLowerCase()).filter(Boolean),[E.eligible_gateways]),Zt=g.useMemo(()=>{const N=new Set(h),$=new Set(pt);return[...new Set([...d.map(ee=>ee.psp.trim().toLowerCase()).filter(Boolean),...N])].filter(ee=>!$.has(ee)).sort().map(ee=>({name:ee,hasCostModel:N.has(ee)}))},[d,h,pt]),Ut=g.useMemo(()=>{const N=new Set(pt.map(K=>iL[K.toLowerCase()]).filter(Boolean)),$=K=>{for(let ee=0;ee{const ye=iL[K.toLowerCase()];if(ye)return[K,ye];const Ae=$(ee);return N.add(Ae),[K,Ae]}))},[pt]);g.useEffect(()=>{Zs.length===0||pt.length===0||U(N=>{var ee,ye;let $=!1;const K={...N};for(const Ae of pt){if((ye=(ee=N[Ae])==null?void 0:ee.errorInfo)!=null&&ye.error_code)continue;const nt=N[Ae]??Jv(Ae),ot=Bm(Ae,nt.gsmDecision,nt.penalized);ot&&(K[Ae]={...nt,errorInfo:{error_code:ot.errorCode,error_message:ot.errorMessage,issuer_error_code:"",card_network:""}},$=!0)}return $?K:N})},[Zs,pt]);const tr=g.useMemo(()=>En.reduce((N,$)=>(N[$.decidedGateway]||(N[$.decidedGateway]={total:0,success:0,failure:0}),N[$.decidedGateway].total++,$.status==="CHARGED"?N[$.decidedGateway].success++:N[$.decidedGateway].failure++,N),{}),[En]),Vt=g.useMemo(()=>{var Wt;const N=En,$={series:{},evSeries:[],decidedSeries:[],paymentNums:[],yMin:0,yMax:100};if(N.length<2)return $;const K=Xs==="all"?0:Math.max(0,N.length-Xs),ee=N.length-K,ye=Xs==="all"?Math.max(1,ee):Xs,Ae=Math.max(1,Math.ceil(ee/ye)),nt=Object.keys(tr),ot={};nt.forEach(kt=>{ot[kt]={}});const Qe=kt=>{const jt=ot[kt];let dr=0,fa=0;for(const eo in jt)dr+=jt[eo],fa++;return fa>0?dr/fa:null},rt={},In=()=>{let kt=0,jt=0;for(const dr in rt)kt+=rt[dr],jt++;return jt>0?kt/jt:null},vr={};nt.forEach(kt=>{vr[kt]=[]});const nr=[],$n=[];let Fr=null;const da=[];for(let kt=0;kt0&&(jt<$o&&($o=jt),jt>ur&&(ur=jt));$o>ur&&($o=0,ur=100);const ti=Math.max(0,$o-2),Lo=Math.min(100,ur+2);return{series:vr,evSeries:nr,decidedSeries:$n,paymentNums:da,yMin:ti,yMax:Lo}},[En,tr,Xs]),Wn=g.useMemo(()=>{const N=En,$=Object.keys(tr),K={data:[],gateways:$,windowSize:1};if(N.length<2)return K;const ee=50,ye=Xs==="all"?0:Math.max(0,N.length-Xs),Ae=N.length-ye,nt=Xs==="all"?Math.max(1,Ae):Xs,ot=Math.max(1,Math.ceil(Ae/nt)),Qe=[],rt=[];for(let In=0;Inee&&Qe.shift(),InN!=null&&N.includes("HEDGING")?"Hedging":N==="SR_SELECTION_MULTI_OBJECTIVE"?"Cost Based":N==="SR_SELECTION_V3_ROUTING"?"Auth Based":N??"—",Hn=g.useMemo(()=>{const N=new Set,$=new Set,K=new Set,ee=new Set,ye=new Set,Ae=new Set,nt=new Set;for(const Qe of En)N.add(Qe.decidedGateway),Qe.cardNetwork&&$.add(Qe.cardNetwork),Qe.cardProgram&&K.add(Qe.cardProgram),ee.add(cr(Qe.routingApproach)),Qe.status&&ye.add(Qe.status),Qe.retryGateway&&Ae.add(Qe.retryGateway),Qe.retryStatus&&nt.add(Qe.retryStatus);const ot=Qe=>Array.from(Qe).sort();return{gateways:ot(N),networks:ot($),programs:ot(K),routings:ot(ee),outcomes:ot(ye),retryGateways:ot(Ae),retryOutcomes:ot(nt)}},[En]),Gn=g.useMemo(()=>{const N=mt,$=Object.values(N).some(Boolean),K=En.map((ye,Ae)=>({res:ye,idx:Ae}));if(!$)return K;const ee=ye=>{var nt;const Ae=(nt=ye.gatewayPriorityMap)==null?void 0:nt[ye.decidedGateway];return typeof Ae=="number"?(Ae*100).toFixed(1):""};return K.filter(({res:ye})=>{if(N.gateway&&ye.decidedGateway!==N.gateway||N.network&&(ye.cardNetwork??"")!==N.network||N.program&&(ye.cardProgram??"")!==N.program||N.routing&&cr(ye.routingApproach)!==N.routing||N.outcome&&ye.status!==N.outcome||N.retryGateway&&(ye.retryGateway??"")!==N.retryGateway||N.retryOutcome&&(ye.retryStatus??"")!==N.retryOutcome||N.amount&&!Qf(ye.amount,ye.currency).toLowerCase().includes(N.amount.toLowerCase())||N.sr&&!ee(ye).includes(N.sr)||N.evGap&&!(ye.evGapTop2!=null?(ye.evGapTop2*100).toFixed(2):"").includes(N.evGap))return!1;if(N.cost){const Ae=!!ye.costWon&&ye.costSavedBps!=null&&ye.costSavedBps>0&&ye.status==="CHARGED";if(N.cost==="yes"&&!Ae||N.cost==="no"&&Ae)return!1}return!0})},[En,mt]),yr=g.useMemo(()=>{var nt;let N=0,$=0,K=0,ee=0;for(const{res:ot}of Gn)N+=ot.amount,ot.costWon&&ot.costSavedBps!=null&&ot.costSavedBps>0&&ot.status==="CHARGED"&&($+=ot.costSavedBps/1e4*ot.amount),ot.evGapTop2!=null&&(K+=ot.evGapTop2*100,ee+=1);const ye=((nt=Gn[0])==null?void 0:nt.res.currency)||E.currency||"USD",Ae=ee>0?K/ee:null;return{amount:N,savings:$,currency:ye,count:Gn.length,evGapPctAvg:Ae}},[Gn,E.currency]),Cc=Object.values(mt).some(Boolean),Pf=g.useMemo(()=>En.filter(N=>{var $;return($=N.routingApproach)==null?void 0:$.includes("HEDGING")}).length,[En]),Ec=g.useMemo(()=>{let N=0,$="";for(const K of En)K.costWon&&K.costSavedBps!=null&&K.costSavedBps>0&&K.status==="CHARGED"&&(N+=K.costSavedBps/1e4*K.amount,$=K.currency);return{value:N,currency:$}},[En]),Ac=g.useMemo(()=>{let N=0,$=0,K=0,ee=0,ye=0,Ae=0,nt="";for(const rt of En)if(rt.currency&&(nt=rt.currency),rt.costWon){if(ee++,rt.status==="CHARGED"&&(K++,rt.costSavedBps!=null&&rt.costSavedBps>0&&(N+=rt.costSavedBps/1e4*rt.amount)),rt.headAuthRate!=null&&rt.chosenAuthRate!=null&&rt.margin!=null){const In=Math.max(0,rt.headAuthRate-rt.chosenAuthRate);$+=In*rt.amount*rt.margin}}else rt.authWon&&(Ae++,rt.status==="CHARGED"&&ye++);const ot=ee>0?K/ee:null,Qe=Ae>0?ye/Ae:null;return{currency:nt,feeSaved:N,authValueRisked:$,netProfit:N-$,overrideSr:ot,authKeptSr:Qe,overrideTotal:ee,authKeptTotal:Ae}},[En]),wi=g.useMemo(()=>{let N=0,$=0,K=0,ee=0,ye=0,Ae=0,nt=0,ot="";for(const rt of En)Ae++,nt+=rt.amount,rt.currency&&(ot=rt.currency),rt.costWon?(N++,rt.status==="CHARGED"?$++:K++):rt.status==="CHARGED"?ee++:ye++;return{srBased:Ae-N,srSuccess:ee,srFailure:ye,costWon:N,costSuccess:$,costFailure:K,total:Ae,tpv:nt,currency:ot}},[En]),Aa=g.useMemo(()=>{let N=0,$=0,K=0;for(const ee of En){N++;const ye=ee.status==="CHARGED";ye&&$++,(ye||ee.retryStatus==="CHARGED")&&K++}return{total:N,firstAttemptSuccess:$,finalSuccess:K,faar:N>0?$/N:null,nar:N>0?K/N:null}},[En]),Pl=((YP=ce==null?void 0:ce.debit_routing_output)==null?void 0:YP.co_badged_card_networks_info)||[],wt=g.useMemo(()=>new Map(ie.map((N,$)=>[N.name,$])),[ie]),dn=g.useMemo(()=>Object.entries(tr).sort((N,$)=>$[1].total-N[1].total),[tr]),us=g.useMemo(()=>[...ie].sort((N,$)=>$.count-N.count),[ie]),Er=us[0],Qs=te.length,qm=Number.parseInt(de,10)||0,zP=qm>0?Math.min(100,Math.round(ve/qm*100)):0,ei=g.useMemo(()=>{var $;const N=(($=lr.data)==null?void 0:$.results)||[];return N.find(K=>K.payment_id===Qt)||N[0]||null},[(XP=lr.data)==null?void 0:XP.results,Qt]),Mn=g.useMemo(()=>{var $;const N=(($=lr.data)==null?void 0:$.timeline)||[];return N.find(K=>K.id===is)||N[0]||null},[(JP=lr.data)==null?void 0:JP.timeline,is]);g.useEffect(()=>{var $,K;if(Mn!=null&&Mn.id){Un(Mn.id);return}const N=(K=($=lr.data)==null?void 0:$.timeline)==null?void 0:K[0];N!=null&&N.id&&Un(N.id)},[(ZP=lr.data)==null?void 0:ZP.timeline,Mn==null?void 0:Mn.id]);const UP=g.useMemo(()=>{var $;const N=[];for(const K of(($=lr.data)==null?void 0:$.timeline)||[]){const ee=mA(K),ye=N[N.length-1];!ye||ye.phase!==ee?N.push({phase:ee,events:[K]}):ye.events.push(K)}return N},[(QP=lr.data)==null?void 0:QP.timeline]),Io=g.useMemo(()=>mL(Mn),[Mn]),Oa=g.useMemo(()=>{var $;const N=(($=Nr.data)==null?void 0:$.results)||[];return N.find(K=>K.payment_id===os)||N[0]||null},[(eR=Nr.data)==null?void 0:eR.results,os]),Dn=g.useMemo(()=>{var $;const N=(($=Nr.data)==null?void 0:$.timeline)||[];return N.find(K=>K.id===Ju)||N[0]||null},[(tR=Nr.data)==null?void 0:tR.timeline,Ju]);g.useEffect(()=>{var $,K;if(Dn!=null&&Dn.id){Vn(Dn.id);return}const N=(K=($=Nr.data)==null?void 0:$.timeline)==null?void 0:K[0];N!=null&&N.id&&Vn(N.id)},[(nR=Nr.data)==null?void 0:nR.timeline,Dn==null?void 0:Dn.id]);const VP=g.useMemo(()=>{var $;const N=[];for(const K of(($=Nr.data)==null?void 0:$.timeline)||[]){const ee=mA(K),ye=N[N.length-1];!ye||ye.phase!==ee?N.push({phase:ee,events:[K]}):ye.events.push(K)}return N},[(rR=Nr.data)==null?void 0:rR.timeline]),Rf=g.useMemo(()=>mL(Dn),[Dn]);g.useEffect(()=>{const N=ca.current;N&&(N.scrollTop=N.scrollHeight)},[En.length]);function k2(N){Xi(null),Vn(null),Ji("summary"),Rn(N),Un(null),Ca("summary")}function WP(){Rn(null),Un(null),Ca("summary")}function Km(N,$){Rn(null),Un(null),Ca("summary"),Zu($),Xi(N),Vn(null),Ji("summary")}function HP(){Xi(null),Vn(null),Ji("summary")}function GP(N){var ee;const $={...N};Al.length>0&&!Al.includes($.currency)&&($.currency=Al[0]),ls.length>0&&!ls.includes($.payment_method_type)&&($.payment_method_type=ls[0]);const K=Qb(((ee=p[$.payment_method_type.toLowerCase()])==null?void 0:ee.values)||[]);return K.length>0&&!K.includes($.payment_method)&&($.payment_method=K[0]),ua.length>0&&!ua.includes($.auth_type)&&($.auth_type=ua[0]),Js.length>0&&!Js.includes($.card_brand)&&($.card_brand=Js[0]),$}function qP(){const N=tu();P({...GP(N.form),currency:fA}),or(fA),T(N.simulationConfig),Sa(N.multiObjScenario),gn(N.extraConnectors),un(N.removedConnectors),Lr(N.smartRetryEnabled),U($=>Object.fromEntries(Object.entries($).map(([K,ee])=>[K,{...hA,successRate:ee.successRate}]))),Rt(null),_r(null)}function KP(){const N=tu();Tt(N.simulationResults),pn(N.resumableRun),G.current=!0,I.current++,Zi(null),sn(!1),xr(!1),er.current=!1,Mt({}),Rt(null)}function YX(){const N=tu();w==="single"?(P(GP(N.form)),ne(N.result),Re(N.singleRunPaymentId),st(N.singleRunOutcome),ze(N.responseOpen)):w==="batch"?(qP(),KP()):w==="rule"?z($=>$+1):w==="volume"?(Q(N.volumePayments),se(N.ruleResult),Se(N.volumeDistribution),me(N.volumeEvaluationLog),Ee(N.volumeProgress),Cn(N.volumeResponseOpen),Xi(null),Vn(null),Ji("summary"),Zu("Volume Split Decision")):w==="debit"&&(M(N.debitForm),he(N.debitResult),Pe(N.debitPaymentId),Ze(N.debitResponseOpen),Rn(null),Un(null),Ca("summary")),Rt(null),_r(null),qr(!1),ke(!1),Rn(null),Un(null),Ca("summary")}const XX=w==="rule"?"Reset Rule Based Routing":w==="volume"?"Reset Volume Based Routing":w==="debit"?"Reset Debit Routing":"Reset";return i.jsxs("div",{className:"mx-auto max-w-[1500px] space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[i.jsx("div",{children:i.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:i.jsx(Ba,{title:"Decision Simulator"})})}),i.jsx("button",{type:"button",onClick:()=>ft(!0),disabled:Pt||!a||mn,title:"Hard refresh — flush this merchant's SR scores from Redis so the next run starts fresh. Use sparingly.","aria-label":"Hard refresh gateway scores",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-600 disabled:pointer-events-none disabled:opacity-40 dark:text-slate-400 dark:hover:bg-white/5 dark:hover:text-slate-300",children:i.jsx(Es,{size:14,className:mn?"animate-spin":""})})]}),i.jsx(Hs,{open:ut,variant:"danger",title:"Hard refresh SR scores?",description:"This flushes all of this merchant's accumulated SR scores from Redis. The next run starts from fresh scores — there's no undo.",confirmLabel:"Flush scores",cancelLabel:"Cancel",onConfirm:()=>{ft(!1),iv()},onCancel:()=>ft(!1)}),as&&i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>xn(!1)}),i.jsxs("div",{className:"relative w-full max-w-sm rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Add a processor"}),i.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-500 dark:text-[#8a93a6]",children:Zt.length>0?"Pick a processor we can already price, or type any other connector name. It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs.":"Enter a connector name (e.g. braintree, worldpay). It joins the comparison with its own SR slider — scored on its ingested cost model if it has one, otherwise seed costs."}),Zt.length>0&&i.jsxs("div",{className:"mt-4",children:[i.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-slate-500 leading-4",children:"Known processors"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:Zt.map(({name:N,hasCostModel:$})=>{const K=ia.trim().toLowerCase()===N;return i.jsxs("button",{type:"button",onClick:()=>{jr(N),ja(null)},onDoubleClick:Cr,"aria-pressed":K,title:$?`${N} — has a fitted cost model from ingested reports`:`${N} — priced from your contract seed rates`,className:`rounded-full border px-2.5 py-1 text-xs font-medium transition-colors ${K?"border-brand-500/50 bg-brand-500/10 text-brand-600 dark:text-brand-400":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#2a303a] dark:text-[#9ca7ba] dark:hover:bg-white/5"}`,children:[N,$&&i.jsx("span",{className:"ml-1.5 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle","aria-hidden":!0})]},N)})}),i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:[i.jsx("span",{className:"mr-1 inline-block h-1.5 w-1.5 rounded-full bg-emerald-500 align-middle"}),"has a fitted cost model; the rest use contract seed rates."]})]}),i.jsx("input",{autoFocus:!0,type:"text",value:ia,placeholder:Zt.length>0?"Or type a connector name":"Connector name",onChange:N=>{jr(N.target.value.toLowerCase()),oa&&ja(null)},onKeyDown:N=>{N.key==="Enter"?Cr():N.key==="Escape"&&xn(!1)},className:"mt-4 w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),oa&&i.jsx("p",{className:"mt-2 text-xs text-red-600",children:oa}),i.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>xn(!1),children:"Cancel"}),i.jsx(we,{variant:"primary",size:"sm",onClick:Cr,children:"Add processor"})]})]})]}),w==="rule"&&i.jsx(ZW,{merchantId:a,routingKeysConfig:p,routingConfigUnavailable:b,routingKeysLoading:m,resetSignal:B,onRunComplete:Do,onOpenTrace:Km}),w==="batch"&&i.jsxs("div",{className:"flex flex-wrap items-start gap-x-6 gap-y-3 rounded-2xl border border-slate-200 bg-white px-5 py-3 dark:border-[#222226] dark:bg-[#0b0b10]",children:[i.jsx("div",{className:"-mb-1 -mr-2 -mt-2 flex w-full justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:qP,title:"Restore the controls in this panel to their defaults (per-processor success rates are kept). Leaves the results below untouched.",children:[i.jsx(Es,{size:14}),"Reset inputs"]})}),pt.map(N=>{const $=`${N.charAt(0).toUpperCase()+N.slice(1)} success rate`,K=Ut[N]??ni[0],ee=(J[N]??Jv(N)).successRate;return i.jsxs("div",{className:"flex w-[190px] flex-col gap-1.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:K}}),i.jsx(vn,{children:$}),pt.length>1&&!Pt&&i.jsx("button",{type:"button",onClick:()=>jn(N),className:"ml-auto text-slate-500 transition-colors hover:text-red-600",title:`Remove ${N} from the comparison`,"aria-label":`Remove ${N}`,children:i.jsx(Vr,{size:13})})]}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:"number",min:0,max:100,step:1,value:ee,onChange:ye=>yn(N,ye.target.value===""?0:Fm(parseFloat(ye.target.value))),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 pr-7 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"}),i.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-slate-500",children:"%"})]}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:ee,onChange:ye=>yn(N,Fm(Number(ye.target.value))),className:`mt-1 h-1.5 w-full cursor-pointer appearance-none rounded-full outline-none - [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:bg-[color:var(--thumb)] [&::-webkit-slider-thumb]:shadow [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-webkit-slider-thumb]:active:scale-95 - [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-white [&::-moz-range-thumb]:border-solid [&::-moz-range-thumb]:bg-[color:var(--thumb)] [&::-moz-range-thumb]:shadow`,style:{"--thumb":K,background:`linear-gradient(to right, ${K} ${ee}%, rgba(148,163,184,0.45) ${ee}%)`}})]},N)}),El&&i.jsxs("div",{className:"flex w-[100px] flex-col gap-1.5",children:[i.jsx(vn,{children:"Processor"}),i.jsxs("button",{type:"button",onClick:bi,title:"Add another processor to the comparison",className:"flex items-center justify-center gap-1.5 rounded-lg border border-dashed border-slate-300 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-500 transition-colors hover:border-brand-400 hover:text-brand-600 dark:border-[#33333a] dark:bg-[#0d0d13] dark:text-[#8a93a6] dark:hover:border-brand-500 dark:hover:text-brand-400",children:[i.jsx(Qn,{size:14})," Add"]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[175px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:"Pin every multi-objective transaction to one card scenario so the SR Trend shows a single clean per-segment bucket. 'All scenarios' rotates through this currency's scenarios (interleaves dimensions on one chart). Choosing a currency with configured contract rates (e.g. AED) lists those scenarios here. Editable while paused — the rest of the run continues in the new segment on resume.",children:"Card scenario"})}),i.jsxs("select",{value:String(la),disabled:Pt&&!It,onChange:N=>Sa(N.target.value==="ALL"?"ALL":Number(N.target.value)),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:[i.jsx("option",{value:"ALL",children:"All scenarios (rotate)"}),Ns.map((N,$)=>i.jsx("option",{value:$,children:N.label},N.label))]})]}),E.ranking_algorithm==="SR_MULTI_OBJECTIVE"&&i.jsxs("div",{className:"flex w-[130px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:"Settlement currency sent on each transaction. USD exercises the seed-cost fallback; EUR/AUD (and others) let a transaction match the in-house fitted cost models, which are keyed by currency.",children:"Currency"})}),i.jsx("select",{value:_a,disabled:Pt&&!It,onChange:N=>or(N.target.value),className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-800 focus:outline-none focus:border-brand-500 disabled:opacity-50 disabled:cursor-not-allowed dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100",children:Po.map(N=>i.jsx("option",{value:N,children:N},N))})]}),El&&(()=>{const N=Math.max(1,Math.min(yg,A.tps||1));return i.jsxs("div",{className:"flex w-[62px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsx("span",{title:`Transactions kept in flight at once (1–${yg}). Higher = more decide+feedback round-trips per second, so gateway scores move faster. Applies on the next run.`,children:"TPS"})}),i.jsx("input",{type:"number",min:1,max:yg,step:1,value:N,disabled:Pt,onChange:$=>{const K=Math.round(Number($.target.value)),ee=Number.isFinite(K)?Math.max(1,Math.min(yg,K)):1;T(ye=>({...ye,tps:ee}))},className:"w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100"})]})})(),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx("span",{className:"block h-4","aria-hidden":!0}),i.jsxs("label",{className:"flex h-[34px] items-center gap-2 cursor-pointer select-none",title:"When on, ~50% of failed transactions are treated as soft declines (GSM retry) and retried on the next eligible processor (alternate PSP).",children:[i.jsx("input",{type:"checkbox",checked:gt,onChange:N=>Lr(N.target.checked),className:"cursor-pointer rounded border-slate-300 dark:border-slate-600"}),i.jsx("span",{className:"text-xs font-medium text-slate-600 dark:text-slate-300",children:"Retry Enabled"})]})]}),(()=>{const N=cL,$=uL,K="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold tabular-nums text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none";return i.jsxs("div",{className:"flex w-[220px] flex-col gap-1.5",children:[i.jsx(vn,{children:i.jsxs("span",{title:"Per-transaction amount range (multi-objective sim). Each payment's amount is drawn uniformly from this range. Smaller amounts make the flat per-txn fee a bigger share of cost. Applies on the next run.",children:["Amount range (",_a,")"]})}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(yL,{ariaLabel:"Minimum amount",value:A.minAmount,min:N,max:$,onCommit:ee=>T(ye=>({...ye,minAmount:ee})),onSettle:()=>T(ee=>({...ee,minAmount:Math.min(ee.minAmount,ee.maxAmount)})),className:K}),i.jsx("span",{className:"shrink-0 text-xs text-slate-500",children:"–"}),i.jsx(yL,{ariaLabel:"Maximum amount",value:A.maxAmount,min:N,max:$,onCommit:ee=>T(ye=>({...ye,maxAmount:ee})),onSettle:()=>T(ee=>({...ee,maxAmount:Math.max(ee.minAmount,ee.maxAmount)})),className:K})]})]})})(),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 self-end lg:ml-auto",children:[i.jsxs(we,{size:"sm",variant:"ghost",onClick:()=>ss(N=>!N),title:"Show or hide the advanced controls (TPS, Add processor)",children:[i.jsx(ec,{size:14}),El?"Less":"More"]}),Pt?i.jsxs(i.Fragment,{children:[It?i.jsxs(we,{onClick:V,variant:"primary",children:[i.jsx(Os,{size:14,className:"fill-current"})," Resume"]}):i.jsxs(we,{onClick:O,variant:"secondary",children:[i.jsx(GNe,{size:14})," Pause"]}),i.jsxs(we,{onClick:()=>{G.current=!0},variant:"secondary",children:[i.jsx(Vr,{size:14})," Stop"]})]}):Gr?i.jsxs(i.Fragment,{children:[i.jsxs(we,{onClick:b2,disabled:!a||b,variant:"primary",title:`Continue the paused run from transaction ${Gr.nextIndex+1} of ${Gr.total}`,children:[i.jsx(Os,{size:14,className:"fill-current"})," Resume run"]}),i.jsxs(we,{onClick:Of,variant:"secondary",children:[i.jsx(Es,{size:14})," Start over"]})]}):i.jsxs(we,{onClick:()=>Gm(),disabled:!a||b,variant:"primary",children:[i.jsx(Os,{size:14,className:"fill-current"})," Run simulation"]})]})]}),i.jsxs("div",{className:w==="volume"?"grid grid-cols-1 gap-5 xl:grid-cols-[minmax(340px,420px)_minmax(0,1fr)]":w==="batch"?"grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] lg:items-stretch":"grid grid-cols-1 gap-6 lg:grid-cols-2",style:w==="rule"?{display:"none"}:void 0,children:[i.jsxs("div",{className:`flex flex-col gap-6 min-w-0 ${w==="batch"?"lg:min-h-0":"self-start"}`,children:[w==="batch"&&i.jsx(Te,{className:"flex-1",children:i.jsxs(He,{className:"!pt-4 flex flex-1 flex-col",children:[dn.length>0?(()=>{const N=dn,$=N.some(([K])=>{var ee;return(((ee=Vt.series[K])==null?void 0:ee.length)??0)>=2});return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[$&&(()=>{const{series:K,evSeries:ee,decidedSeries:ye,paymentNums:Ae}=Vt,nt=Ae.map((Wt,kt)=>{const jt={step:Wt};N.forEach(([eo])=>{var to;const ha=(to=K[eo])==null?void 0:to[kt];ha!=null&&(jt[eo]=ha)});const dr=ye[kt];dr!=null&&(jt.selectedGw=dr);const fa=ee[kt];return fa!=null&&(jt.evLead=fa),jt}),ot=[];nt.forEach(Wt=>{N.forEach(([kt])=>{const jt=Wt[kt];typeof jt=="number"&&ot.push(jt)})});const Qe=ot.length?Math.min(...ot):0,rt=ot.length?Math.max(...ot):100,In=Math.max(rt-Qe,0),vr=6,nr=Math.max(In,vr),$n=nr<=10?2:nr<=30?5:10,Fr=(Qe+rt)/2,da=Math.max(In/2,vr/2),$o=Math.max(0,Math.floor((Fr-da)/$n)*$n),ur=Math.min(100,Math.ceil((Fr+da)/$n)*$n),ti=ur+Math.min($n,2),Lo=[];for(let Wt=$o;Wt<=ur;Wt+=$n)Lo.push(Wt);return i.jsxs("div",{className:"w-full flex-1 min-h-[380px] flex flex-col",children:[i.jsxs("div",{className:"mb-2 flex items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Success Rate Trend"})}),i.jsx("div",{className:"flex items-center gap-2 shrink-0",children:i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 dark:border-[#1f1f29] p-0.5",children:Ef.map(Wt=>{const kt=Xs===Wt;return i.jsx("button",{type:"button",onClick:()=>v2(Wt),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${kt?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:Wt==="all"?"All":`Last ${Wt}`},String(Wt))})})})]}),i.jsx("div",{className:"min-h-0 flex-1",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:nt,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[$o,ti],ticks:Lo,allowDataOverflow:!0,tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:Wt=>`${Wt}%`}),i.jsx(xa,{content:Wt=>{const{active:kt,payload:jt}=Wt;if(!kt||!jt||!jt.length)return null;const dr=jt[0].payload;if(!dr)return null;const fa=typeof dr.selectedGw=="string"?dr.selectedGw:null,eo=typeof dr.evLead=="number"?dr.evLead:null;return i.jsxs("div",{style:{...Zc,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:190},children:[i.jsxs("p",{style:{...Qc,margin:"0 0 6px"},children:["Payment ",dr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:N.map(([ha])=>{const to=dr[ha];if(typeof to!="number")return null;const ov=Ut[ha]??ni[0],lv=fa===ha;return i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:999,backgroundColor:ov,flexShrink:0}}),i.jsx("span",{style:{color:ov,fontWeight:600},children:ha}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[to.toFixed(1),"%"]}),fa!=null&&i.jsx("span",{style:{fontSize:10,fontWeight:600,width:56,textAlign:"right",color:"#64748b"},children:lv?"★ Selected":""})]},ha)})}),i.jsxs("div",{style:{marginTop:6,paddingTop:6,borderTop:"1px solid rgba(148,163,184,0.25)",display:"flex",alignItems:"center",gap:6},children:[i.jsxs("span",{style:{color:"#64748b"},children:["EV lead",fa!=null?` · ${fa}`:""]}),i.jsx("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums",fontWeight:600},children:eo!=null?`+${(eo*100).toFixed(2)}% of ticket`:"—"})]})]})}}),N.map(([Wt])=>i.jsx(dc,{type:"natural",dataKey:Wt,name:Wt,stroke:Ut[Wt]??ni[0],strokeWidth:2.5,dot:!1,activeDot:!1,isAnimationActive:!1,connectNulls:!0},Wt))]})})}),i.jsx("div",{className:"mt-3 flex flex-wrap items-center justify-center gap-x-5 gap-y-1.5 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:N.map(([Wt])=>i.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Ut[Wt]??ni[0]}}),Wt]},Wt))})]})})(),Wn.data.length>=2&&(()=>{const{data:K,gateways:ee}=Wn,ye=K[K.length-1]??{},Ae=(Qe,rt)=>Ut[Qe]??ni[rt%ni.length],nt=ee.map((Qe,rt)=>({gw:Qe,share:ye[Qe]??0,color:Ae(Qe,rt)})).sort((Qe,rt)=>rt.share-Qe.share),ot=ee.map((Qe,rt)=>({gw:Qe,idx:rt,share:ye[Qe]??0})).sort((Qe,rt)=>rt.share-Qe.share);return i.jsxs("div",{className:"w-full border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[i.jsx("div",{children:i.jsx("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Routing Distribution"})}),i.jsx("div",{className:"flex flex-wrap items-center gap-1.5",children:nt.map(({gw:Qe,share:rt,color:In})=>i.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-slate-50 px-2 py-0.5 text-[11px] font-medium text-slate-600 ring-1 ring-inset ring-slate-200/70 dark:bg-[#12121a] dark:text-slate-300 dark:ring-[#22222c] leading-4",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:In}}),Qe,i.jsxs("span",{className:"tabular-nums font-semibold text-slate-900 dark:text-white",children:[Math.round(rt),"%"]})]},Qe))})]}),i.jsx("div",{className:"h-[200px] w-full",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:K,margin:{top:8,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[0,100],ticks:[0,25,50,75,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:Qe=>`${Qe}%`}),i.jsx(xa,{cursor:{stroke:"#cbd5e1",strokeWidth:1},content:Qe=>{const{active:rt,payload:In}=Qe;if(!rt||!In||!In.length)return null;const vr=In[0].payload;if(!vr)return null;const nr=ee.map(($n,Fr)=>({gw:$n,share:vr[$n]??0,color:Ae($n,Fr)})).sort(($n,Fr)=>Fr.share-$n.share);return i.jsxs("div",{style:{...Zc,padding:"10px 12px",fontSize:12,lineHeight:1.5,minWidth:170},children:[i.jsxs("p",{style:{...Qc,margin:"0 0 6px"},children:["Payment ",vr.step]}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:nr.map(({gw:$n,share:Fr,color:da})=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[i.jsx("span",{style:{width:8,height:8,borderRadius:2,backgroundColor:da,flexShrink:0}}),i.jsx("span",{style:{color:da,fontWeight:600},children:$n}),i.jsxs("span",{style:{marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:[Fr.toFixed(1),"%"]})]},$n))})]})}}),ot.map(({gw:Qe,idx:rt})=>i.jsx(Gu,{type:"monotone",dataKey:Qe,name:Qe,stroke:Ae(Qe,rt),fill:Ae(Qe,rt),fillOpacity:.18,strokeWidth:2.5,isAnimationActive:!1,legendType:"none",activeDot:{r:3.5,strokeWidth:0}},Qe))]})})})]})})()]})})():(()=>{const N=pt;if(N.length===0)return null;const $=N.map(ye=>({gw:ye,sr:(J[ye]??Jv(ye)).successRate})),K=dt||Number(pT),ee=[{step:1},{step:K}];return i.jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[i.jsx("div",{className:"space-y-2",children:$.map(({gw:ye,sr:Ae})=>{const nt=Ut[ye]??ni[0];return i.jsx("div",{className:"space-y-1",children:i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[i.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:nt}}),i.jsx("span",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200 truncate shrink-0 w-14 text-left",children:ye}),i.jsxs("span",{className:`font-bold tabular-nums text-[11px] w-14 text-right ${Ae>=80?"text-emerald-700 dark:text-emerald-400":Ae>=50?"text-amber-700":"text-red-600"} leading-4`,children:[Ae,"% SR"]}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 text-[11px] leading-4",children:"·"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400 tabular-nums text-[11px] w-16 text-right leading-4",children:"0% routed"})]})},ye)})}),i.jsx("div",{className:"w-full flex-1 min-h-[300px]",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(AW,{data:ee,margin:{top:16,right:8,bottom:8,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"step",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:28}),i.jsx(Qa,{domain:[0,100],tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},width:44,tickFormatter:ye=>`${ye}%`})]})})}),i.jsx("p",{className:"pt-1 text-center text-[11px] text-slate-500 leading-4",children:"Projected from configured success rates · run a simulation to see live routing."})]})})(),Object.keys(tr).length===1&&pt.length>1&&i.jsx("p",{className:"text-[11px] text-slate-500 pt-1 mx-auto max-w-[57ch] leading-4",children:'SR routing concentrates traffic on the highest-scoring gateway. Run with a "Gateway Down" scenario to see score drop and traffic shift to the next gateway.'})]})}),w!=="batch"&&i.jsxs(Te,{className:"!rounded-2xl",children:[i.jsx(yt,{className:"!px-5 !py-4",children:i.jsxs("div",{children:[i.jsx(vn,{children:w==="rule"?"Rule Evaluation":w==="volume"?"Volume Split":w==="debit"?"Network Routing":"Simulation"}),i.jsx("h2",{className:"mt-1.5 font-medium text-slate-800 dark:text-white",children:w==="rule"?"Rule Evaluation Parameters":w==="volume"?"Volume Split Configuration":w==="debit"?"Debit Routing Parameters":"Auth-Rate Based Routing Parameters"})]})}),i.jsxs(He,{className:"space-y-3 !px-5 !py-4",children:[!a&&i.jsx("p",{className:"text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded px-3 py-2",children:"Set a merchant ID in the top bar first."}),w!=="volume"&&w!=="debit"&&m&&i.jsx("p",{className:"text-xs text-slate-600 bg-slate-50 border border-slate-200 rounded px-3 py-2",children:"Loading routing config from backend..."}),w!=="volume"&&w!=="debit"&&b&&i.jsx(vt,{error:"Routing config unavailable from /config/routing-keys. Parameter forms are disabled."}),w==="rule"?i.jsxs(i.Fragment,{children:[m&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),b&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Evaluation is disabled."}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Parameters"})}),i.jsx("div",{className:"space-y-1.5",children:Z.map((N,$)=>{var K;return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("select",{value:N.key,onChange:ee=>tv($,ee.target.value),disabled:b||m,className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none cursor-pointer appearance-none",children:Mo.length===0?i.jsx("option",{value:"",children:"No keys available"}):Mo.map(ee=>i.jsx("option",{value:ee,children:ee},ee))}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2.5 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"="}),N.type==="enum_variant"?i.jsx("select",{value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none cursor-pointer appearance-none",children:(((K=p[N.key])==null?void 0:K.values)||[]).map(ee=>i.jsx("option",{value:ee,children:ee},ee))}):N.type==="number"?i.jsx("input",{type:"number",placeholder:"Value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):N.type!=="metadata_variant"?i.jsx("input",{placeholder:"Value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none"}):i.jsx("span",{className:"flex-1 px-3 py-2.5 text-sm text-slate-500 dark:text-[#78849a] italic",children:"see below"}),i.jsx("button",{onClick:()=>Qy($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]}),N.type==="metadata_variant"&&i.jsxs("div",{className:"ml-3 flex gap-1.5",children:[i.jsx("input",{placeholder:"Metadata key",value:N.metadataKey||"",onChange:ee=>ev($,ee.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"}),i.jsx("input",{placeholder:"Metadata value",value:N.value,onChange:ee=>td($,"value",ee.target.value),className:"flex-1 rounded-lg border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] px-3 py-2 text-sm text-slate-600 dark:text-[#a8b4c8] focus:outline-none focus:border-brand-500"})]})]},$)})}),i.jsxs("button",{onClick:Zy,disabled:b||m||Mo.length===0,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[i.jsx(Qn,{size:12})," Add Parameter"]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-slate-500 dark:text-[#78849a] leading-4",children:"Fallback Gateways"}),i.jsx("div",{className:"space-y-1.5",children:ae.map((N,$)=>i.jsxs("div",{className:"group flex items-center gap-0 rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0c0f17] overflow-hidden transition-shadow hover:shadow-sm",children:[i.jsx("span",{className:"shrink-0 flex items-center justify-center w-8 self-stretch bg-slate-50 dark:bg-[#10131c] border-r border-slate-100 dark:border-[#1e2330] text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:$+1}),i.jsx("input",{placeholder:"gateway name",value:N.gateway_name,onChange:K=>Wm($,"gateway_name",K.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm font-medium text-slate-700 dark:text-[#c8d0de] focus:outline-none"}),i.jsx("span",{className:"shrink-0 border-x border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-2 py-2.5 text-[11px] font-bold text-slate-500 dark:text-[#3a4258] select-none leading-4",children:"/"}),i.jsx("input",{placeholder:"gateway id (optional)",value:N.gateway_id||"",onChange:K=>Wm($,"gateway_id",K.target.value),className:"flex-1 min-w-0 bg-transparent px-3 py-2.5 text-sm text-slate-500 dark:text-[#8090a8] focus:outline-none"}),i.jsx("button",{onClick:()=>rv($),className:"shrink-0 px-2.5 py-2.5 text-slate-500 dark:text-[#78849a] hover:text-red-600 dark:hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",children:i.jsx(wn,{size:13})})]},$))}),i.jsxs("button",{onClick:nv,className:"flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium text-brand-600 hover:bg-brand-50 dark:hover:bg-brand-500/10 transition-colors",children:[i.jsx(Qn,{size:12})," Add Gateway"]})]})]}):w==="debit"?i.jsxs("div",{className:"space-y-4",children:[c.isLoading?i.jsxs("p",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-xs text-slate-600 dark:border-[#222226] dark:bg-[#10131a] dark:text-[#aab5c8]",children:[i.jsx(at,{size:14}),"Loading debit routing flag..."]}):c.isEnabled?i.jsx($a,{tone:"success",children:"Debit routing is enabled. This tab will call /decide-gateway with NTW_BASED_ROUTING."}):i.jsx($a,{tone:"warning",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsx("span",{children:"Debit routing is disabled."}),i.jsx(we,{size:"sm",variant:"secondary",onClick:av,disabled:!a||Jt,children:"Enable Debit Routing"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Amount"}),i.jsx("input",{value:q.amount,onChange:N=>cs("amount",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Currency"}),i.jsx("input",{value:q.currency,onChange:N=>cs("currency",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Auth Type"}),i.jsxs("select",{value:q.auth_type,onChange:N=>cs("auth_type",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"THREE_DS",children:"THREE_DS"}),i.jsx("option",{value:"NO_THREE_DS",children:"NO_THREE_DS"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Card Type"}),i.jsxs("select",{value:q.card_type,onChange:N=>cs("card_type",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"debit",children:"Debit"}),i.jsx("option",{value:"credit",children:"Credit"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Eligible Gateways (comma-separated)"}),i.jsx("input",{value:q.eligible_gateways,onChange:N=>cs("eligible_gateways",N.target.value),placeholder:"stripe, adyen",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Merchant Category Code"}),i.jsx("input",{value:q.merchant_category_code,onChange:N=>cs("merchant_category_code",N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Acquirer Country"}),i.jsx("input",{value:q.acquirer_country,onChange:N=>cs("acquirer_country",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Co-badged Networks (comma-separated)"}),i.jsx("input",{value:q.co_badged_networks,onChange:N=>cs("co_badged_networks",N.target.value),placeholder:"VISA, NYCE, PULSE, STAR",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Issuer Country"}),i.jsx("input",{value:q.issuer_country,onChange:N=>cs("issuer_country",N.target.value.toUpperCase()),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-6",children:[i.jsx("input",{id:"debit-is-regulated",type:"checkbox",checked:q.is_regulated,onChange:N=>cs("is_regulated",N.target.checked),className:"h-4 w-4 rounded border-slate-300"}),i.jsx("label",{htmlFor:"debit-is-regulated",className:"text-sm text-slate-600 dark:text-[#aab5c8]",children:"Regulated debit card"})]})]}),q.is_regulated&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Regulated Name"}),i.jsx("input",{value:q.regulated_name,onChange:N=>cs("regulated_name",N.target.value),placeholder:"GOVERNMENT NON-EXEMPT INTERCHANGE FEE (WITH FRAUD)",className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500"})]}),i.jsx("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:"The request sends debit details inside paymentInfo.metadata because the backend debit router parses co-badged card data from metadata."})]}):w==="volume"?i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"mb-2 block text-xs font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#7f8ca3]",children:"Evaluation count"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-xl border border-slate-200 bg-white px-3 py-2 dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("input",{type:"number",min:"1",inputMode:"numeric",value:de,onChange:N=>Q(N.target.value),className:"input-bare min-w-0 flex-1 text-xl font-semibold text-slate-950 outline-none dark:text-white"}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-500 dark:bg-[#1d2633] dark:text-[#91a0b8]",children:"runs"})]}),i.jsx(we,{onClick:xe,disabled:Jt||!a,className:"shrink-0 dark:bg-sky-500 dark:text-white dark:hover:bg-sky-400",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(rf,{size:14})," Run"]})})]}),i.jsxs("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#8f9bb0]",children:["Samples the active volume split strategy through ",i.jsx("code",{children:"/routing/evaluate"})," and records each decision trace."]})]}),i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 dark:border-[#283241] dark:bg-[#0b111a]",children:[i.jsxs("div",{className:"flex items-center justify-between text-xs",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Target"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:qm||"--"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-[#77849a]",children:"Completed"}),i.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:Jt?ve:Qs||"--"})]})]}),i.jsx("div",{className:"mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:`h-full rounded-full transition-[width] ${Jt?"bg-sky-500":"bg-slate-400 dark:bg-[#3a4a5c]"}`,style:{width:`${Jt?zP:Qs&&qm?Math.min(100,Math.round(Qs/qm*100)):0}%`}})}),Jt&&i.jsxs("p",{className:"mt-1 text-right text-[11px] font-semibold text-sky-700 dark:text-sky-300 leading-4",children:[zP,"%"]})]})]}):i.jsx(i.Fragment,{children:w==="single"&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs font-medium text-slate-600 mb-1",children:"Transaction Outcome"}),i.jsxs("select",{value:Be,onChange:N=>st(N.target.value),className:"w-full border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-brand-500",children:[i.jsx("option",{value:"CHARGED",children:"Success (CHARGED)"}),i.jsx("option",{value:"FAILURE",children:"Failure (FAILURE)"})]}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 max-w-[57ch]",children:"After deciding the gateway, single test will post feedback with this outcome so the payment appears in Decision Audit."})]}),Be==="FAILURE"&&i.jsx(oA,{info:L,onChange:Tf,rules:Zs})]})})]}),i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#2a303a] px-5 py-4 space-y-3",children:[i.jsx(vt,{error:Cf}),w==="rule"?i.jsx(we,{onClick:le,disabled:Jt||b,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Evaluating…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Evaluate Rules"]})}):w==="debit"?i.jsx(we,{onClick:sv,disabled:Jt||!a||c.isLoading||!c.isEnabled,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running Debit Routing…"]}):i.jsxs(i.Fragment,{children:[i.jsx(_o,{size:14})," Run Debit Routing"]})}):w==="volume"?null:i.jsxs(i.Fragment,{children:[Sh.SMART_RETRY_IN_SIMULATION,i.jsx(we,{onClick:Hm,disabled:Jt||!a||b,className:"w-full justify-center",children:Jt?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Running…"]}):i.jsxs(i.Fragment,{children:[i.jsx(Os,{size:14})," Run Single Transaction"]})})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:YX,children:[i.jsx(Es,{size:14}),XX]})})]})]})]}),i.jsxs("div",{className:`min-w-0 flex flex-col gap-4 ${w==="batch"?"lg:min-h-0":""}`,children:[w==="batch"&&i.jsxs("div",{className:"flex flex-col justify-center gap-5 rounded-2xl border border-slate-200 bg-white px-5 py-4 dark:border-[#222226] dark:bg-[#0b0b10]",children:[bt&&i.jsx("div",{className:"-mb-3 -mr-2 -mt-2 flex justify-end",children:i.jsxs(we,{size:"sm",variant:"ghost",onClick:KP,title:"Clear these stats, the charts and the transaction log. Leaves the controls above untouched.",children:[i.jsx(wn,{size:14}),"Clear"]})}),(()=>{const N=Ac.currency||E.currency||"USD";return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",title:"First Attempt Auth Rate — share of decisions charged on the first attempt (first-attempt charges ÷ total decisions).",children:[i.jsx(Wf,{label:"First-attempt auth rate",abbr:"FAAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Aa.faar!=null?`${(Aa.faar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Net Auth Rate — share of decisions charged in the end, counting a successful smart retry (final charges ÷ total decisions). NAR ≥ FAAR when retries recover failures.",children:[i.jsx(Wf,{label:"Net auth rate",abbr:"NAR"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Aa.nar!=null?`${(Aa.nar*100).toFixed(2)}%`:"—"})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",title:"Realized fee saved on charged cost-override decisions: Σ (costSavedBps ÷ 10000) × amount.",children:[i.jsx(Wf,{label:"Realized cost savings"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:Qf(Ec.value,Ec.currency||N)})]})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"Total decisions"}),i.jsx("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:wi.total.toLocaleString()})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"SR-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[wi.srBased.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:wi.srSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:wi.srFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]}),i.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[i.jsx(Wf,{label:"Cost-based decisions"}),i.jsxs("p",{className:"py-1.5 text-lg font-semibold leading-snug tabular-nums text-sky-700 dark:text-sky-400",children:[wi.costWon.toLocaleString(),i.jsxs("span",{className:"ml-1.5 text-xs font-medium tabular-nums",title:"Charged / Failed",children:[i.jsx("span",{className:"text-slate-500",children:"("}),i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:wi.costSuccess.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:" / "}),i.jsx("span",{className:"text-red-600 dark:text-red-400",children:wi.costFailure.toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:")"})]})]})]})]})]})})()]}),w==="debit"?ce?i.jsx(i.Fragment,{children:i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Debit Routing Result"}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#9ca7ba]",children:["Real response from ",i.jsx("code",{children:"/decide-gateway"})," using ",i.jsx("code",{children:"NTW_BASED_ROUTING"}),"."]})]}),be?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>k2(be),children:"View audit"}):null]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"routing_approach"}),i.jsx("p",{className:"mt-1 font-semibold text-slate-900 dark:text-white",children:ce.routing_approach})]}),i.jsxs("div",{className:"rounded-lg bg-slate-50 p-3 dark:bg-[#111114]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"request payment_id"}),i.jsx("p",{className:"mt-1 font-mono text-xs text-slate-900 dark:text-white",children:be})]})]}),ce.debit_routing_output?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Issuer country"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.issuer_country})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Regulated"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.is_regulated?"Yes":"No"})]}),i.jsxs("div",{className:"rounded-lg border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsx("p",{className:"text-xs text-slate-500",children:"Card type"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:ce.debit_routing_output.card_type})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Ranked Debit Networks"})}),i.jsx(He,{className:"p-0",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs text-slate-500 dark:bg-[#111114]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-4 py-2 text-left",children:"Rank"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"Network"}),i.jsx("th",{className:"px-4 py-2 text-right",children:"Saving %"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#222226]",children:Pl.map((N,$)=>i.jsxs("tr",{className:"hover:bg-slate-50 dark:hover:bg-[#111114]",children:[i.jsxs("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:["#",$+1]}),i.jsx("td",{className:"px-4 py-2 font-medium text-slate-900 dark:text-white",children:N.network}),i.jsxs("td",{className:"px-4 py-2 text-right text-slate-700 dark:text-[#d8e1ef]",children:[N.saving_percentage.toFixed(2),"%"]})]},`${N.network}-${$}`))})]})})]})]}):i.jsx(vt,{error:"Debit routing output was not returned. Check the raw response for backend details."}),i.jsxs("div",{className:"border-t border-slate-200 pt-3 dark:border-[#222226]",children:[i.jsxs("button",{type:"button",onClick:()=>Ze(!Je),className:"flex items-center gap-1 text-xs font-medium text-slate-500 hover:text-slate-700",children:[Je?i.jsx(hs,{size:14}):i.jsx(ln,{size:14}),"Raw response"]}),Je&&i.jsx("pre",{className:"mt-3 max-h-96 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-4 font-mono text-xs leading-6 text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:JSON.stringify(ce,null,2)})]})]})]})}):i.jsx(Te,{children:i.jsxs(He,{className:"py-12 text-center",children:[i.jsx(_o,{size:32,className:"mx-auto mb-3 text-slate-500"}),i.jsx("p",{className:"text-sm text-slate-500 mx-auto max-w-[57ch]",children:'Enable debit routing, keep the default debit metadata, and click "Run Debit Routing" to inspect ranked networks.'})]})}):w==="volume"?ie.length>0?i.jsxs("div",{className:"space-y-5",children:[i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white shadow-[0_18px_60px_-46px_rgba(15,23,42,0.2)] dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Distribution analysis"}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Qs})," evaluations"]}),Er&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-300 dark:text-[#3a4455]",children:"·"}),i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8f9bb0]",children:["leader ",i.jsx("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:Er.name})," at"," ",i.jsxs("span",{className:"font-semibold text-slate-700 dark:text-[#c5d0e0]",children:[Er.percentage,"%"]})]})]})]})]}),F!=null&&F.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>Km(F.payment_id,"Volume Split Decision"),children:"View first trace"}):null]}),i.jsxs("div",{className:"space-y-4 px-5 py-4",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between text-xs text-slate-500 dark:text-[#8f9bb0]",children:[i.jsx("span",{children:"Observed percentage split"}),i.jsxs("span",{children:[us.length," gateways"]})]}),i.jsx("div",{className:"mt-2 flex h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#1d2633]",children:us.map(N=>i.jsx("div",{className:"h-full transition-all duration-300",style:{width:`${N.percentage}%`,backgroundColor:Hf[(wt.get(N.name)??0)%Hf.length]},title:`${N.name}: ${N.percentage}%`},N.name))})]}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:us.map(N=>{const $=Hf[(wt.get(N.name)??0)%Hf.length];return i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-3 dark:border-[#263141] dark:bg-[#0c121c]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:$}}),i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:N.name})]}),i.jsxs("p",{className:"shrink-0 text-sm font-semibold text-slate-900 dark:text-white",children:[N.percentage,"%"]})]}),i.jsxs("p",{className:"mt-0.5 pl-[18px] text-xs text-slate-500 dark:text-[#8290a5]",children:[N.count," payments"]}),i.jsx("div",{className:"mt-2.5 h-1 overflow-hidden rounded-full bg-slate-200 dark:bg-[#1d2633]",children:i.jsx("div",{className:"h-full rounded-full",style:{width:`${N.percentage}%`,backgroundColor:$}})})]},N.name)})})]})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-5 py-4 dark:border-[#263141]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Evaluation sequence"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8f9bb0]",children:"Click any row to inspect the captured decision trace."})]}),i.jsx("div",{className:"max-h-[360px] overflow-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"sticky top-0 bg-slate-50 text-xs text-slate-500 dark:bg-[#0b111a] dark:text-[#8290a5]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"w-16 px-4 py-2 text-left",children:"#"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"payment_id"}),i.jsx("th",{className:"px-4 py-2 text-left",children:"gateway"}),i.jsx("th",{className:"w-24 px-4 py-2 text-right",children:"trace"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#263141]",children:te.slice(-200).map((N,$)=>{const K=Math.max(0,te.length-200)+$;return i.jsxs("tr",{className:"cursor-pointer transition hover:bg-slate-50 dark:hover:bg-[#151d2a]",onClick:()=>Km(N.paymentId,"Volume Split Decision"),children:[i.jsx("td",{className:"px-4 py-2 font-mono text-xs text-slate-500",children:K+1}),i.jsx("td",{className:"max-w-[260px] truncate px-4 py-2 font-mono text-xs text-slate-600 dark:text-[#aab5c8]",children:N.paymentId}),i.jsx("td",{className:"px-4 py-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:Hf[(wt.get(N.connector)??0)%Hf.length]}}),i.jsx("span",{className:"font-medium text-slate-900 dark:text-white",children:N.connector})]})}),i.jsx("td",{className:"px-4 py-2 text-right",children:i.jsx("button",{type:"button",className:"text-xs font-semibold text-brand-600 hover:text-brand-700 dark:text-sky-300",onClick:ee=>{ee.stopPropagation(),Km(N.paymentId,"Volume Split Decision")},children:"Open"})})]},N.paymentId)})})]})})]}),i.jsxs("section",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#283241] dark:bg-[#101722]",children:[i.jsxs("button",{onClick:()=>Cn(N=>!N),className:"flex w-full items-center justify-between px-5 py-4 text-sm font-semibold text-slate-900 dark:text-white",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API response"]}),St?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]}),St&&F&&i.jsx("pre",{className:"max-h-96 overflow-auto border-t border-slate-200 bg-slate-50 p-4 text-xs text-slate-700 dark:border-[#263141] dark:bg-[#070b12] dark:text-[#b7c2d6]",children:JSON.stringify(F,null,2)})]})]}):i.jsx("section",{className:"flex min-h-[360px] items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50/70 px-8 py-12 text-center dark:border-[#2a303a] dark:bg-[#101722]/70",children:i.jsxs("div",{className:"max-w-sm",children:[i.jsx(rf,{size:30,className:"mx-auto text-slate-500 dark:text-[#78849a]"}),i.jsx("h3",{className:"mt-4 text-sm font-semibold text-slate-900 dark:text-white",children:"No volume results yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:"Set the run size and run the volume split check to view distribution and traces."})]})}):w==="rule"?F?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Status"}),i.jsx("p",{className:"text-2xl font-bold text-slate-900",children:F.status}),i.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:["output_type: ",F.output.type]})]}),F.payment_id?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>Km(F.payment_id,"Rule Evaluation Decision"),children:"View decision trace"}):null]}),F.output.type==="single"&&F.output.connector&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-1",children:"Selected gateway_name"}),i.jsx("p",{className:"text-lg font-semibold",children:F.output.connector.gateway_name}),F.output.connector.gateway_id&&i.jsxs("p",{className:"text-xs text-slate-500",children:["gateway_id: ",F.output.connector.gateway_id]})]}),F.output.type==="priority"&&F.output.connectors&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Priority gateway_name list"}),i.jsx("div",{className:"space-y-1",children:F.output.connectors.map((N,$)=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[i.jsx("span",{className:"w-5 h-5 rounded-full bg-brand-500 text-white text-xs flex items-center justify-center",children:$+1}),i.jsx("span",{className:"font-medium",children:N.gateway_name}),N.gateway_id&&i.jsxs("span",{className:"text-xs text-slate-500",children:["(",N.gateway_id,")"]})]},$))})]}),F.output.type==="volume_split"&&i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsx("p",{className:"text-xs text-slate-500 mb-2",children:"Volume Split Result"}),i.jsx("p",{className:"text-sm text-slate-600",children:"See Volume Split tab for detailed visualization."})]})]})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ze(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),_e?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),_e&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(F,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm",children:'Configure rule parameters and click "Evaluate Rules" to test routing.'})]})}):w==="batch"?i.jsxs(i.Fragment,{children:[bt&&i.jsx(Te,{className:"lg:shrink-0",children:i.jsxs(yt,{className:"flex flex-row items-start justify-between gap-3",children:[i.jsx("div",{children:i.jsx("h3",{className:"text-[14px] font-semibold text-slate-500 dark:text-slate-400 leading-5",children:"Gateway Selection Summary"})}),i.jsxs("span",{className:"text-[13px] tabular-nums flex items-center gap-1.5 shrink-0 leading-[18px]",children:[i.jsxs("span",{className:"text-slate-500",children:[Le," / ",dt||0]}),Le>0&&Pf>0&&i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"}),i.jsxs("span",{className:"font-medium text-brand-600 dark:text-sky-400",children:[Math.round(Pf/Le*100),"% hedged"]})]})]})]})}),i.jsxs(Te,{className:"lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3 lg:shrink-0",children:[i.jsx("span",{className:"flex items-center gap-2.5",children:i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Autopilot Actions"})}),_c.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 tabular-nums",children:[_c.length," actions"]})]}),i.jsx(He,{className:"p-0 lg:flex-1 lg:min-h-0 lg:flex lg:flex-col",children:Ro==null?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No events yet"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400 mx-auto max-w-[57ch]",children:"Start a simulation — leader changes and auth-band crossings appear here as gateway scores shift."})]}):Sc.isUnavailable?i.jsxs("div",{className:"py-12 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Events unavailable"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-slate-400",children:"The analytics pipeline (Kafka → ClickHouse) is offline for this environment."})]}):i.jsxs("div",{className:"max-h-[240px] overflow-y-auto lg:max-h-[360px] lg:flex-1 lg:min-h-0 divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[x2.map(N=>{if(N.kind==="leaderFlap"){const Ae=Rm.has(N.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Ae?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(I0,{size:16,className:"text-sky-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[N.latest.gateway,N.latest.score!=null?` (${(N.latest.score*100).toFixed(1)}%)`:""," now leads on success rate",N.latest.previous_gateway?` over ${N.latest.previous_gateway}${N.latest.previous_score!=null?` (${(N.latest.previous_score*100).toFixed(1)}%)`:""}`:"",i.jsxs("span",{className:"ml-1.5 rounded-full bg-sky-100 px-1.5 py-0.5 text-[11px] font-medium text-sky-700 dark:bg-sky-900/30 dark:text-sky-300 leading-4",children:["×",N.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:["now routing to the best PSP · ",Zv(N.latest.bucket_ms)]})]})]},N.latest.id)}if(N.kind==="flap"){const Ae=Rm.has(N.latest.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${Ae?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Es,{size:16,className:"text-amber-700"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:[N.gateway," fluctuating at the cost-savings cutoff",i.jsxs("span",{className:"ml-1.5 rounded-full bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-300 leading-4",children:["×",N.crossings]})]}),i.jsxs("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:["now ",N.inBand?"routed to save cost":"using top performer only"," · ",Zv(N.latest.bucket_ms)]})]})]},N.latest.id)}const $=N.event,K=bAe[$.event_type],ee=(K==null?void 0:K.icon)??I0,ye=Rm.has($.id);return i.jsxs("div",{className:`flex items-start gap-2.5 px-4 py-2.5 transition-colors duration-1000 ${ye?"bg-emerald-200 dark:bg-emerald-500/25":"bg-transparent"}`,children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(ee,{size:16,className:(K==null?void 0:K.iconClass)??"text-slate-500"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:hT($)}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-600 dark:text-slate-400 leading-[18px]",children:Zv($.bucket_ms)})]})]},$.id)}),i.jsxs("div",{className:"flex items-start gap-2.5 px-4 py-2.5 bg-gradient-to-r from-sky-50 via-transparent to-violet-50 dark:from-sky-500/10 dark:to-violet-500/10",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(zNe,{size:16,className:"text-violet-600"})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-[15px] text-slate-700 dark:text-slate-200 leading-[22px]",children:["Started tracking"," ",i.jsx("span",{className:"font-semibold text-emerald-700 dark:text-emerald-400",children:"SR"})," ","and"," ",i.jsx("span",{className:"font-semibold text-violet-600 dark:text-violet-400",children:"Cost"})," ","for"," ",pt.map((N,$)=>i.jsxs("span",{children:[i.jsx("span",{className:"font-semibold capitalize",style:{color:Ut[N]??ni[0]},children:N}),$y2(N=>!N),className:"flex items-center gap-2 rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#0c0f17] px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-[#131720] transition-colors w-full",children:[i.jsx("span",{className:`transition-transform ${Yy?"rotate-90":""}`,children:"▶"}),"Penalty Classification Guide"]}),Yy&&i.jsx(QW,{merchantId:a,gsmRules:Zs,decideParams:{amount:E.amount,currency:E.currency,paymentMethodType:E.payment_method_type,paymentMethod:E.payment_method,authType:E.auth_type,cardBrand:E.card_brand,rankingAlgorithm:"SR_BASED_ROUTING",eligibleGateways:E.eligible_gateways}})]})]}):fe?i.jsxs(i.Fragment,{children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wide mb-1",children:"Decided Gateway"}),i.jsx("p",{className:"text-3xl font-bold text-slate-900",children:fe.decided_gateway})]}),i.jsxs("div",{className:"text-right space-y-2",children:[i.jsx("div",{children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${yAe(fe.routing_approach)}`,children:fe.routing_approach})}),Ce?i.jsx(we,{size:"sm",variant:"secondary",onClick:()=>k2(Ce),children:"View audit"}):null,fe.is_scheduled_outage&&i.jsx(Me,{variant:"red",children:"Scheduled Outage"}),Ce?i.jsx(Me,{variant:Be==="CHARGED"?"green":"red",children:Be}):null,fe.latency!=null&&i.jsxs("p",{className:"text-xs text-slate-500",children:[fe.latency,"ms"]})]})]}),Ce?i.jsxs("div",{className:"mb-3 rounded-[18px] border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Payment ID"}),i.jsx("p",{className:"mt-2 font-mono text-sm text-slate-900 dark:text-white",children:Ce}),i.jsxs("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:["Feedback recorded as ",Be,". Open audit to inspect the full decide and update flow."]})]}):null,fe.routing_dimension&&i.jsxs("div",{className:"flex gap-4 text-sm text-slate-600 border-t border-slate-200 dark:border-[#1c1c24] pt-3",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Dimension"}),i.jsx("p",{className:"font-medium",children:fe.routing_dimension})]}),fe.routing_dimension_level&&i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Level"}),i.jsx("p",{className:"font-medium",children:fe.routing_dimension_level})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-xs text-slate-500",children:"Reset"}),i.jsx("p",{className:"font-medium",children:fe.reset_approach})]})]})]})}),fe.multi_objective_info&&i.jsx(FAe,{info:fe.multi_objective_info}),Ve.length>0&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800",children:"Gateway Scores"}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:Hm,className:"text-xs",children:[i.jsx(Es,{size:12})," Refresh"]})]})}),i.jsx(He,{children:i.jsx(tl,{width:"100%",height:Ve.length*40+20,children:i.jsxs(vx,{data:Ve,layout:"vertical",margin:{left:10,right:30},children:[i.jsx(ys,{type:"number",domain:[0,100],tickFormatter:N=>`${N}%`,tick:{fontSize:11,fill:"#66667a"},axisLine:{stroke:"#1c1c24"},tickLine:!1}),i.jsx(Qa,{type:"category",dataKey:"name",tick:{fontSize:12,fill:"#8e8ea0"},width:60,axisLine:!1,tickLine:!1}),i.jsx(xa,{formatter:N=>`${N}%`,contentStyle:Zc,labelStyle:Qc,itemStyle:_h}),i.jsx(pi,{dataKey:"score",radius:[0,4,4,0],children:Ve.map((N,$)=>i.jsx(vy,{fill:N.name===fe.decided_gateway?"#0069ED":N.score<30?"#ef4444":N.score<60?"#f59e0b":"#10b981"},$))})]})})})]}),fe.filter_wise_gateways&&i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ke(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:["Filter Chain",re?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),re&&i.jsx(He,{className:"space-y-2",children:Object.entries(fe.filter_wise_gateways).map(([N,$])=>i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"text-xs font-mono bg-slate-100 dark:bg-[#111118] text-slate-600 rounded-md px-2 py-0.5 mt-0.5 shrink-0 border border-slate-200 dark:border-[#1c1c24]",children:N}),i.jsx("div",{className:"flex flex-wrap gap-1",children:Array.isArray($)?$.map(K=>i.jsx("span",{className:"text-xs bg-blue-500/10 text-blue-400 ring-1 ring-inset ring-blue-500/20 rounded-md px-2 py-0.5",children:K},K)):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},N))})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("button",{onClick:()=>ze(N=>!N),className:"flex items-center justify-between w-full text-sm font-medium text-slate-800",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx(Ld,{size:14}),"API Response"]}),_e?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})]})}),_e&&i.jsx(He,{className:"p-0",children:i.jsx("pre",{className:"text-xs text-slate-600 bg-slate-50 dark:bg-[#0a0a0f] p-4 overflow-auto max-h-96 font-mono",children:JSON.stringify(fe,null,2)})})]})]}):i.jsx(Te,{children:i.jsxs(He,{className:"py-16 text-center",children:[i.jsx(Os,{size:32,className:"text-gray-500 mx-auto mb-3"}),i.jsx("p",{className:"text-slate-500 text-sm mx-auto max-w-[57ch]",children:'Fill in the parameters and click "Run Single Transaction" to decide a gateway, post feedback, and inspect the audit trail.'})]})})]})]}),w==="batch"&&bt&&i.jsxs(Te,{className:"mt-6",children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-3",children:[i.jsx("h3",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Transaction Log"}),En.length>0&&i.jsxs("span",{className:"flex items-center gap-2 text-xs text-slate-500 tabular-nums",children:[Cc&&i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onClick:()=>Mt({}),className:"rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-600 hover:bg-brand-50 dark:text-brand-400 dark:hover:bg-brand-900/20 leading-4",children:"Clear filters"}),i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"·"})]}),i.jsxs("span",{children:[Cc?`${Gn.length} / ${En.length}`:En.length," ","transactions"]})]})]}),i.jsx(He,{className:"p-0",children:En.length>0?i.jsx("div",{ref:ca,className:"max-h-[560px] overflow-y-auto overflow-x-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsxs("thead",{className:"bg-slate-50 dark:bg-[#0a0a0f] text-[11px] text-slate-500 dark:text-slate-500 sticky top-0 border-b border-slate-100 dark:border-[#1c1c24] leading-4",children:[i.jsxs("tr",{children:[i.jsx("th",{className:"text-left px-3 py-2 w-8",children:"#"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Amount"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap w-20",children:"Network"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap ",children:"Program"}),i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Gateway"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",children:"SR Score"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap w-20",title:"Expected-value gap between the top-two EV-ranked PSPs (% of ticket) — the decision's margin of victory. Small values mean it was a close call.",children:"EV Δ (top 2)"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Routing"}),i.jsx("th",{className:"text-left px-3 py-2",children:"Outcome"}),i.jsx("th",{className:"text-right px-3 py-2 whitespace-nowrap",children:"Cost Savings"}),gt&&i.jsx("th",{className:"text-left px-3 py-2 whitespace-nowrap",children:"Retry Gateway"}),gt&&i.jsx("th",{className:"text-left px-3 py-2",children:"Retry Outcome"})]}),(()=>{const N="w-full rounded border border-slate-200 bg-white px-1.5 py-1 text-[11px] font-normal text-slate-700 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-200 dark:placeholder:text-slate-600",$=(ee,ye)=>Mt(Ae=>({...Ae,[ee]:ye})),K=(ee,ye,Ae)=>i.jsxs("select",{value:mt[ee]??"",onChange:nt=>$(ee,nt.target.value),className:N,children:[i.jsx("option",{value:"",children:Ae}),ye.map(nt=>i.jsx("option",{value:nt,children:nt},nt))]});return i.jsxs("tr",{className:"bg-white dark:bg-[#0a0a0f] border-b border-slate-100 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"px-2 py-1.5"}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.amount??"",onChange:ee=>$("amount",ee.target.value),placeholder:"search",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:K("network",Hn.networks,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("program",Hn.programs,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("gateway",Hn.gateways,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.sr??"",onChange:ee=>$("sr",ee.target.value),placeholder:"e.g. 90",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsx("input",{value:mt.evGap??"",onChange:ee=>$("evGap",ee.target.value),placeholder:"e.g. 0.12",className:N})}),i.jsx("th",{className:"px-2 py-1.5",children:K("routing",Hn.routings,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:K("outcome",Hn.outcomes,"All")}),i.jsx("th",{className:"px-2 py-1.5",children:i.jsxs("select",{value:mt.cost??"",onChange:ee=>$("cost",ee.target.value),className:N,children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"yes",children:"Has savings"}),i.jsx("option",{value:"no",children:"None"})]})}),gt&&i.jsx("th",{className:"px-2 py-1.5",children:K("retryGateway",Hn.retryGateways,"All")}),gt&&i.jsx("th",{className:"px-2 py-1.5",children:K("retryOutcome",Hn.retryOutcomes,"All")})]})})()]}),i.jsxs("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1a1a22]",children:[Gn.map(({res:N,idx:$})=>{var K;return i.jsxs("tr",{className:"group cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0d0d14] transition-colors",onClick:()=>k2(N.paymentId),children:[i.jsx("td",{className:"px-3 py-2 text-[11px] text-slate-500 tabular-nums leading-4",children:$+1}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap",children:i.jsx("span",{className:"block font-mono text-xs text-slate-700 dark:text-slate-300 tabular-nums group-hover:text-brand-600 dark:group-hover:text-brand-400 transition-colors",children:Qf(N.amount,N.currency)})}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.cardNetwork??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.cardProgram??"—"}),i.jsx("td",{className:"px-3 py-2 text-xs font-medium text-slate-600 dark:text-slate-300 whitespace-nowrap",children:N.decidedGateway}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:(()=>{var ye;const ee=(ye=N.gatewayPriorityMap)==null?void 0:ye[N.decidedGateway];return typeof ee=="number"?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(ee*100).toFixed(1),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})})()}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:N.evGapTop2!=null?i.jsxs("span",{className:"font-mono text-xs text-slate-600 dark:text-slate-300 tabular-nums",children:[(N.evGapTop2*100).toFixed(2),"%"]}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:"—"})}),i.jsx("td",{className:"px-3 py-2",children:(K=N.routingApproach)!=null&&K.includes("HEDGING")?i.jsx("span",{className:"inline-flex items-center rounded-full bg-amber-50 px-2 py-0.5 text-[11px] font-medium text-amber-700 ring-1 ring-inset ring-amber-200 dark:bg-amber-900/20 dark:text-amber-300 dark:ring-amber-800 leading-4",children:"Hedging"}):N.routingApproach==="SR_SELECTION_MULTI_OBJECTIVE"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-emerald-50 px-2 py-0.5 text-[11px] font-medium text-emerald-700 ring-1 ring-inset ring-emerald-200 dark:bg-emerald-900/20 dark:text-emerald-300 dark:ring-emerald-800 leading-4",children:"Cost Based"}):N.routingApproach==="SR_SELECTION_V3_ROUTING"?i.jsx("span",{className:"inline-flex items-center rounded-full bg-brand-50 px-2 py-0.5 text-[11px] font-medium text-brand-700 ring-1 ring-inset ring-brand-200 dark:bg-brand-900/20 dark:text-brand-300 dark:ring-brand-800 leading-4",children:"Auth Based"}):i.jsx("span",{className:"text-[11px] text-slate-500 leading-4",children:N.routingApproach??"—"})}),i.jsx("td",{className:"px-3 py-2",children:i.jsx("span",{className:`text-xs font-semibold ${N.status==="CHARGED"?"text-emerald-700 dark:text-emerald-400":N.status==="PENDING_VBV"?"text-amber-700 dark:text-amber-400":"text-red-600 dark:text-red-400"}`,children:N.status})}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap",children:N.costWon&&N.costSavedBps!=null&&N.costSavedBps>0&&N.status==="CHARGED"?i.jsx("span",{className:"font-mono text-xs text-emerald-700 dark:text-emerald-400 tabular-nums",children:xAe(N.costSavedBps,N.amount,N.currency)}):null}),gt&&i.jsx("td",{className:"px-3 py-2 text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap",children:N.retryGateway??"—"}),gt&&i.jsx("td",{className:"px-3 py-2",children:N.retryStatus?i.jsx(Me,{variant:N.retryStatus==="CHARGED"?"green":N.retryStatus==="PENDING_VBV"?"orange":"red",children:N.retryStatus}):i.jsx("span",{className:"text-xs text-slate-500",children:"—"})})]},N.paymentId)}),Gn.length===0&&i.jsx("tr",{children:i.jsx("td",{colSpan:gt?12:10,className:"px-3 py-8 text-center text-sm text-slate-500 dark:text-slate-400",children:"No transactions match the current filters."})})]}),Gn.length>0&&i.jsx("tfoot",{className:"sticky bottom-0 z-10 bg-slate-50 dark:bg-[#0a0a0f] border-t border-slate-200 dark:border-[#1c1c24]",children:i.jsxs("tr",{className:"text-xs font-semibold text-slate-700 dark:text-slate-200",children:[i.jsx("td",{className:"px-3 py-2 text-slate-500",children:"Σ"}),i.jsx("td",{className:"px-3 py-2 whitespace-nowrap tabular-nums",children:Qf(yr.amount,yr.currency)}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsxs("td",{className:"px-3 py-2 whitespace-nowrap font-normal text-slate-500",children:[yr.count.toLocaleString()," rows"]}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums font-normal text-slate-500",title:"Average EV margin of victory across these rows",children:yr.evGapPctAvg!=null?`${yr.evGapPctAvg.toFixed(2)}% avg`:""}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2"}),i.jsx("td",{className:"px-3 py-2 text-right whitespace-nowrap tabular-nums text-emerald-700 dark:text-emerald-400",children:Qf(yr.savings,yr.currency)}),gt&&i.jsx("td",{className:"px-3 py-2"}),gt&&i.jsx("td",{className:"px-3 py-2"})]})})]})}):i.jsxs("div",{className:"flex items-center gap-3 px-4 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Waiting for the first simulated payment result…"]})})]}),Sr&&i.jsxs("div",{className:"fixed bottom-0 left-0 right-0 top-[76px] z-[140] flex items-center justify-center p-4",children:[i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:()=>_r(null)}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-setup-title",className:"relative w-full max-w-[440px] overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-[#283241] dark:bg-[#101722]",children:[i.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-sky-400/50 to-transparent"}),i.jsxs("div",{className:"p-6",children:[i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-sky-500/20 bg-sky-500/10 p-3 text-sky-500 dark:text-sky-300",children:i.jsx(BW,{size:22})}),i.jsxs("div",{children:[i.jsx(vn,{children:"Setup required"}),i.jsx("h2",{id:"decision-explorer-setup-title",className:"mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:Sr.title})]})]}),i.jsx("button",{type:"button","aria-label":"Close setup prompt",className:"rounded-full p-2 text-slate-500 transition hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1a2230] dark:hover:text-white",onClick:()=>_r(null),children:i.jsx(Vr,{size:16})})]}),i.jsx("p",{className:"mt-4 text-sm leading-6 text-slate-500 dark:text-[#9aa6bb]",children:Sr.body}),Sr.detail?i.jsx("div",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-3 font-mono text-xs leading-5 text-slate-500 dark:border-[#283241] dark:bg-[#0b111a] dark:text-[#9aa6bb]",children:Sr.detail}):null,i.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[i.jsx(we,{variant:"secondary",onClick:()=>_r(null),children:"Dismiss"}),Sr.configurePath&&i.jsx(we,{onClick:()=>{_r(null),t(Sr.configurePath)},children:"Configure"})]})]})]})]}),Qt&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close payment audit",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:WP}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-audit-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Simulation Audit"}),i.jsx("h2",{id:"decision-explorer-audit-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:Qt}),i.jsx("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:"Inspect the exact decision trail for this simulated payment, including request payloads, API responses, score context, and the final transaction outcome."})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[ei!=null&&ei.latest_gateway?i.jsx(Me,{variant:"green",children:ei.latest_gateway}):null,ei!=null&&ei.latest_status?i.jsx(Me,{variant:hL(ei.latest_status),children:Ci(ei.latest_status)}):null,ei!=null&&ei.event_count?i.jsxs(Me,{variant:"gray",children:[ei.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>lr.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:WP,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Audit Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a step to inspect its request, response, and scoring context."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:lr.isLoading&&!lr.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading payment audit…"]}):lr.error?i.jsx(vt,{error:lr.error.message}):UP.length?i.jsx("div",{className:"space-y-4",children:UP.map(N=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:pL(N.phase),children:N.phase})}),i.jsx("div",{className:"space-y-2",children:N.events.map($=>i.jsxs("button",{type:"button",onClick:()=>{Un($.id),Ca("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Mn==null?void 0:Mn.id)===$.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Kg($)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Gg($.created_at_ms)})]}),i.jsx(Me,{variant:Qv($),children:Ci($.status)||fL($.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:qg($.route)}),$.gateway?i.jsx(Me,{variant:"green",children:$.gateway}):null,$.request_id?i.jsx(Me,{variant:"blue",children:"Request"}):null]})]},$.id))})]},N.phase))}):i.jsx(Yg,{title:"No audit trail captured yet",body:"Run a simulated payment and gateway update first, then reopen the row once the audit payload is available."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Mn?Kg(Mn):"Audit Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Mn?`${qg(Mn.route)} · ${Gg(Mn.created_at_ms)}`:"Select an event from the left to inspect payloads."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Mn!=null&&Mn.gateway?i.jsx(Me,{variant:"green",children:Mn.gateway}):null,Mn!=null&&Mn.status?i.jsx(Me,{variant:Qv(Mn),children:Ci(Mn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(N=>i.jsx("button",{type:"button",onClick:()=>Ca(N),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${gL(Yi===N)}`,children:N==="raw"?"Raw JSON":Ci(N)},N))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:lr.isLoading&&!lr.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading inspector…"]}):Io?i.jsxs("div",{className:"space-y-5",children:[Yi==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(xL,{rows:Io.summaryRows}),Io.selectionReason?i.jsxs("div",{className:"rounded-[22px] border border-slate-200 bg-slate-50/80 px-5 py-4 dark:border-[#1d1d23] dark:bg-[#0b0b10]",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Selection Reason"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-700 dark:text-slate-200",children:MH(Io.selectionReason)})]}):null,i.jsx(Dl,{title:"Score Context",value:Io.scoreContext,emptyMessage:"No scoring context was captured for this event."}),Io.signalRecord?i.jsx(Dl,{title:"Additional Signals",value:Io.signalRecord,emptyMessage:"No additional signals were captured for this event."}):null]}):null,Yi==="input"?i.jsx(Dl,{title:"Request Payload",value:Io.requestPayload,emptyMessage:"This step did not persist a request payload."}):null,Yi==="response"?i.jsx(Dl,{title:"Response Payload",value:Io.responsePayload,emptyMessage:"This step did not persist a response payload."}):null,Yi==="raw"?i.jsx(Dl,{title:"Raw Event JSON",value:Io.rawEvent,emptyMessage:"No raw event payload is available."}):null]}):i.jsx(Yg,{title:"Select a timeline step",body:"Choose one of the audit events on the left to inspect its request, response, and score context."})})]})]})]})]}),os&&i.jsxs("div",{className:"fixed bottom-0 left-64 right-0 top-[76px] z-[130] p-8",children:[i.jsx("button",{type:"button","aria-label":"Close decision trace",className:"absolute inset-0 bg-slate-950/70 backdrop-blur-sm",onClick:HP}),i.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"decision-explorer-preview-title",className:"relative mx-auto flex h-full w-full max-w-7xl flex-col overflow-hidden rounded-[30px] border border-slate-200 bg-white shadow-2xl dark:border-[#1c1c23] dark:bg-[#09090d]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-slate-200 bg-slate-50/90 px-6 py-5 dark:border-[#1c1c23] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-slate-500 dark:text-[#8a8a93] leading-4",children:"Decision Trace"}),i.jsx("h2",{id:"decision-explorer-preview-title",className:"mt-2 truncate text-2xl font-semibold text-slate-900 dark:text-white",children:os}),i.jsxs("p",{className:"mt-2 max-w-3xl text-sm text-slate-500 dark:text-[#8a8a93]",children:[Gy,". This trace was captured from ",i.jsx("code",{className:"font-mono text-xs",children:"/routing/evaluate"})," and is kept separate from auth-rate transaction outcomes."]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Oa!=null&&Oa.latest_gateway?i.jsx(Me,{variant:"green",children:Oa.latest_gateway}):null,Oa!=null&&Oa.latest_status?i.jsx(Me,{variant:hL(Oa.latest_status),children:Ci(Oa.latest_status)}):null,Oa!=null&&Oa.event_count?i.jsxs(Me,{variant:"gray",children:[Oa.event_count," events"]}):null,i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>Nr.mutate(),children:[i.jsx(Es,{size:12}),"Refresh"]}),i.jsxs(we,{size:"sm",variant:"ghost",onClick:HP,children:[i.jsx(Vr,{size:14}),"Close"]})]})]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-0 xl:grid-cols-[340px_minmax(0,1fr)]",children:[i.jsxs("div",{className:"flex min-h-0 flex-col border-b border-slate-200 bg-slate-50/70 xl:border-b-0 xl:border-r dark:border-[#1c1c23] dark:bg-[#08080b]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:"Decision Timeline"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:"Choose a decision step to inspect its request, response, and routing output."})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:Nr.isLoading&&!Nr.data?i.jsxs("div",{className:"flex items-center gap-2 px-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision trace…"]}):Nr.error&&RAe(Nr.error)&&os?i.jsx(ZS,{title:"Decision trace still indexing",body:"The routing decision succeeded, but the trace row is still being processed. The modal will update once the analytics event is available."}):Nr.error?i.jsx(vt,{error:Nr.error.message}):VP.length?i.jsx("div",{className:"space-y-4",children:VP.map(N=>i.jsxs("section",{className:"space-y-2",children:[i.jsx("div",{className:"px-2",children:i.jsx(Me,{variant:pL(N.phase),children:N.phase})}),i.jsx("div",{className:"space-y-2",children:N.events.map($=>i.jsxs("button",{type:"button",onClick:()=>{Vn($.id),Ji("summary")},className:`w-full rounded-[22px] border px-4 py-3 text-left transition ${(Dn==null?void 0:Dn.id)===$.id?"border-brand-500/50 bg-brand-500/8":"border-slate-200 bg-white hover:border-slate-300 dark:border-[#1d1d23] dark:bg-[#0c0c10] dark:hover:border-[#2a2a31]"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:Kg($)}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93]",children:Gg($.created_at_ms)})]}),i.jsx(Me,{variant:Qv($),children:Ci($.status)||fL($.flow_type)})]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[i.jsx(Me,{variant:"gray",children:qg($.route)}),$.gateway?i.jsx(Me,{variant:"green",children:$.gateway}):null]})]},$.id))})]},N.phase))}):os?i.jsx(ZS,{title:Oa?"Decision summary available":"Decision trace still arriving",body:Oa?"The decision summary is available. The step-by-step timeline will appear as soon as the latest events are ready.":"This decision was just logged. Waiting for the decision trace details to become available."}):i.jsx(Yg,{title:"No decision trace captured yet",body:"Run Rule-Based or Volume Split evaluation first, then open the decision trace once the request has been logged."})})]}),i.jsxs("div",{className:"flex min-h-0 flex-col",children:[i.jsxs("div",{className:"border-b border-slate-200 px-6 py-4 dark:border-[#1c1c23]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:Dn?Kg(Dn):"Decision Inspector"}),i.jsx("p",{className:"mt-1 text-xs text-slate-500 dark:text-[#8a8a93] max-w-[57ch]",children:Dn?`${qg(Dn.route)} · ${Gg(Dn.created_at_ms)}`:"Select an event from the left to inspect the decision payload."})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[Dn!=null&&Dn.gateway?i.jsx(Me,{variant:"green",children:Dn.gateway}):null,Dn!=null&&Dn.status?i.jsx(Me,{variant:Qv(Dn),children:Ci(Dn.status)}):null]})]}),i.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["summary","input","response","raw"].map(N=>i.jsx("button",{type:"button",onClick:()=>Ji(N),className:`rounded-full px-4 py-2 text-xs font-semibold uppercase tracking-[0.16em] transition ${gL(Ea===N)}`,children:N==="raw"?"Raw JSON":Ci(N)},N))})]}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:Nr.isLoading&&!Nr.data?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:16}),"Loading decision inspector…"]}):Rf?i.jsxs("div",{className:"space-y-5",children:[Ea==="summary"?i.jsxs(i.Fragment,{children:[i.jsx(xL,{rows:Rf.summaryRows}),i.jsx(Dl,{title:"Decision Signals",value:Rf.signalRecord,emptyMessage:"No extra decision metadata was captured for this evaluation."})]}):null,Ea==="input"?i.jsx(Dl,{title:"Request Payload",value:Rf.requestPayload,emptyMessage:"No request payload was captured for this decision."}):null,Ea==="response"?i.jsx(Dl,{title:"Response Payload",value:Rf.responsePayload,emptyMessage:"No response payload was captured for this decision."}):null,Ea==="raw"?i.jsx(Dl,{title:"Raw Event JSON",value:Rf.rawEvent,emptyMessage:"No raw event payload is available for this decision."}):null]}):os&&!((sR=(aR=Nr.data)==null?void 0:aR.timeline)!=null&&sR.length)?i.jsx(ZS,{title:Oa?"Waiting for detailed decision step":"Waiting for decision step",body:Oa?"The decision record is available. Request and response payloads will appear as soon as the first timeline event is ready.":"Request and response payloads will appear as soon as the first decision event is ready."}):i.jsx(Yg,{title:"Select a decision step",body:"Choose one of the decision events on the left to inspect its request and response payload."})})]})]})]})]})]})}function FAe({info:t}){const e=t.outcome==="COST_WON",n=e?"border-cyan-200 bg-cyan-50/60 dark:border-cyan-900 dark:bg-cyan-950/30":"border-slate-200 bg-slate-50/60 dark:border-[#1c1c24] dark:bg-[#0b0b10]",r=e?"bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200":"bg-slate-200 text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200";return i.jsx(Te,{children:i.jsx(He,{children:i.jsxs("div",{className:`rounded-2xl border px-4 py-3 ${n}`,children:[i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-2",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-[11px] uppercase tracking-[0.16em] text-slate-500 dark:text-slate-400 leading-4",children:"Multi-Objective Decision"}),i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r}`,children:e?"Cost won":"Auth won"})]})}),i.jsx("p",{className:"mt-3 text-sm text-slate-700 dark:text-slate-200 leading-relaxed",children:t.reason}),e&&t.costSavedBps!=null&&i.jsxs("div",{className:"mt-3 inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-200",children:[i.jsx("span",{children:"Cost saved"}),i.jsxs("span",{className:"font-mono",children:[t.costSavedBps.toFixed(2)," bps"]})]}),t.ranked&&t.ranked.length>0&&i.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:t.ranked.map(a=>i.jsx(BAe,{candidate:a,emphasis:a.isChosen},a.psp))}),i.jsxs("p",{className:"mt-3 text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:[t.qualifiedCount," PSP",t.qualifiedCount===1?"":"s"," ranked on EV."]})]})})})}function BAe({candidate:t,emphasis:e=!1}){const n=e?"border-cyan-300 bg-white dark:border-cyan-700 dark:bg-[#0d141a]":"border-slate-200 bg-white dark:border-[#1c1c24] dark:bg-[#0d0d13]";return i.jsxs("div",{className:`rounded-xl border px-3 py-2 ${n}`,children:[i.jsxs("div",{className:"flex min-h-[16px] flex-wrap items-center gap-1.5",children:[t.isSrHead&&i.jsx("span",{className:"inline-flex items-center rounded bg-slate-200 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-slate-700 dark:bg-[#1f1f29] dark:text-slate-200 leading-4",children:"SR head"}),t.isChosen&&i.jsx("span",{className:"inline-flex items-center rounded bg-cyan-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.12em] text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-200 leading-4",children:"Chosen"})]}),i.jsx("p",{className:"mt-1 font-mono text-sm font-semibold text-slate-900 dark:text-white",children:t.psp}),i.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-3 text-xs text-slate-600 dark:text-slate-300",children:[i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"auth"})," ",i.jsxs("span",{className:"font-mono",children:[(t.authRate*100).toFixed(2),"%"]})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"cost"})," ",i.jsx("span",{className:"font-mono",children:t.costBps!=null?`${t.costBps.toFixed(2)} bps`:"—"})]}),i.jsxs("span",{children:[i.jsx("span",{className:"text-slate-500",children:"EV"})," ",i.jsx("span",{className:"font-mono",children:t.ev.toFixed(4)})]})]})]})}function zAe(){const{merchantId:t}=$r(),{data:e,error:n,isLoading:r,isEnabled:a,setDebitRoutingEnabled:s}=Ey(t),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(null);async function h(p){if(!t){u("Set a merchant ID first");return}l(!0),u(null),f(null);try{const m=await s(p);f(m.debit_routing_enabled?"Debit routing enabled.":"Debit routing disabled.")}catch(m){u(m instanceof Error?m.message:"Failed to update debit routing")}finally{l(!1)}}return i.jsxs("div",{className:"max-w-3xl space-y-6",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Network / Debit Routing"})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(_o,{size:16,className:"text-brand-600"}),i.jsxs("div",{children:[i.jsx(vn,{children:"Debit routing access"}),i.jsx("h2",{className:"mt-2 font-medium text-slate-800 dark:text-white",children:"Debit Routing Runtime Access"})]})]})}),i.jsxs(He,{className:"space-y-5",children:[!t&&i.jsx($a,{tone:"warning",children:"Set a merchant ID in the top bar to load debit routing access."}),t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Loading debit routing flag..."]}):i.jsx("div",{className:"rounded-[24px] border border-slate-200 bg-slate-50 p-5 dark:border-[#232833] dark:bg-[#0b1017]",children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#78849a] leading-4",children:"Current state"}),i.jsx("p",{className:"mt-1 text-lg font-semibold text-slate-900 dark:text-white",children:a?"Enabled":"Disabled"}),i.jsx("p",{className:"mt-0.5 text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:(e==null?void 0:e.merchant_id)||t||"No merchant selected"})]}),i.jsx(we,{onClick:()=>h(!a),disabled:!t||o||r,variant:a?"secondary":"primary",children:o?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Updating..."]}):a?"Disable Debit Routing":"Enable Debit Routing"})]})}),i.jsx(vt,{error:c||(n instanceof Error?n.message:n?"Failed to load debit routing flag":null)}),d&&i.jsx("p",{className:"text-sm text-emerald-700",children:d})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h2",{className:"font-medium text-slate-800 dark:text-white",children:"What This Controls"})}),i.jsxs(He,{className:"space-y-3 text-sm text-slate-600 dark:text-[#aab5c8]",children:[i.jsxs("p",{children:["This toggle controls the backend runtime gate for ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"NTW_BASED_ROUTING"})," and hybrid debit routing."]}),i.jsx("p",{children:"Detailed debit fee tables and network cost configuration are still managed outside the dashboard. This toggle enables or disables access to the runtime debit-routing flow."}),i.jsxs("p",{children:["Use Decision Explorer's Debit Routing tab to send a real ",i.jsx("code",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs text-brand-600 dark:bg-[#111118]",children:"/decide-gateway"})," request and inspect the ranked debit networks."]})]})]})]})}function Vw({label:t,value:e,options:n,onChange:r,ariaLabel:a}){const[s,o]=g.useState(!1),l=e!=="all",c=n.find(u=>u.value===e);return i.jsxs("div",{className:"relative inline-flex",children:[i.jsxs("button",{type:"button","aria-label":a,"aria-expanded":s,onClick:()=>o(u=>!u),className:`inline-flex items-center gap-1 rounded uppercase tracking-wide transition-colors ${l?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]"}`,children:[l?`${t}: ${(c==null?void 0:c.label)??e}`:t,i.jsx(ln,{size:13,className:"shrink-0"})]}),s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>o(!1)}),i.jsx("div",{className:"absolute left-0 top-full z-20 mt-1.5 max-h-64 min-w-[170px] overflow-y-auto rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:n.map(u=>i.jsxs("button",{type:"button",onClick:()=>{r(u.value),o(!1)},className:`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs normal-case tracking-normal transition-colors hover:bg-slate-50 dark:hover:bg-[#1c2030] ${u.value===e?"font-semibold text-brand-600 dark:text-brand-400":"text-slate-600 dark:text-slate-300"}`,children:[i.jsx("span",{className:"truncate",children:u.label}),u.value===e&&i.jsx(gi,{size:12,className:"shrink-0"})]},u.value))})]})]})}function DH({label:t,value:e,onChange:n,ariaLabel:r}){const[a,s]=g.useState(!1);return!a&&!e?i.jsxs("button",{type:"button","aria-label":r,onClick:()=>s(!0),className:"inline-flex items-center gap-1 uppercase tracking-wide text-slate-500 transition-colors hover:text-slate-600 dark:text-[#78849a] dark:hover:text-[#8d96a8]",children:[t,i.jsx(Lp,{size:13,className:"shrink-0"})]}):i.jsxs("div",{className:"relative w-[240px] max-w-full",children:[i.jsx(Lp,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{autoFocus:!0,value:e,onChange:o=>n(o.target.value),placeholder:"Filter by name or ID","aria-label":r,className:"w-full rounded-lg border border-slate-200 bg-white py-1.5 pl-8 pr-8 text-sm font-normal normal-case tracking-normal text-slate-800 placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#0d1018] dark:text-slate-100 dark:placeholder:text-[#5b6577]"}),i.jsx("button",{type:"button","aria-label":"Clear name filter",onClick:()=>{n(""),s(!1)},className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200",children:i.jsx(Vr,{size:14})})]})}function IH({items:t}){const[e,n]=g.useState(!1),[r,a]=g.useState({}),s=g.useRef(null),o=g.useRef(null);g.useEffect(()=>{if(!e)return;function u(h){var m,x;const p=h.target;!((m=s.current)!=null&&m.contains(p))&&!((x=o.current)!=null&&x.contains(p))&&n(!1)}function d(h){h.key==="Escape"&&n(!1)}function f(){n(!1)}return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),window.addEventListener("resize",f),window.addEventListener("scroll",f,!0),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d),window.removeEventListener("resize",f),window.removeEventListener("scroll",f,!0)}},[e]);function l(){var p;if(e){n(!1);return}const u=(p=s.current)==null?void 0:p.getBoundingClientRect();if(!u)return;const d=190,f=t.length*38+8,h=u.bottom+f>window.innerHeight-8;a({position:"fixed",top:h?Math.max(8,u.top-f-4):u.bottom+4,left:Math.max(8,u.right-d),width:d,zIndex:9999}),n(!0)}const c={default:"text-slate-700 dark:text-slate-300",positive:"text-emerald-700 dark:text-emerald-400",danger:"text-red-600 dark:text-red-400"};return i.jsxs("div",{className:"flex justify-end",children:[i.jsx("button",{ref:s,type:"button",onClick:l,"aria-label":"Rule actions","aria-haspopup":"menu","aria-expanded":e,className:`rounded-md p-1.5 transition-colors ${e?"bg-slate-100 text-slate-700 dark:bg-[#1c2030] dark:text-white":"text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#1c2030] dark:hover:text-white"}`,children:i.jsx(BNe,{size:16})}),e&&gs.createPortal(i.jsx("div",{ref:o,role:"menu",style:r,className:"overflow-hidden rounded-lg border border-slate-200 bg-white py-1 shadow-lg dark:border-[#2a303a] dark:bg-[#11151d]",children:t.map(u=>{const d=u.icon;return i.jsxs("button",{type:"button",role:"menuitem",disabled:u.disabled,title:u.disabled?u.hint:void 0,onClick:()=>{n(!1),u.onSelect()},className:`flex w-full items-center gap-2.5 px-3 py-2 text-left text-[13px] font-medium transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent dark:hover:bg-[#1c2030] ${c[u.tone??"default"]} leading-[18px]`,children:[i.jsx(d,{size:14,className:"shrink-0"}),u.label]},u.label)})}),document.body)]})}const UAe=/(Z|[+-]\d{2}:?\d{2})$/i;function VAe(t){const e=t.trim();if(!e)return 0;const n=e.replace(/(\.\d{3})\d+/,"$1"),r=new Date(UAe.test(n)?n:`${n}Z`).getTime();return Number.isFinite(r)?r:0}function F0(t){const e=t.modified_at||t.created_at;return e?VAe(e):0}function $H(t){const e=F0(t);if(!e)return null;const n=new Date(e);return{date:n.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),time:n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),full:n.toLocaleString(void 0,{dateStyle:"full",timeStyle:"medium"})}}const QS={"==":"equal","!=":"not_equal",">":"greater_than","<":"less_than",">=":"greater_than_equal","<=":"less_than_equal",in:"equal",not_in:"not_equal"},LH={"==":"equals","!=":"not equals",">":"greater than","<":"less than",">=":"greater than or equal","<=":"less than or equal",in:"is one of",not_in:"is not one of"};function tc(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function FH(t){var r;const e=Object.keys(t)[0]||"payment_method",n=((r=t[e])==null?void 0:r.values)||[];return{id:crypto.randomUUID(),lhs:e,operator:"==",value:n[0]||"",metadataKey:""}}function xT(t){return{id:crypto.randomUUID(),conditions:[FH(t)],nested:[]}}function WAe(t){return{equal:"=",not_equal:"≠",greater_than:">",less_than:"<",greater_than_equal:"≥",less_than_equal:"≤"}[t]??t.replace(/_/g," ")}function HAe(t,e,n){function r(l){return{priority:l.map(c=>({gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}))}}function a(l){return l.outputType==="volume_split"?{volume_split:l.volumeSplitEntries.map(c=>({split:c.split,output:{gateway_name:c.gatewayName,gateway_id:c.gatewayId||null}}))}:l.outputType==="volume_split_priority"?{volume_split_priority:l.volumeSplitPriorityEntries.map(c=>({split:c.split,output:c.gateways.map(u=>({gateway_name:u.gatewayName,gateway_id:u.gatewayId||null}))}))}:r(l.priorityGateways)}function s(l){var f;const c=(f=n[l.lhs])==null?void 0:f.type;if((l.operator==="in"||l.operator==="not_in")&&Array.isArray(l.value))return{lhs:l.lhs,comparison:QS[l.operator],value:{type:"enum_variant_array",value:l.value},metadata:{}};if(c==="udf"||c==="global_ref")return{lhs:l.lhs,comparison:QS[l.operator]||l.operator,value:{type:"metadata_variant",value:{key:l.metadataKey||l.lhs,value:l.value}},metadata:{}};const d=c==="integer"?"number":c==="str_value"?"str_value":"enum_variant";return{lhs:l.lhs,comparison:QS[l.operator]||l.operator,value:{type:d,value:c==="integer"?Number(l.value):l.value},metadata:{}}}function o(l){return{condition:l.conditions.map(s),nested:l.nested.length>0?l.nested.map(o):null}}return{globals:{},default_selection:r(e.priorityGateways),rules:t.map(l=>({name:l.name,routing_type:l.outputType,output:a(l),statements:l.statements.map(o)}))}}const GAe={equal:"==",not_equal:"!=",greater_than:">",less_than:"<",greater_than_equal:">=",less_than_equal:"<="};function qAe(t){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data;if(!n)return{ruleBlocks:[],defaultOutput:{priorityGateways:[]}};function r(u){return u.map(d=>({id:crypto.randomUUID(),gatewayName:d.gateway_name,gatewayId:d.gateway_id??""}))}function a(u){var m,x,v,b,y,w;const d=((m=u.value)==null?void 0:m.type)==="enum_variant_array",f=((x=u.value)==null?void 0:x.type)==="metadata_variant";let h=GAe[u.comparison]??u.comparison;if(d&&u.comparison==="equal"&&(h="in"),d&&u.comparison==="not_equal"&&(h="not_in"),f){const j=(v=u.value)==null?void 0:v.value;return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:String((j==null?void 0:j.value)??""),metadataKey:String((j==null?void 0:j.key)??u.lhs)}}const p=d?Array.isArray((b=u.value)==null?void 0:b.value)?u.value.value:[String((y=u.value)==null?void 0:y.value)]:String(((w=u.value)==null?void 0:w.value)??"");return{id:crypto.randomUUID(),lhs:String(u.lhs),operator:h,value:p,metadataKey:""}}function s(u){return{id:crypto.randomUUID(),conditions:(u.condition??[]).map(a),nested:(u.nested??[]).map(s)}}const o=(n.rules??[]).map(u=>{const d=u.output,f=u.routing_type??"priority",h=(d==null?void 0:d.priority)??(d==null?void 0:d.data),p=(d==null?void 0:d.volume_split)??((d==null?void 0:d.type)==="volume_split"?d==null?void 0:d.data:void 0),m=d==null?void 0:d.volume_split_priority;return{id:crypto.randomUUID(),name:u.name||"Cloned Rule",statements:(u.statements??[]).map(s),outputType:f,priorityGateways:f==="priority"?r(Array.isArray(h)?h:[]):[],volumeSplitEntries:f==="volume_split"?(Array.isArray(p)?p:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gatewayName:x.output.gateway_name,gatewayId:x.output.gateway_id??""})):[],volumeSplitPriorityEntries:f==="volume_split_priority"?(Array.isArray(m)?m:[]).map(x=>({id:crypto.randomUUID(),split:x.split,gateways:r(x.output)})):[]}}),l=n.default_selection||n.defaultSelection,c=Array.isArray(l==null?void 0:l.priority)?l.priority:Array.isArray(l==null?void 0:l.data)?l.data:[];return{ruleBlocks:o,defaultOutput:{priorityGateways:r(c)}}}const KAe={equal:"equals",not_equal:"does not equal",greater_than:"greater than",less_than:"less than",greater_than_equal:"at least",less_than_equal:"at most"};function YAe(t,e){return e?t==="not_equal"?"is not one of":"is one of":KAe[t]??LH[t]??t.replace(/_/g," ")}function XAe(t){const e=t.value,n=e==null?void 0:e.value,r=e==null?void 0:e.type;return r==="metadata_variant"&&n&&typeof n=="object"?String(n.value??""):Array.isArray(n)?n.map(a=>tc(String(a))).join(", "):r==="enum_variant"||r==="enum_variant_array"?tc(String(n??"")):String(n??"")}function JAe(t){const e=t.value;if((e==null?void 0:e.type)==="metadata_variant"&&e.value&&typeof e.value=="object"){const n=e.value.key;if(n&&n!==t.lhs)return`${tc(t.lhs)}.${n}`}return tc(t.lhs)}function ZAe(t){const e=t.value,n=Array.isArray(e==null?void 0:e.value),r=XAe(t);return`${JAe(t)} ${YAe(t.comparison,n)} ${r||"…"}`.trim()}function QAe(t){var r,a;const e=((r=t.condition)==null?void 0:r.length)??0,n=((a=t.nested)==null?void 0:a.length)??0;return e+(n>0?1:0)>1}function gA(t){let n=(t.condition??[]).map(a=>`(${ZAe(a)})`).join(" and ");const r=t.nested??[];if(r.length>0){const a=r.map(s=>QAe(s)?`(${gA(s)})`:gA(s)).filter(Boolean).join(" or ");a&&(n=n?`${n} and (${a})`:`(${a})`)}return n}function eOe(t){const e=(t.statements??[]).map(gA).filter(Boolean);return e.length===0?"Always matches":e.length===1?e[0]:e.map(n=>n.includes(" and ")?`(${n})`:n).join(" or ")}function nu(t){const e=t==null?void 0:t.gateway_name;if(e)return t!=null&&t.gateway_id?`${e} (${t.gateway_id})`:e}function yT(t){const e=t.output,n=(e==null?void 0:e.priority)??(e==null?void 0:e.data),r=(e==null?void 0:e.volume_split)??((e==null?void 0:e.type)==="volume_split"?e==null?void 0:e.data:void 0),a=e==null?void 0:e.volume_split_priority,s=Array.isArray(n)?n:[],o=Array.isArray(r)?r:[],l=Array.isArray(a)?a:[];return{priorityGateways:s,volumeSplits:o,volumeSplitPriorityEntries:l,isVolumeSplit:t.routing_type==="volume_split"||o.length>0,isVolumeSplitPriority:t.routing_type==="volume_split_priority"||l.length>0}}function vT(t){const e=t.algorithm_data||t.algorithm;return e==null?void 0:e.data}function tOe(t){var r;const e=((r=vT(t))==null?void 0:r.rules)??[];if(e.length===0)return"No conditions — always matches";const n=eOe(e[0]);return e.length>1?`${n} (+${e.length-1} more)`:n}function nOe(t){var c;const e=vT(t),n=(c=e==null?void 0:e.rules)==null?void 0:c[0];let r="";if(n){const u=yT(n);u.isVolumeSplitPriority?r=u.volumeSplitPriorityEntries.map(d=>{var f;return`${nu((f=d.output)==null?void 0:f[0])??"?"} (${d.split}%)`}).join(" / "):u.isVolumeSplit?r=u.volumeSplits.map(d=>`${nu(d.output)??"?"} (${d.split}%)`).join(" / "):u.priorityGateways.length>0&&(r=`${nu(u.priorityGateways[0])} (Priority 100%)`)}const s=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection),o=Array.isArray(s==null?void 0:s.priority)?s.priority:Array.isArray(s==null?void 0:s.data)?s.data:[],l=nu(o[0]);return r?l?`${r} — fallback ${l}`:r:l?`${l} (fallback only)`:"No destination configured"}function vL(t){const e=vT(t),n=new Set;((e==null?void 0:e.rules)??[]).forEach(o=>{const l=yT(o);l.priorityGateways.forEach(c=>c.gateway_name&&n.add(c.gateway_name)),l.volumeSplits.forEach(c=>{var u;return((u=c.output)==null?void 0:u.gateway_name)&&n.add(c.output.gateway_name)}),l.volumeSplitPriorityEntries.forEach(c=>(c.output??[]).forEach(u=>u.gateway_name&&n.add(u.gateway_name)))});const a=(e==null?void 0:e.default_selection)||(e==null?void 0:e.defaultSelection);return(Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[]).forEach(o=>o.gateway_name&&n.add(o.gateway_name)),Array.from(n)}function bT({algo:t}){const e=t.algorithm_data||t.algorithm,n=e==null?void 0:e.data,r=(n==null?void 0:n.default_selection)||(n==null?void 0:n.defaultSelection);return i.jsxs("div",{className:"space-y-2.5",children:[((n==null?void 0:n.rules)??[]).map((a,s)=>{const{priorityGateways:o,volumeSplits:l,volumeSplitPriorityEntries:c,isVolumeSplit:u,isVolumeSplitPriority:d}=yT(a);return i.jsxs("div",{className:"overflow-hidden rounded-xl border border-slate-200 dark:border-[#1e2330] bg-white dark:bg-[#0d1018]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-slate-100 dark:border-[#1e2330] bg-slate-50 dark:bg-[#10131c] px-3 py-1.5",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#78849a] leading-4",children:a.name||`Rule ${s+1}`}),a.routing_type&&i.jsx("span",{className:`text-[11px] font-semibold px-1.5 py-0.5 rounded-full ${a.routing_type==="volume_split_priority"?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":a.routing_type==="volume_split"?"bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-400":"bg-brand-100 dark:bg-brand-900/30 text-brand-600 dark:text-brand-400"} leading-4`,children:a.routing_type==="volume_split_priority"?"Split + Priority":a.routing_type==="volume_split"?"Volume Split":"Priority"})]}),i.jsxs("div",{className:"space-y-1.5 px-3 py-2.5",children:[(a.statements??[]).map((f,h)=>i.jsxs("div",{children:[h>0&&i.jsxs("div",{className:"flex items-center gap-2 my-1.5",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"}),i.jsx("span",{className:"text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#1e2330]"})]}),i.jsx(BH,{statement:f})]},h)),i.jsxs("div",{className:"flex items-start gap-2 pt-0.5 text-xs",children:[i.jsx("span",{className:"w-7 shrink-0 text-right text-[11px] font-bold text-brand-600 select-none leading-4",children:"→"}),i.jsxs("div",{className:"flex flex-wrap gap-1",children:[d?c.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-purple-50 dark:bg-purple-900/20 px-2 py-0.5 text-[11px] font-medium text-purple-700 dark:text-purple-300 leading-4",children:[f.split,"%: ",f.output.map(nu).join(", ")]},h)):u?l.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300 leading-4",children:[nu(f.output)," ",f.split,"%"]},h)):o.map((f,h)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-[11px] font-medium text-brand-700 dark:text-brand-300 leading-4",children:[h+1,". ",nu(f)]},h)),!d&&!u&&o.length===0&&i.jsx("span",{className:"text-slate-500 italic",children:"No output configured"})]})]})]})]},s)}),(()=>{const a=r,s=Array.isArray(a==null?void 0:a.priority)?a.priority:Array.isArray(a==null?void 0:a.data)?a.data:[];return s.length>0?i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("div",{className:"flex flex-wrap gap-1",children:s.map((o,l)=>i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-[11px] font-medium text-slate-600 dark:text-[#8090a8] leading-4",children:nu(o)},l))})]}):i.jsxs("div",{className:"flex items-center gap-2 px-1 text-xs",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"Default:"}),i.jsx("span",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Not set — unmatched payments have no gateway"})]})})(),(!(n!=null&&n.rules)||n.rules.length===0)&&i.jsx("p",{className:"text-xs text-slate-500 italic",children:"No rules configured."})]})}function rOe({cond:t,op:e}){var n,r;return i.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs",children:[i.jsx("span",{className:"select-none text-[11px] font-bold text-slate-500 dark:text-[#78849a] leading-4",children:e}),i.jsxs("span",{className:"rounded-md bg-slate-100 px-2 py-1 text-slate-700 dark:bg-[#1a1f2a] dark:text-[#c8d0de]",children:[tc(String(t.lhs??""))," ",i.jsx("span",{className:"font-mono text-slate-500 dark:text-[#78849a]",children:WAe(String(t.comparison??""))})," ",i.jsx("span",{className:"font-medium",children:((n=t.value)==null?void 0:n.type)==="metadata_variant"&&t.value.value&&typeof t.value.value=="object"?`{ "${t.value.value.key??""}" : "${t.value.value.value??""}" }`:tc(String(((r=t.value)==null?void 0:r.value)??""))})]})]})}function BH({statement:t}){const e=t.condition??[],n=t.nested??[];return i.jsxs("div",{className:"overflow-hidden rounded-lg border border-slate-200 dark:border-[#1e2330]",children:[i.jsx("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 px-2 py-2",children:e.map((r,a)=>i.jsx(rOe,{cond:r,op:a===0?"IF":"AND"},a))}),n.length>0&&i.jsxs("div",{className:"border-t border-slate-100 px-2 py-2 dark:border-[#1e2330]",children:[i.jsx("p",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:e.length>0?"and any of":"any of"}),i.jsx("div",{className:"space-y-1.5",children:n.map((r,a)=>i.jsxs("div",{children:[a>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx("div",{className:"border-l-2 border-sky-200 pl-2 dark:border-sky-800",children:i.jsx(BH,{statement:r})})]},a))})]})]})}function aOe(){const t=Ao(),e=Hr(),{merchantId:n}=$r(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState("all"),[k,S]=g.useState("all"),[_,C]=g.useState(""),{data:E,mutate:P}=ct(n?`/routing/list/${n}`:null,()=>Fe(`/routing/list/${n}`)),{data:R,mutate:A}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`)),T=new Set((R||[]).map(z=>z.id)),D=(R||[]).find(z=>{var Z;return((Z=z.algorithm_data||z.algorithm)==null?void 0:Z.type)==="volume_split"}),L=(R||[]).find(z=>{var Z;return((Z=z.algorithm_data||z.algorithm)==null?void 0:Z.type)==="ab_test"}),X=L?(()=>{var Z;const z=(Z=L.algorithm_data||L.algorithm)==null?void 0:Z.data;return new Set([z==null?void 0:z.control_algorithm_id,z==null?void 0:z.variant_algorithm_id].filter(Boolean))})():new Set,J=(E||[]).filter(z=>{const Z=z.algorithm_data||z.algorithm;return(Z==null?void 0:Z.type)!=="volume_split"&&(Z==null?void 0:Z.type)!=="ab_test"&&(Z==null?void 0:Z.type)!=="volume_contract"}).sort((z,Z)=>F0(Z)-F0(z)),U=Array.from(new Set(J.flatMap(vL))).sort(),Y=J.filter(z=>{if(w==="active"&&!T.has(z.id)||w==="inactive"&&T.has(z.id)||k!=="all"&&!vL(z).includes(k))return!1;if(_.trim()){const Z=_.trim().toLowerCase();if(!z.name.toLowerCase().includes(Z)&&!z.id.toLowerCase().includes(Z))return!1}return!0});function W(z){a(Z=>{const pe=new Set(Z);return pe.has(z)?pe.delete(z):pe.add(z),pe})}async function G(z){if(n){if(D){o(z);return}await I(z)}}async function I(z){h(!0),v(null),y(null);try{await Fe("/routing/activate",{created_by:n,routing_algorithm_id:z}),y("Rule activated successfully."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{h(!1)}}async function q(z){m(z),v(null),y(null);try{await Fe("/routing/deactivate",{created_by:n,routing_algorithm_id:z}),y("Rule deactivated successfully."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{m(null)}}async function M(z){if(n){v(null),y(null);try{await Fe("/routing/delete",{created_by:n,routing_algorithm_id:z}),y("Rule deleted."),await Promise.all([P(),A()])}catch(Z){v(String(Z))}finally{d(null)}}}const B=J.find(z=>z.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Hs,{open:s!==null,title:"Switch to Rule-Based Routing?",description:`"${D==null?void 0:D.name}" (Volume Split) is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const z=s;o(null),I(z)},onCancel:()=>o(null)}),i.jsx(Hs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const z=l;c(null),q(z)},onCancel:()=>c(null)}),i.jsx(Hs,{open:u!==null,title:"Delete this rule?",description:`"${B==null?void 0:B.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>M(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(Ba,{title:"Rule-Based Routing",description:"Create conditions to route card and alternative payment transactions dynamically across multiple active gateways."})}),i.jsxs(we,{onClick:()=>e("/routing/rules/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?J.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No rule-based rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(DH,{label:"Rule Name & ID",value:_,onChange:C,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:z=>j(z),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Conditions Overview"}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Destination Gateway",value:k,options:[{value:"all",label:"All gateways"},...U.map(z=>({value:z,label:z}))],onChange:S,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[Y.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:6,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),S("all"),C("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),Y.map(z=>{const Z=T.has(z.id),pe=X.has(z.id),ae=r.has(z.id),ue=tOe(z),de=nOe(z),Q=Z?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":z.name,onClick:()=>W(z.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${Z?"bg-emerald-50/50 dark:bg-emerald-900/10":pe?"bg-purple-50/40 dark:bg-purple-900/10":""}`,children:[i.jsx("td",{className:"align-top px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[ae?i.jsx(ln,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(So,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:z.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:z.id})]})]})}),i.jsxs("td",{className:"align-top px-5 py-4",children:[i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${Z?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:Z?"Active":"Inactive"}),pe&&i.jsx("span",{className:"mt-1.5 block text-[11px] font-medium text-purple-600 dark:text-purple-400 leading-4",children:"In A/B test"})]}),i.jsx("td",{className:"max-w-[420px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words font-mono text-xs leading-[18px] text-slate-600 dark:text-[#8d96a8]",title:ue,children:ue})}),i.jsx("td",{className:"max-w-[300px] px-5 py-4 align-top",children:i.jsx("p",{className:"break-words text-sm font-medium leading-5 text-slate-800 dark:text-slate-200",title:de,children:de})}),i.jsx("td",{className:"align-top whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const fe=$H(z);return fe?i.jsxs("span",{title:fe.full,children:[fe.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:fe.time})]}):"—"})()}),i.jsx("td",{className:"align-top px-5 py-4",onClick:fe=>fe.stopPropagation(),children:i.jsx(IH,{items:[Z?{label:p===z.id?"Deactivating…":"Deactivate",icon:_y,onSelect:()=>c(z.id),disabled:p===z.id||!t}:{label:"Activate",icon:VW,tone:"positive",onSelect:()=>G(z.id),disabled:f||!t},{label:"Edit",icon:jl,onSelect:()=>e(`/routing/rules/${z.id}/edit`),disabled:!!Q,hint:Q},{label:"Duplicate",icon:nf,onSelect:()=>e(`/routing/rules/new?cloneFrom=${z.id}`),disabled:!t},{label:"Delete",icon:wn,tone:"danger",onSelect:()=>d(z.id),disabled:!!Q,hint:Q}]})})]},z.id),ae?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:6,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[z.description&&z.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:z.description}),i.jsx(bT,{algo:z})]})},`${z.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"Volume Split is active"})," — activating a rule-based rule will automatically deactivate it."]}),L&&i.jsxs($a,{tone:"info",children:[i.jsxs("strong",{children:['A/B experiment "',L.name,'" is active']}),' — rules marked "In A/B test" are used as experiment arms. Activating a rule directly will stop the experiment.']})]})}function Go({value:t,onChange:e,options:n,className:r="",triggerClassName:a,disabled:s=!1,dataCy:o}){var k;const[l,c]=g.useState(!1),[u,d]=g.useState(""),[f,h]=g.useState({}),p=g.useRef(null),m=g.useRef(null),x=g.useRef(null),v=((k=n.find(S=>S.value===t))==null?void 0:k.label)??t,b=(u?n.filter(S=>S.label.toLowerCase().includes(u.toLowerCase())||S.value.toLowerCase().includes(u.toLowerCase())):n).slice().sort((S,_)=>S.label.localeCompare(_.label));function y(){var _;const S=(_=p.current)==null?void 0:_.getBoundingClientRect();S&&(h({position:"fixed",top:S.bottom+4,left:S.left,minWidth:S.width,zIndex:9999}),c(!0))}g.useEffect(()=>{var S;l&&((S=x.current)==null||S.focus())},[l]),g.useEffect(()=>{if(!l)return;function S(C){var P,R;const E=C.target;!((P=p.current)!=null&&P.contains(E))&&!((R=m.current)!=null&&R.contains(E))&&w()}function _(C){C.key==="Escape"&&w()}return document.addEventListener("mousedown",S),document.addEventListener("keydown",_),()=>{document.removeEventListener("mousedown",S),document.removeEventListener("keydown",_)}},[l]);function w(){c(!1),d("")}function j(S){e(S),w()}return i.jsxs("div",{className:`relative ${r||(a?"block":"inline-block")}`,"data-cy":o,children:[i.jsxs("button",{ref:p,type:"button",disabled:s,onClick:()=>l?w():y(),className:a?`flex w-full items-center justify-between gap-2 text-left ${a}`:"cond-select flex w-full items-center justify-between gap-1 pr-2",style:{backgroundImage:"none",display:"flex",alignItems:"center"},"data-value":t,children:[i.jsx("span",{className:"min-w-0 truncate text-left",children:v||i.jsx("span",{className:"text-slate-500",children:"select..."})}),i.jsx(ln,{size:11,className:`shrink-0 text-slate-500 transition-transform duration-150 ${l?"rotate-180":""}`})]}),l&&gs.createPortal(i.jsxs("div",{ref:m,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"p-1.5 border-b border-slate-100 dark:border-[#1c1c24]",children:i.jsx("input",{ref:x,type:"text",value:u,onChange:S=>d(S.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(b.length*32+8,272)}px`},children:b.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):b.map(S=>i.jsx("button",{type:"button","data-value":S.value,onClick:()=>j(S.value),className:`w-full px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${S.value===t?"text-brand-600 dark:text-brand-400 font-medium bg-brand-50/50 dark:bg-brand-900/10":""}`,children:S.label},S.value))})]}),document.body)]})}const qn="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-brand-500 dark:border-[#222226]",sOe=["adyen","stripe","checkout","worldpay","braintree","paypal","chase","cybersource","globalpay","nuvei","rapyd","fiserv","authorizedotnet"],iOe=["USD","EUR","GBP","INR","JPY","AUD","CAD","SGD","AED","BHD","KWD"],oOe=["UTC","America/New_York","America/Chicago","America/Los_Angeles","Europe/London","Europe/Amsterdam","Europe/Berlin","Asia/Kolkata","Asia/Singapore","Asia/Tokyo","Australia/Sydney"],lOe={calendar_month:"Day of month the cycle starts (1–30)",calendar_quarter:"Month within the quarter the cycle starts (1–3)",calendar_year:"Month the cycle starts (1–12)"};let cOe=1;function zH(t){return{kind:"retroactive",bps:"",threshold:"",targeted:t,rebateLagDays:"0",rebateSettlement:"cash"}}function e_(){return{key:cOe++,id:"",connector:"",status:"active",cycleType:"calendar_month",anchor:"1",timezone:"UTC",archetype:"lumpsum",target:"",rewardKind:"flat",flatAmount:"",rebateBps:"",tiers:[zH(!0)]}}function eb(t){return t.trim()}function uOe(){const t=$r(te=>te.merchantId),e=Ao(),{mutate:n}=Wk(),{data:r,isLoading:a}=ct(t?`/routing/list/${t}`:null,te=>Fe(te),{revalidateOnFocus:!1}),{data:s}=ct(t?`/routing/list/active/${t}`:null,te=>Fe(te),{revalidateOnFocus:!1}),o=g.useMemo(()=>(r??[]).filter(te=>te.algorithm_for==="volume_commitment").sort((te,me)=>new Date(me.created_at??0).getTime()-new Date(te.created_at??0).getTime()),[r]),l=g.useMemo(()=>{var te;return((te=(s??[]).find(me=>me.algorithm_for==="volume_commitment"))==null?void 0:te.id)??null},[s]);function c(){n(`/routing/list/${t}`),n(`/routing/list/active/${t}`)}const[u,d]=g.useState(""),[f,h]=g.useState(""),[p,m]=g.useState("pace_guarded"),[x,v]=g.useState("5"),[b,y]=g.useState("gmv"),[w,j]=g.useState("USD"),[k,S]=g.useState("major"),[_,C]=g.useState(""),[E,P]=g.useState(""),[R,A]=g.useState(""),[T,D]=g.useState([e_()]),[L,X]=g.useState(!1),[J,U]=g.useState(null),[Y,W]=g.useState(null),[G,I]=g.useState(null),[q,M]=g.useState(null),[B,z]=g.useState(null),[Z,pe]=g.useState(null),[ae,ue]=g.useState(null),[de,Q]=g.useState(null),[fe,ne]=g.useState(null),[ce,he]=g.useState(null);function be(te,me){D(ve=>ve.map(Ee=>Ee.key===te?{...Ee,...me}:Ee))}function Pe(te,me,ve){D(Ee=>Ee.map(Oe=>{if(Oe.key!==te)return Oe;const Tt=Oe.tiers.map((Bt,Pt)=>ve.targeted===!0?Pt===me?{...Bt,...ve}:{...Bt,targeted:!1}:Pt===me?{...Bt,...ve}:Bt);return{...Oe,tiers:Tt}}))}function Ce(){const te={schema_version:1,routing_mode:p,tolerance:`${Math.round(parseFloat(x||"0")*100)}bps`,metric:b,currency:{denomination:w.trim().toUpperCase(),amount_units:k},expected_daily_traffic:eb(_),volume_contracts:T.map(me=>{const ve={id:me.id.trim(),connector:me.connector.trim(),status:me.status,billing_cycle:{type:me.cycleType,anchor:parseInt(me.anchor,10)||0,timezone:me.timezone.trim()}};return me.archetype==="lumpsum"?{...ve,archetype:"lumpsum",terms:{target:eb(me.target),reward:me.rewardKind==="flat"?{kind:"flat",value:{flat_amount:eb(me.flatAmount)}}:{kind:"percentage",value:{rebate_bps:parseInt(me.rebateBps,10)||0}}}}:{...ve,archetype:"tiered",terms:{tiers:me.tiers.map(Ee=>({kind:Ee.kind,rate:Ee.kind==="retroactive"?{rebate_bps:parseInt(Ee.bps,10)||0}:{rate_bps:parseInt(Ee.bps,10)||0},threshold:eb(Ee.threshold),targeted:Ee.targeted,rebate_lag_days:parseInt(Ee.rebateLagDays,10)||0,rebate_settlement:Ee.rebateSettlement}))}}})};return E.trim()&&(te.forecast_interval_secs=parseInt(E,10)),R.trim()&&(te.steering_interval_secs=parseInt(R,10)),te}function Re(){d(""),h(""),m("pace_guarded"),v("5"),y("gmv"),j("USD"),S("major"),C(""),P(""),A(""),D([e_()])}async function Be(){if(t){X(!0),U(null),W(null);try{const te={name:u.trim(),description:f.trim()||`Volume commitments for ${t}`,created_by:t,algorithm_for:"volume_commitment",algorithm:{type:"volume_contract",data:Ce()}};await Fe("/routing/create",te),W(u.trim()),Re(),c()}catch(te){U(te instanceof Error?te.message:"Failed to create contract document")}finally{X(!1)}}}async function st(te){M(te),he(null);try{await Fe("/routing/activate",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to activate")}finally{M(null)}}async function F(te){z(te),he(null);try{await Fe("/routing/deactivate",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to deactivate")}finally{z(null)}}async function se(te){pe(te),he(null);try{await Fe("/routing/delete",{created_by:t,routing_algorithm_id:te}),c()}catch(me){he(me instanceof Error?me.message:"Failed to delete")}finally{pe(null)}}function ie(te,me){return i.jsxs("div",{className:"mb-1.5 flex items-baseline justify-between gap-2",children:[i.jsx("span",{className:ks,children:te}),me?i.jsx("span",{className:"text-[11px] text-slate-400 dark:text-[#8d96aa]",children:me}):null]})}const Se=b==="volume"?"transaction count":`${k} ${w.toUpperCase()} units`;return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"flex flex-wrap items-end justify-between gap-3",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Volume Contracts"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Express PSP volume-commitment contracts — goals, rebates and billing cycles. The routing engine reads the active document to pace and steer traffic; nothing here changes routing until activated."})]})}),i.jsxs("div",{className:"grid grid-cols-1 gap-6 xl:grid-cols-3",children:[i.jsxs(Te,{className:"xl:col-span-1",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(Fj,{size:18,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("h2",{className:ra,children:"Contract Documents"})]})}),i.jsxs(He,{children:[t?a?i.jsxs("div",{className:"flex items-center gap-2 py-6 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading…"]}):o.length===0?i.jsx("p",{className:pl,children:"No contract documents yet. Build one on the right."}):i.jsx("ul",{className:"space-y-2",children:o.map(te=>{var Oe,Tt,Bt;const me=te.id===l,ve=G===te.id,Ee=(Oe=te.algorithm_data??te.algorithm)==null?void 0:Oe.data;return i.jsxs("li",{className:`rounded-xl border px-3 py-2.5 transition-colors ${me?"border-emerald-200 bg-emerald-50/50 dark:border-emerald-500/25 dark:bg-emerald-500/5":"border-slate-200 dark:border-[#222226]"}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("button",{type:"button",className:"min-w-0 flex-1 text-left",onClick:()=>I(ve?null:te.id),children:[i.jsx("span",{className:"block truncate text-sm font-medium text-slate-800 dark:text-white",children:te.name}),i.jsxs("span",{className:"block text-[11px] text-slate-400 dark:text-[#8d96aa]",children:[((Tt=Ee==null?void 0:Ee.volume_contracts)==null?void 0:Tt.length)??0," contract",(((Bt=Ee==null?void 0:Ee.volume_contracts)==null?void 0:Bt.length)??0)===1?"":"s",te.created_at?` · ${new Date(te.created_at).toLocaleDateString()}`:""]})]}),me?i.jsx(Me,{variant:"green",children:"Active"}):i.jsx(Me,{variant:"gray",children:"Inactive"}),i.jsx("button",{type:"button",className:"text-slate-400 hover:text-slate-600 dark:hover:text-white",onClick:()=>I(ve?null:te.id),"aria-label":ve?"Collapse":"Expand",children:ve?i.jsx(hs,{size:14}):i.jsx(ln,{size:14})})]}),ve?i.jsxs("div",{className:"mt-2 space-y-2",children:[i.jsx("pre",{className:"max-h-64 overflow-auto rounded-lg bg-slate-50 p-2.5 text-[11px] leading-relaxed text-slate-600 dark:bg-[#0a0d12] dark:text-[#9ca7ba]",children:JSON.stringify(Ee,null,2)}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:me?i.jsxs(we,{size:"sm",variant:"danger",disabled:B===te.id||!e,onClick:()=>Q(te.id),children:[B===te.id?i.jsx(at,{size:12}):null," Deactivate"]}):i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",disabled:q===te.id||!e,onClick:()=>l?ue(te.id):st(te.id),children:[q===te.id?i.jsx(at,{size:12}):null," Activate"]}),i.jsxs(we,{size:"sm",variant:"ghost",disabled:Z===te.id||!e,onClick:()=>ne(te.id),children:[i.jsx(wn,{size:12})," Delete"]})]})})]}):null]},te.id)})}):i.jsx("p",{className:pl,children:"Set a merchant ID to see its contract documents."}),i.jsx("div",{className:"mt-3",children:i.jsx(vt,{error:ce})})]})]}),i.jsxs(Te,{className:"xl:col-span-2",children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx(Cy,{size:18,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("h2",{className:ra,children:"New Contract Document"})]})}),i.jsx(He,{children:i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[ie("Name"),i.jsx("input",{className:qn,placeholder:"q3_volume_contracts",value:u,onChange:te=>d(te.target.value)})]}),i.jsxs("div",{children:[ie("Description"),i.jsx("input",{className:qn,placeholder:"Q3 PSP volume commitments",value:f,onChange:te=>h(te.target.value)})]})]}),i.jsxs(aA,{children:[i.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[i.jsx(INe,{size:14,className:"text-slate-400 dark:text-[#8a8a93]"}),i.jsx("span",{className:ks,children:"Merchant-level settings"})]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[ie("Routing mode"),i.jsx(Go,{triggerClassName:qn,value:p,onChange:te=>m(te),options:[{value:"pace_guarded",label:"Pace-guarded (auth-rate first)"},{value:"volume_commitment",label:"Volume-commitment first"}]})]}),i.jsxs("div",{children:[ie("Tolerance","percentage points"),i.jsx("input",{className:qn,type:"number",min:0,step:.5,placeholder:"5",value:x,onChange:te=>v(te.target.value)})]}),i.jsxs("div",{children:[ie("Metric"),i.jsx(Go,{triggerClassName:qn,value:b,onChange:te=>y(te),options:[{value:"gmv",label:"GMV (money processed)"},{value:"volume",label:"Volume (transaction count)"}]})]}),i.jsxs("div",{children:[ie("Currency"),i.jsx(bx,{className:qn,value:w,onChange:j,options:iOe,placeholder:"USD"})]}),i.jsxs("div",{children:[ie("Amount units"),i.jsx(Go,{triggerClassName:qn,value:k,onChange:te=>S(te),options:[{value:"major",label:"Major (6000000 = $6M)"},{value:"minor",label:"Minor (600000000 = $6M in cents)"}]})]}),i.jsxs("div",{children:[ie("Expected daily traffic",Se),i.jsx("input",{className:qn,placeholder:"800000",value:_,onChange:te=>C(te.target.value)})]}),i.jsxs("div",{children:[ie("Forecast interval","seconds, optional"),i.jsx("input",{className:qn,type:"number",min:60,placeholder:"engine default",value:E,onChange:te=>P(te.target.value)})]}),i.jsxs("div",{children:[ie("Steering interval","seconds, optional"),i.jsx("input",{className:qn,type:"number",min:60,placeholder:"engine default",value:R,onChange:te=>A(te.target.value)})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[T.map((te,me)=>i.jsxs(aA,{children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsxs("span",{className:ks,children:["Contract ",me+1]}),T.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>D(ve=>ve.filter(Ee=>Ee.key!==te.key)),"aria-label":"Remove contract",children:i.jsx(wn,{size:14})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsxs("div",{children:[ie("Contract ID"),i.jsx("input",{className:qn,placeholder:"adyen_2026_lumpsum",value:te.id,onChange:ve=>be(te.key,{id:ve.target.value})})]}),i.jsxs("div",{children:[ie("Connector","exact gateway name"),i.jsx(bx,{className:qn,value:te.connector,onChange:ve=>be(te.key,{connector:ve}),options:sOe,placeholder:"adyen"})]}),i.jsxs("div",{children:[ie("Status"),i.jsx(Go,{triggerClassName:qn,value:te.status,onChange:ve=>be(te.key,{status:ve}),options:[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}]})]}),i.jsxs("div",{children:[ie("Billing cycle"),i.jsx(Go,{triggerClassName:qn,value:te.cycleType,onChange:ve=>be(te.key,{cycleType:ve}),options:[{value:"calendar_month",label:"Calendar month"},{value:"calendar_quarter",label:"Calendar quarter"},{value:"calendar_year",label:"Calendar year"}]})]}),i.jsxs("div",{children:[ie("Anchor",lOe[te.cycleType]),i.jsx("input",{className:qn,type:"number",min:1,value:te.anchor,onChange:ve=>be(te.key,{anchor:ve.target.value})})]}),i.jsxs("div",{children:[ie("Timezone","IANA"),i.jsx(bx,{className:qn,value:te.timezone,onChange:ve=>be(te.key,{timezone:ve}),options:oOe,placeholder:"UTC"})]})]}),i.jsxs("div",{className:"mt-4",children:[ie("Archetype"),i.jsx("div",{className:"flex gap-2",children:[["lumpsum","Lumpsum — reward on hitting a target"],["tiered","Tiered — rebate ladder by threshold"]].map(([ve,Ee])=>i.jsx("button",{type:"button",onClick:()=>be(te.key,{archetype:ve}),className:`rounded-full border px-4 py-1.5 text-xs font-medium transition-colors ${te.archetype===ve?"border-brand-600 bg-brand-600 text-white":"border-slate-200 text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-[#9ca7ba] dark:hover:bg-[#151518]"}`,children:Ee},ve))})]}),te.archetype==="lumpsum"?i.jsxs("div",{className:"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-3",children:[i.jsxs("div",{children:[ie("Target",Se),i.jsx("input",{className:qn,placeholder:"6000000",value:te.target,onChange:ve=>be(te.key,{target:ve.target.value})})]}),i.jsxs("div",{children:[ie("Reward kind"),i.jsx(Go,{triggerClassName:qn,value:te.rewardKind,onChange:ve=>be(te.key,{rewardKind:ve}),options:[{value:"flat",label:"Flat amount"},{value:"percentage",label:"Percentage rebate"}]})]}),te.rewardKind==="flat"?i.jsxs("div",{children:[ie("Flat amount",Se),i.jsx("input",{className:qn,placeholder:"15000",value:te.flatAmount,onChange:ve=>be(te.key,{flatAmount:ve.target.value})})]}):i.jsxs("div",{children:[ie("Rebate","basis points"),i.jsx("input",{className:qn,type:"number",min:1,max:1e4,placeholder:"25",value:te.rebateBps,onChange:ve=>be(te.key,{rebateBps:ve.target.value})})]})]}):i.jsxs("div",{className:"mt-4 space-y-3",children:[te.tiers.map((ve,Ee)=>i.jsxs("div",{className:"rounded-xl border border-slate-200 p-3 dark:border-[#222226]",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-[12px] font-medium text-slate-600 dark:text-[#9ca7ba]",children:[i.jsx("input",{type:"radio",name:`targeted-${te.key}`,checked:ve.targeted,onChange:()=>Pe(te.key,Ee,{targeted:!0}),disabled:ve.kind==="marginal"}),"Targeted tier (the goal the engine steers for)"]}),te.tiers.length>1?i.jsx("button",{type:"button",className:"text-slate-400 hover:text-red-500",onClick:()=>be(te.key,{tiers:te.tiers.filter((Oe,Tt)=>Tt!==Ee)}),"aria-label":"Remove tier",children:i.jsx(wn,{size:13})}):null]}),i.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-5",children:[i.jsxs("div",{children:[ie("Kind"),i.jsx(Go,{triggerClassName:qn,value:ve.kind,onChange:Oe=>Pe(te.key,Ee,{kind:Oe,...Oe==="marginal"?{targeted:!1}:{}}),options:[{value:"retroactive",label:"Retroactive (whole period)"},{value:"marginal",label:"Marginal (above threshold)"}]})]}),i.jsxs("div",{children:[ie("Threshold",Se),i.jsx("input",{className:qn,placeholder:"8000000",value:ve.threshold,onChange:Oe=>Pe(te.key,Ee,{threshold:Oe.target.value})})]}),i.jsxs("div",{children:[ie(ve.kind==="retroactive"?"Rebate":"Rate","bps"),i.jsx("input",{className:qn,type:"number",min:1,max:1e4,placeholder:"20",value:ve.bps,onChange:Oe=>Pe(te.key,Ee,{bps:Oe.target.value})})]}),i.jsxs("div",{children:[ie("Rebate lag","days"),i.jsx("input",{className:qn,type:"number",min:0,max:365,value:ve.rebateLagDays,onChange:Oe=>Pe(te.key,Ee,{rebateLagDays:Oe.target.value})})]}),i.jsxs("div",{children:[ie("Settlement"),i.jsx(Go,{triggerClassName:qn,value:ve.rebateSettlement,onChange:Oe=>Pe(te.key,Ee,{rebateSettlement:Oe}),options:[{value:"cash",label:"Cash"},{value:"credit_note",label:"Credit note"}]})]})]})]},Ee)),i.jsxs(we,{size:"sm",variant:"secondary",onClick:()=>be(te.key,{tiers:[...te.tiers,zH(!1)]}),children:[i.jsx(Qn,{size:13})," Add tier"]})]})]},te.key)),i.jsxs(we,{variant:"secondary",onClick:()=>D(te=>[...te,e_()]),children:[i.jsx(Qn,{size:14})," Add PSP contract"]})]}),i.jsxs("div",{className:"space-y-3 border-t border-slate-100 pt-4 dark:border-[#1a1d25]",children:[i.jsx(vt,{error:J}),Y?i.jsxs("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/10 px-4 py-3 text-sm text-emerald-600 dark:text-emerald-400",children:["“",Y,"” created. Activate it from the list to hand it to the routing engine."]}):null,i.jsxs("div",{className:"flex items-center justify-end gap-3",children:[i.jsx(we,{variant:"ghost",onClick:Re,disabled:L,children:"Reset"}),i.jsxs(we,{onClick:Be,disabled:L||!t||!u.trim()||!e,children:[L?i.jsx(at,{size:14}):null," Create Document"]})]})]})]})})]})]}),i.jsx(Hs,{open:ae!=null,title:"Replace the active document?",description:"Another contract document is currently active. Activating this one hands the engine this document instead.",confirmLabel:"Activate",variant:"primary",onConfirm:()=>{ae&&st(ae),ue(null)},onCancel:()=>ue(null)}),i.jsx(Hs,{open:de!=null,title:"Deactivate this document?",description:"The routing engine stops receiving volume-commitment configuration until another document is activated.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{de&&F(de),Q(null)},onCancel:()=>Q(null)}),i.jsx(Hs,{open:fe!=null,title:"Delete this document?",description:"This permanently removes the contract document. Only inactive documents can be deleted.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{fe&&se(fe),ne(null)},onCancel:()=>ne(null)})]})}function Ww({message:t}){return t?i.jsxs("p",{role:"alert",className:"mt-1.5 flex items-start gap-1.5 text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:[i.jsx(LNe,{size:14,className:"mt-px shrink-0"}),i.jsx("span",{children:t})]}):null}function UH(t){return t?"!border-red-400 focus:!ring-red-400 dark:!border-red-500/60":""}let xA=[],VH=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e>1;if(t=VH[r])e=r+1;else return!0;if(e==n)return!1}}function bL(t){return t>=127462&&t<=127487}const wL=8205;function fOe(t,e,n=!0,r=!0){return(n?WH:hOe)(t,e,r)}function WH(t,e,n){if(e==t.length)return e;e&&HH(t.charCodeAt(e))&&GH(t.charCodeAt(e-1))&&e--;let r=t_(t,e);for(e+=kL(r);e=0&&bL(t_(t,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function hOe(t,e,n){for(;e>0;){let r=WH(t,e-2,n);if(r=56320&&t<57344}function GH(t){return t>=55296&&t<56320}function kL(t){return t<65536?1:2}class en{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,r){[e,n]=Bp(this,e,n);let a=[];return this.decompose(0,e,a,2),r.length&&r.decompose(0,r.length,a,3),this.decompose(n,this.length,a,1),Jo.from(a,this.length-(n-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=Bp(this,e,n);let r=[];return this.decompose(e,n,r,0),Jo.from(r,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),a=new wx(this),s=new wx(e);for(let o=n,l=n;;){if(a.next(o),s.next(o),o=0,a.lineBreak!=s.lineBreak||a.done!=s.done||a.value!=s.value)return!1;if(l+=a.value.length,a.done||l>=r)return!0}}iter(e=1){return new wx(this,e)}iterRange(e,n=this.length){return new qH(this,e,n)}iterLines(e,n){let r;if(e==null)r=this.iter();else{n==null&&(n=this.lines+1);let a=this.line(e).from;r=this.iterRange(a,Math.max(a,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new KH(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?en.empty:e.length<=32?new Tr(e):Jo.from(Tr.split(e,[]))}}class Tr extends en{constructor(e,n=pOe(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.text[s],l=a+o.length;if((n?r:l)>=e)return new mOe(a,l,r,o);a=l+1,r++}}decompose(e,n,r,a){let s=e<=0&&n>=this.length?this:new Tr(jL(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(a&1){let o=r.pop(),l=e1(s.text,o.text.slice(),0,s.length);if(l.length<=32)r.push(new Tr(l,o.length+s.length));else{let c=l.length>>1;r.push(new Tr(l.slice(0,c)),new Tr(l.slice(c)))}}else r.push(s)}replace(e,n,r){if(!(r instanceof Tr))return super.replace(e,n,r);[e,n]=Bp(this,e,n);let a=e1(this.text,e1(r.text,jL(this.text,0,e)),n),s=this.length+r.length-(n-e);return a.length<=32?new Tr(a,s):Jo.from(Tr.split(a,[]),s)}sliceString(e,n=this.length,r=` -`){[e,n]=Bp(this,e,n);let a="";for(let s=0,o=0;s<=n&&oe&&o&&(a+=r),es&&(a+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return a}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let r=[],a=-1;for(let s of e)r.push(s),a+=s.length+1,r.length==32&&(n.push(new Tr(r,a)),r=[],a=-1);return a>-1&&n.push(new Tr(r,a)),n}}class Jo extends en{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,n,r,a){for(let s=0;;s++){let o=this.children[s],l=a+o.length,c=r+o.lines-1;if((n?c:l)>=e)return o.lineInner(e,n,r,a);a=l+1,r=c+1}}decompose(e,n,r,a){for(let s=0,o=0;o<=n&&s=o){let u=a&((o<=e?1:0)|(c>=n?2:0));o>=e&&c<=n&&!u?r.push(l):l.decompose(e-o,n-o,r,u)}o=c+1}}replace(e,n,r){if([e,n]=Bp(this,e,n),r.lines=s&&n<=l){let c=o.replace(e-s,n-s,r),u=this.lines-o.lines+c.lines;if(c.lines>4&&c.lines>u>>6){let d=this.children.slice();return d[a]=c,new Jo(d,this.length-(n-e)+r.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,r)}sliceString(e,n=this.length,r=` -`){[e,n]=Bp(this,e,n);let a="";for(let s=0,o=0;se&&s&&(a+=r),eo&&(a+=l.sliceString(e-o,n-o,r)),o=c+1}return a}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof Jo))return 0;let r=0,[a,s,o,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;a+=n,s+=n){if(a==o||s==l)return r;let c=this.children[a],u=e.children[s];if(c!=u)return r+c.scanIdentical(u,n);r+=c.length+1}}static from(e,n=e.reduce((r,a)=>r+a.length+1,-1)){let r=0;for(let p of e)r+=p.lines;if(r<32){let p=[];for(let m of e)m.flatten(p);return new Tr(p,n)}let a=Math.max(32,r>>5),s=a<<1,o=a>>1,l=[],c=0,u=-1,d=[];function f(p){let m;if(p.lines>s&&p instanceof Jo)for(let x of p.children)f(x);else p.lines>o&&(c>o||!c)?(h(),l.push(p)):p instanceof Tr&&c&&(m=d[d.length-1])instanceof Tr&&p.lines+m.lines<=32?(c+=p.lines,u+=p.length+1,d[d.length-1]=new Tr(m.text.concat(p.text),m.length+1+p.length)):(c+p.lines>a&&h(),c+=p.lines,u+=p.length+1,d.push(p))}function h(){c!=0&&(l.push(d.length==1?d[0]:Jo.from(d,u)),u=-1,c=d.length=0)}for(let p of e)f(p);return h(),l.length==1?l[0]:new Jo(l,n)}}en.empty=new Tr([""],0);function pOe(t){let e=-1;for(let n of t)e+=n.length+1;return e}function e1(t,e,n=0,r=1e9){for(let a=0,s=0,o=!0;s=n&&(c>r&&(l=l.slice(0,r-a)),a0?1:(e instanceof Tr?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,a=this.nodes[r],s=this.offsets[r],o=s>>1,l=a instanceof Tr?a.text.length:a.children.length;if(o==(n>0?l:0)){if(r==0)return this.done=!0,this.value="",this;n>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[r]+=n,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(a instanceof Tr){let c=a.text[o+(n<0?-1:0)];if(this.offsets[r]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=a.children[o+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[r]+=n):(n<0&&this.offsets[r]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof Tr?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class qH{constructor(e,n,r){this.value="",this.done=!1,this.cursor=new wx(e,n>r?-1:1),this.pos=n>r?e.length:0,this.from=Math.min(n,r),this.to=Math.max(n,r)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let r=n<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:a}=this.cursor.next(e);return this.pos+=(a.length+e)*n,this.value=a.length<=r?a:n<0?a.slice(a.length-r):a.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class KH{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:r,value:a}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=a,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(en.prototype[Symbol.iterator]=function(){return this.iter()},wx.prototype[Symbol.iterator]=qH.prototype[Symbol.iterator]=KH.prototype[Symbol.iterator]=function(){return this});class mOe{constructor(e,n,r,a){this.from=e,this.to=n,this.number=r,this.text=a}get length(){return this.to-this.from}}function Bp(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function ba(t,e,n=!0,r=!0){return fOe(t,e,n,r)}function gOe(t){return t>=56320&&t<57344}function xOe(t){return t>=55296&&t<56320}function Ps(t,e){let n=t.charCodeAt(e);if(!xOe(n)||e+1==t.length)return n;let r=t.charCodeAt(e+1);return gOe(r)?(n-55296<<10)+(r-56320)+65536:n}function wT(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function Zo(t){return t<65536?1:2}const yA=/\r\n?|\n/;var ps=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(ps||(ps={}));class ml{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;ne)return s+(e-a);s+=l}else{if(r!=ps.Simple&&u>=e&&(r==ps.TrackDel&&ae||r==ps.TrackBefore&&ae))return null;if(u>e||u==e&&n<0&&!l)return e==a||n<0?s:s+c;s+=c}a=u}if(e>a)throw new RangeError(`Position ${e} is out of range for changeset of length ${a}`);return s}touchesRange(e,n=e){for(let r=0,a=0;r=0&&a<=n&&l>=e)return an?"cover":!0;a=l}return!1}toString(){let e="";for(let n=0;n=0?":"+a:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ml(e)}static create(e){return new ml(e)}}class Jr extends ml{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return vA(this,(n,r,a,s,o)=>e=e.replace(a,a+(r-n),o),!1),e}mapDesc(e,n=!1){return bA(this,e,n,!0)}invert(e){let n=this.sections.slice(),r=[];for(let a=0,s=0;a=0){n[a]=l,n[a+1]=o;let c=a>>1;for(;r.length0&&ru(r,n,s.text),s.forward(d),l+=d}let u=e[o++];for(;l>1].toJSON()))}return e}static of(e,n,r){let a=[],s=[],o=0,l=null;function c(d=!1){if(!d&&!a.length)return;oh||f<0||h>n)throw new RangeError(`Invalid change range ${f} to ${h} (in doc of length ${n})`);let m=p?typeof p=="string"?en.of(p.split(r||yA)):p:en.empty,x=m.length;if(f==h&&x==0)return;fo&&qa(a,f-o,-1),qa(a,h-f,x),ru(s,a,m),o=h}}return u(e),c(!l),l}static empty(e){return new Jr(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let a=0;al&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;r.length=0&&n<=0&&n==t[a+1]?t[a]+=e:a>=0&&e==0&&t[a]==0?t[a+1]+=n:r?(t[a]+=e,t[a+1]+=n):t.push(e,n)}function ru(t,e,n){if(n.length==0)return;let r=e.length-2>>1;if(r>1])),!(n||o==t.sections.length||t.sections[o+1]<0);)l=t.sections[o++],c=t.sections[o++];e(a,u,s,d,f),a=u,s=d}}}function bA(t,e,n,r=!1){let a=[],s=r?[]:null,o=new B0(t),l=new B0(e);for(let c=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let u=Math.min(o.len,l.len);qa(a,u,-1),o.forward(u),l.forward(u)}else if(l.ins>=0&&(o.ins<0||c==o.i||o.off==0&&(l.len=0&&c=0){let u=0,d=o.len;for(;d;)if(l.ins==-1){let f=Math.min(d,l.len);u+=f,d-=f,l.forward(f)}else if(l.ins==0&&l.lenc||o.ins>=0&&o.len>c)&&(l||r.length>u),s.forward2(c),o.forward(c)}}}}class B0{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return n>=e.length?en.empty:e[n]}textBit(e){let{inserted:n}=this.set,r=this.i-2>>1;return r>=n.length&&!e?en.empty:n[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class _d{constructor(e,n,r){this.from=e,this.to=n,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let r,a;return this.empty?r=a=e.mapPos(this.from,n):(r=e.mapPos(this.from,1),a=e.mapPos(this.to,-1)),r==this.from&&a==this.to?this:new _d(r,a,this.flags)}extend(e,n=e,r=0){if(e<=this.anchor&&n>=this.anchor)return Ne.range(e,n,void 0,void 0,r);let a=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return Ne.range(this.anchor,a,void 0,void 0,r)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Ne.range(e.anchor,e.head)}static create(e,n,r){return new _d(e,n,r)}}class Ne{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:Ne.create(this.ranges.map(r=>r.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Ne(e.ranges.map(n=>_d.fromJSON(n)),e.main)}static single(e,n=e){return new Ne([Ne.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,a=0;aa.from-s.from),n=e.indexOf(r);for(let a=1;as.head?Ne.range(c,l):Ne.range(l,c))}}return new Ne(e,n)}}function XH(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let kT=0;class Ye{constructor(e,n,r,a,s){this.combine=e,this.compareInput=n,this.compare=r,this.isStatic=a,this.id=kT++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Ye(e.combine||(n=>n),e.compareInput||((n,r)=>n===r),e.compare||(e.combine?(n,r)=>n===r:jT),!!e.static,e.enables)}of(e){return new t1([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new t1(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new t1(e,this,2,n)}from(e,n){return n||(n=r=>r),this.compute([e],r=>n(r.field(e)))}}function jT(t,e){return t==e||t.length==e.length&&t.every((n,r)=>n===e[r])}class t1{constructor(e,n,r,a){this.dependencies=e,this.facet=n,this.type=r,this.value=a,this.id=kT++}dynamicSlot(e){var n;let r=this.value,a=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,c=!1,u=!1,d=[];for(let f of this.dependencies)f=="doc"?c=!0:f=="selection"?u=!0:((n=e[f.id])!==null&&n!==void 0?n:1)&1||d.push(e[f.id]);return{create(f){return f.values[o]=r(f),1},update(f,h){if(c&&h.docChanged||u&&(h.docChanged||h.selection)||wA(f,d)){let p=r(f);if(l?!SL(p,f.values[o],a):!a(p,f.values[o]))return f.values[o]=p,1}return 0},reconfigure:(f,h)=>{let p,m=h.config.address[s];if(m!=null){let x=Gw(h,m);if(this.dependencies.every(v=>v instanceof Ye?h.facet(v)===f.facet(v):v instanceof ns?h.field(v,!1)==f.field(v,!1):!0)||(l?SL(p=r(f),x,a):a(p=r(f),x)))return f.values[o]=x,0}else p=r(f);return f.values[o]=p,1}}}}function SL(t,e,n){if(t.length!=e.length)return!1;for(let r=0;rt[c.id]),a=n.map(c=>c.type),s=r.filter(c=>!(c&1)),o=t[e.id]>>1;function l(c){let u=[];for(let d=0;dr===a),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(tb).find(r=>r.field==this);return((n==null?void 0:n.create)||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:r=>(r.values[n]=this.create(r),1),update:(r,a)=>{let s=r.values[n],o=this.updateF(s,a);return this.compareF(s,o)?0:(r.values[n]=o,1)},reconfigure:(r,a)=>{let s=r.facet(tb),o=a.facet(tb),l;return(l=s.find(c=>c.field==this))&&l!=o.find(c=>c.field==this)?(r.values[n]=l.create(r),1):a.config.address[this.id]!=null?(r.values[n]=a.field(this),0):(r.values[n]=this.create(r),1)}}}init(e){return[this,tb.of({field:this,create:e})]}get extension(){return this}}const fd={lowest:4,low:3,default:2,high:1,highest:0};function bg(t){return e=>new JH(e,t)}const _f={highest:bg(fd.highest),high:bg(fd.high),default:bg(fd.default),low:bg(fd.low),lowest:bg(fd.lowest)};class JH{constructor(e,n){this.inner=e,this.prec=n}}class Wj{of(e){return new kA(this,e)}reconfigure(e){return Wj.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class kA{constructor(e,n){this.compartment=e,this.inner=n}}class Hw{constructor(e,n,r,a,s,o){for(this.base=e,this.compartments=n,this.dynamicSlots=r,this.address=a,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,n,r){let a=[],s=Object.create(null),o=new Map;for(let h of vOe(e,n,o))h instanceof ns?a.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h);let l=Object.create(null),c=[],u=[];for(let h of a)l[h.id]=u.length<<1,u.push(p=>h.slot(p));let d=r==null?void 0:r.config.facets;for(let h in s){let p=s[h],m=p[0].facet,x=d&&d[h]||[];if(p.every(v=>v.type==0))if(l[m.id]=c.length<<1|1,jT(x,p))c.push(r.facet(m));else{let v=m.combine(p.map(b=>b.value));c.push(r&&m.compare(v,r.facet(m))?r.facet(m):v)}else{for(let v of p)v.type==0?(l[v.id]=c.length<<1|1,c.push(v.value)):(l[v.id]=u.length<<1,u.push(b=>v.dynamicSlot(b)));l[m.id]=u.length<<1,u.push(v=>yOe(v,m,p))}}let f=u.map(h=>h(l));return new Hw(e,o,f,l,c,s)}}function vOe(t,e,n){let r=[[],[],[],[],[]],a=new Map;function s(o,l){let c=a.get(o);if(c!=null){if(c<=l)return;let u=r[c].indexOf(o);u>-1&&r[c].splice(u,1),o instanceof kA&&n.delete(o.compartment)}if(a.set(o,l),Array.isArray(o))for(let u of o)s(u,l);else if(o instanceof kA){if(n.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let u=e.get(o.compartment)||o.inner;n.set(o.compartment,u),s(u,l)}else if(o instanceof JH)s(o.inner,o.prec);else if(o instanceof ns)r[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof t1)r[l].push(o),o.facet.extensions&&s(o.facet.extensions,fd.default);else{let u=o.extension;if(!u)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(u,l)}}return s(t,fd.default),r.reduce((o,l)=>o.concat(l))}function kx(t,e){if(e&1)return 2;let n=e>>1,r=t.status[n];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;t.status[n]=4;let a=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|a}function Gw(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const ZH=Ye.define(),jA=Ye.define({combine:t=>t.some(e=>e),static:!0}),QH=Ye.define({combine:t=>t.length?t[0]:void 0,static:!0}),eG=Ye.define(),tG=Ye.define(),nG=Ye.define(),rG=Ye.define({combine:t=>t.length?t[0]:!1});class _l{constructor(e,n){this.type=e,this.value=n}static define(){return new bOe}}class bOe{of(e){return new _l(this,e)}}class wOe{constructor(e){this.map=e}of(e){return new Ot(this,e)}}class Ot{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Ot(this.type,n)}is(e){return this.type==e}static define(e={}){return new wOe(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let r=[];for(let a of e){let s=a.map(n);s&&r.push(s)}return r}}Ot.reconfigure=Ot.define();Ot.appendConfig=Ot.define();class ta{constructor(e,n,r,a,s,o){this.startState=e,this.changes=n,this.selection=r,this.effects=a,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&XH(r,n.newLength),s.some(l=>l.type==ta.time)||(this.annotations=s.concat(ta.time.of(Date.now())))}static create(e,n,r,a,s,o){return new ta(e,n,r,a,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(ta.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}ta.time=_l.define();ta.userEvent=_l.define();ta.addToHistory=_l.define();ta.remote=_l.define();function kOe(t,e){let n=[];for(let r=0,a=0;;){let s,o;if(r=t[r]))s=t[r++],o=t[r++];else if(a=0;a--){let s=r[a](t);s instanceof ta?t=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ta?t=s[0]:t=sG(e,Vh(s),!1)}return t}function SOe(t){let e=t.startState,n=e.facet(nG),r=t;for(let a=n.length-1;a>=0;a--){let s=n[a](t);s&&Object.keys(s).length&&(r=aG(r,SA(e,s,t.changes.newLength),!0))}return r==t?t:ta.create(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}const _Oe=[];function Vh(t){return t==null?_Oe:Array.isArray(t)?t:[t]}var sr=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(sr||(sr={}));const NOe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let _A;try{_A=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function COe(t){if(_A)return _A.test(t);for(let e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||NOe.test(n)))return!0}return!1}function EOe(t){return e=>{if(!/\S/.test(e))return sr.Space;if(COe(e))return sr.Word;for(let n=0;n-1)return sr.Word;return sr.Other}}class Xt{constructor(e,n,r,a,s,o){this.config=e,this.doc=n,this.selection=r,this.values=a,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;la.set(u,c)),n=null),a.set(l.value.compartment,l.value.extension)):l.is(Ot.reconfigure)?(n=null,r=l.value):l.is(Ot.appendConfig)&&(n=null,r=Vh(r).concat(l.value));let s;n?s=e.startState.values.slice():(n=Hw.resolve(r,a,this),s=new Xt(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,u)=>u.reconfigure(c,this),null).values);let o=e.startState.facet(jA)?e.newSelection:e.newSelection.asSingle();new Xt(n,e.newDoc,o,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:Ne.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,r=e(n.ranges[0]),a=this.changes(r.changes),s=[r.range],o=Vh(r.effects);for(let l=1;lo.spec.fromJSON(l,c)))}}return Xt.create({doc:e.doc,selection:Ne.fromJSON(e.selection),extensions:n.extensions?a.concat([n.extensions]):a})}static create(e={}){let n=Hw.resolve(e.extensions||[],new Map),r=e.doc instanceof en?e.doc:en.of((e.doc||"").split(n.staticFacet(Xt.lineSeparator)||yA)),a=e.selection?e.selection instanceof Ne?e.selection:Ne.single(e.selection.anchor,e.selection.head):Ne.single(0);return XH(a,r.length),n.staticFacet(jA)||(a=a.asSingle()),new Xt(n,r,a,n.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(Xt.tabSize)}get lineBreak(){return this.facet(Xt.lineSeparator)||` -`}get readOnly(){return this.facet(rG)}phrase(e,...n){for(let r of this.facet(Xt.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(r,a)=>{if(a=="$")return"$";let s=+(a||1);return!s||s>n.length?r:n[s-1]})),e}languageDataAt(e,n,r=-1){let a=[];for(let s of this.facet(ZH))for(let o of s(this,n,r))Object.prototype.hasOwnProperty.call(o,e)&&a.push(o[e]);return a}charCategorizer(e){let n=this.languageDataAt("wordChars",e);return EOe(n.length?n[0]:"")}wordAt(e){let{text:n,from:r,length:a}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,l=e-r;for(;o>0;){let c=ba(n,o,!1);if(s(n.slice(c,o))!=sr.Word)break;o=c}for(;lt.length?t[0]:4});Xt.lineSeparator=QH;Xt.readOnly=rG;Xt.phrases=Ye.define({compare(t,e){let n=Object.keys(t),r=Object.keys(e);return n.length==r.length&&n.every(a=>t[a]==e[a])}});Xt.languageData=ZH;Xt.changeFilter=eG;Xt.transactionFilter=tG;Xt.transactionExtender=nG;Wj.reconfigure=Ot.define();function Nl(t,e,n={}){let r={};for(let a of t)for(let s of Object.keys(a)){let o=a[s],l=r[s];if(l===void 0)r[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(n,s))r[s]=n[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let a in e)r[a]===void 0&&(r[a]=e[a]);return r}class Nu{eq(e){return this==e}range(e,n=e){return NA.create(e,n,this)}}Nu.prototype.startSide=Nu.prototype.endSide=0;Nu.prototype.point=!1;Nu.prototype.mapMode=ps.TrackDel;function ST(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let NA=class iG{constructor(e,n,r){this.from=e,this.to=n,this.value=r}static create(e,n,r){return new iG(e,n,r)}};function CA(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class _T{constructor(e,n,r,a){this.from=e,this.to=n,this.value=r,this.maxPoint=a}get length(){return this.to[this.to.length-1]}findIndex(e,n,r,a=0){let s=r?this.to:this.from;for(let o=a,l=s.length;;){if(o==l)return o;let c=o+l>>1,u=s[c]-e||(r?this.value[c].endSide:this.value[c].startSide)-n;if(c==o)return u>=0?o:l;u>=0?l=c:o=c+1}}between(e,n,r,a){for(let s=this.findIndex(n,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sp||h==p&&u.startSide>0&&u.endSide<=0)continue;(p-h||u.endSide-u.startSide)<0||(o<0&&(o=h),u.point&&(l=Math.max(l,p-h)),r.push(u),a.push(h-o),s.push(p-o))}return{mapped:r.length?new _T(a,s,r,l):null,pos:o}}}class Lt{constructor(e,n,r,a){this.chunkPos=e,this.chunk=n,this.nextLayer=r,this.maxPoint=a}static create(e,n,r,a){return new Lt(e,n,r,a)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:r=!1,filterFrom:a=0,filterTo:s=this.length}=e,o=e.filter;if(n.length==0&&!o)return this;if(r&&(n=n.slice().sort(CA)),this.isEmpty)return n.length?Lt.of(n):this;let l=new oG(this,null,-1).goto(0),c=0,u=[],d=new hc;for(;l.value||c=0){let f=n[c++];d.addInner(f.from,f.to,f.value)||u.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,n-s,r)===!1)return}this.nextLayer.between(e,n,r)}}iter(e=0){return z0.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return z0.from(e).goto(n)}static compare(e,n,r,a,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=n.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),c=_L(o,l,r),u=new wg(o,c,s),d=new wg(l,c,s);r.iterGaps((f,h,p)=>NL(u,f,d,h,p,a)),r.empty&&r.length==0&&NL(u,0,d,0,0,a)}static eq(e,n,r=0,a){a==null&&(a=999999999);let s=e.filter(d=>!d.isEmpty&&n.indexOf(d)<0),o=n.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=_L(s,o),c=new wg(s,l,0).goto(r),u=new wg(o,l,0).goto(r);for(;;){if(c.to!=u.to||!EA(c.active,u.active)||c.point&&(!u.point||!ST(c.point,u.point)))return!1;if(c.to>a)return!0;c.next(),u.next()}}static spans(e,n,r,a,s=-1){let o=new wg(e,null,s).goto(n),l=n,c=o.openStart;for(;;){let u=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),f=o.pointFroml&&(a.span(l,u,o.active,c),c=o.openEnd(u));if(o.to>r)return c+(o.point&&o.to>r?1:0);l=o.to,o.next()}}static of(e,n=!1){let r=new hc;for(let a of e instanceof NA?[e]:n?AOe(e):e)r.add(a.from,a.to,a.value);return r.finish()}static join(e){if(!e.length)return Lt.empty;let n=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let a=e[r];a!=Lt.empty;a=a.nextLayer)n=new Lt(a.chunkPos,a.chunk,n,Math.max(a.maxPoint,n.maxPoint));return n}}Lt.empty=new Lt([],[],null,-1);function AOe(t){if(t.length>1)for(let e=t[0],n=1;n0)return t.slice().sort(CA);e=r}return t}Lt.empty.nextLayer=Lt.empty;class hc{finishChunk(e){this.chunks.push(new _T(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,r){this.addInner(e,n,r)||(this.nextLayer||(this.nextLayer=new hc)).add(e,n,r)}addInner(e,n,r){let a=e-this.lastTo||r.startSide-this.last.endSide;if(a<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return a<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=n,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let r=n.value.length-1;return this.last=n.value[r],this.lastFrom=n.from[r]+e,this.lastTo=n.to[r]+e,!0}finish(){return this.finishInner(Lt.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=Lt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function _L(t,e,n){let r=new Map;for(let s of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&a.push(new oG(o,n,r,s));return a.length==1?a[0]:new z0(a)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let r of this.heap)r.goto(e,n);for(let r=this.heap.length>>1;r>=0;r--)n_(this.heap,r);return this.next(),this}forward(e,n){for(let r of this.heap)r.forward(e,n);for(let r=this.heap.length>>1;r>=0;r--)n_(this.heap,r);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),n_(this.heap,0)}}}function n_(t,e){for(let n=t[e];;){let r=(e<<1)+1;if(r>=t.length)break;let a=t[r];if(r+1=0&&(a=t[r+1],r++),n.compare(a)<0)break;t[r]=n,t[e]=a,e=r}}class wg{constructor(e,n,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=z0.from(e,n,r)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){nb(this.active,e),nb(this.activeTo,e),nb(this.activeRank,e),this.minActive=CL(this.active,this.activeTo)}addActive(e){let n=0,{value:r,to:a,rank:s}=this.cursor;for(;n0;)n++;rb(this.active,n,r),rb(this.activeTo,n,a),rb(this.activeRank,n,s),e&&rb(e,n,this.cursor.from),this.minActive=CL(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>e){this.to=this.activeTo[a],this.endSide=this.active[a].endSide;break}this.removeActive(a),r&&nb(r,a)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from=0&&r[a]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&n.push(this.active[r]);return n.reverse()}openEnd(e){let n=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)n++;return n}}function NL(t,e,n,r,a,s){t.goto(e),n.goto(r);let o=r+a,l=r,c=r-e,u=!!s.boundChange;for(let d=!1;;){let f=t.to+c-n.to,h=f||t.endSide-n.endSide,p=h<0?t.to+c:n.to,m=Math.min(p,o);if(t.point||n.point?(t.point&&n.point&&ST(t.point,n.point)&&EA(t.activeForPoint(t.to),n.activeForPoint(n.to))||s.comparePoint(l,m,t.point,n.point),d=!1):(d&&s.boundChange(l),m>l&&!EA(t.active,n.active)&&s.compareRange(l,m,t.active,n.active),u&&mo)break;l=p,h<=0&&t.next(),h>=0&&n.next()}}function EA(t,e){if(t.length!=e.length)return!1;for(let n=0;n=e;r--)t[r+1]=t[r];t[e]=n}function CL(t,e){let n=-1,r=1e9;for(let a=0;a=e)return a;if(a==t.length)break;s+=t.charCodeAt(a)==9?n-s%n:1,a=ba(t,a)}return r===!0?-1:t.length}const OA="ͼ",EL=typeof Symbol>"u"?"__"+OA:Symbol.for(OA),TA=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),AL=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Cu{constructor(e,n){this.rules=[];let{finish:r}=n||{};function a(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,c,u){let d=[],f=/^@(\w+)\b/.exec(o[0]),h=f&&f[1]=="keyframes";if(f&&l==null)return c.push(o[0]+";");for(let p in l){let m=l[p];if(/&/.test(p))s(p.split(/,\s*/).map(x=>o.map(v=>x.replace(/&/,v))).reduce((x,v)=>x.concat(v)),m,c);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(a(p),m,d,h)}else m!=null&&d.push(p.replace(/_.*/,"").replace(/[A-Z]/g,x=>"-"+x.toLowerCase())+": "+m+";")}(d.length||h)&&c.push((r&&!f&&!u?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(a(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=AL[EL]||1;return AL[EL]=e+1,OA+e.toString(36)}static mount(e,n,r){let a=e[TA],s=r&&r.nonce;a?s&&a.setNonce(s):a=new OOe(e,s),a.mount(Array.isArray(n)?n:[n],e)}}let OL=new Map;class OOe{constructor(e,n){let r=e.ownerDocument||e,a=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&a.CSSStyleSheet){let s=OL.get(r);if(s)return e[TA]=s;this.sheet=new a.CSSStyleSheet,OL.set(r,this)}else this.styleTag=r.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[TA]=this}mount(e,n){let r=this.sheet,a=0,s=0;for(let o=0;o-1&&(this.modules.splice(c,1),s--,c=-1),c==-1){if(this.modules.splice(s++,0,l),r)for(let u=0;u",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},TOe=typeof navigator<"u"&&/Mac/.test(navigator.platform),POe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ma=0;Ma<10;Ma++)Eu[48+Ma]=Eu[96+Ma]=String(Ma);for(var Ma=1;Ma<=24;Ma++)Eu[Ma+111]="F"+Ma;for(var Ma=65;Ma<=90;Ma++)Eu[Ma]=String.fromCharCode(Ma+32),U0[Ma]=String.fromCharCode(Ma);for(var r_ in Eu)U0.hasOwnProperty(r_)||(U0[r_]=Eu[r_]);function ROe(t){var e=TOe&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||POe&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?U0:Eu)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function Sn(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var a=n[r];typeof a=="string"?t.setAttribute(r,a):a!=null&&(t[r]=a)}e++}for(;e2);var Ke={mac:RL||/Mac/.test(fs.platform),windows:/Win/.test(fs.platform),linux:/Linux|X11/.test(fs.platform),ie:Hj,ie_version:cG?PA.documentMode||6:MA?+MA[1]:RA?+RA[1]:0,gecko:TL,gecko_version:TL?+(/Firefox\/(\d+)/.exec(fs.userAgent)||[0,0])[1]:0,chrome:!!a_,chrome_version:a_?+a_[1]:0,ios:RL,android:/Android\b/.test(fs.userAgent),webkit:PL,webkit_version:PL?+(/\bAppleWebKit\/(\d+)/.exec(fs.userAgent)||[0,0])[1]:0,safari:DA,safari_version:DA?+(/\bVersion\/(\d+(\.\d+)?)/.exec(fs.userAgent)||[0,0])[1]:0,tabSize:PA.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function NT(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const qw=Object.create(null);function CT(t,e,n){if(t==e)return!0;t||(t=qw),e||(e=qw);let r=Object.keys(t),a=Object.keys(e);if(r.length-0!=a.length-0)return!1;for(let s of r)if(s!=n&&(a.indexOf(s)==-1||t[s]!==e[s]))return!1;return!0}function MOe(t,e){for(let n=t.attributes.length-1;n>=0;n--){let r=t.attributes[n].name;e[r]==null&&t.removeAttribute(r)}for(let n in e){let r=e[n];n=="style"?t.style.cssText=r:t.getAttribute(n)!=r&&t.setAttribute(n,r)}}function ML(t,e,n){let r=!1;if(e)for(let a in e)n&&a in n||(r=!0,a=="style"?t.style.cssText="":t.removeAttribute(a));if(n)for(let a in n)e&&e[a]==n[a]||(r=!0,a=="style"?t.style.cssText=n[a]:t.setAttribute(a,n[a]));return r}function DOe(t){let e=Object.create(null);for(let n=0;n0?3e8:-4e8:n>0?1e8:-1e8,new af(e,n,n,r,e.widget||null,!1)}static replace(e){let n=!!e.block,r,a;if(e.isBlockGap)r=-5e8,a=4e8;else{let{start:s,end:o}=uG(e,n);r=(s?n?-3e8:-1:5e8)-1,a=(o?n?2e8:1:-6e8)+1}return new af(e,r,a,n,e.widget||null,!0)}static line(e){return new Oy(e)}static set(e,n=!1){return Lt.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}ht.none=Lt.empty;class Ay extends ht{constructor(e){let{start:n,end:r}=uG(e);super(n?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?NT(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||qw}eq(e){return this==e||e instanceof Ay&&this.tagName==e.tagName&&CT(this.attrs,e.attrs)}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}Ay.prototype.point=!1;class Oy extends ht{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Oy&&this.spec.class==e.spec.class&&CT(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}Oy.prototype.mapMode=ps.TrackBefore;Oy.prototype.point=!0;class af extends ht{constructor(e,n,r,a,s,o){super(n,r,s,e),this.block=a,this.isReplace=o,this.mapMode=a?n<=0?ps.TrackBefore:ps.TrackAfter:ps.TrackDel}get type(){return this.startSide!=this.endSide?La.WidgetRange:this.startSide<=0?La.WidgetBefore:La.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof af&&IOe(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}af.prototype.point=!0;function uG(t,e=!1){let{inclusiveStart:n,inclusiveEnd:r}=t;return n==null&&(n=t.inclusive),r==null&&(r=t.inclusive),{start:n??e,end:r??e}}function IOe(t,e){return t==e||!!(t&&e&&t.compare(e))}function Wh(t,e,n,r=0){let a=n.length-1;a>=0&&n[a]+r>=t?n[a]=Math.max(n[a],e):n.push(t,e)}class V0 extends Nu{constructor(e,n){super(),this.tagName=e,this.attributes=n}eq(e){return e==this||e instanceof V0&&this.tagName==e.tagName&&CT(this.attributes,e.attributes)}static create(e){return new V0(e.tagName,e.attributes||qw)}static set(e,n=!1){return Lt.of(e,n)}}V0.prototype.startSide=V0.prototype.endSide=-1;function W0(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function IA(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function jx(t,e){if(!e.anchorNode)return!1;try{return IA(t,e.anchorNode)}catch{return!1}}function Sx(t){return t.nodeType==3?G0(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function _x(t,e,n,r){return n?DL(t,e,n,r,-1)||DL(t,e,n,r,1):!1}function Au(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function Kw(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function DL(t,e,n,r,a){for(;;){if(t==n&&e==r)return!0;if(e==(a<0?0:pc(t))){if(t.nodeName=="DIV")return!1;let s=t.parentNode;if(!s||s.nodeType!=1)return!1;e=Au(t)+(a<0?0:1),t=s}else if(t.nodeType==1){if(t=t.childNodes[e+(a<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=a<0?pc(t):0}else return!1}}function pc(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function H0(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function $Oe(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function dG(t,e){let n=e.width/t.offsetWidth,r=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-t.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}function LOe(t,e,n,r,a,s,o,l){let c=t.ownerDocument,u=c.defaultView||window;for(let d=t,f=!1;d&&!f;)if(d.nodeType==1){let h,p=d==c.body,m=1,x=1;if(p)h=$Oe(u);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(f=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let y=d.getBoundingClientRect();({scaleX:m,scaleY:x}=dG(d,y)),h={left:y.left,right:y.left+d.clientWidth*m,top:y.top,bottom:y.top+d.clientHeight*x}}let v=0,b=0;if(a=="nearest")e.top0&&e.bottom>h.bottom+b&&(b=e.bottom-h.bottom+o)):e.bottom>h.bottom-o&&(b=e.bottom-h.bottom+o,n<0&&e.top-b0&&e.right>h.right+v&&(v=e.right-h.right+s)):e.right>h.right-s&&(v=e.right-h.right+s,n<0&&e.lefth.bottom||e.lefth.right)&&(e={left:Math.max(e.left,h.left),right:Math.min(e.right,h.right),top:Math.max(e.top,h.top),bottom:Math.min(e.bottom,h.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function fG(t,e=!0){let n=t.ownerDocument,r=null,a=null;for(let s=t.parentNode;s&&!(s==n.body||(!e||r)&&a);)if(s.nodeType==1)!a&&s.scrollHeight>s.clientHeight&&(a=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:a}}class FOe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:r}=e;this.set(n,Math.min(e.anchorOffset,n?pc(n):0),r,Math.min(e.focusOffset,r?pc(r):0))}set(e,n,r,a){this.anchorNode=e,this.anchorOffset=n,this.focusNode=r,this.focusOffset=a}}let dd=null;Ke.safari&&Ke.safari_version>=26&&(dd=!1);function hG(t){if(t.setActive)return t.setActive();if(dd)return t.focus(dd);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(dd==null?{get preventScroll(){return dd={preventScroll:!0},!0}}:void 0),!dd){dd=!1;for(let n=0;nMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function mG(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r>0)return{node:n,offset:r};if(n.nodeType==1&&r>0){if(n.contentEditable=="false")return null;n=n.childNodes[r-1],r=pc(n)}else if(n.parentNode&&!Kw(n))r=Au(n),n=n.parentNode;else return null}}function gG(t,e){for(let n=t,r=e;;){if(n.nodeType==3&&r=n){if(l.level==r)return o;(s<0||(a!=0?a<0?l.fromn:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}}function vG(t,e){if(t.length!=e.length)return!1;for(let n=0;n=0;x-=3)if(Bo[x+1]==-p){let v=Bo[x+2],b=v&2?a:v&4?v&1?s:a:0;b&&(On[f]=On[Bo[x]]=b),l=x;break}}else{if(Bo.length==189)break;Bo[l++]=f,Bo[l++]=h,Bo[l++]=c}else if((m=On[f])==2||m==1){let x=m==a;c=x?0:1;for(let v=l-3;v>=0;v-=3){let b=Bo[v+2];if(b&2)break;if(x)Bo[v+2]|=2;else{if(b&4)break;Bo[v+2]|=4}}}}}function qOe(t,e,n,r){for(let a=0,s=r;a<=n.length;a++){let o=a?n[a-1].to:t,l=ac;)m==v&&(m=n[--x].from,v=x?n[x-1].to:t),On[--m]=p;c=d}else s=u,c++}}}function LA(t,e,n,r,a,s,o){let l=r%2?2:1;if(r%2==a%2)for(let c=e,u=0;cc&&o.push(new al(c,x.from,p));let v=x.direction==sf!=!(p%2);FA(t,v?r+1:r,a,x.inner,x.from,x.to,o),c=x.to}m=x.to}else{if(m==n||(d?On[m]!=l:On[m]==l))break;m++}h?LA(t,c,m,r+1,a,h,o):ce;){let d=!0,f=!1;if(!u||c>s[u-1].to){let x=On[c-1];x!=l&&(d=!1,f=x==16)}let h=!d&&l==1?[]:null,p=d?r:r+1,m=c;e:for(;;)if(u&&m==s[u-1].to){if(f)break e;let x=s[--u];if(!d)for(let v=x.from,b=u;;){if(v==e)break e;if(b&&s[b-1].to==v)v=s[--b].from;else{if(On[v-1]==l)break e;break}}if(h)h.push(x);else{x.toOn.length;)On[On.length]=256;let r=[],a=e==sf?0:1;return FA(t,a,a,n,0,t.length,r),r}function bG(t){return[new al(0,t,0)]}let wG="";function YOe(t,e,n,r,a){var s;let o=r.head-t.from,l=al.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),c=e[l],u=c.side(a,n);if(o==u){let h=l+=a?1:-1;if(h<0||h>=e.length)return null;c=e[l=h],o=c.side(!a,n),u=c.side(a,n)}let d=ba(t.text,o,c.forward(a,n));(dc.to)&&(d=u),wG=t.text.slice(Math.min(o,d),Math.max(o,d));let f=l==(a?e.length-1:0)?null:e[l+(a?1:-1)];return f&&d==u&&f.level+(a?0:1)t.some(e=>e)}),AG=Ye.define({combine:t=>t.some(e=>e)}),OG=Ye.define();class Gh{constructor(e,n,r,a,s,o=!1){this.range=e,this.y=n,this.x=r,this.yMargin=a,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new Gh(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Gh(Ne.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const ab=Ot.define({map:(t,e)=>t.map(e)}),TG=Ot.define();function vs(t,e,n){let r=t.facet(_G);r.length?r[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const zl=Ye.define({combine:t=>t.length?t[0]:!0});let JOe=0;const Ch=Ye.define({combine(t){return t.filter((e,n)=>{for(let r=0;r{let c=[];return o&&c.push(Gj.of(u=>{let d=u.plugin(l);return d?o(d):ht.none})),s&&c.push(s(l)),c})}static fromClass(e,n){return gr.define((r,a)=>new e(r,a),n)}}class s_{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(r){if(vs(n.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){vs(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(r){vs(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const PG=Ye.define(),TT=Ye.define(),Gj=Ye.define(),RG=Ye.define(),PT=Ye.define(),Ty=Ye.define(),MG=Ye.define();function $L(t,e){let n=t.state.facet(MG);if(!n.length)return n;let r=n.map(s=>s instanceof Function?s(t):s),a=[];return Lt.spans(r,e.from,e.to,{point(){},span(s,o,l,c){let u=s-e.from,d=o-e.from,f=a;for(let h=l.length-1;h>=0;h--,c--){let p=l[h].spec.bidiIsolate,m;if(p==null&&(p=XOe(e.text,u,d)),c>0&&f.length&&(m=f[f.length-1]).to==u&&m.direction==p)m.to=d,f=m.inner;else{let x={from:u,to:d,direction:p,inner:[]};f.push(x),f=x.inner}}}}),a}const DG=Ye.define();function RT(t){let e=0,n=0,r=0,a=0;for(let s of t.state.facet(DG)){let o=s(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(n=Math.max(n,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(a=Math.max(a,o.bottom)))}return{left:e,right:n,top:r,bottom:a}}const Xg=Ye.define();class Di{constructor(e,n,r,a){this.fromA=e,this.toA=n,this.fromB=r,this.toB=a}join(e){return new Di(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,r=this;for(;n>0;n--){let a=e[n-1];if(!(a.fromA>r.toA)){if(a.toAa.push(new Di(s,o,l,c))),this.changedRanges=a}static create(e,n,r){return new Yw(e,n,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const ZOe=[];class kr{constructor(e,n,r=0){this.dom=e,this.length=n,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return ZOe}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let n=this.domAttrs;n&&MOe(this.dom,n)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,n=this.posAtStart){let r=n;for(let a of this.children){if(a==e)return r;r+=a.length+a.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,n){return null}domPosFor(e,n){let r=Au(this.dom),a=this.length?e>0:n>0;return new xo(this.parent.dom,r+(a?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Kj)return e;return null}static get(e){return e.cmTile}}class qj extends kr{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let n=this.dom,r=null,a,s=(e==null?void 0:e.node)==n?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,a=r?r.nextSibling:n.firstChild,s&&a!=l.dom&&(s.written=!0),l.dom.parentNode==n)for(;a&&a!=l.dom;)a=LL(a);else n.insertBefore(l.dom,a);r=l.dom}for(a=r?r.nextSibling:n.firstChild,s&&a&&(s.written=!0);a;)a=LL(a);this.length=o}}function LL(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Kj extends qj{constructor(e,n){super(n),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let n=kr.get(e);if(n&&this.owns(n))return n;e=e.parentNode}}blockTiles(e){for(let n=[],r=this,a=0,s=0;;)if(a==r.children.length){if(!n.length)return;r=r.parent,r.breakAfter&&s++,a=n.pop()}else{let o=r.children[a++];if(o instanceof nc)n.push(a),r=o,a=0;else{let l=s+o.length,c=e(o,s);if(c!==void 0)return c;s=l+o.breakAfter}}}resolveBlock(e,n){let r,a=-1,s,o=-1;if(this.blockTiles((l,c)=>{let u=c+l.length;if(e>=c&&e<=u){if(l.isWidget()&&n>=-1&&n<=1){if(l.flags&32)return!0;l.flags&16&&(r=void 0)}(ce||e==c&&(n>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-c)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&n<0||!s?{tile:r,offset:a}:{tile:s,offset:o}}}class nc extends qj{constructor(e,n){super(e),this.wrapper=n}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,n){let r=new nc(n||document.createElement(e.tagName),e);return n||(r.flags|=4),r}}class zp extends qj{constructor(e,n){super(e),this.attrs=n}isLine(){return!0}static start(e,n,r){let a=new zp(n||document.createElement("div"),e);return(!n||!r)&&(a.flags|=4),a}get domAttrs(){return this.attrs}resolveInline(e,n,r){let a=null,s=-1,o=null,l=-1;function c(d,f){for(let h=0,p=0;h=f&&(m.isComposite()?c(m,f-p):(!o||o.isHidden&&(n>0||r&&e5e(o,m)))&&(x>f||m.flags&32)?(o=m,l=f-p):(pr&&(e=r);let a=e,s=e,o=0;e==0&&n<0||e==r&&n>=0?Ke.chrome||Ke.gecko||(e?(a--,o=1):s=0)?0:l.length-1];return Ke.safari&&!o&&c.width==0&&(c=Array.prototype.find.call(l,u=>u.width)||c),o?H0(c,o<0):c||null}static of(e,n){let r=new Nd(n||document.createTextNode(e),e);return n||(r.flags|=2),r}}class of extends kr{constructor(e,n,r,a){super(e,n,a),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,n){return this.coordsInWidget(e,n,!1)}coordsInWidget(e,n,r){let a=this.widget.coordsAt(this.dom,e,n);if(a)return a;if(r)return H0(this.dom.getBoundingClientRect(),this.length?e==0:n<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let c=l?s.length-1:0;o=s[c],!(e>0?c==0:c==s.length-1||o.top0;)if(a.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==a.children.length){if(!e&&!l.length)break;r&&r.leave(a),o=!!a.breakAfter,{tile:a,index:s}=l.pop(),s++}else{let c=a.children[s],u=c.breakAfter;(n>0?c.length<=e:c.length=0;l--){let c=n.marks[l],u=a.lastChild;if(u instanceof Ms&&u.mark.eq(c.mark))u.dom!=c.dom&&u.setDOM(i_(c.dom)),a=u;else{if(this.cache.reused.get(c)){let f=kr.get(c.dom);f&&f.setDOM(i_(c.dom))}let d=Ms.of(c.mark,c.dom);a.append(d),a=d}this.cache.reused.set(c,2)}let s=kr.get(e.text);s&&this.cache.reused.set(s,2);let o=new Nd(e.text,e.text.nodeValue);o.flags|=8,a.append(o)}addInlineWidget(e,n,r){let a=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);a||this.flushBuffer();let s=this.ensureMarks(n,r);!a&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,n,r){this.flushBuffer(),this.ensureMarks(n,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let n=this.afterWidget||this.lastBlock;n.length+=e,this.pos+=e}addLineStart(e,n){var r;e||(e=IG);let a=zp.start(e,n||((r=this.cache.find(zp))===null||r===void 0?void 0:r.dom),!!n);this.getBlockPos().append(this.lastBlock=this.curLine=a)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,n){var r;let a=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(n>0&&(l=a.lastChild)&&l instanceof Ms&&l.mark.eq(o))a=l,n--;else{let c=Ms.of(o,(r=this.cache.find(Ms,u=>u.mark.eq(o)))===null||r===void 0?void 0:r.dom);a.append(c),a=c,n=0}}return a}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!FL(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Ke.ios&&FL(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(o_,0,32)||new of(o_.toDOM(),0,o_,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let n=new n5e(e.from,e.to,e.value,e.rank),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let n=this.root;for(let r of this.wrappers){let a=n.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);n.append(s),n=s}}return n}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let n=2|(e<0?16:32),r=this.cache.find(Xw,void 0,1);return r&&(r.flags=n),r||new Xw(n)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class a5e{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:a,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=a;let l=this.textOff=Math.min(e,a.length);return s?null:a.slice(0,l)}let n=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,n);return this.textOff=n,r}}const Jw=[of,zp,Nd,Ms,Xw,nc,Kj];for(let t=0;t[]),this.index=Jw.map(()=>0),this.reused=new Map}add(e){let n=e.constructor.bucket,r=this.buckets[n];r.length<6?r.push(e):r[this.index[n]=(this.index[n]+1)%6]=e}find(e,n,r=2){let a=e.bucket,s=this.buckets[a],o=this.index[a];for(let l=s.length-1;l>=0;l--){let c=(l+o)%s.length,u=s[c];if((!n||n(u))&&!this.reused.has(u))return s.splice(c,1),c{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,n){let r=n&&this.getCompositionContext(n.text);for(let a=0,s=0,o=0;;){let l=oa){let u=c-a;this.preserve(u,!o,!l),a=c,s+=u}if(!l)break;n&&l.fromA<=n.range.fromA&&l.toA>=n.range.toA?(this.forward(l.fromA,n.range.fromA,n.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(c-l);else{let u=c>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Ms&&a.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?a.length&&(a.length=s=0):o instanceof Ms&&(a.shift(),s=Math.min(s,a.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,n){let r=null,a=this.builder,s=0,o=Lt.spans(this.decorations,e,n,{point:(l,c,u,d,f,h)=>{if(u instanceof af){if(this.disallowBlockEffectsFor[h]){if(u.block)throw new RangeError("Block decorations may not be specified via plugins");if(c>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,f>d.length)a.continueWidget(c-l);else{let p=u.widget||(u.block?Up.block:Up.inline),m=o5e(u),x=this.cache.findWidget(p,c-l,m)||of.of(p,this.view,c-l,m);u.block?(u.startSide>0&&a.addLineStartIfNotCovered(r),a.addBlockWidget(x)):(a.ensureLine(r),a.addInlineWidget(x,d,f))}r=null}else r=l5e(r,u);c>l&&this.text.skip(c-l)},span:(l,c,u,d)=>{for(let f=l;fs,this.openMarks=o}forward(e,n,r=1){n-e<=10?this.old.advance(n-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(n-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let n=[],r=null;for(let a=e.parentNode;;a=a.parentNode){let s=kr.get(a);if(a==this.view.contentDOM)break;s instanceof Ms?n.push(s):s!=null&&s.isLine()?r=s:s instanceof nc||(a.nodeName=="DIV"&&!r&&a!=this.view.contentDOM?r=new zp(a,IG):r||n.push(Ms.of(new Ay({tagName:a.nodeName.toLowerCase(),attributes:DOe(a)}),a)))}return{line:r,marks:n}}}function FL(t,e){let n=r=>{for(let a of r.children)if((e?a.isText():a.length)||n(a))return!0;return!1};return n(t)}function o5e(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const IG={class:"cm-line"};function l5e(t,e){let n=e.spec.attributes,r=e.spec.class;return!n&&!r||(t||(t={class:"cm-line"}),n&&NT(n,t),r&&(t.class+=" "+r)),t}function c5e(t){let e=[];for(let n=t.parents.length;n>1;n--){let r=n==t.parents.length?t.tile:t.parents[n].tile;r instanceof Ms&&e.push(r.mark)}return e}function i_(t){let e=kr.get(t);return e&&e.setDOM(t.cloneNode()),t}class Up extends Cl{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Up.inline=new Up("span");Up.block=new Up("div");const o_=new class extends Cl{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class BL{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=ht.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Kj(e,e.contentDOM),this.updateInner([new Di(0,0,0,e.state.doc.length)],null)}update(e){var n;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let a=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?a=this.domChanged.newSel.head:!y5e(e.changes,this.hasComposition)&&!e.selectionSet&&(a=e.state.selection.main.head));let s=a>-1?d5e(this.view,e.changes,a):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:f}=this.hasComposition;r=new Di(d,f,e.changes.mapPos(d,-1),e.changes.mapPos(f,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Ke.ie||Ke.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let c=p5e(o,this.decorations,e.changes);c.length&&(r=Di.extendWithRanges(r,c));let u=g5e(l,this.blockWrappers,e.changes);return u.length&&(r=Di.extendWithRanges(r,u)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(n||e.length){let o=this.tile,l=new i5e(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);n&&kr.get(n.text)&&l.cache.reused.set(kr.get(n.text),2),this.tile=l.run(e,n),zA(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Ke.chrome||Ke.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let a=[];if(this.view.viewport.from||this.view.viewport.to-1)&&jx(r,this.view.observer.selectionRange)&&!(a&&r.contains(a));if(!(s||n||o))return;let l=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,u,d;if(c.empty?d=u=this.inlineDOMNearPos(c.anchor,c.assoc||1):(d=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),u=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),Ke.gecko&&c.empty&&!this.hasComposition&&u5e(u)){let h=document.createTextNode("");this.view.observer.ignore(()=>u.node.insertBefore(h,u.node.childNodes[u.offset]||null)),u=d=new xo(h,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!_x(u.node,u.offset,f.anchorNode,f.anchorOffset)||!_x(d.node,d.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,c))&&(this.view.observer.ignore(()=>{Ke.android&&Ke.chrome&&r.contains(f.focusNode)&&x5e(f.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let h=W0(this.view.root);if(h)if(c.empty){if(Ke.gecko){let p=f5e(u.node,u.offset);if(p&&p!=3){let m=(p==1?mG:gG)(u.node,u.offset);m&&(u=new xo(m.node,m.offset))}}h.collapse(u.node,u.offset),c.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=c.bidiLevel)}else if(h.extend){h.collapse(u.node,u.offset);try{h.extend(d.node,d.offset)}catch{}}else{let p=document.createRange();c.anchor>c.head&&([u,d]=[d,u]),p.setEnd(d.node,d.offset),p.setStart(u.node,u.offset),h.removeAllRanges(),h.addRange(p)}o&&this.view.root.activeElement==r&&(r.blur(),a&&a.focus())}),this.view.observer.setSelectionRange(u,d)),this.impreciseAnchor=u.precise?null:new xo(f.anchorNode,f.anchorOffset),this.impreciseHead=d.precise?null:new xo(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&_x(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,r=W0(e.root),{anchorNode:a,anchorOffset:s}=e.observer.selectionRange;if(!r||!n.empty||!n.assoc||!r.modify)return;let o=this.lineAt(n.head,n.assoc);if(!o)return;let l=o.posAtStart;if(n.head==l||n.head==l+o.length)return;let c=this.coordsAt(n.head,-1),u=this.coordsAt(n.head,1);if(!c||!u||c.bottom>u.top)return;let d=this.domAtPos(n.head+n.assoc,n.assoc);r.collapse(d.node,d.offset),r.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=n.from&&r.collapse(a,s)}posFromDOM(e,n){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let a=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[n];else{let o=pc(e)==0?0:n==0?-1:1;for(;;){let l=e.parentNode;if(l==r.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return a;for(;s&&!kr.get(s);)s=s.nextSibling;if(!s)return a+r.length;for(let o=0,l=a;;o++){let c=r.children[o];if(c.dom==s)return l;l+=c.length+c.breakAfter}}else return r.isText()?e==r.dom?a+n:a+(n?r.length:0):a}domAtPos(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.domPosFor(e,n):r.domIn(a,n)}inlineDOMNearPos(e,n){let r,a=-1,s=!1,o,l=-1,c=!1;return this.tile.blockTiles((u,d)=>{if(u.isWidget()){if(u.flags&32&&d>=e)return!0;u.flags&16&&(s=!0)}else{let f=d+u.length;if(d<=e&&(r=u,a=e-d,s=f=e&&!o&&(o=u,l=e-d,c=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,n):(s&&o?r=null:c&&r&&(o=null),r&&n<0||!o?r.domIn(a,n):o.domIn(l,n))}coordsAt(e,n){let{tile:r,offset:a}=this.tile.resolveBlock(e,n);return r.isWidget()?r.widget instanceof l_?null:r.coordsInWidget(a,n,!0):r.coordsIn(a,n)}lineAt(e,n){let{tile:r}=this.tile.resolveBlock(e,n);return r.isLine()?r:null}coordsForChar(e){let{tile:n,offset:r}=this.tile.resolveBlock(e,1);if(!n.isLine())return null;function a(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let c=a(l,o);if(c)return c}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,c=this.view.textDirection==Pn.LTR,u=0,d=(f,h,p)=>{for(let m=0;ma);m++){let x=f.children[m],v=h+x.length,b=x.dom.getBoundingClientRect(),{height:y}=b;if(p&&!m&&(u+=b.top-p.top),x instanceof nc)v>r&&d(x,h,b);else if(h>=r&&(u>0&&n.push(-u),n.push(y+u),u=0,o)){let w=x.dom.lastChild,j=w?Sx(w):[];if(j.length){let k=j[j.length-1],S=c?k.right-b.left:b.right-k.left;S>l&&(l=S,this.minWidth=s,this.minWidthFrom=h,this.minWidthTo=v)}}p&&m==f.children.length-1&&(u+=p.bottom-b.bottom),h=v+x.breakAfter}};return d(this.tile,0,null),n}textDirectionAt(e){let{tile:n}=this.tile.resolveBlock(e,1);return getComputedStyle(n.dom).direction=="rtl"?Pn.RTL:Pn.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,c;for(let u of o.children){if(!u.isText()||/[^ -~]/.test(u.text))return;let d=Sx(u.dom);if(d.length!=1)return;l+=d[0].width,c=d[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:c}}});if(e)return e;let n=document.createElement("div"),r,a,s;return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(n);let o=Sx(n.firstChild)[0];r=n.getBoundingClientRect().height,a=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,n.remove()}),{lineHeight:r,charWidth:a,textHeight:s}}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let r=0,a=0;;a++){let s=a==n.viewports.length?null:n.viewports[a],o=s?s.from-1:this.view.state.doc.length;if(o>r){let l=(n.lineBlockAt(o).bottom-n.lineBlockAt(r).top)/this.view.scaleY;e.push(ht.replace({widget:new l_(l),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return ht.set(e)}updateDeco(){let e=1,n=this.view.state.facet(Gj).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,a=this.view.state.facet(PT).map((s,o)=>{let l=typeof s=="function";return l&&(r=!0),l?s(this.view):s});for(a.length&&(this.dynamicDecorationMap[e++]=r,n.push(Lt.join(a))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){var n;if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(OG))try{if(d(this.view,e.range,e))return!0}catch(f){vs(this.view.state,f,"scroll handler")}let{range:r}=e,a=this.coordsAt(r.head,(n=r.assoc)!==null&&n!==void 0?n:r.empty?0:r.head>r.anchor?-1:1),s;if(!a)return;!r.empty&&(s=this.coordsAt(r.anchor,r.anchor>r.head?-1:1))&&(a={left:Math.min(a.left,s.left),top:Math.min(a.top,s.top),right:Math.max(a.right,s.right),bottom:Math.max(a.bottom,s.bottom)});let o=RT(this.view),l={left:a.left-o.left,top:a.top-o.top,right:a.right+o.right,bottom:a.bottom+o.bottom},{offsetWidth:c,offsetHeight:u}=this.view.scrollDOM;if(LOe(this.view.scrollDOM,l,r.head1&&(a.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||a.bottomr.isWidget()||r.children.some(n);return n(this.tile.resolveBlock(e,1).tile)}destroy(){zA(this.tile)}}function zA(t,e){let n=e==null?void 0:e.get(t);if(n!=1){n==null&&t.destroy();for(let r of t.children)zA(r,e)}}function u5e(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function $G(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let r=mG(n.focusNode,n.focusOffset),a=gG(n.focusNode,n.focusOffset),s=r||a;if(a&&r&&a.node!=r.node){let l=kr.get(a.node);if(!l||l.isText()&&l.text!=a.node.nodeValue)s=a;else if(t.docView.lastCompositionAfterCursor){let c=kr.get(r.node);!c||c.isText()&&c.text!=r.node.nodeValue||(s=a)}}if(t.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function d5e(t,e,n){let r=$G(t,n);if(!r)return null;let{node:a,from:s,to:o}=r,l=a.nodeValue;if(/[\n\r]/.test(l)||t.state.doc.sliceString(r.from,r.to)!=l)return null;let c=e.invertedDesc;return{range:new Di(c.mapPos(s),c.mapPos(o),s,o),text:a}}function f5e(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(n=!0)}),n}class l_ extends Cl{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function v5e(t,e,n=1){let r=t.charCategorizer(e),a=t.doc.lineAt(e),s=e-a.from;if(a.length==0)return Ne.cursor(e);s==0?n=1:s==a.length&&(n=-1);let o=s,l=s;n<0?o=ba(a.text,s,!1):l=ba(a.text,s);let c=r(a.text.slice(o,l));for(;o>0;){let u=ba(a.text,o,!1);if(r(a.text.slice(u,o))!=c)break;o=u}for(;lt.defaultLineHeight*1.5){let l=t.viewState.heightOracle.textHeight,c=Math.floor((a-n.top-(t.defaultLineHeight-l)*.5)/l);s+=c*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(n.from,n.to);return n.from+AA(o,s,t.state.tabSize)}function UA(t,e,n){let r=t.lineBlockAt(e);if(Array.isArray(r.type)){let a;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!a||s.type==La.Text&&(a.type!=s.type||(n<0?s.frome)))&&(a=s)}}return a||r}return r}function w5e(t,e,n,r){let a=UA(t,e.head,e.assoc||-1),s=!r||a.type!=La.Text||!(t.lineWrapping||a.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>a.from?e.head-1:e.head);if(s){let o=t.dom.getBoundingClientRect(),l=t.textDirectionAt(a.from),c=t.posAtCoords({x:n==(l==Pn.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(c!=null)return Ne.cursor(c,n?-1:1)}return Ne.cursor(n?a.to:a.from,n?-1:1)}function zL(t,e,n,r){let a=t.state.doc.lineAt(e.head),s=t.bidiSpans(a),o=t.textDirectionAt(a.from);for(let l=e,c=null;;){let u=YOe(a,s,o,l,n),d=wG;if(!u){if(a.number==(n?t.state.doc.lines:1))return l;d=` -`,a=t.state.doc.line(a.number+(n?1:-1)),s=t.bidiSpans(a),u=t.visualLineSide(a,!n)}if(c){if(!c(d))return l}else{if(!r)return u;c=r(d)}l=u}}function k5e(t,e,n){let r=t.state.charCategorizer(e),a=r(n);return s=>{let o=r(s);return a==sr.Space&&(a=o),a==o}}function j5e(t,e,n,r){let a=e.head,s=n?1:-1;if(a==(n?t.state.doc.length:0))return Ne.cursor(a,e.assoc);let o=e.goalColumn,l,c=t.contentDOM.getBoundingClientRect(),u=t.coordsAtPos(a,e.assoc||((e.empty?n:e.head==e.from)?1:-1)),d=t.documentTop;if(u)o==null&&(o=u.left-c.left),l=s<0?u.top:u.bottom;else{let m=t.viewState.lineBlockAt(a);o==null&&(o=Math.min(c.right-c.left,t.defaultCharacterWidth*(a-m.from))),l=(s<0?m.top:m.bottom)+d}let f=c.left+o,h=t.viewState.heightOracle.textHeight>>1,p=r??h;for(let m=0;;m+=h){let x=l+(p+m)*s,v=VA(t,{x:f,y:x},!1,s);if(n?x>c.bottom:xl:y{if(e>s&&ea(t)),n.from,e.head>n.from?-1:1);return r==n.from?n:Ne.cursor(r,rt.viewState.docHeight)return new Qo(t.state.doc.length,-1);if(u=t.elementAtHeight(c),r==null)break;if(u.type==La.Text){if(r<0?u.tot.viewport.to)break;let h=t.docView.coordsAt(r<0?u.from:u.to,r>0?-1:1);if(h&&(r<0?h.top<=c+s:h.bottom>=c+s))break}let f=t.viewState.heightOracle.textHeight/2;c=r>0?u.bottom+f:u.top-f}if(t.viewport.from>=u.to||t.viewport.to<=u.from){if(n)return null;if(u.type==La.Text){let f=b5e(t,a,u,o,l);return new Qo(f,f==u.from?1:-1)}}if(u.type!=La.Text)return c<(u.top+u.bottom)/2?new Qo(u.from,1):new Qo(u.to,-1);let d=t.docView.lineAt(u.from,2);return(!d||d.length!=u.length)&&(d=t.docView.lineAt(u.from,-2)),new S5e(t,o,l,t.textDirectionAt(u.from)).scanTile(d,u.from)}class S5e{constructor(e,n,r,a){this.view=e,this.x=n,this.y=r,this.baseDir=a,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+a.from>1;t:if(s.has(m)){let v=r+Math.floor(Math.random()*p);for(let b=0;b1)){if(b.bottomthis.y)(!c||c.top>b.top)&&(c=b),y=-1;else{let w=b.left>this.x?this.x-b.left:b.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,n);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,n)}let h=(o?this.dirAt(e[u],1):this.baseDir)==Pn.LTR;return{i:u,after:this.x>(f.left+f.right)/2==h}}scanText(e,n){let r=[];for(let s=0;s{let o=r[s]-n,l=r[s+1]-n;return G0(e.dom,o,l).getClientRects()});return a.after?new Qo(r[a.i+1],-1):new Qo(r[a.i],1)}scanTile(e,n){if(!e.length)return new Qo(n,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,n);if(l.isComposite())return this.scanTile(l,n)}let r=[n];for(let l=0,c=n;l{let c=e.children[l];return c.flags&48?null:(c.dom.nodeType==1?c.dom:G0(c.dom,0,c.length)).getClientRects()}),s=e.children[a.i],o=r[a.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):a.after?new Qo(r[a.i+1],-1):new Qo(o,1)}}const eh="￿";class _5e{constructor(e,n){this.points=e,this.view=n,this.text="",this.lineSeparator=n.state.facet(Xt.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=eh}readRange(e,n){if(!e)return this;let r=e.parentNode;for(let a=e;;){this.findPointBefore(r,a);let s=this.text.length;this.readNode(a);let o=kr.get(a),l=a.nextSibling;if(l==n){o!=null&&o.breakAfter&&!l&&r!=this.view.contentDOM&&this.lineBreak();break}let c=kr.get(l);(o&&c?o.breakAfter:(o?o.breakAfter:Kw(a))||Kw(l)&&(a.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!C5e(l,n)&&this.lineBreak(),a=l}return this.findPointBefore(r,n),this}readTextNode(e){let n=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,n.length));for(let r=0,a=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=n.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(l=a.exec(n))&&(s=l.index,o=l[0].length),this.append(n.slice(r,s<0?n.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=o-1);r=s+o}}readNode(e){let n=kr.get(e),r=n&&n.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let a=r.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==n&&(r.pos=this.text.length)}findPointInside(e,n){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(N5e(e,r.node,r.offset)?n:0))}}function N5e(t,e,n){for(;;){if(!e||n-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=FG(e.docView.tile,n,r,0))){let c=s||o?[]:O5e(e),u=new _5e(c,e);u.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=u.text,this.newSel=T5e(c,this.bounds.from)}else{let c=e.observer.selectionRange,u=s&&s.node==c.focusNode&&s.offset==c.focusOffset||!IA(e.contentDOM,c.focusNode)?l.main.head:e.docView.posFromDOM(c.focusNode,c.focusOffset),d=o&&o.node==c.anchorNode&&o.offset==c.anchorOffset||!IA(e.contentDOM,c.anchorNode)?l.main.anchor:e.docView.posFromDOM(c.anchorNode,c.anchorOffset),f=e.viewport;if((Ke.ios||Ke.chrome)&&l.main.empty&&u!=d&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange(Ne.range(d,u));else if(e.lineWrapping&&d==u&&!(l.main.empty&&l.main.head==u)&&e.inputState.lastTouchTime>Date.now()-100){let h=e.coordsAtPos(u,-1),p=0;h&&(p=e.inputState.lastTouchY<=h.bottom?-1:1),this.newSel=Ne.create([Ne.cursor(u,p)])}else this.newSel=Ne.single(d,u)}}}function FG(t,e,n,r){if(t.isComposite()){let a=-1,s=-1,o=-1,l=-1;for(let c=0,u=r,d=r;cn)return FG(f,e,n,u);if(h>=e&&a==-1&&(a=c,s=u),u>n&&f.dom.parentNode==t.dom){o=c,l=d;break}d=h,u=h+f.breakAfter}return{from:s,to:l<0?r+t.length:l,startDOM:(a?t.children[a-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:r,to:r+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function BG(t,e){let n,{newSel:r}=e,{state:a}=t,s=a.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:c}=e.bounds,u=s.from,d=null;(o===8||Ke.android&&e.text.length=l&&s.to<=c&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(h=e.text.length-(f.length-(s.to-l)))?n={from:s.from,to:s.to,insert:en.of(e.text.slice(s.from-l,h).split(eh))}:(p=zG(f,e.text,u-l,d))&&(Ke.chrome&&o==13&&p.toB==p.from+2&&e.text.slice(p.from,p.toB)==eh+eh&&p.toB--,n={from:l+p.from,to:l+p.toA,insert:en.of(e.text.slice(p.from,p.toB).split(eh))})}else r&&(!t.hasFocus&&a.facet(zl)||Zw(r,s))&&(r=null);if(!n&&!r)return!1;if((Ke.mac||Ke.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(r&&n.insert.length==2&&(r=Ne.single(r.main.anchor-1,r.main.head-1)),n={from:n.from,to:n.to,insert:en.of([n.insert.toString().replace("."," ")])}):a.doc.lineAt(s.from).toDate.now()-50?n={from:s.from,to:s.to,insert:a.toText(t.inputState.insertingText)}:Ke.chrome&&n&&n.from==n.to&&n.from==s.head&&n.insert.toString()==` - `&&t.lineWrapping&&(r&&(r=Ne.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:en.of([" "])}),n)return MT(t,n,r,o);if(r&&!Zw(r,s)){let l=!1,c="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(l=!0),c=t.inputState.lastSelectionOrigin,c=="select.pointer"&&(r=LG(a.facet(Ty).map(u=>u(t)),r))),t.dispatch({selection:r,scrollIntoView:l,userEvent:c}),!0}else return!1}function MT(t,e,n,r=-1){if(Ke.ios&&t.inputState.flushIOSKey(e))return!0;let a=t.state.selection.main;if(Ke.android&&(e.to==a.to&&(e.from==a.from||e.from==a.from-1&&t.state.sliceDoc(e.from,a.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Hh(t.contentDOM,"Enter",13)||(e.from==a.from-1&&e.to==a.to&&e.insert.length==0||r==8&&e.insert.lengtha.head)&&Hh(t.contentDOM,"Backspace",8)||e.from==a.from&&e.to==a.to+1&&e.insert.length==0&&Hh(t.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,l=()=>o||(o=A5e(t,e,n));return t.state.facet(NG).some(c=>c(t,e.from,e.to,s,l))||t.dispatch(l()),!0}function A5e(t,e,n){let r,a=t.state,s=a.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let c=e.fromf(t)),u,c);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:Ne.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=s.frome.to?a.sliceDoc(e.to,s.to):"";r=a.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+u))}else{let c=a.changes(e),u=n&&n.main.to<=c.newLength?n.main:void 0;if(a.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=t.state.sliceDoc(e.from,e.to),f,h=n&&$G(t,n.main.head);if(h){let m=e.insert.length-(e.to-e.from);f={from:h.from,to:h.to-m}}else f=t.state.doc.lineAt(s.head);let p=s.to-e.to;r=a.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:c,range:u||m.map(c)};let x=m.to-p,v=x-d.length;if(t.state.sliceDoc(v,x)!=d||x>=f.from&&v<=f.to)return{range:m};let b=a.changes({from:v,to:x,insert:e.insert}),y=m.to-s.to;return{changes:b,range:u?Ne.range(Math.max(0,u.anchor+y),Math.max(0,u.head+y)):m.map(b)}})}else r={changes:c,selection:u&&a.selection.replaceRange(u)}}let l="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,l+=".compose",t.inputState.compositionFirstChange&&(l+=".start",t.inputState.compositionFirstChange=!1)),a.update(r,{userEvent:l,scrollIntoView:!0})}function zG(t,e,n,r){let a=Math.min(t.length,e.length),s=0;for(;s0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(r=="end"){let c=Math.max(0,s-Math.min(o,l));n-=o+c-s}if(o=o?s-n:0;s-=c,l=s+(l-o),o=s}else if(l=l?s-n:0;s-=c,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function O5e(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}=t.observer.selectionRange;return n&&(e.push(new UL(n,r)),(a!=n||s!=r)&&e.push(new UL(a,s))),e}function T5e(t,e){if(t.length==0)return null;let n=t[0].pos,r=t.length==2?t[1].pos:n;return n>-1&&r>-1?Ne.single(n+e,r+e):null}function Zw(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class P5e{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ke.safari&&e.contentDOM.addEventListener("input",()=>null),Ke.gecko&&q5e(e.contentDOM.ownerDocument)}handleEvent(e){!B5e(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let r=this.handlers[e];if(r){for(let a of r.observers)a(this.view,n);for(let a of r.handlers){if(n.defaultPrevented)break;if(a(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=R5e(e),r=this.handlers,a=this.view.contentDOM;for(let s in n)if(s!="scroll"){let o=!n[s].handlers.length,l=r[s];l&&o!=!l.handlers.length&&(a.removeEventListener(s,this.handleEvent),l=null),l||a.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!n[s]&&a.removeEventListener(s,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&VG.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ke.android&&Ke.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return Ke.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&!e.shiftKey&&((n=UG.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||M5e.indexOf(e.key)>-1&&e.ctrlKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from0?!0:Ke.safari&&!Ke.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function VL(t,e){return(n,r)=>{try{return e.call(t,r,n)}catch(a){vs(n.state,a)}}}function R5e(t){let e=Object.create(null);function n(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of t){let a=r.spec,s=a&&a.plugin.domEventHandlers,o=a&&a.plugin.domEventObservers;if(s)for(let l in s){let c=s[l];c&&n(l).handlers.push(VL(r.value,c))}if(o)for(let l in o){let c=o[l];c&&n(l).observers.push(VL(r.value,c))}}for(let r in No)n(r).handlers.push(No[r]);for(let r in Gs)n(r).observers.push(Gs[r]);return e}const UG=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],M5e="dthko",VG=[16,17,18,20,91,92,224,225],sb=6;function ib(t){return Math.max(0,t)*.7+8}function D5e(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class I5e{constructor(e,n,r,a){this.view=e,this.startEvent=n,this.style=r,this.mustSelect=a,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=fG(e.contentDOM),this.atoms=e.state.facet(Ty).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(Xt.allowMultipleSelections)&&$5e(e,n),this.dragging=F5e(e,n)&&GG(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&D5e(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,r=0,a=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:a,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=RT(this.view);e.clientX-c.left<=a+sb?n=-ib(a-e.clientX):e.clientX+c.right>=o-sb&&(n=ib(e.clientX-o)),e.clientY-c.top<=s+sb?r=-ib(s-e.clientY):e.clientY+c.bottom>=l-sb&&(r=ib(e.clientY-l)),this.setScrollSpeed(n,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,r=LG(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function $5e(t,e){let n=t.state.facet(kG);return n.length?n[0](e):Ke.mac?e.metaKey:e.ctrlKey}function L5e(t,e){let n=t.state.facet(jG);return n.length?n[0](e):Ke.mac?!e.altKey:!e.ctrlKey}function F5e(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let r=W0(t.root);if(!r||r.rangeCount==0)return!0;let a=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function B5e(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,r;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(r=kr.get(n))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}const No=Object.create(null),Gs=Object.create(null),WG=Ke.ie&&Ke.ie_version<15||Ke.ios&&Ke.webkit_version<604;function z5e(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),HG(t,n.value)},50)}function Yj(t,e,n){for(let r of t.facet(e))n=r(n,t);return n}function HG(t,e){e=Yj(t.state,AT,e);let{state:n}=t,r,a=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(WA!=null&&n.selection.ranges.every(c=>c.empty)&&WA==s.toString()){let c=-1;r=n.changeByRange(u=>{let d=n.doc.lineAt(u.from);if(d.from==c)return{range:u};c=d.from;let f=n.toText((o?s.line(a++).text:e)+n.lineBreak);return{changes:{from:d.from,insert:f},range:Ne.cursor(u.from+f.length)}})}else o?r=n.changeByRange(c=>{let u=s.line(a++);return{changes:{from:c.from,to:c.to,insert:u.text},range:Ne.cursor(c.from+u.length)}}):r=n.replaceSelection(s);t.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Gs.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Gs.wheel=Gs.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};No.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Gs.touchstart=(t,e)=>{let n=t.inputState,r=e.targetTouches[0];n.lastTouchTime=Date.now(),r&&(n.lastTouchX=r.clientX,n.lastTouchY=r.clientY),n.setSelectionOrigin("select.pointer")};Gs.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};No.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of t.state.facet(SG))if(n=r(t,e),n)break;if(!n&&e.button==0&&(n=V5e(t,e)),n){let r=!t.hasFocus;t.inputState.startMouseSelection(new I5e(t,e,n,r)),r&&t.observer.ignore(()=>{hG(t.contentDOM);let s=t.root.activeElement;s&&!s.contains(t.contentDOM)&&s.blur()});let a=t.inputState.mouseSelection;if(a)return a.start(e),a.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function WL(t,e,n,r){if(r==1)return Ne.cursor(e,n);if(r==2)return v5e(t.state,e,n);{let a=t.docView.lineAt(e,n),s=t.state.doc.lineAt(a?a.posAtEnd:e),o=a?a.posAtStart:s.from,l=a?a.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(GL+1)%3:1}function V5e(t,e){let n=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=GG(e),a=t.state.selection;return{update(s){s.docChanged&&(n.pos=s.changes.mapPos(n.pos),a=a.map(s.changes))},get(s,o,l){let c=t.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),u,d=WL(t,c.pos,c.assoc,r);if(n.pos!=c.pos&&!o){let f=WL(t,n.pos,n.assoc,r),h=Math.min(f.from,d.from),p=Math.max(f.to,d.to);d=h1&&(u=W5e(a,c.pos))?u:l?a.addRange(d):Ne.create([d])}}}function W5e(t,e){for(let n=0;n=e)return Ne.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}No.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let a=t.docView.tile.nearest(e.target);if(a&&a.isWidget()){let s=a.posAtStart,o=s+a.length;(s>=n.to||o<=n.from)&&(n=Ne.range(s,o))}}let{inputState:r}=t;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",Yj(t.state,OT,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};No.dragend=t=>(t.inputState.draggedContent=null,!1);function KL(t,e,n,r){if(n=Yj(t.state,AT,n),!n)return;let a=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=t.inputState,o=r&&s&&L5e(t,e)?{from:s.from,to:s.to}:null,l={from:a,insert:n},c=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(a,-1),head:c.mapPos(a,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}No.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let r=Array(n.length),a=0,s=()=>{++a==n.length&&KL(t,e,r.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(r[o]=l.result),s()},l.readAsText(n[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return KL(t,e,r,!0),!0}return!1};No.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=WG?null:e.clipboardData;return n?(HG(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(z5e(t),!1)};function H5e(t,e){let n=t.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),t.focus()},50)}function G5e(t){let e=[],n=[],r=!1;for(let a of t.selection.ranges)a.empty||(e.push(t.sliceDoc(a.from,a.to)),n.push(a));if(!e.length){let a=-1;for(let{from:s}of t.selection.ranges){let o=t.doc.lineAt(s);o.number>a&&(e.push(o.text),n.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),a=o.number}r=!0}return{text:Yj(t,OT,e.join(t.lineBreak)),ranges:n,linewise:r}}let WA=null;No.copy=No.cut=(t,e)=>{if(!jx(t.contentDOM,t.observer.selectionRange))return!1;let{text:n,ranges:r,linewise:a}=G5e(t.state);if(!n&&!a)return!1;WA=a?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=WG?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",n),!0):(H5e(t,n),!1)};const qG=_l.define();function KG(t,e){let n=[];for(let r of t.facet(CG)){let a=r(t,e);a&&n.push(a)}return n.length?t.update({effects:n,annotations:qG.of(!0)}):null}function YG(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=KG(t.state,e);n?t.dispatch(n):t.update([])}},10)}Gs.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),YG(t)};Gs.blur=t=>{t.observer.clearSelectionRange(),YG(t)};Gs.compositionstart=Gs.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Gs.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ke.chrome&&Ke.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Gs.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};No.beforeinput=(t,e)=>{var n,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let s=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],c=t.posAtDOM(l.startContainer,l.startOffset),u=t.posAtDOM(l.endContainer,l.endOffset);return MT(t,{from:c,to:u,insert:t.state.toText(s)},null),!0}}let a;if(Ke.chrome&&Ke.android&&(a=UG.find(s=>s.inputType==e.inputType))&&(t.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return Ke.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),Ke.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Gs.compositionend(t,e),20),!1};const YL=new Set;function q5e(t){YL.has(t)||(YL.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const XL=["pre-wrap","normal","pre-line","break-spaces"];let Vp=!1;function JL(){Vp=!1}class K5e{constructor(e){this.lineWrapping=e,this.doc=en.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let r=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((n-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return XL.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let r=0;r-1,c=Math.abs(n-this.lineHeight)>.3||this.lineWrapping!=l||Math.abs(r-this.charWidth)>.1;if(this.lineWrapping=l,this.lineHeight=n,this.charWidth=r,this.textHeight=a,this.lineLength=s,c){this.heightSamples={};for(let u=0;u0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>n1&&(Vp=!0),this.height=e)}replace(e,n,r){return js.of(r)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,r,a){let s=this,o=r.doc;for(let l=a.length-1;l>=0;l--){let{fromA:c,toA:u,fromB:d,toB:f}=a[l],h=s.lineAt(c,Fn.ByPosNoHeight,r.setDoc(n),0,0),p=h.to>=u?h:s.lineAt(u,Fn.ByPosNoHeight,r,0,0);for(f+=p.to-u,u=p.to;l>0&&h.from<=a[l-1].toA;)c=a[l-1].fromA,d=a[l-1].fromB,l--,cs*2){let l=e[n-1];l.break?e.splice(--n,1,l.left,null,l.right):e.splice(--n,1,l.left,l.right),r+=1+l.break,a-=l.size}else if(s>a*2){let l=e[r];l.break?e.splice(r,1,l.left,null,l.right):e.splice(r,1,l.left,l.right),r+=2+l.break,s-=l.size}else break;else if(a=s&&o(this.lineAt(0,Fn.ByPos,r,a,s))}setMeasuredHeight(e){let n=e.heights[e.index++];n<0?(this.spaceAbove=-n,n=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(n)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more&&this.setMeasuredHeight(a),this.outdated=!1,this}toString(){return`block(${this.length})`}}class li extends XG{constructor(e,n,r){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,n){return new po(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,n,r){let a=r[0];return r.length==1&&(a instanceof li||a instanceof Ra&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof Ra?a=new li(a.length,this.height,this.spaceAbove):a.height=this.height,this.outdated||(a.outdated=!1),a):js.of(r)}updateHeight(e,n=0,r=!1,a){return a&&a.from<=n&&a.more?this.setMeasuredHeight(a):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ra extends js{constructor(e){super(e,0)}heightMetrics(e,n){let r=e.doc.lineAt(n).number,a=e.doc.lineAt(n+this.length).number,s=a-r+1,o,l=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*s);o=c/s,this.length>s+1&&(l=(this.height-c)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:a,perLine:o,perChar:l}}blockAt(e,n,r,a){let{firstLine:s,lastLine:o,perLine:l,perChar:c}=this.heightMetrics(n,a);if(n.lineWrapping){let u=a+(e0){let s=r[r.length-1];s instanceof Ra?r[r.length-1]=new Ra(s.length+a):r.push(null,new Ra(a-1))}if(e>0){let s=r[0];s instanceof Ra?r[0]=new Ra(e+s.length):r.unshift(new Ra(e-1),null)}return js.of(r)}decomposeLeft(e,n){n.push(new Ra(e-1),null)}decomposeRight(e,n){n.push(null,new Ra(this.length-e-1))}updateHeight(e,n=0,r=!1,a){let s=n+this.length;if(a&&a.from<=n+this.length&&a.more){let o=[],l=Math.max(n,a.from),c=-1;for(a.from>n&&o.push(new Ra(a.from-n-1).updateHeight(e,n));l<=s&&a.more;){let d=e.doc.lineAt(l).length;o.length&&o.push(null);let f=a.heights[a.index++],h=0;f<0&&(h=-f,f=a.heights[a.index++]),c==-1?c=f:Math.abs(f-c)>=n1&&(c=-2);let p=new li(d,f,h);p.outdated=!1,o.push(p),l+=d+1}l<=s&&o.push(null,new Ra(s-l).updateHeight(e,l));let u=js.of(o);return(c<0||Math.abs(u.height-this.height)>=n1||Math.abs(c-this.heightMetrics(e,n).perLine)>=n1)&&(Vp=!0),Qw(this,u)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class J5e extends js{constructor(e,n,r){super(e.length+n+r.length,e.height+r.height,n|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,n,r,a){let s=r+this.left.height;return el))return u;let d=n==Fn.ByPosNoHeight?Fn.ByPosNoHeight:Fn.ByPos;return c?u.join(this.right.lineAt(l,d,r,o,l)):this.left.lineAt(l,d,r,a,s).join(u)}forEachLine(e,n,r,a,s,o){let l=a+this.left.height,c=s+this.left.length+this.break;if(this.break)e=c&&this.right.forEachLine(e,n,r,l,c,o);else{let u=this.lineAt(c,Fn.ByPos,r,a,s);e=e&&u.from<=n&&o(u),n>u.to&&this.right.forEachLine(u.to+1,n,r,l,c,o)}}replace(e,n,r){let a=this.left.length+this.break;if(nthis.left.length)return this.balanced(this.left,this.right.replace(e-a,n-a,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of r)s.push(l);if(e>0&&ZL(s,o-1),n=r&&n.push(null)),e>r&&this.right.decomposeLeft(e-r,n)}decomposeRight(e,n){let r=this.left.length,a=r+this.break;if(e>=a)return this.right.decomposeRight(e-a,n);e2*n.size||n.size>2*e.size?js.of(this.break?[e,null,n]:[e,n]):(this.left=Qw(this.left,e),this.right=Qw(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,r=!1,a){let{left:s,right:o}=this,l=n+s.length+this.break,c=null;return a&&a.from<=n+s.length&&a.more?c=s=s.updateHeight(e,n,r,a):s.updateHeight(e,n,r),a&&a.from<=l+o.length&&a.more?c=o=o.updateHeight(e,l,r,a):o.updateHeight(e,l,r),c?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function ZL(t,e){let n,r;t[e]==null&&(n=t[e-1])instanceof Ra&&(r=t[e+1])instanceof Ra&&t.splice(e-1,3,new Ra(n.length+1+r.length))}const Z5e=5;class DT{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let r=Math.min(n,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof li?a.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new li(r-this.pos,-1,0)),this.writtenTo=r,n>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,r){if(e=Z5e)&&this.addLineDeco(a,s,o)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenToe&&this.nodes.push(new li(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,n){let r=new Ra(n-e);return this.oracle.doc.lineAt(e).to==n&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof li)return e;let n=new li(0,-1,0);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,r){let a=this.ensureLine();a.length+=r,a.collapsed+=r,a.widgetHeight=Math.max(a.widgetHeight,e),a.breaks+=n,this.writtenTo=this.pos=this.pos+r}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof li)&&!this.isCovered?this.nodes.push(new li(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&f.overflow!="visible"){let h=d.getBoundingClientRect();s=Math.max(s,h.left),o=Math.min(o,h.right),l=Math.max(l,h.top),c=Math.min(u==t.parentNode?a.innerHeight:c,h.bottom)}u=f.position=="absolute"||f.position=="fixed"?d.offsetParent:d.parentNode}else if(u.nodeType==11)u=u.host;else break;return{left:s-n.left,right:Math.max(s,o)-n.left,top:l-(n.top+e),bottom:Math.max(l,c)-(n.top+e)}}function n3e(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function r3e(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class u_{constructor(e,n,r,a){this.from=e,this.to=n,this.size=r,this.displaySize=a}static same(e,n){if(e.length!=n.length)return!1;for(let r=0;rtypeof a!="function"&&a.class=="cm-lineWrapping");this.heightOracle=new K5e(r),this.stateDeco=t8(n),this.heightMap=js.empty().applyChanges(this.stateDeco,en.empty,this.heightOracle.setDoc(n.doc),[new Di(0,0,0,n.doc.length)]);for(let a=0;a<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());a++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ht.set(this.lineGaps.map(a=>a.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let r=0;r<=1;r++){let a=r?n.head:n.anchor;if(!e.some(({from:s,to:o})=>a>=s&&a<=o)){let{from:s,to:o}=this.lineBlockAt(a);e.push(new ob(s,o))}}return this.viewports=e.sort((r,a)=>r.from-a.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?e8:new IT(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Jg(e,this.scaler))})}update(e,n=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=t8(this.state);let a=e.changedRanges,s=Di.extendWithRanges(a,Q5e(r,this.stateDeco,e?e.changes:Jr.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);JL(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Vp)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let c=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.headc.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let u=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(u||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(AG)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,n=e.contentDOM,r=window.getComputedStyle(n),a=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?Pn.RTL:Pn.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=n.getBoundingClientRect(),c=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let u=0,d=0;if(l.width&&l.height){let{scaleX:k,scaleY:S}=dG(n,l);(k>.005&&Math.abs(this.scaleX-k)>.005||S>.005&&Math.abs(this.scaleY-S)>.005)&&(this.scaleX=k,this.scaleY=S,u|=16,o=c=!0)}let f=(parseInt(r.paddingTop)||0)*this.scaleY,h=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=h)&&(this.paddingTop=f,this.paddingBottom=h,u|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(a.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,u|=16);let p=fG(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=pG(this.scrollParent||e.win);let x=(this.printing?r3e:t3e)(n,this.paddingTop),v=x.top-this.pixelViewport.top,b=x.bottom-this.pixelViewport.bottom;this.pixelViewport=x;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(c=!0)),!this.inView&&!this.scrollTarget&&!n3e(e.dom))return 0;let w=l.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,u|=16),c){let k=e.docView.measureVisibleLineHeights(this.viewport);if(a.mustRefreshForHeights(k)&&(o=!0),o||a.lineWrapping&&Math.abs(w-this.contentDOMWidth)>a.charWidth){let{lineHeight:S,charWidth:_,textHeight:C}=e.docView.measureTextSize();o=S>0&&a.refresh(s,S,_,C,Math.max(5,w/_),k),o&&(e.docView.minWidth=0,u|=16)}v>0&&b>0?d=Math.max(v,b):v<0&&b<0&&(d=Math.min(v,b)),JL();for(let S of this.viewports){let _=S.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(S);this.heightMap=(o?js.empty().applyChanges(this.stateDeco,en.empty,this.heightOracle,[new Di(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(a,0,o,new Y5e(S.from,_))}Vp&&(u|=2)}let j=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return j&&(u&2&&(u|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),u|=this.updateForViewport()),(u&2||j)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),a=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,c=new ob(a.lineAt(o-r*1e3,Fn.ByHeight,s,0,0).from,a.lineAt(l+(1-r)*1e3,Fn.ByHeight,s,0,0).to);if(n){let{head:u}=n.range;if(uc.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=a.lineAt(u,Fn.ByPos,s,0,0),h;n.y=="center"?h=(f.top+f.bottom)/2-d/2:n.y=="start"||n.y=="nearest"&&u=l+Math.max(10,Math.min(r,250)))&&a>o-2*1e3&&s>1,o=a<<1;if(this.defaultTextDirection!=Pn.LTR&&!r)return[];let l=[],c=(d,f,h,p)=>{if(f-dd&&bb.from>=h.from&&b.to<=h.to&&Math.abs(b.from-d)b.fromy));if(!v){if(fw.from<=f&&w.to>=f)){let w=n.moveToLineBoundary(Ne.cursor(f),!1,!0).head;w>d&&(f=w)}let b=this.gapSize(h,d,f,p),y=r||b<2e6?b:2e6;v=new u_(d,f,b,y)}l.push(v)},u=d=>{if(d.length2e6)for(let S of e)S.from>=d.from&&S.fromd.from&&c(d.from,p,d,f),mn.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let r=[];Lt.spans(n,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let a=0;if(r.length!=this.visibleRanges.length)a=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||Jg(this.heightMap.lineAt(e,Fn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||Jg(this.heightMap.lineAt(this.scaler.fromDOM(e),Fn.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return Jg(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class ob{constructor(e,n){this.from=e,this.to=n}}function s3e(t,e,n){let r=[],a=t,s=0;return Lt.spans(n,t,e,{span(){},point(o,l){o>a&&(r.push({from:a,to:o}),s+=o-a),a=l}},20),a=1)return e[e.length-1].to;let r=Math.floor(t*n);for(let a=0;;a++){let{from:s,to:o}=e[a],l=o-s;if(r<=l)return s+r;r-=l}}function cb(t,e){let n=0;for(let{from:r,to:a}of t.ranges){if(e<=a){n+=e-r;break}n+=a-r}return n/t.total}function i3e(t,e){for(let n of t)if(e(n))return n}const e8={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function t8(t){let e=t.facet(Gj).filter(r=>typeof r!="function"),n=t.facet(PT).filter(r=>typeof r!="function");return n.length&&e.push(Lt.join(n)),e}class IT{constructor(e,n,r){let a=0,s=0,o=0;this.viewports=r.map(({from:l,to:c})=>{let u=n.lineAt(l,Fn.ByPos,e,0,0).top,d=n.lineAt(c,Fn.ByPos,e,0,0).bottom;return a+=d-u,{from:l,to:c,top:u,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(n.height-a);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let n=0,r=0,a=0;;n++){let s=nn.from==e.viewports[r].from&&n.to==e.viewports[r].to):!1}}function Jg(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),r=e.toDOM(t.bottom);return new po(t.from,t.length,n,r-n,Array.isArray(t._content)?t._content.map(a=>Jg(a,e)):t._content)}const ub=Ye.define({combine:t=>t.join(" ")}),HA=Ye.define({combine:t=>t.indexOf(!0)>-1}),GA=Cu.newName(),JG=Cu.newName(),ZG=Cu.newName(),QG={"&light":"."+JG,"&dark":"."+ZG};function qA(t,e,n){return new Cu(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,a=>{if(a=="&")return t;if(!n||!n[a])throw new RangeError(`Unsupported selector: ${a}`);return n[a]}):t+" "+r}})}const o3e=qA("."+GA,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},QG),l3e={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},d_=Ke.ie&&Ke.ie_version<=11;class c3e{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new FOe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let r of n)this.queue.push(r);(Ke.ie&&Ke.ie_version<=11||Ke.ios&&e.composing)&&n.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ke.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ke.chrome&&Ke.chrome_version<126)&&(this.editContext=new d3e(e),e.state.facet(zl)&&(e.contentDOM.editContext=this.editContext.editContext)),d_&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,r)=>n!=e[r]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,a=this.selectionRange;if(r.state.facet(zl)?r.root.activeElement!=this.dom:!jx(this.dom,a))return;let s=a.anchorNode&&r.docView.tile.nearest(a.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(Ke.ie&&Ke.ie_version<=11||Ke.android&&Ke.chrome)&&!r.state.selection.main.empty&&a.focusNode&&_x(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=W0(e.root);if(!n)return!1;let r=Ke.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&u3e(this.view,n)||n;if(!r||this.selectionRange.eq(r))return!1;let a=jx(this.dom,r);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Hh(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,r=-1,a=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(a=!0),n==-1?{from:n,to:r}=o:(n=Math.min(o.from,n),r=Math.max(o.to,r)))}return{from:n,to:r,typeOver:a}}readChange(){let{from:e,to:n,typeOver:r}=this.processRecords(),a=this.selectionChanged&&jx(this.dom,this.selectionRange);if(e<0&&!a)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new E5e(this.view,e,n,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let r=this.view.state,a=BG(this.view,n);return this.view.state==r&&(n.domChanged||n.newSel&&!Zw(this.view.state.selection,n.newSel.main))&&this.view.update([]),a}readMutation(e){let n=this.view.docView.tile.nearest(e.target);if(!n||n.isWidget())return null;if(n.markDirty(e.type=="attributes"),e.type=="childList"){let r=n8(n,e.previousSibling||e.target.previousSibling,-1),a=n8(n,e.nextSibling||e.target.nextSibling,1);return{from:r?n.posAfter(r):n.posAtStart,to:a?n.posBefore(a):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(zl)!=e.state.facet(zl)&&(e.view.contentDOM.editContext=e.state.facet(zl)?this.editContext.editContext:null))}destroy(){var e,n,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function n8(t,e,n){for(;e;){let r=kr.get(e);if(r&&r.parent==t)return r;let a=e.parentNode;e=a!=t.dom?a:n>0?e.nextSibling:e.previousSibling}return null}function r8(t,e){let n=e.startContainer,r=e.startOffset,a=e.endContainer,s=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return _x(o.node,o.offset,a,s)&&([n,r,a,s]=[a,s,n,r]),{anchorNode:n,anchorOffset:r,focusNode:a,focusOffset:s}}function u3e(t,e){if(e.getComposedRanges){let a=e.getComposedRanges(t.root)[0];if(a)return r8(t,a)}let n=null;function r(a){a.preventDefault(),a.stopImmediatePropagation(),n=a.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",r,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",r,!0),n?r8(t,n):null}class d3e{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let a=e.state.selection.main,{anchor:s,head:o}=a,l=this.toEditorPos(r.updateRangeStart),c=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:l,drifted:!1});let u=c-l>r.text.length;l==this.from&&sthis.to&&(c=s);let d=zG(e.state.sliceDoc(l,c),r.text,(u?a.from:a.to)-l,u?"end":null);if(!d){let h=Ne.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));Zw(h,a)||e.dispatch({selection:h,userEvent:"select"});return}let f={from:d.from+l,to:d.toA+l,insert:en.of(r.text.slice(d.from,d.toB).split(` -`))};if((Ke.mac||Ke.android)&&f.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:c,insert:en.of([r.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let h=this.to-this.from+(f.to-f.from+f.insert.length);MT(e,f,Ne.single(this.toEditorPos(r.selectionStart,h),this.toEditorPos(r.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(n.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let a=[],s=null;for(let o=this.toEditorPos(r.rangeStart),l=this.toEditorPos(r.rangeEnd);o{let a=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let c=this.toEditorPos(s.rangeStart),u=this.toEditorPos(s.rangeEnd);if(c{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)n.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let a=W0(r.root);a&&a.rangeCount&&this.editContext.updateSelectionBounds(a.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,r=!1,a=this.pendingContextChange;return e.changes.iterChanges((s,o,l,c,u)=>{if(r)return;let d=u.length-(o-s);if(a&&o>=a.to)if(a.from==s&&a.to==o&&a.insert.eq(u)){a=this.pendingContextChange=null,n+=d,this.to+=d;return}else a=null,this.revertPending(e.state);if(s+=n,o+=n,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+u.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),u.toString()),this.to+=d}n+=d}),a&&!r&&this.revertPending(e.state),!r}update(e){let n=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(a=>!a.isUserEvent("input.type")&&a.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),a=this.toContextPos(n.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=a)&&this.editContext.updateSelection(r,a)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class Ue{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(a=>a.forEach(s=>r(s,this)))||(a=>this.update(a)),this.dispatch=this.dispatch.bind(this),this._root=e.root||BOe(e.parent)||document,this.viewState=new QL(this,e.state||Xt.create(e)),e.scrollTo&&e.scrollTo.is(ab)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ch).map(a=>new s_(a));for(let a of this.plugins)a.update(this);this.observer=new c3e(this),this.inputState=new P5e(this),this.inputState.ensureHandlers(this.plugins),this.docView=new BL(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let n=e.length==1&&e[0]instanceof ta?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,r=!1,a,s=this.state;for(let h of e){if(h.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=h.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,c=null;e.some(h=>h.annotation(qG))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,c=KG(s,o),c||(l=1));let u=this.observer.delayedAndroidKey,d=null;if(u?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(Xt.phrases)!=this.state.facet(Xt.phrases))return this.setState(s);a=Yw.create(this,s,e),a.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(f&&(f=f.map(h.changes)),h.scrollIntoView){let{main:p}=h.state.selection,{x:m,y:x}=this.state.facet(Ue.cursorScrollMargin);f=new Gh(p.empty?p:Ne.cursor(p.head,p.head>p.anchor?-1:1),"nearest","nearest",x,m)}for(let p of h.effects)p.is(ab)&&(f=p.value.clip(this.state))}this.viewState.update(a,f),this.bidiCache=ek.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),n=this.docView.update(a),this.state.facet(Xg)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(ub)!=a.state.facet(ub)&&(this.viewState.mustMeasureContent=!0),(n||r||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!a.empty)for(let h of this.state.facet(BA))try{h(a)}catch(p){vs(this.state,p,"update listener")}(c||d)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),d&&!BG(this,d)&&u.force&&Hh(this.contentDOM,u.key,u.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new QL(this,e),this.plugins=e.facet(Ch).map(r=>new s_(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new BL(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(Ch),r=e.state.facet(Ch);if(n!=r){let a=[];for(let s of r){let o=n.indexOf(s);if(o<0)a.push(new s_(s));else{let l=this.plugins[o];l.mustUpdate=e,a.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=a,this.pluginMap.clear()}else for(let a of this.plugins)a.mustUpdate=e;for(let a=0;a-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,r=this.viewState.scrollParent,a=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(a-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(pG(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(a);s=p.from,o=p.top}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];c&4||([this.measureRequests,u]=[u,this.measureRequests]);let d=u.map(p=>{try{return p.read(this)}catch(m){return vs(this.state,m),a8}}),f=Yw.create(this,this.state,[]),h=!1;f.flags|=c,n?n.flags|=c:n=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),h=this.docView.update(f),h&&this.docViewUpdate());for(let p=0;p1||m<-1)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){a=a+m,r?r.scrollTop+=m:this.win.scrollBy(0,m),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(BA))l(n)}get themeClasses(){return GA+" "+(this.state.facet(HA)?ZG:JG)+" "+this.state.facet(ub)}updateAttrs(){let e=s8(this,PG,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(zl)?"true":"false",class:"cm-content",style:`${Ke.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),s8(this,TT,n);let r=this.observer.ignore(()=>{let a=ML(this.contentDOM,this.contentAttrs,n),s=ML(this.dom,this.editorAttrs,e);return a||s});return this.editorAttrs=e,this.contentAttrs=n,r}showAnnouncements(e){let n=!0;for(let r of e)for(let a of r.effects)if(a.is(Ue.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(Xg);let e=this.state.facet(Ue.cspNonce);Cu.mount(this.root,this.styleModules.concat(o3e).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;nr.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,r){return c_(this,e,zL(this,e,n,r))}moveByGroup(e,n){return c_(this,e,zL(this,e,n,r=>k5e(this,e.head,r)))}visualLineSide(e,n){let r=this.bidiSpans(e),a=this.textDirectionAt(e.from),s=r[n?r.length-1:0];return Ne.cursor(s.side(n,a)+e.from,s.forward(!n,a)?1:-1)}moveToLineBoundary(e,n,r=!0){return w5e(this,e,n,r)}moveVertically(e,n,r){return c_(this,e,j5e(this,e,n,r))}domAtPos(e,n=1){return this.docView.domAtPos(e,n)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){this.readMeasured();let r=VA(this,e,n);return r&&r.pos}posAndSideAtCoords(e,n=!0){return this.readMeasured(),VA(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let r=this.docView.coordsAt(e,n);if(!r||r.left==r.right)return r;let a=this.state.doc.lineAt(e),s=this.bidiSpans(a),o=s[al.find(s,e-a.from,-1,n)];return H0(r,o.dir==Pn.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(EG)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>f3e)return bG(e.length);let n=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||vG(s.isolates,r=$L(this,e))))return s.order;r||(r=$L(this,e));let a=KOe(e.text,n,r);return this.bidiCache.push(new ek(e.from,e.to,n,r,!0,a)),a}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ke.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{hG(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){var r,a,s,o;return ab.of(new Gh(typeof e=="number"?Ne.cursor(e):e,(r=n.y)!==null&&r!==void 0?r:"nearest",(a=n.x)!==null&&a!==void 0?a:"nearest",(s=n.yMargin)!==null&&s!==void 0?s:5,(o=n.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return ab.of(new Gh(Ne.cursor(r.from),"start","start",r.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return gr.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return gr.define(()=>({}),{eventObservers:e})}static theme(e,n){let r=Cu.newName(),a=[ub.of(r),Xg.of(qA(`.${r}`,e))];return n&&n.dark&&a.push(HA.of(!0)),a}static baseTheme(e){return _f.lowest(Xg.of(qA("."+GA,e,QG)))}static findFromDOM(e){var n;let r=e.querySelector(".cm-content"),a=r&&kr.get(r)||kr.get(e);return((n=a==null?void 0:a.root)===null||n===void 0?void 0:n.view)||null}}Ue.styleModule=Xg;Ue.inputHandler=NG;Ue.clipboardInputFilter=AT;Ue.clipboardOutputFilter=OT;Ue.scrollHandler=OG;Ue.focusChangeEffect=CG;Ue.perLineTextDirection=EG;Ue.exceptionSink=_G;Ue.updateListener=BA;Ue.editable=zl;Ue.mouseSelectionStyle=SG;Ue.dragMovesSelection=jG;Ue.clickAddsSelectionRange=kG;Ue.decorations=Gj;Ue.blockWrappers=RG;Ue.outerDecorations=PT;Ue.atomicRanges=Ty;Ue.bidiIsolatedRanges=MG;Ue.cursorScrollMargin=Ye.define({combine:t=>{let e=5,n=5;for(let r of t)typeof r=="number"?e=n=r:{x:e,y:n}=r;return{x:e,y:n}}});Ue.scrollMargins=DG;Ue.darkTheme=HA;Ue.cspNonce=Ye.define({combine:t=>t.length?t[0]:""});Ue.contentAttributes=TT;Ue.editorAttributes=PG;Ue.lineWrapping=Ue.contentAttributes.of({class:"cm-lineWrapping"});Ue.announce=Ot.define();const f3e=4096,a8={};class ek{constructor(e,n,r,a,s,o){this.from=e,this.to=n,this.dir=r,this.isolates=a,this.fresh=s,this.order=o}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let r=[],a=e.length?e[e.length-1].dir:Pn.LTR;for(let s=Math.max(0,e.length-10);s=0;a--){let s=r[a],o=typeof s=="function"?s(t):s;o&&NT(o,n)}return n}const h3e=Ke.mac?"mac":Ke.windows?"win":Ke.linux?"linux":"key";function p3e(t,e){const n=t.split(/-(?!$)/);let r=n[n.length-1];r=="Space"&&(r=" ");let a,s,o,l;for(let c=0;cr.concat(a),[]))),n}function g3e(t,e,n){return tq(eq(t.state),e,t,n)}let Wc=null;const x3e=4e3;function y3e(t,e=h3e){let n=Object.create(null),r=Object.create(null),a=(o,l)=>{let c=r[o];if(c==null)r[o]=l;else if(c!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,c,u,d)=>{var f,h;let p=n[o]||(n[o]=Object.create(null)),m=l.split(/ (?!$)/).map(b=>p3e(b,e));for(let b=1;b{let j=Wc={view:w,prefix:y,scope:o};return setTimeout(()=>{Wc==j&&(Wc=null)},x3e),!0}]})}let x=m.join(" ");a(x,!1);let v=p[x]||(p[x]={preventDefault:!1,stopPropagation:!1,run:((h=(f=p._any)===null||f===void 0?void 0:f.run)===null||h===void 0?void 0:h.slice())||[]});c&&v.run.push(c),u&&(v.preventDefault=!0),d&&(v.stopPropagation=!0)};for(let o of t){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let u of l){let d=n[u]||(n[u]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let h in d)d[h].run.push(p=>f(p,KA))}let c=o[e]||o.key;if(c)for(let u of l)s(u,c,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(u,"Shift-"+c,o.shift,o.preventDefault,o.stopPropagation)}return n}let KA=null;function tq(t,e,n,r){KA=e;let a=ROe(e),s=Ps(a,0),o=Zo(s)==a.length&&a!=" ",l="",c=!1,u=!1,d=!1;Wc&&Wc.view==n&&Wc.scope==r&&(l=Wc.prefix+" ",VG.indexOf(e.keyCode)<0&&(u=!0,Wc=null));let f=new Set,h=v=>{if(v){for(let b of v.run)if(!f.has(b)&&(f.add(b),b(n)))return v.stopPropagation&&(d=!0),!0;v.preventDefault&&(v.stopPropagation&&(d=!0),u=!0)}return!1},p=t[r],m,x;return p&&(h(p[l+db(a,e,!o)])?c=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ke.windows&&e.ctrlKey&&e.altKey)&&!(Ke.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=Eu[e.keyCode])&&m!=a?(h(p[l+db(m,e,!0)])||e.shiftKey&&(x=U0[e.keyCode])!=a&&x!=m&&h(p[l+db(x,e,!1)]))&&(c=!0):o&&e.shiftKey&&h(p[l+db(a,e,!0)])&&(c=!0),!c&&h(p._any)&&(c=!0)),u&&(c=!0),c&&d&&e.stopPropagation(),KA=null,c}class Fd{constructor(e,n,r,a,s){this.className=e,this.left=n,this.top=r,this.width=a,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,r){if(r.empty){let a=e.coordsAtPos(r.head,r.assoc||1);if(!a)return[];let s=nq(e);return[new Fd(n,a.left-s.left,a.top-s.top,null,a.bottom-a.top)]}else return v3e(e,n,r)}}function nq(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Pn.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function o8(t,e,n,r){let a=t.coordsAtPos(e,n*2);if(!a)return r;let s=t.dom.getBoundingClientRect(),o=(a.top+a.bottom)/2,l=t.posAtCoords({x:s.left+1,y:o}),c=t.posAtCoords({x:s.right-1,y:o});return l==null||c==null?r:{from:Math.max(r.from,Math.min(l,c)),to:Math.min(r.to,Math.max(l,c))}}function v3e(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let r=Math.max(n.from,t.viewport.from),a=Math.min(n.to,t.viewport.to),s=t.textDirection==Pn.LTR,o=t.contentDOM,l=o.getBoundingClientRect(),c=nq(t),u=o.querySelector(".cm-line"),d=u&&window.getComputedStyle(u),f=l.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),h=l.right-(d?parseInt(d.paddingRight):0),p=UA(t,r,1),m=UA(t,a,-1),x=p.type==La.Text?p:null,v=m.type==La.Text?m:null;if(x&&(t.lineWrapping||p.widgetLineBreaks)&&(x=o8(t,r,1,x)),v&&(t.lineWrapping||m.widgetLineBreaks)&&(v=o8(t,a,-1,v)),x&&v&&x.from==v.from&&x.to==v.to)return y(w(n.from,n.to,x));{let k=x?w(n.from,null,x):j(p,!1),S=v?w(null,n.to,v):j(m,!0),_=[];return(x||p).to<(v||m).from-(x&&v?1:0)||p.widgetLineBreaks>1&&k.bottom+t.defaultLineHeight/2A&&D.from=X)break;W>L&&R(Math.max(Y,L),k==null&&Y<=A,Math.min(W,X),S==null&&W>=T,U.dir)}if(L=J.to+1,L>=X)break}return P.length==0&&R(A,k==null,T,S==null,t.textDirection),{top:C,bottom:E,horizontal:P}}function j(k,S){let _=l.top+(S?k.top:k.bottom);return{top:_,bottom:_,horizontal:[]}}}function b3e(t,e){return t.constructor==e.constructor&&t.eq(e)}class w3e{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(r1)!=e.state.facet(r1)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,r=e.facet(r1);for(;n!b3e(n,this.drawn[r]))){let n=this.dom.firstChild,r=0;for(let a of e)a.update&&n&&a.constructor&&this.drawn[r].constructor&&a.update(n,this.drawn[r])?(n=n.nextSibling,r++):this.dom.insertBefore(a.draw(),n);for(;n;){let a=n.nextSibling;n.remove(),n=a}this.drawn=e,Ke.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const r1=Ye.define();function rq(t){return[gr.define(e=>new w3e(e,t)),r1.of(t)]}const Wp=Ye.define({combine(t){return Nl(t,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function k3e(t={}){return[Wp.of(t),j3e,S3e,_3e,AG.of(!0)]}function aq(t){return t.startState.facet(Wp)!=t.state.facet(Wp)}const j3e=rq({above:!0,markers(t){let{state:e}=t,n=e.facet(Wp),r=[];for(let a of e.selection.ranges){let s=a==e.selection.main;if(a.empty||n.drawRangeCursor&&!(s&&Ke.ios&&n.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=a.empty?a:Ne.cursor(a.head,a.assoc);for(let c of Fd.forRange(t,o,l))r.push(c)}}return r},update(t,e){t.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=aq(t);return n&&l8(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){l8(e.state,t)},class:"cm-cursorLayer"});function l8(t,e){e.style.animationDuration=t.facet(Wp).cursorBlinkRate+"ms"}const S3e=rq({above:!1,markers(t){let e=[],{main:n,ranges:r}=t.state.selection;for(let a of r)if(!a.empty)for(let s of Fd.forRange(t,"cm-selectionBackground",a))e.push(s);if(Ke.ios&&!n.empty&&t.state.facet(Wp).iosSelectionHandles){for(let a of Fd.forRange(t,"cm-selectionHandle cm-selectionHandle-start",Ne.cursor(n.from,1)))e.push(a);for(let a of Fd.forRange(t,"cm-selectionHandle cm-selectionHandle-end",Ne.cursor(n.to,1)))e.push(a)}return e},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||aq(t)},class:"cm-selectionLayer"}),_3e=_f.highest(Ue.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),sq=Ot.define({map(t,e){return t==null?null:e.mapPos(t)}}),Zg=ns.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,r)=>r.is(sq)?r.value:n,t)}}),N3e=gr.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(Zg);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(Zg)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(Zg),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let r=t.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-r.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(Zg)!=t&&this.view.dispatch({effects:sq.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function C3e(){return[Zg,N3e]}function c8(t,e,n,r,a){e.lastIndex=0;for(let s=t.iterRange(n,r),o=n,l;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)a(o+l.index,l)}function E3e(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let r=[];for(let{from:a,to:s}of n)a=Math.max(t.state.doc.lineAt(a).from,a-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=a?r[r.length-1].to=s:r.push({from:a,to:s});return r}class A3e{constructor(e){const{regexp:n,decoration:r,decorate:a,boundary:s,maxLength:o=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,a)this.addMatch=(l,c,u,d)=>a(d,u,u+l[0].length,l,c);else if(typeof r=="function")this.addMatch=(l,c,u,d)=>{let f=r(l,c,u);f&&d(u,u+l[0].length,f)};else if(r)this.addMatch=(l,c,u,d)=>d(u,u+l[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let n=new hc,r=n.add.bind(n);for(let{from:a,to:s}of E3e(e,this.maxLength))c8(e.state.doc,this.regexp,a,s,(o,l)=>this.addMatch(l,e,o,r));return n.finish()}updateDeco(e,n){let r=1e9,a=-1;return e.docChanged&&e.changes.iterChanges((s,o,l,c)=>{c>=e.view.viewport.from&&l<=e.view.viewport.to&&(r=Math.min(l,r),a=Math.max(c,a))}),e.viewportMoved||a-r>1e3?this.createDeco(e.view):a>-1?this.updateRange(e.view,n.map(e.changes),r,a):n}updateRange(e,n,r,a){for(let s of e.visibleRanges){let o=Math.max(s.from,r),l=Math.min(s.to,a);if(l>=o){let c=e.state.doc.lineAt(o),u=c.toc.from;o--)if(this.boundary.test(c.text[o-1-c.from])){d=o;break}for(;lh.push(b.range(x,v));if(c==u)for(this.regexp.lastIndex=d-c.from;(p=this.regexp.exec(c.text))&&p.indexthis.addMatch(v,e,x,m));n=n.update({filterFrom:d,filterTo:f,filter:(x,v)=>xf,add:h})}}return n}}const YA=/x/.unicode!=null?"gu":"g",O3e=new RegExp(`[\0-\b ---Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,YA),T3e={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let f_=null;function P3e(){var t;if(f_==null&&typeof document<"u"&&document.body){let e=document.body.style;f_=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return f_||!1}const a1=Ye.define({combine(t){let e=Nl(t,{render:null,specialChars:O3e,addSpecialChars:null});return(e.replaceTabs=!P3e())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,YA)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,YA)),e}});function R3e(t={}){return[a1.of(t),M3e()]}let u8=null;function M3e(){return u8||(u8=gr.fromClass(class{constructor(t){this.view=t,this.decorations=ht.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(a1)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new A3e({regexp:t.specialChars,decoration:(e,n,r)=>{let{doc:a}=n.state,s=Ps(e[0],0);if(s==9){let o=a.lineAt(r),l=n.state.tabSize,c=jm(o.text,l,r-o.from);return ht.replace({widget:new L3e((l-c%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ht.replace({widget:new $3e(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(a1);t.startState.facet(a1)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const D3e="•";function I3e(t){return t>=32?D3e:t==10?"␤":String.fromCharCode(9216+t)}class $3e extends Cl{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=I3e(this.code),r=e.state.phrase("Control character")+" "+(T3e[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,r,n);if(a)return a;let s=document.createElement("span");return s.textContent=n,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class L3e extends Cl{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function F3e(){return z3e}const B3e=ht.line({class:"cm-activeLine"}),z3e=gr.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let r of t.state.selection.ranges){let a=t.lineBlockAt(r.head);a.from>e&&(n.push(B3e.range(a.from)),e=a.from)}return ht.set(n)}},{decorations:t=>t.decorations});class U3e extends Cl{constructor(e){super(),this.content=e}toDOM(e){let n=document.createElement("span");return n.className="cm-placeholder",n.style.pointerEvents="none",n.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),n.setAttribute("aria-hidden","true"),n}coordsAt(e){let n=e.firstChild?Sx(e.firstChild):[];if(!n.length)return null;let r=window.getComputedStyle(e.parentNode),a=H0(n[0],r.direction!="rtl"),s=parseInt(r.lineHeight);return a.bottom-a.top>s*1.5?{left:a.left,right:a.right,top:a.top,bottom:a.top+s}:a}ignoreEvent(){return!1}}function iq(t){let e=gr.fromClass(class{constructor(n){this.view=n,this.placeholder=t?ht.set([ht.widget({widget:new U3e(t),side:1}).range(0)]):ht.none}get decorations(){return this.view.state.doc.length?ht.none:this.placeholder}},{decorations:n=>n.decorations});return typeof t=="string"?[e,Ue.contentAttributes.of({"aria-placeholder":t})]:e}const XA=2e3;function V3e(t,e,n){let r=Math.min(e.line,n.line),a=Math.max(e.line,n.line),s=[];if(e.off>XA||n.off>XA||e.col<0||n.col<0){let o=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=r;c<=a;c++){let u=t.doc.line(c);u.length<=l&&s.push(Ne.range(u.from+o,u.to+l))}}else{let o=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=r;c<=a;c++){let u=t.doc.line(c),d=AA(u.text,o,t.tabSize,!0);if(d<0)s.push(Ne.cursor(u.to));else{let f=AA(u.text,l,t.tabSize);s.push(Ne.range(u.from+d,u.from+f))}}}return s}function W3e(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function d8(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),r=t.state.doc.lineAt(n),a=n-r.from,s=a>XA?-1:a==r.length?W3e(t,e.clientX):jm(r.text,t.state.tabSize,n-r.from);return{line:r.number,col:s,off:a}}function H3e(t,e){let n=d8(t,e),r=t.state.selection;return n?{update(a){if(a.docChanged){let s=a.changes.mapPos(a.startState.doc.line(n.line).from),o=a.state.doc.lineAt(s);n={line:o.number,col:n.col,off:Math.min(n.off,o.length)},r=r.map(a.changes)}},get(a,s,o){let l=d8(t,a);if(!l)return r;let c=V3e(t.state,n,l);return c.length?o?Ne.create(c.concat(r.ranges)):Ne.create(c):r}}:null}function G3e(t){let e=n=>n.altKey&&n.button==0;return Ue.mouseSelectionStyle.of((n,r)=>e(r)?H3e(n,r):null)}const q3e={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},K3e={style:"cursor: crosshair"};function Y3e(t={}){let[e,n]=q3e[t.key||"Alt"],r=gr.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventObservers:{keydown(a){this.set(a.keyCode==e||n(a))},keyup(a){(a.keyCode==e||!n(a))&&this.set(!1)},mousemove(a){this.set(n(a))}}});return[r,Ue.contentAttributes.of(a=>{var s;return!((s=a.plugin(r))===null||s===void 0)&&s.isDown?K3e:null})]}const fb="-10000px";class oq{constructor(e,n,r,a){this.facet=n,this.createTooltipView=r,this.removeTooltipView=a,this.input=e.state.facet(n),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,n){var r;let a=e.state.facet(this.facet),s=a.filter(c=>c);if(a===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let o=[],l=n?[]:null;for(let c=0;cn[u]=c),n.length=l.length),this.input=a,this.tooltips=s,this.tooltipViews=o,!0}}function X3e(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const h_=Ye.define({combine:t=>{var e,n,r;return{position:Ke.ios?"absolute":((e=t.find(a=>a.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(a=>a.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((r=t.find(a=>a.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||X3e}}}),f8=new WeakMap,$T=gr.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(h_);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new oq(t,LT,(n,r)=>this.createTooltip(n,r),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,r=t.state.facet(h_);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let a of this.manager.tooltipViews)a.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let a of this.manager.tooltipViews)this.container.appendChild(a.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),r=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let a=document.createElement("div");a.className="cm-tooltip-arrow",n.dom.appendChild(a)}return n.dom.style.position=this.position,n.dom.style.top=fb,n.dom.style.left="0px",this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(t=r.destroy)===null||t===void 0||t.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(Ke.safari){let o=s.getBoundingClientRect();n=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else n=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(t=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),a=RT(this.view);return{visible:{left:r.left+a.left,top:r.top+a.top,right:r.right-a.right,bottom:r.bottom-a.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(h_).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:r,scaleX:a,scaleY:s}=t,o=[];for(let l=0;l=Math.min(n.bottom,r.bottom)||f.rightMath.min(n.right,r.right)+.1)){d.style.top=fb;continue}let p=c.arrow?u.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,x=h.right-h.left,v=(e=f8.get(u))!==null&&e!==void 0?e:h.bottom-h.top,b=u.offset||Z3e,y=this.view.textDirection==Pn.LTR,w=h.width>r.right-r.left?y?r.left:r.right-h.width:y?Math.max(r.left,Math.min(f.left-(p?14:0)+b.x,r.right-x)):Math.min(Math.max(r.left,f.left-x+(p?14:0)-b.x),r.right-x),j=this.above[l];!c.strictSide&&(j?f.top-v-m-b.yr.bottom)&&j==r.bottom-f.bottom>f.top-r.top&&(j=this.above[l]=!j);let k=(j?f.top-r.top:r.bottom-f.bottom)-m;if(kw&&C.topS&&(S=j?C.top-v-2-m:C.bottom+m+2);if(this.position=="absolute"?(d.style.top=(S-t.parent.top)/s+"px",h8(d,(w-t.parent.left)/a)):(d.style.top=S/s+"px",h8(d,w/a)),p){let C=f.left+(y?b.x:-b.x)-(w+14-7);p.style.left=C/a+"px"}u.overlap!==!0&&o.push({left:w,top:S,right:_,bottom:S+v}),d.classList.toggle("cm-tooltip-above",j),d.classList.toggle("cm-tooltip-below",!j),u.positioned&&u.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=fb}},{eventObservers:{scroll(){this.maybeMeasure()}}});function h8(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const J3e=Ue.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Z3e={x:0,y:0},LT=Ye.define({enables:[$T,J3e]}),tk=Ye.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class Jj{static create(e){return new Jj(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new oq(e,tk,(n,r)=>this.createHostedView(n,r),n=>n.dom.remove())}createHostedView(e,n){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let r of this.manager.tooltipViews){let a=r[e];if(a!==void 0){if(n===void 0)n=a;else if(n!==a)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Q3e=LT.compute([tk],t=>{let e=t.facet(tk);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var r;return(r=n.end)!==null&&r!==void 0?r:n.pos})),create:Jj.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class eTe{constructor(e,n,r,a,s){this.view=e,this.source=n,this.field=r,this.setHover=a,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;el.bottom||n.xl.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(a)).find(d=>d.from<=a&&d.to>=a),u=c&&c.dir==Pn.RTL?-1:1;s=n.x{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>vs(e.state,c,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin($T),n=e?e.manager.tooltips.findIndex(r=>r.create==Jj.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:a,tooltip:s}=this;if(a.length&&s&&!tTe(s.dom,e)||this.pending){let{pos:o}=a[0]||this.pending,l=(r=(n=a[0])===null||n===void 0?void 0:n.end)!==null&&r!==void 0?r:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!nTe(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=r=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const hb=4;function tTe(t,e){let{left:n,right:r,top:a,bottom:s}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();a=Math.min(l.top,a),s=Math.max(l.bottom,s)}return e.clientX>=n-hb&&e.clientX<=r+hb&&e.clientY>=a-hb&&e.clientY<=s+hb}function nTe(t,e,n,r,a,s){let o=t.scrollDOM.getBoundingClientRect(),l=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>r||o.righta||Math.min(o.bottom,l)=e&&c<=n}function rTe(t,e={}){let n=Ot.define(),r=ns.define({create(){return[]},update(a,s){if(a.length&&(e.hideOnChange&&(s.docChanged||s.selection)?a=[]:e.hideOn&&(a=a.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let l of a){let c=s.changes.mapPos(l.pos,-1,ps.TrackDel);if(c!=null){let u=Object.assign(Object.create(null),l);u.pos=c,u.end!=null&&(u.end=s.changes.mapPos(u.end)),o.push(u)}}a=o}for(let o of s.effects)o.is(n)&&(a=o.value),o.is(aTe)&&(a=[]);return a},provide:a=>tk.from(a)});return{active:r,extension:[r,gr.define(a=>new eTe(a,t,r,n,e.hoverTime||300)),Q3e]}}function lq(t,e){let n=t.plugin($T);if(!n)return null;let r=n.manager.tooltips.indexOf(e);return r<0?null:n.manager.tooltipViews[r]}const aTe=Ot.define(),p8=Ye.define({combine(t){let e,n;for(let r of t)e=e||r.topContainer,n=n||r.bottomContainer;return{topContainer:e,bottomContainer:n}}});function FT(t,e){let n=t.plugin(cq),r=n?n.specs.indexOf(e):-1;return r>-1?n.panels[r]:null}const cq=gr.fromClass(class{constructor(t){this.input=t.state.facet(q0),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(p8);this.top=new pb(t,!0,e.topContainer),this.bottom=new pb(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(p8);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new pb(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new pb(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(q0);if(n!=this.input){let r=n.filter(c=>c),a=[],s=[],o=[],l=[];for(let c of r){let u=this.specs.indexOf(c),d;u<0?(d=c(t.view),l.push(d)):(d=this.panels[u],d.update&&d.update(t)),a.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=a,this.top.sync(s),this.bottom.sync(o);for(let c of l)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let r of this.panels)r.update&&r.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Ue.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class pb{constructor(e,n,r){this.view=e,this.top=n,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=m8(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=m8(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function m8(t){let e=t.nextSibling;return t.remove(),e}const q0=Ye.define({enables:cq});function sTe(t,e){let n,r=new Promise(o=>n=o),a=o=>iTe(o,e,n);t.state.field(p_,!1)?t.dispatch({effects:uq.of(a)}):t.dispatch({effects:Ot.appendConfig.of(p_.init(()=>[a]))});let s=dq.of(a);return{close:s,result:r.then(o=>((t.win.queueMicrotask||(c=>t.win.setTimeout(c,10)))(()=>{t.state.field(p_).indexOf(a)>-1&&t.dispatch({effects:s})}),o))}}const p_=ns.define({create(){return[]},update(t,e){for(let n of e.effects)n.is(uq)?t=[n.value].concat(t):n.is(dq)&&(t=t.filter(r=>r!=n.value));return t},provide:t=>q0.computeN([t],e=>e.field(t))}),uq=Ot.define(),dq=Ot.define();function iTe(t,e,n){let r=e.content?e.content(t,()=>o(null)):null;if(!r){if(r=Sn("form"),e.input){let l=Sn("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),r.appendChild(Sn("label",(e.label||"")+": ",l))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(Sn("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let a=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let l=0;l{u.keyCode==27?(u.preventDefault(),o(null)):u.keyCode==13&&(u.preventDefault(),o(c))}),c.addEventListener("submit",u=>{u.preventDefault(),o(c)})}let s=Sn("div",r,Sn("button",{onclick:()=>o(null),"aria-label":t.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(l){s.contains(s.ownerDocument.activeElement)&&t.focus(),n(l)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let l;typeof e.focus=="string"?l=r.querySelector(e.focus):l=r.querySelector("input")||r.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}class mc extends Nu{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}mc.prototype.elementClass="";mc.prototype.toDOM=void 0;mc.prototype.mapMode=ps.TrackBefore;mc.prototype.startSide=mc.prototype.endSide=-1;mc.prototype.point=!0;const s1=Ye.define(),oTe=Ye.define(),lTe={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Lt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Cx=Ye.define();function cTe(t){return[fq(),Cx.of({...lTe,...t})]}const g8=Ye.define({combine:t=>t.some(e=>e)});function fq(t){return[uTe]}const uTe=gr.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Cx).map(e=>new y8(t,e)),this.fixed=!t.state.facet(g8);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,r=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(r<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(g8)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=Lt.iter(this.view.state.facet(s1),this.view.viewport.from),r=[],a=this.gutters.map(s=>new dTe(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let l of s.type)if(l.type==La.Text&&o){JA(n,r,l.from);for(let c of a)c.line(this.view,l,r);o=!1}else if(l.widget)for(let c of a)c.widget(this.view,l)}else if(s.type==La.Text){JA(n,r,s.from);for(let o of a)o.line(this.view,s,r)}else if(s.widget)for(let o of a)o.widget(this.view,s);for(let s of a)s.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(Cx),n=t.state.facet(Cx),r=t.docChanged||t.heightChanged||t.viewportChanged||!Lt.eq(t.startState.facet(s1),t.state.facet(s1),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let a of this.gutters)a.update(t)&&(r=!0);else{r=!0;let a=[];for(let s of n){let o=e.indexOf(s);o<0?a.push(new y8(this.view,s)):(this.gutters[o].update(t),a.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),a.indexOf(s)<0&&s.destroy();for(let s of a)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=a}return r}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>Ue.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let r=n.dom.offsetWidth*e.scaleX,a=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Pn.LTR?{left:r,right:a}:{right:r,left:a}})});function x8(t){return Array.isArray(t)?t:[t]}function JA(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class dTe{constructor(e,n,r){this.gutter=e,this.height=r,this.i=0,this.cursor=Lt.iter(e.markers,n.from)}addElement(e,n,r){let{gutter:a}=this,s=(n.top-this.height)/e.scaleY,o=n.height/e.scaleY;if(this.i==a.elements.length){let l=new hq(e,o,s,r);a.elements.push(l),a.dom.appendChild(l.dom)}else a.elements[this.i].update(e,o,s,r);this.height=n.bottom,this.i++}line(e,n,r){let a=[];JA(this.cursor,a,n.from),r.length&&(a=a.concat(r));let s=this.gutter.config.lineMarker(e,n,a);s&&a.unshift(s);let o=this.gutter;a.length==0&&!o.config.renderEmptyElements||this.addElement(e,n,a)}widget(e,n){let r=this.gutter.config.widgetMarker(e,n.widget,n),a=r?[r]:null;for(let s of e.state.facet(oTe)){let o=s(e,n.widget,n);o&&(a||(a=[])).push(o)}a&&this.addElement(e,n,a)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class y8{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in n.domEventHandlers)this.dom.addEventListener(r,a=>{let s=a.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();o=(c.top+c.bottom)/2}else o=a.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);n.domEventHandlers[r](e,l,a)&&a.preventDefault()});this.markers=x8(n.markers(e)),n.initialSpacer&&(this.spacer=new hq(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=x8(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let a=this.config.updateSpacer(this.spacer.markers[0],e);a!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[a])}let r=e.view.viewport;return!Lt.eq(this.markers,n,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class hq{constructor(e,n,r,a){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,r,a)}update(e,n,r,a){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),fTe(this.markers,a)||this.setMarkers(e,a)}setMarkers(e,n){let r="cm-gutterElement",a=this.dom.firstChild;for(let s=0,o=0;;){let l=o,c=ss(l,c,u)||o(l,c,u):o}return r}})}});class m_ extends mc{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function g_(t,e){return t.state.facet(Eh).formatNumber(e,t.state)}const mTe=Cx.compute([Eh],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(hTe)},lineMarker(e,n,r){return r.some(a=>a.toDOM)?null:new m_(g_(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,r)=>{for(let a of e.state.facet(pTe)){let s=a(e,n,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Eh)!=e.state.facet(Eh),initialSpacer(e){return new m_(g_(e,v8(e.state.doc.lines)))},updateSpacer(e,n){let r=g_(n.view,v8(n.view.state.doc.lines));return r==e.number?e:new m_(r)},domEventHandlers:t.facet(Eh).domEventHandlers,side:"before"}));function gTe(t={}){return[Eh.of(t),fq(),mTe]}function v8(t){let e=9;for(;e{let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.head).from;a>n&&(n=a,e.push(xTe.range(a)))}return Lt.of(e)});function vTe(){return yTe}const bTe=1024;let wTe=0;class x_{constructor(e,n){this.from=e,this.to=n}}class qt{constructor(e={}){this.id=wTe++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=qs.match(e)),n=>{let r=e(n);return r===void 0?null:[this,r]}}}qt.closedBy=new qt({deserialize:t=>t.split(" ")});qt.openedBy=new qt({deserialize:t=>t.split(" ")});qt.group=new qt({deserialize:t=>t.split(" ")});qt.isolate=new qt({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});qt.contextHash=new qt({perNode:!0});qt.lookAhead=new qt({perNode:!0});qt.mounted=new qt({perNode:!0});class Ex{constructor(e,n,r,a=!1){this.tree=e,this.overlay=n,this.parser=r,this.bracketed=a}static get(e){return e&&e.props&&e.props[qt.mounted.id]}}const kTe=Object.create(null);class qs{constructor(e,n,r,a=0){this.name=e,this.props=n,this.id=r,this.flags=a}static define(e){let n=e.props&&e.props.length?Object.create(null):kTe,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),a=new qs(e.name||"",n,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(a)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return a}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(qt.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let r in e)for(let a of r.split(" "))n[a]=e[r];return r=>{for(let a=r.prop(qt.group),s=-1;s<(a?a.length:0);s++){let o=n[s<0?r.name:a[s]];if(o)return o}}}}qs.none=new qs("",Object.create(null),0,8);class BT{constructor(e){this.types=e;for(let n=0;n0;for(let c=this.cursor(o|Pr.IncludeAnonymous);;){let u=!1;if(c.from<=s&&c.to>=a&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;u=!0}for(;u&&r&&(l||!c.type.isAnonymous)&&r(c),!c.nextSibling();){if(!c.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:VT(qs.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,a)=>new ir(this.type,n,r,a,this.propValues),e.makeTree||((n,r,a)=>new ir(qs.none,n,r,a)))}static build(e){return NTe(e)}}ir.empty=new ir(qs.none,[],[],0);class zT{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new zT(this.buffer,this.index)}}class Ou{constructor(e,n,r){this.buffer=e,this.length=n,this.set=r}get type(){return qs.none}toString(){let e=[];for(let n=0;n0));c=o[c+3]);return l}slice(e,n,r){let a=this.buffer,s=new Uint16Array(n-e),o=0;for(let l=e,c=0;l=e&&ne;case 1:return n<=e&&r>e;case 2:return r>e;case 4:return!0}}function K0(t,e,n,r){for(var a;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to0?l.length:-1;e!=u;e+=n){let d=l[e],f=c[e]+o.from,h;if(!(!(s&Pr.EnterBracketed&&d instanceof ir&&(h=Ex.get(d))&&!h.overlay&&h.bracketed&&r>=f&&r<=f+d.length)&&!pq(a,r,f,f+d.length))){if(d instanceof Ou){if(s&Pr.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,n,r-f,a);if(p>-1)return new au(new jTe(o,d,e,f),null,p)}else if(s&Pr.IncludeAnonymous||!d.type.isAnonymous||UT(d)){let p;if(!(s&Pr.IgnoreMounts)&&(p=Ex.get(d))&&!p.overlay)return new Bi(p.tree,f,e,o);let m=new Bi(d,f,e,o);return s&Pr.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(n<0?d.children.length-1:0,n,r,a,s)}}}if(s&Pr.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+n:e=n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,r=0){let a;if(!(r&Pr.IgnoreOverlays)&&(a=Ex.get(this._tree))&&a.overlay){let s=e-this.from,o=r&Pr.EnterBracketed&&a.bracketed;for(let{from:l,to:c}of a.overlay)if((n>0||o?l<=s:l=s:c>s))return new Bi(a.tree,a.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function w8(t,e,n,r){let a=t.cursor(),s=[];if(!a.firstChild())return s;if(n!=null){for(let o=!1;!o;)if(o=a.type.is(n),!a.nextSibling())return s}for(;;){if(r!=null&&a.type.is(r))return s;if(a.type.is(e)&&s.push(a.node),!a.nextSibling())return r==null?s:[]}}function ZA(t,e,n=e.length-1){for(let r=t;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[n]&&e[n]!=r.name)return!1;n--}}return!0}class jTe{constructor(e,n,r,a){this.parent=e,this.buffer=n,this.index=r,this.start=a}}class au extends mq{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,r){super(),this.context=e,this._parent=n,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,n,r){let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.context.start,r);return s<0?null:new au(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,r=0){if(r&Pr.ExcludeBuffers)return null;let{buffer:a}=this.context,s=a.findChild(this.index+4,a.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new au(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new au(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new au(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:r}=this.context,a=this.index+4,s=r.buffer[this.index+3];if(s>a){let o=r.buffer[this.index+1];e.push(r.slice(a,s,o)),n.push(0)}return new ir(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function gq(t){if(!t.length)return null;let e=0,n=t[0];for(let s=1;sn.from||o.to=e){let l=new Bi(o.tree,o.overlay[0].from+s.from,-1,s);(a||(a=[r])).push(K0(l,e,n,!1))}}return a?gq(a):r}class QA{get name(){return this.type.name}constructor(e,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~Pr.EnterBracketed,e instanceof Bi)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:r,buffer:a}=this.buffer;return this.type=n||a.set.types[a.buffer[e]],this.from=r+a.buffer[e+1],this.to=r+a.buffer[e+2],!0}yield(e){return e?e instanceof Bi?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,r,this.mode));let{buffer:a}=this.buffer,s=a.findChild(this.index+4,a.buffer[this.index+3],e,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,r=this.mode){return this.buffer?r&Pr.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pr.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pr.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(e<0){let a=r<0?0:this.stack[r]+4;if(this.index!=a)return this.yieldBuf(n.findChild(a,this.index,-1,0,4))}else{let a=n.buffer[this.index+3];if(a<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(a)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,r,{buffer:a}=this;if(a){if(e>0){if(this.index-1)for(let s=n+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let l=r._tree.children[s];if(this.mode&Pr.IncludeAnonymous||l instanceof Ou||!l.type.isAnonymous||UT(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==a){if(a==this.index)return o;n=o,r=s+1;break e}a=this.stack[--s]}for(let a=r;a=0;s--){if(s<0)return ZA(this._tree,e,a);let o=r[n.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[a]&&e[a]!=o.name)return!1;a--}}return!0}}function UT(t){return t.children.some(e=>e instanceof Ou||!e.type.isAnonymous||UT(e))}function NTe(t){var e;let{buffer:n,nodeSet:r,maxBufferLength:a=bTe,reused:s=[],minRepeatType:o=r.types.length}=t,l=Array.isArray(n)?new zT(n,n.length):n,c=r.types,u=0,d=0;function f(k,S,_,C,E,P){let{id:R,start:A,end:T,size:D}=l,L=d,X=u;if(D<0)if(l.next(),D==-1){let G=s[R];_.push(G),C.push(A-k);return}else if(D==-3){u=R;return}else if(D==-4){d=R;return}else throw new RangeError(`Unrecognized record size: ${D}`);let J=c[R],U,Y,W=A-k;if(T-A<=a&&(Y=v(l.pos-S,E))){let G=new Uint16Array(Y.size-Y.skip),I=l.pos-Y.size,q=G.length;for(;l.pos>I;)q=b(Y.start,G,q);U=new Ou(G,T-Y.start,r),W=Y.start-k}else{let G=l.pos-D;l.next();let I=[],q=[],M=R>=o?R:-1,B=0,z=T;for(;l.pos>G;)M>=0&&l.id==M&&l.size>=0?(l.end<=z-a&&(m(I,q,A,B,l.end,z,M,L,X),B=I.length,z=l.end),l.next()):P>2500?h(A,G,I,q):f(A,G,I,q,M,P+1);if(M>=0&&B>0&&B-1&&B>0){let Z=p(J,X);U=VT(J,I,q,0,I.length,0,T-A,Z,Z)}else U=x(J,I,q,T-A,L-T,X)}_.push(U),C.push(W)}function h(k,S,_,C){let E=[],P=0,R=-1;for(;l.pos>S;){let{id:A,start:T,end:D,size:L}=l;if(L>4)l.next();else{if(R>-1&&T=0;D-=3)A[L++]=E[D],A[L++]=E[D+1]-T,A[L++]=E[D+2]-T,A[L++]=L;_.push(new Ou(A,E[2]-T,r)),C.push(T-k)}}function p(k,S){return(_,C,E)=>{let P=0,R=_.length-1,A,T;if(R>=0&&(A=_[R])instanceof ir){if(!R&&A.type==k&&A.length==E)return A;(T=A.prop(qt.lookAhead))&&(P=C[R]+A.length+T)}return x(k,_,C,E,P,S)}}function m(k,S,_,C,E,P,R,A,T){let D=[],L=[];for(;k.length>C;)D.push(k.pop()),L.push(S.pop()+_-E);k.push(x(r.types[R],D,L,P-E,A-P,T)),S.push(E-_)}function x(k,S,_,C,E,P,R){if(P){let A=[qt.contextHash,P];R=R?[A].concat(R):[A]}if(E>25){let A=[qt.lookAhead,E];R=R?[A].concat(R):[A]}return new ir(k,S,_,C,R)}function v(k,S){let _=l.fork(),C=0,E=0,P=0,R=_.end-a,A={size:0,start:0,skip:0};e:for(let T=_.pos-k;_.pos>T;){let D=_.size;if(_.id==S&&D>=0){A.size=C,A.start=E,A.skip=P,P+=4,C+=4,_.next();continue}let L=_.pos-D;if(D<0||L=o?4:0,J=_.start;for(_.next();_.pos>L;){if(_.size<0)if(_.size==-3||_.size==-4)X+=4;else break e;else _.id>=o&&(X+=4);_.next()}E=J,C+=D,P+=X}return(S<0||C==k)&&(A.size=C,A.start=E,A.skip=P),A.size>4?A:void 0}function b(k,S,_){let{id:C,start:E,end:P,size:R}=l;if(l.next(),R>=0&&C4){let T=l.pos-(R-4);for(;l.pos>T;)_=b(k,S,_)}S[--_]=A,S[--_]=P-k,S[--_]=E-k,S[--_]=C}else R==-3?u=C:R==-4&&(d=C);return _}let y=[],w=[];for(;l.pos>0;)f(t.start||0,t.bufferStart||0,y,w,-1,0);let j=(e=t.length)!==null&&e!==void 0?e:y.length?w[0]+y[0].length:0;return new ir(c[t.topID],y.reverse(),w.reverse(),j)}const k8=new WeakMap;function i1(t,e){if(!t.isAnonymous||e instanceof Ou||e.type!=t)return 1;let n=k8.get(e);if(n==null){n=1;for(let r of e.children){if(r.type!=t||!(r instanceof ir)){n=1;break}n+=i1(t,r)}k8.set(e,n)}return n}function VT(t,e,n,r,a,s,o,l,c){let u=0;for(let m=r;m=d)break;S+=_}if(w==j+1){if(S>d){let _=m[j];p(_.children,_.positions,0,_.children.length,x[j]+y);continue}f.push(m[j])}else{let _=x[w-1]+m[w-1].length-k;f.push(VT(t,m,x,j,w,k,_,null,c))}h.push(k+y-s)}}return p(e,n,r,a,0),(l||c)(f,h,o)}class Bd{constructor(e,n,r,a,s=!1,o=!1){this.from=e,this.to=n,this.tree=r,this.offset=a,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],r=!1){let a=[new Bd(0,e.length,e,0,!1,r)];for(let s of n)s.to>e.length&&a.push(s);return a}static applyChanges(e,n,r=128){if(!n.length)return e;let a=[],s=1,o=e.length?e[0]:null;for(let l=0,c=0,u=0;;l++){let d=l=r)for(;o&&o.from=h.from||f<=h.to||u){let p=Math.max(h.from,c)-u,m=Math.min(h.to,f)-u;h=p>=m?null:new Bd(p,m,h.tree,h.offset+u,l>0,!!d)}if(h&&a.push(h),o.to>f)break;o=snew x_(a.from,a.to)):[new x_(0,0)]:[new x_(0,e.length)],this.createParse(e,n||[],r)}parse(e,n,r){let a=this.startParse(e,n,r);for(;;){let s=a.advance();if(s)return s}}}class CTe{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}new qt({perNode:!0});let ETe=0;class Ti{constructor(e,n,r,a){this.name=e,this.set=n,this.base=r,this.modified=a,this.id=ETe++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let r=typeof e=="string"?e:"?";if(e instanceof Ti&&(n=e),n!=null&&n.base)throw new Error("Can not derive from a modified tag");let a=new Ti(r,[],null,[]);if(a.set.push(a),n)for(let s of n.set)a.set.push(s);return a}static defineModifier(e){let n=new nk(e);return r=>r.modified.indexOf(n)>-1?r:nk.get(r.base||r,r.modified.concat(n).sort((a,s)=>a.id-s.id))}}let ATe=0;class nk{constructor(e){this.name=e,this.instances=[],this.id=ATe++}static get(e,n){if(!n.length)return e;let r=n[0].instances.find(l=>l.base==e&&OTe(n,l.modified));if(r)return r;let a=[],s=new Ti(e.name,a,e,n);for(let l of n)l.instances.push(s);let o=TTe(n);for(let l of e.set)if(!l.modified.length)for(let c of o)a.push(nk.get(l,c));return s}}function OTe(t,e){return t.length==e.length&&t.every((n,r)=>n==e[r])}function TTe(t){let e=[[]];for(let n=0;nr.length-n.length)}function PTe(t){let e=Object.create(null);for(let n in t){let r=t[n];Array.isArray(r)||(r=[r]);for(let a of n.split(" "))if(a){let s=[],o=2,l=a;for(let f=0;;){if(l=="..."&&f>0&&f+3==a.length){o=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!h)throw new RangeError("Invalid path: "+a);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),f+=h[0].length,f==a.length)break;let p=a[f++];if(f==a.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+a);l=a.slice(f)}let c=s.length-1,u=s[c];if(!u)throw new RangeError("Invalid path: "+a);let d=new Y0(r,o,c>0?s.slice(0,c):null);e[u]=d.sort(e[u])}}return yq.add(e)}const yq=new qt({combine(t,e){let n,r,a;for(;t||e;){if(!t||e&&t.depth>=e.depth?(a=e,e=e.next):(a=t,t=t.next),n&&n.mode==a.mode&&!a.context&&!n.context)continue;let s=new Y0(a.tags,a.mode,a.context);n?n.next=s:r=s,n=s}return r}});class Y0{constructor(e,n,r,a){this.tags=e,this.mode=n,this.context=r,this.next=a}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=a;for(let l of s)for(let c of l.set){let u=n[c.id];if(u){o=o?o+" "+u:u;break}}return o},scope:r}}function RTe(t,e){let n=null;for(let r of t){let a=r.style(e);a&&(n=n?n+" "+a:a)}return n}function MTe(t,e,n,r=0,a=t.length){let s=new DTe(r,Array.isArray(e)?e:[e],n);s.highlightRange(t.cursor(),r,a,"",s.highlighters),s.flush(a)}class DTe{constructor(e,n,r){this.at=e,this.highlighters=n,this.span=r,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,r,a,s){let{type:o,from:l,to:c}=e;if(l>=r||c<=n)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let u=a,d=ITe(e)||Y0.empty,f=RTe(s,d.tags);if(f&&(u&&(u+=" "),u+=f,d.mode==1&&(a+=(a?" ":"")+f)),this.startSpan(Math.max(n,l),u),d.opaque)return;let h=e.tree&&e.tree.prop(qt.mounted);if(h&&h.overlay){let p=e.node.enter(h.overlay[0].from+l,1),m=this.highlighters.filter(v=>!v.scope||v.scope(h.tree.type)),x=e.firstChild();for(let v=0,b=l;;v++){let y=v=w||!e.nextSibling())););if(!y||w>r)break;b=y.to+l,b>n&&(this.highlightRange(p.cursor(),Math.max(n,y.from+l),Math.min(r,b),"",m),this.startSpan(Math.min(r,b),u))}x&&e.parent()}else if(e.firstChild()){h&&(a="");do if(!(e.to<=n)){if(e.from>=r)break;this.highlightRange(e,n,r,a,s),this.startSpan(Math.min(r,e.to),u)}while(e.nextSibling());e.parent()}}}function ITe(t){let e=t.type.prop(yq);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const We=Ti.define,gb=We(),Ic=We(),j8=We(Ic),S8=We(Ic),$c=We(),xb=We($c),y_=We($c),Wo=We(),ad=We(Wo),zo=We(),Uo=We(),eO=We(),kg=We(eO),yb=We(),oe={comment:gb,lineComment:We(gb),blockComment:We(gb),docComment:We(gb),name:Ic,variableName:We(Ic),typeName:j8,tagName:We(j8),propertyName:S8,attributeName:We(S8),className:We(Ic),labelName:We(Ic),namespace:We(Ic),macroName:We(Ic),literal:$c,string:xb,docString:We(xb),character:We(xb),attributeValue:We(xb),number:y_,integer:We(y_),float:We(y_),bool:We($c),regexp:We($c),escape:We($c),color:We($c),url:We($c),keyword:zo,self:We(zo),null:We(zo),atom:We(zo),unit:We(zo),modifier:We(zo),operatorKeyword:We(zo),controlKeyword:We(zo),definitionKeyword:We(zo),moduleKeyword:We(zo),operator:Uo,derefOperator:We(Uo),arithmeticOperator:We(Uo),logicOperator:We(Uo),bitwiseOperator:We(Uo),compareOperator:We(Uo),updateOperator:We(Uo),definitionOperator:We(Uo),typeOperator:We(Uo),controlOperator:We(Uo),punctuation:eO,separator:We(eO),bracket:kg,angleBracket:We(kg),squareBracket:We(kg),paren:We(kg),brace:We(kg),content:Wo,heading:ad,heading1:We(ad),heading2:We(ad),heading3:We(ad),heading4:We(ad),heading5:We(ad),heading6:We(ad),contentSeparator:We(Wo),list:We(Wo),quote:We(Wo),emphasis:We(Wo),strong:We(Wo),link:We(Wo),monospace:We(Wo),strikethrough:We(Wo),inserted:We(),deleted:We(),changed:We(),invalid:We(),meta:yb,documentMeta:We(yb),annotation:We(yb),processingInstruction:We(yb),definition:Ti.defineModifier("definition"),constant:Ti.defineModifier("constant"),function:Ti.defineModifier("function"),standard:Ti.defineModifier("standard"),local:Ti.defineModifier("local"),special:Ti.defineModifier("special")};for(let t in oe){let e=oe[t];e instanceof Ti&&(e.name=t)}vq([{tag:oe.link,class:"tok-link"},{tag:oe.heading,class:"tok-heading"},{tag:oe.emphasis,class:"tok-emphasis"},{tag:oe.strong,class:"tok-strong"},{tag:oe.keyword,class:"tok-keyword"},{tag:oe.atom,class:"tok-atom"},{tag:oe.bool,class:"tok-bool"},{tag:oe.url,class:"tok-url"},{tag:oe.labelName,class:"tok-labelName"},{tag:oe.inserted,class:"tok-inserted"},{tag:oe.deleted,class:"tok-deleted"},{tag:oe.literal,class:"tok-literal"},{tag:oe.string,class:"tok-string"},{tag:oe.number,class:"tok-number"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],class:"tok-string2"},{tag:oe.variableName,class:"tok-variableName"},{tag:oe.local(oe.variableName),class:"tok-variableName tok-local"},{tag:oe.definition(oe.variableName),class:"tok-variableName tok-definition"},{tag:oe.special(oe.variableName),class:"tok-variableName2"},{tag:oe.definition(oe.propertyName),class:"tok-propertyName tok-definition"},{tag:oe.typeName,class:"tok-typeName"},{tag:oe.namespace,class:"tok-namespace"},{tag:oe.className,class:"tok-className"},{tag:oe.macroName,class:"tok-macroName"},{tag:oe.propertyName,class:"tok-propertyName"},{tag:oe.operator,class:"tok-operator"},{tag:oe.comment,class:"tok-comment"},{tag:oe.meta,class:"tok-meta"},{tag:oe.invalid,class:"tok-invalid"},{tag:oe.punctuation,class:"tok-punctuation"}]);var v_;const Ah=new qt;function $Te(t){return Ye.define({combine:t?e=>e.concat(t):void 0})}const LTe=new qt;class yo{constructor(e,n,r=[],a=""){this.data=e,this.name=a,Xt.prototype.hasOwnProperty("tree")||Object.defineProperty(Xt.prototype,"tree",{get(){return ts(this)}}),this.parser=n,this.extension=[Tu.of(this),Xt.languageData.of((s,o,l)=>{let c=_8(s,o,l),u=c.type.prop(Ah);if(!u)return[];let d=s.facet(u),f=c.type.prop(LTe);if(f){let h=c.resolve(o-c.from,l);for(let p of f)if(p.test(h,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,n,r=-1){return _8(e,n,r).type.prop(Ah)==this.data}findRegions(e){let n=e.facet(Tu);if((n==null?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let r=[],a=(s,o)=>{if(s.prop(Ah)==this.data){r.push({from:o,to:o+s.length});return}let l=s.prop(qt.mounted);if(l){if(l.tree.prop(Ah)==this.data){if(l.overlay)for(let c of l.overlay)r.push({from:c.from+o,to:c.to+o});else r.push({from:o,to:o+s.length});return}else if(l.overlay){let c=r.length;if(a(l.tree,l.overlay[0].from+o),r.length>c)return}}for(let c=0;c=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-r,n-r)}}let jg=null;class Hp{constructor(e,n,r=[],a,s,o,l,c){this.parser=e,this.state=n,this.fragments=r,this.tree=a,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,r){return new Hp(e,n,[],ir.empty,0,r,[],null)}startParse(){return this.parser.startParse(new FTe(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=ir.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let a=Date.now()+e;e=()=>Date.now()>a}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Bd.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=jg;jg=this;try{return e()}finally{jg=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=N8(e,n.from,n.to);return e}changes(e,n){let{fragments:r,tree:a,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((u,d,f,h)=>c.push({fromA:u,toA:d,fromB:f,toB:h})),r=Bd.applyChanges(r,c),a=ir.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let u of this.skipped){let d=e.mapPos(u.from,1),f=e.mapPos(u.to,-1);de.from&&(this.fragments=N8(this.fragments,a,s),this.skipped.splice(r--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends xq{createParse(n,r,a){let s=a[0].from,o=a[a.length-1].to;return{parsedPos:s,advance(){let c=jg;if(c){for(let u of a)c.tempSkipped.push(u);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=o,new ir(qs.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return jg}}function N8(t,e,n){return Bd.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class Gp{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new Gp(n)}static init(e){let n=Math.min(3e3,e.doc.length),r=Hp.create(e.facet(Tu).parser,e,{from:0,to:n});return r.work(20,n)||r.takeTree(),new Gp(r)}}yo.state=ns.define({create:Gp.init,update(t,e){for(let n of e.effects)if(n.is(yo.setState))return n.value;return e.startState.facet(Tu)!=e.state.facet(Tu)?Gp.init(e.state):t.apply(e)}});let bq=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(bq=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const b_=typeof navigator<"u"&&(!((v_=navigator.scheduling)===null||v_===void 0)&&v_.isInputPending)?()=>navigator.scheduling.isInputPending():null,BTe=gr.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(yo.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(yo.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=bq(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnda+1e3,c=s.context.work(()=>b_&&b_()||Date.now()>o,a+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:yo.setState.of(new Gp(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>vs(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Tu=Ye.define({combine(t){return t.length?t[0]:null},enables:t=>[yo.state,BTe,Ue.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]}),zTe=Ye.define(),Zj=Ye.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function lf(t){let e=t.facet(Zj);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function X0(t,e){let n="",r=t.tabSize,a=t.facet(Zj)[0];if(a==" "){for(;e>=r;)n+=" ",e-=r;a=" "}for(let s=0;s=e?UTe(t,n,e):null}class Qj{constructor(e,n={}){this.state=e,this.options=n,this.unit=lf(e)}lineAt(e,n=1){let r=this.state.doc.lineAt(e),{simulateBreak:a,simulateDoubleBreak:s}=this.options;return a!=null&&a>=r.from&&a<=r.to?s&&a==e?{text:"",from:e}:(n<0?a-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,n=e.length){return jm(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:r,from:a}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let o=s(a);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const wq=new qt;function UTe(t,e,n){let r=e.resolveStack(n),a=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(a!=r.node){let s=[];for(let o=a;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return kq(r,t,n)}function kq(t,e,n){for(let r=t;r;r=r.next){let a=WTe(r.node);if(a)return a(HT.create(e,n,r))}return 0}function VTe(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function WTe(t){let e=t.type.prop(wq);if(e)return e;let n=t.firstChild,r;if(n&&(r=n.type.prop(qt.closedBy))){let a=t.lastChild,s=a&&r.indexOf(a.name)>-1;return o=>KTe(o,!0,1,void 0,s&&!VTe(o)?a.from:void 0)}return t.parent==null?HTe:null}function HTe(){return 0}class HT extends Qj{constructor(e,n,r){super(e.state,e.options),this.base=e,this.pos=n,this.context=r}get node(){return this.context.node}static create(e,n,r){return new HT(e,n,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(n.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(GTe(r,e))break;n=this.state.doc.lineAt(r.from)}return this.lineIndent(n.from)}continue(){return kq(this.context.next,this.base,this.pos)}}function GTe(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function qTe(t){let e=t.node,n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let a=t.options.simulateBreak,s=t.state.doc.lineAt(n.from),o=a==null||a<=s.from?s.to:Math.min(s.to,a);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==r)return null;if(!c.type.isSkipped){if(c.from>=o)return null;let u=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+u}}l=c.to}}function KTe(t,e,n,r,a){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=r&&s.slice(o,o+r.length)==r||a==t.pos+o,c=qTe(t);return c?l?t.column(c.from):t.column(c.to):t.baseIndent+(l?0:t.unit*n)}const YTe=200;function XTe(){return Xt.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,a=n.lineAt(r);if(r>a.from+YTe)return t;let s=n.sliceString(a.from,r);if(!e.some(u=>u.test(s)))return t;let{state:o}=t,l=-1,c=[];for(let{head:u}of o.selection.ranges){let d=o.doc.lineAt(u);if(d.from==l)continue;l=d.from;let f=WT(o,d.from);if(f==null)continue;let h=/^\s*/.exec(d.text)[0],p=X0(o,f);h!=p&&c.push({from:d.from,to:d.from+h.length,insert:p})}return c.length?[t,{changes:c,sequential:!0}]:t})}const JTe=Ye.define(),ZTe=new qt;function QTe(t,e,n){let r=ts(t);if(r.lengthn)continue;if(s&&l.from=e&&u.to>n&&(s=u)}}return s}function ePe(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function rk(t,e,n){for(let r of t.facet(JTe)){let a=r(t,e,n);if(a)return a}return QTe(t,e,n)}function jq(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?void 0:{from:n,to:r}}const e2=Ot.define({map:jq}),Py=Ot.define({map:jq});function Sq(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(r=>r.from<=n&&r.to>=n)||e.push(t.lineBlockAt(n));return e}const cf=ns.define({create(){return ht.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,r)=>t=C8(t,n,r)),t=t.map(e.changes);for(let n of e.effects)if(n.is(e2)&&!tPe(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(Cq),a=r?ht.replace({widget:new lPe(r(e.state,n.value))}):E8;t=t.update({add:[a.range(n.value.from,n.value.to)]})}else n.is(Py)&&(t=t.update({filter:(r,a)=>n.value.from!=r||n.value.to!=a,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=C8(t,e.selection.main.head)),t},provide:t=>Ue.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(r,a)=>{n.push(r,a)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n{ae&&(r=!0)}),r?t.update({filterFrom:e,filterTo:n,filter:(a,s)=>a>=n||s<=e}):t}function ak(t,e,n){var r;let a=null;return(r=t.field(cf,!1))===null||r===void 0||r.between(e,n,(s,o)=>{(!a||a.from>s)&&(a={from:s,to:o})}),a}function tPe(t,e,n){let r=!1;return t.between(e,e,(a,s)=>{a==e&&s==n&&(r=!0)}),r}function _q(t,e){return t.field(cf,!1)?e:e.concat(Ot.appendConfig.of(Eq()))}const nPe=t=>{for(let e of Sq(t)){let n=rk(t.state,e.from,e.to);if(n)return t.dispatch({effects:_q(t.state,[e2.of(n),Nq(t,n)])}),!0}return!1},rPe=t=>{if(!t.state.field(cf,!1))return!1;let e=[];for(let n of Sq(t)){let r=ak(t.state,n.from,n.to);r&&e.push(Py.of(r),Nq(t,r,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function Nq(t,e,n=!0){let r=t.state.doc.lineAt(e.from).number,a=t.state.doc.lineAt(e.to).number;return Ue.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${a}.`)}const aPe=t=>{let{state:e}=t,n=[];for(let r=0;r{let e=t.state.field(cf,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(r,a)=>{n.push(Py.of({from:r,to:a}))}),t.dispatch({effects:n}),!0},iPe=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:nPe},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:rPe},{key:"Ctrl-Alt-[",run:aPe},{key:"Ctrl-Alt-]",run:sPe}],oPe={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Cq=Ye.define({combine(t){return Nl(t,oPe)}});function Eq(t){return[cf,dPe]}function Aq(t,e){let{state:n}=t,r=n.facet(Cq),a=o=>{let l=t.lineBlockAt(t.posAtDOM(o.target)),c=ak(t.state,l.from,l.to);c&&t.dispatch({effects:Py.of(c)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,a,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=a,s}const E8=ht.replace({widget:new class extends Cl{toDOM(t){return Aq(t,null)}}});class lPe extends Cl{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Aq(e,this.value)}}const cPe={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class w_ extends mc{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function uPe(t={}){let e={...cPe,...t},n=new w_(e,!0),r=new w_(e,!1),a=gr.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Tu)!=o.state.facet(Tu)||o.startState.field(cf,!1)!=o.state.field(cf,!1)||ts(o.startState)!=ts(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new hc;for(let c of o.viewportLineBlocks){let u=ak(o.state,c.from,c.to)?r:rk(o.state,c.from,c.to)?n:null;u&&l.add(c.from,c.from,u)}return l.finish()}}),{domEventHandlers:s}=e;return[a,cTe({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(a))===null||l===void 0?void 0:l.markers)||Lt.empty},initialSpacer(){return new w_(e,!1)},domEventHandlers:{...s,click:(o,l,c)=>{if(s.click&&s.click(o,l,c))return!0;let u=ak(o.state,l.from,l.to);if(u)return o.dispatch({effects:Py.of(u)}),!0;let d=rk(o.state,l.from,l.to);return d?(o.dispatch({effects:e2.of(d)}),!0):!1}}}),Eq()]}const dPe=Ue.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Sm{constructor(e,n){this.specs=e;let r;function a(l){let c=Cu.newName();return(r||(r=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?a(n.all):void 0,o=n.scope;this.scope=o instanceof yo?l=>l.prop(Ah)==o.data:o?l=>l==o:void 0,this.style=vq(e.map(l=>({tag:l.tag,class:l.class||a(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=r?new Cu(r):null,this.themeType=n.themeType}static define(e,n){return new Sm(e,n||{})}}const tO=Ye.define(),Oq=Ye.define({combine(t){return t.length?[t[0]]:null}});function k_(t){let e=t.facet(tO);return e.length?e:t.facet(Oq)}function GT(t,e){let n=[hPe],r;return t instanceof Sm&&(t.module&&n.push(Ue.styleModule.of(t.module)),r=t.themeType),e!=null&&e.fallback?n.push(Oq.of(t)):r?n.push(tO.computeN([Ue.darkTheme],a=>a.facet(Ue.darkTheme)==(r=="dark")?[t]:[])):n.push(tO.of(t)),n}class fPe{constructor(e){this.markCache=Object.create(null),this.tree=ts(e.state),this.decorations=this.buildDeco(e,k_(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=ts(e.state),r=k_(e.state),a=r!=k_(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);n.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(n!=this.tree||e.viewportChanged||a)&&(this.tree=n,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return ht.none;let r=new hc;for(let{from:a,to:s}of e.visibleRanges)MTe(this.tree,n,(o,l,c)=>{r.add(o,l,this.markCache[c]||(this.markCache[c]=ht.mark({class:c})))},a,s);return r.finish()}}const hPe=_f.high(gr.fromClass(fPe,{decorations:t=>t.decorations})),pPe=Sm.define([{tag:oe.meta,color:"#404740"},{tag:oe.link,textDecoration:"underline"},{tag:oe.heading,textDecoration:"underline",fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strong,fontWeight:"bold"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.keyword,color:"#708"},{tag:[oe.atom,oe.bool,oe.url,oe.contentSeparator,oe.labelName],color:"#219"},{tag:[oe.literal,oe.inserted],color:"#164"},{tag:[oe.string,oe.deleted],color:"#a11"},{tag:[oe.regexp,oe.escape,oe.special(oe.string)],color:"#e40"},{tag:oe.definition(oe.variableName),color:"#00f"},{tag:oe.local(oe.variableName),color:"#30a"},{tag:[oe.typeName,oe.namespace],color:"#085"},{tag:oe.className,color:"#167"},{tag:[oe.special(oe.variableName),oe.macroName],color:"#256"},{tag:oe.definition(oe.propertyName),color:"#00c"},{tag:oe.comment,color:"#940"},{tag:oe.invalid,color:"#f00"}]),mPe=Ue.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Tq=1e4,Pq="()[]{}",Rq=Ye.define({combine(t){return Nl(t,{afterCursor:!0,brackets:Pq,maxScanDistance:Tq,renderMatch:yPe})}}),gPe=ht.mark({class:"cm-matchingBracket"}),xPe=ht.mark({class:"cm-nonmatchingBracket"});function yPe(t){let e=[],n=t.matched?gPe:xPe;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}function A8(t){let e=[],n=t.facet(Rq);for(let r of t.selection.ranges){if(!r.empty)continue;let a=sl(t,r.head,-1,n)||r.head>0&&sl(t,r.head-1,1,n)||n.afterCursor&&(sl(t,r.head,1,n)||r.headt.decorations}),bPe=[vPe,mPe];function wPe(t={}){return[Rq.of(t),bPe]}const kPe=new qt;function nO(t,e,n){let r=t.prop(e<0?qt.openedBy:qt.closedBy);if(r)return r;if(t.name.length==1){let a=n.indexOf(t.name);if(a>-1&&a%2==(e<0?1:0))return[n[a+e]]}return null}function rO(t){let e=t.type.prop(kPe);return e?e(t.node):t}function sl(t,e,n,r={}){let a=r.maxScanDistance||Tq,s=r.brackets||Pq,o=ts(t),l=o.resolveInner(e,n);for(let c=l;c;c=c.parent){let u=nO(c.type,n,s);if(u&&c.from0?e>=d.from&&ed.from&&e<=d.to))return jPe(t,e,n,c,d,u,s)}}return SPe(t,e,n,o,l.type,a,s)}function jPe(t,e,n,r,a,s,o){let l=r.parent,c={from:a.from,to:a.to},u=0,d=l==null?void 0:l.cursor();if(d&&(n<0?d.childBefore(r.from):d.childAfter(r.to)))do if(n<0?d.to<=r.from:d.from>=r.to){if(u==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let u={from:n<0?e-1:e,to:n>0?e+1:e},d=t.doc.iterRange(e,n>0?t.doc.length:0),f=0;for(let h=0;!d.next().done&&h<=s;){let p=d.value;n<0&&(h+=p.length);let m=e+h*n;for(let x=n>0?0:p.length-1,v=n>0?p.length:-1;x!=v;x+=n){let b=o.indexOf(p[x]);if(!(b<0||r.resolveInner(m+x,1).type!=a))if(b%2==0==n>0)f++;else{if(f==1)return{start:u,end:{from:m+x,to:m+x+1},matched:b>>1==c>>1};f--}}n>0&&(h+=p.length)}return d.done?{start:u,matched:!1}:null}function O8(t,e,n,r=0,a=0){e==null&&(e=t.search(/[^\s\u00a0]/),e==-1&&(e=t.length));let s=a;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.posn}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return a(s)==a(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let a=this.string.slice(this.pos).match(e);return a&&a.index>0?null:(a&&n!==!1&&(this.pos+=a[0].length),a)}}current(){return this.string.slice(this.start,this.pos)}}function _Pe(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>!0),copyState:t.copyState||NPe,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||YT,mergeTokens:t.mergeTokens!==!1}}function NPe(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const T8=new WeakMap;class qT extends yo{constructor(e){let n=$Te(e.languageData),r=_Pe(e),a,s=new class extends xq{createParse(o,l,c){return new EPe(a,o,l,c)}};super(n,s,[],e.name),this.topNode=TPe(n,this),a=this,this.streamParser=r,this.stateAfter=new qt({perNode:!0}),this.tokenTable=e.tokenTable?new Lq(r.tokenTable):OPe}static define(e){return new qT(e)}getIndent(e){let n,{overrideIndentation:r}=e.options;r&&(n=T8.get(e.state),n!=null&&n1e4)return null;for(;s=r&&n+e.length<=a&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:n+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],c=n+e.positions[o],u=l instanceof ir&&c=e.length)return e;!a&&n==0&&e.type==t.topNode&&(a=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],c;if(on&&KT(t,s.tree,0-s.offset,n,l),u;if(c&&c.pos<=r&&(u=Dq(t,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:u}}return{state:t.streamParser.startState(a?lf(a):4),tree:ir.empty}}class EPe{constructor(e,n,r,a){this.lang=e,this.input=n,this.fragments=r,this.ranges=a,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=a[a.length-1].to;let s=Hp.get(),o=a[0].from,{state:l,tree:c}=CPe(e,r,o,this.to,s==null?void 0:s.state);this.state=l,this.parsedPos=this.chunkStart=o+c.length;for(let u=0;uu.from<=s.viewport.from&&u.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(lf(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Hp.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(n,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==` -`&&(n="");else{let r=n.indexOf(` -`);r>-1&&(n=n.slice(0,r))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),r=e+n.length;for(let a=this.rangeIndex;;){let s=this.ranges[a].to;if(s>=r||(n=n.slice(0,s-(r-n.length)),a++,a==this.ranges.length))break;let o=this.ranges[a].from,l=this.lineAfter(o);n+=l,r=o+l.length}return{line:n,end:r}}skipGapsTo(e,n,r){for(;;){let a=this.ranges[this.rangeIndex].to,s=e+n;if(r>0?a>s:a>=s)break;let o=this.ranges[++this.rangeIndex].from;n+=o-a}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){a=this.skipGapsTo(n,a,1),n+=a;let l=this.chunk.length;a=this.skipGapsTo(r,a,-1),r+=a,s+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==n?this.chunk[o+2]=r:this.chunk.push(e,n,r,s),a}parseLine(e){let{line:n,end:r}=this.nextLine(),a=0,{streamParser:s}=this.lang,o=new Mq(n,e?e.state.tabSize:4,e?lf(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=Iq(s.token,o,this.state);if(l&&(a=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,a)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return a}throw new Error("Stream parser failed to advance stream.")}const YT=Object.create(null),J0=[qs.none],APe=new BT(J0),P8=[],R8=Object.create(null),$q=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])$q[t]=Fq(YT,e);class Lq{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),$q)}resolve(e){return e?this.table[e]||(this.table[e]=Fq(this.extra,e)):0}}const OPe=new Lq(YT);function j_(t,e){P8.indexOf(t)>-1||(P8.push(t),console.warn(e))}function Fq(t,e){let n=[];for(let l of e.split(" ")){let c=[];for(let u of l.split(".")){let d=t[u]||oe[u];d?typeof d=="function"?c.length?c=c.map(d):j_(u,`Modifier ${u} used at start of tag`):c.length?j_(u,`Tag ${u} used as modifier`):c=Array.isArray(d)?d:[d]:j_(u,`Unknown highlighting tag ${u}`)}for(let u of c)n.push(u)}if(!n.length)return 0;let r=e.replace(/ /g,"_"),a=r+" "+n.map(l=>l.id),s=R8[a];if(s)return s.id;let o=R8[a]=qs.define({id:J0.length,name:r,props:[PTe({[r]:n})]});return J0.push(o),o.id}function TPe(t,e){let n=qs.define({id:J0.length,name:"Document",props:[Ah.add(()=>t),wq.add(()=>r=>e.getIndent(r))],top:!0});return J0.push(n),n}Pn.RTL,Pn.LTR;const PPe=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),r=JT(t.state,n.from);return r.line?RPe(t):r.block?DPe(t):!1};function XT(t,e){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let a=t(e,n);return a?(r(n.update(a)),!0):!1}}const RPe=XT(LPe,0),MPe=XT(Bq,0),DPe=XT((t,e)=>Bq(t,e,$Pe(e)),0);function JT(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const Sg=50;function IPe(t,{open:e,close:n},r,a){let s=t.sliceDoc(r-Sg,r),o=t.sliceDoc(a,a+Sg),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(o)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&o.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:a+c,margin:c&&1}};let d,f;a-r<=2*Sg?d=f=t.sliceDoc(r,a):(d=t.sliceDoc(r,r+Sg),f=t.sliceDoc(a-Sg,a));let h=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(f)[0].length,m=f.length-p-n.length;return d.slice(h,h+e.length)==e&&f.slice(m,m+n.length)==n?{open:{pos:r+h+e.length,margin:/\s/.test(d.charAt(h+e.length))?1:0},close:{pos:a-p-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function $Pe(t){let e=[];for(let n of t.selection.ranges){let r=t.doc.lineAt(n.from),a=n.to<=r.to?r:t.doc.lineAt(n.to);a.from>r.from&&a.from==n.to&&(a=n.to==r.to+1?r:t.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=a.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:a.to})}return e}function Bq(t,e,n=e.selection.ranges){let r=n.map(s=>JT(e,s.from).block);if(!r.every(s=>s))return null;let a=n.map((s,o)=>IPe(e,r[o],s.from,s.to));if(t!=2&&!a.every(s=>s))return{changes:e.changes(n.map((s,o)=>a[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(t!=1&&a.some(s=>s)){let s=[];for(let o=0,l;oa&&(s==o||o>f.from)){a=f.from;let h=/^\s*/.exec(f.text)[0].length,p=h==f.length,m=f.text.slice(h,h+u.length)==u?h:-1;hs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&s.push({from:l.from+u,insert:c+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:c}of r)if(l>=0){let u=o.from+l,d=u+c.length;o.text[d-o.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const aO=_l.define(),FPe=_l.define(),BPe=Ye.define(),zq=Ye.define({combine(t){return Nl(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(r,a)=>e(r,a)||n(r,a)})}}),Uq=ns.define({create(){return il.empty},update(t,e){let n=e.state.facet(zq),r=e.annotation(aO);if(r){let c=Ls.fromTransaction(e,r.selection),u=r.side,d=u==0?t.undone:t.done;return c?d=sk(d,d.length,n.minDepth,c):d=Hq(d,e.startState.selection),new il(u==0?r.rest:d,u==0?d:r.rest)}let a=e.annotation(FPe);if((a=="full"||a=="before")&&(t=t.isolate()),e.annotation(ta.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=Ls.fromTransaction(e),o=e.annotation(ta.time),l=e.annotation(ta.userEvent);return s?t=t.addChanges(s,o,l,n,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,n.newGroupDelay)),(a=="full"||a=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new il(t.done.map(Ls.fromJSON),t.undone.map(Ls.fromJSON))}});function zPe(t={}){return[Uq,zq.of(t),Ue.domEventHandlers({beforeinput(e,n){let r=e.inputType=="historyUndo"?Vq:e.inputType=="historyRedo"?sO:null;return r?(e.preventDefault(),r(n)):!1}})]}function t2(t,e){return function({state:n,dispatch:r}){if(!e&&n.readOnly)return!1;let a=n.field(Uq,!1);if(!a)return!1;let s=a.pop(t,n,e);return s?(r(s),!0):!1}}const Vq=t2(0,!1),sO=t2(1,!1),UPe=t2(0,!0),VPe=t2(1,!0);class Ls{constructor(e,n,r,a,s){this.changes=e,this.effects=n,this.mapped=r,this.startSelection=a,this.selectionsAfter=s}setSelAfter(e){return new Ls(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(e){return new Ls(e.changes&&Jr.fromJSON(e.changes),[],e.mapped&&ml.fromJSON(e.mapped),e.startSelection&&Ne.fromJSON(e.startSelection),e.selectionsAfter.map(Ne.fromJSON))}static fromTransaction(e,n){let r=Ii;for(let a of e.startState.facet(BPe)){let s=a(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new Ls(e.changes.invert(e.startState.doc),r,void 0,n||e.startState.selection,Ii)}static selection(e){return new Ls(void 0,Ii,void 0,void 0,e)}}function sk(t,e,n,r){let a=e+1>n+20?e-n-1:0,s=t.slice(a,e);return s.push(r),s}function WPe(t,e){let n=[],r=!1;return t.iterChangedRanges((a,s)=>n.push(a,s)),e.iterChangedRanges((a,s,o,l)=>{for(let c=0;c=u&&o<=d&&(r=!0)}}),r}function HPe(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,r)=>n.empty!=e.ranges[r].empty).length===0}function Wq(t,e){return t.length?e.length?t.concat(e):t:e}const Ii=[],GPe=200;function Hq(t,e){if(t.length){let n=t[t.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-GPe));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),sk(t,t.length-1,1e9,n.setSelAfter(r)))}else return[Ls.selection([e])]}function qPe(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function S_(t,e){if(!t.length)return t;let n=t.length,r=Ii;for(;n;){let a=KPe(t[n-1],e,r);if(a.changes&&!a.changes.empty||a.effects.length){let s=t.slice(0,n);return s[n-1]=a,s}else e=a.mapped,n--,r=a.selectionsAfter}return r.length?[Ls.selection(r)]:Ii}function KPe(t,e,n){let r=Wq(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):Ii,n);if(!t.changes)return Ls.selection(r);let a=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new Ls(a,Ot.mapEffects(t.effects,e),o,t.startSelection.map(s),r)}const YPe=/^(input\.type|delete)($|\.)/;class il{constructor(e,n,r=0,a=void 0){this.done=e,this.undone=n,this.prevTime=r,this.prevUserEvent=a}isolate(){return this.prevTime?new il(this.done,this.undone):this}addChanges(e,n,r,a,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!r||YPe.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime0&&n-this.prevTimen.empty?t.moveByChar(n,e):n2(n,e))}function rs(t){return t.textDirectionAt(t.state.selection.main.head)==Pn.LTR}const qq=t=>Gq(t,!rs(t)),Kq=t=>Gq(t,rs(t));function Yq(t,e){return To(t,n=>n.empty?t.moveByGroup(n,e):n2(n,e))}const JPe=t=>Yq(t,!rs(t)),ZPe=t=>Yq(t,rs(t));function QPe(t,e,n){if(e.type.prop(n))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function r2(t,e,n){let r=ts(t).resolveInner(e.head),a=n?qt.closedBy:qt.openedBy;for(let c=e.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;QPe(t,u,a)?r=u:c=n?u.to:u.from}let s=r.type.prop(a),o,l;return s&&(o=n?sl(t,r.from,1):sl(t,r.to,-1))&&o.matched?l=n?o.end.to:o.end.from:l=n?r.to:r.from,Ne.cursor(l,n?-1:1)}const eRe=t=>To(t,e=>r2(t.state,e,!rs(t))),tRe=t=>To(t,e=>r2(t.state,e,rs(t)));function Xq(t,e){return To(t,n=>{if(!n.empty)return n2(n,e);let r=t.moveVertically(n,e);return r.head!=n.head?r:t.moveToLineBoundary(n,e)})}const Jq=t=>Xq(t,!1),Zq=t=>Xq(t,!0);function Qq(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,n.height):n2(o,e));if(a.eq(r.selection))return!1;let s;if(n.selfScroll){let o=t.coordsAtPos(r.selection.main.head),l=t.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;o&&o.top>c&&o.bottomeK(t,!1),iO=t=>eK(t,!0);function Ku(t,e,n){let r=t.lineBlockAt(e.head),a=t.moveToLineBoundary(e,n);if(a.head==e.head&&a.head!=(n?r.to:r.from)&&(a=t.moveToLineBoundary(e,n,!1)),!n&&a.head==r.from&&r.length){let s=/^\s*/.exec(t.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(a=Ne.cursor(r.from+s))}return a}const nRe=t=>To(t,e=>Ku(t,e,!0)),rRe=t=>To(t,e=>Ku(t,e,!1)),aRe=t=>To(t,e=>Ku(t,e,!rs(t))),sRe=t=>To(t,e=>Ku(t,e,rs(t))),iRe=t=>To(t,e=>Ne.cursor(t.lineBlockAt(e.head).from,1)),oRe=t=>To(t,e=>Ne.cursor(t.lineBlockAt(e.head).to,-1));function lRe(t,e,n){let r=!1,a=_m(t.selection,s=>{let o=sl(t,s.head,-1)||sl(t,s.head,1)||s.head>0&&sl(t,s.head-1,1)||s.headlRe(t,e);function Gi(t,e){let n=_m(t.state.selection,r=>{let a=e(r);return Ne.range(r.anchor,a.head,a.goalColumn,a.bidiLevel||void 0,a.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch(Oo(t.state,n)),!0)}function tK(t,e){return Gi(t,n=>t.moveByChar(n,e))}const nK=t=>tK(t,!rs(t)),rK=t=>tK(t,rs(t));function aK(t,e){return Gi(t,n=>t.moveByGroup(n,e))}const uRe=t=>aK(t,!rs(t)),dRe=t=>aK(t,rs(t)),fRe=t=>Gi(t,e=>r2(t.state,e,!rs(t))),hRe=t=>Gi(t,e=>r2(t.state,e,rs(t)));function sK(t,e){return Gi(t,n=>t.moveVertically(n,e))}const iK=t=>sK(t,!1),oK=t=>sK(t,!0);function lK(t,e){return Gi(t,n=>t.moveVertically(n,e,Qq(t).height))}const D8=t=>lK(t,!1),I8=t=>lK(t,!0),pRe=t=>Gi(t,e=>Ku(t,e,!0)),mRe=t=>Gi(t,e=>Ku(t,e,!1)),gRe=t=>Gi(t,e=>Ku(t,e,!rs(t))),xRe=t=>Gi(t,e=>Ku(t,e,rs(t))),yRe=t=>Gi(t,e=>Ne.cursor(t.lineBlockAt(e.head).from)),vRe=t=>Gi(t,e=>Ne.cursor(t.lineBlockAt(e.head).to)),$8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:0})),!0),L8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.doc.length})),!0),F8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.selection.main.anchor,head:0})),!0),B8=({state:t,dispatch:e})=>(e(Oo(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),bRe=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),wRe=({state:t,dispatch:e})=>{let n=a2(t).map(({from:r,to:a})=>Ne.range(r,Math.min(a+1,t.doc.length)));return e(t.update({selection:Ne.create(n),userEvent:"select"})),!0},kRe=({state:t,dispatch:e})=>{let n=_m(t.selection,r=>{let a=ts(t),s=a.resolveStack(r.from,1);if(r.empty){let o=a.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=r.to||l.to>r.to&&l.from<=r.from)&&o.next)return Ne.range(l.to,l.from)}return r});return n.eq(t.selection)?!1:(e(Oo(t,n)),!0)};function cK(t,e){let{state:n}=t,r=n.selection,a=n.selection.ranges.slice();for(let s of n.selection.ranges){let o=n.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let c=t.moveVertically(l,e);if(c.heado.to){a.some(u=>u.head==c.head)||a.push(c);break}else{if(c.head==l.head)break;l=c}}}return a.length==r.ranges.length?!1:(t.dispatch(Oo(n,Ne.create(a,a.length-1))),!0)}const jRe=t=>cK(t,!1),SRe=t=>cK(t,!0),_Re=({state:t,dispatch:e})=>{let n=t.selection,r=null;return n.ranges.length>1?r=Ne.create([n.main]):n.main.empty||(r=Ne.create([Ne.cursor(n.main.head)])),r?(e(Oo(t,r)),!0):!1};function Ry(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:r}=t,a=r.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let c=e(s);co&&(n="delete.forward",c=vb(t,c,!0)),o=Math.min(o,c),l=Math.max(l,c)}else o=vb(t,o,!1),l=vb(t,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:Ne.cursor(o,oa(t)))r.between(e,e,(a,s)=>{ae&&(e=n?s:a)});return e}const uK=(t,e,n)=>Ry(t,r=>{let a=r.from,{state:s}=t,o=s.doc.lineAt(a),l,c;if(n&&!e&&a>o.from&&auK(t,!1,!0),dK=t=>uK(t,!0,!1),fK=(t,e)=>Ry(t,n=>{let r=n.head,{state:a}=t,s=a.doc.lineAt(r),o=a.charCategorizer(r);for(let l=null;;){if(r==(e?s.to:s.from)){r==n.head&&s.number!=(e?a.doc.lines:1)&&(r+=e?1:-1);break}let c=ba(s.text,r-s.from,e)+s.from,u=s.text.slice(Math.min(r,c)-s.from,Math.max(r,c)-s.from),d=o(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),hK=t=>fK(t,!1),NRe=t=>fK(t,!0),CRe=t=>Ry(t,e=>{let n=t.lineBlockAt(e.head).to;return e.headRy(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),ARe=t=>Ry(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let n=t.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:en.of(["",""])},range:Ne.cursor(r.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},TRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(r=>{if(!r.empty||r.from==0||r.from==t.doc.length)return{range:r};let a=r.from,s=t.doc.lineAt(a),o=a==s.from?a-1:ba(s.text,a-s.from,!1)+s.from,l=a==s.to?a+1:ba(s.text,a-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:t.doc.slice(a,l).append(t.doc.slice(o,a))},range:Ne.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function a2(t){let e=[],n=-1;for(let r of t.selection.ranges){let a=t.doc.lineAt(r.from),s=t.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=t.doc.lineAt(r.to-1)),n>=a.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:a.from,to:s.to,ranges:[r]});n=s.number+1}return e}function pK(t,e,n){if(t.readOnly)return!1;let r=[],a=[];for(let s of a2(t)){if(n?s.to==t.doc.length:s.from==0)continue;let o=t.doc.lineAt(n?s.to+1:s.from-1),l=o.length+1;if(n){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+t.lineBreak});for(let c of s.ranges)a.push(Ne.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:t.lineBreak+o.text});for(let c of s.ranges)a.push(Ne.range(c.anchor-l,c.head-l))}}return r.length?(e(t.update({changes:r,scrollIntoView:!0,selection:Ne.create(a,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const PRe=({state:t,dispatch:e})=>pK(t,e,!1),RRe=({state:t,dispatch:e})=>pK(t,e,!0);function mK(t,e,n){if(t.readOnly)return!1;let r=[];for(let s of a2(t))n?r.push({from:s.from,insert:t.doc.slice(s.from,s.to)+t.lineBreak}):r.push({from:s.to,insert:t.lineBreak+t.doc.slice(s.from,s.to)});let a=t.changes(r);return e(t.update({changes:a,selection:t.selection.map(a,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const MRe=({state:t,dispatch:e})=>mK(t,e,!1),DRe=({state:t,dispatch:e})=>mK(t,e,!0),IRe=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(a2(e).map(({from:a,to:s})=>(a>0?a--:s{let s;if(t.lineWrapping){let o=t.lineBlockAt(a.head),l=t.coordsAtPos(a.head,a.assoc||1);l&&(s=o.bottom+t.documentTop-l.bottom+t.defaultLineHeight/2)}return t.moveVertically(a,!0,s)}).map(n);return t.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function $Re(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=ts(t).resolveInner(e),r=n.childBefore(e),a=n.childAfter(e),s;return r&&a&&r.to<=e&&a.from>=e&&(s=r.type.prop(qt.closedBy))&&s.indexOf(a.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(a.from).from&&!/\S/.test(t.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}const z8=gK(!1),LRe=gK(!0);function gK(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(a=>{let{from:s,to:o}=a,l=e.doc.lineAt(s),c=!t&&s==o&&$Re(e,s);t&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let u=new Qj(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=WT(u,s);for(d==null&&(d=jm(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let a=[];for(let o=r.from;o<=r.to;){let l=t.doc.lineAt(o);l.number>n&&(r.empty||r.to>l.from)&&(e(l,a,r),n=l.number),o=l.to+1}let s=t.changes(a);return{changes:a,range:Ne.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const FRe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),r=new Qj(t,{overrideIndentation:s=>{let o=n[s];return o??-1}}),a=ZT(t,(s,o,l)=>{let c=WT(r,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=X0(t,c);(u!=d||l.fromt.readOnly?!1:(e(t.update(ZT(t,(n,r)=>{r.push({from:n.from,insert:t.facet(Zj)})}),{userEvent:"input.indent"})),!0),yK=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(ZT(t,(n,r)=>{let a=/^\s*/.exec(n.text)[0];if(!a)return;let s=jm(a,t.tabSize),o=0,l=X0(t,Math.max(0,s-lf(t)));for(;o(t.setTabFocusMode(),!0),zRe=[{key:"Ctrl-b",run:qq,shift:nK,preventDefault:!0},{key:"Ctrl-f",run:Kq,shift:rK},{key:"Ctrl-p",run:Jq,shift:iK},{key:"Ctrl-n",run:Zq,shift:oK},{key:"Ctrl-a",run:iRe,shift:yRe},{key:"Ctrl-e",run:oRe,shift:vRe},{key:"Ctrl-d",run:dK},{key:"Ctrl-h",run:oO},{key:"Ctrl-k",run:CRe},{key:"Ctrl-Alt-h",run:hK},{key:"Ctrl-o",run:ORe},{key:"Ctrl-t",run:TRe},{key:"Ctrl-v",run:iO}],URe=[{key:"ArrowLeft",run:qq,shift:nK,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:JPe,shift:uRe,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:aRe,shift:gRe,preventDefault:!0},{key:"ArrowRight",run:Kq,shift:rK,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ZPe,shift:dRe,preventDefault:!0},{mac:"Cmd-ArrowRight",run:sRe,shift:xRe,preventDefault:!0},{key:"ArrowUp",run:Jq,shift:iK,preventDefault:!0},{mac:"Cmd-ArrowUp",run:$8,shift:F8},{mac:"Ctrl-ArrowUp",run:M8,shift:D8},{key:"ArrowDown",run:Zq,shift:oK,preventDefault:!0},{mac:"Cmd-ArrowDown",run:L8,shift:B8},{mac:"Ctrl-ArrowDown",run:iO,shift:I8},{key:"PageUp",run:M8,shift:D8},{key:"PageDown",run:iO,shift:I8},{key:"Home",run:rRe,shift:mRe,preventDefault:!0},{key:"Mod-Home",run:$8,shift:F8},{key:"End",run:nRe,shift:pRe,preventDefault:!0},{key:"Mod-End",run:L8,shift:B8},{key:"Enter",run:z8,shift:z8},{key:"Mod-a",run:bRe},{key:"Backspace",run:oO,shift:oO,preventDefault:!0},{key:"Delete",run:dK,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:hK,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:NRe,preventDefault:!0},{mac:"Mod-Backspace",run:ERe,preventDefault:!0},{mac:"Mod-Delete",run:ARe,preventDefault:!0}].concat(zRe.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),VRe=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:eRe,shift:fRe},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:tRe,shift:hRe},{key:"Alt-ArrowUp",run:PRe},{key:"Shift-Alt-ArrowUp",run:MRe},{key:"Alt-ArrowDown",run:RRe},{key:"Shift-Alt-ArrowDown",run:DRe},{key:"Mod-Alt-ArrowUp",run:jRe},{key:"Mod-Alt-ArrowDown",run:SRe},{key:"Escape",run:_Re},{key:"Mod-Enter",run:LRe},{key:"Alt-l",mac:"Ctrl-l",run:wRe},{key:"Mod-i",run:kRe,preventDefault:!0},{key:"Mod-[",run:yK},{key:"Mod-]",run:xK},{key:"Mod-Alt-\\",run:FRe},{key:"Shift-Mod-k",run:IRe},{key:"Shift-Mod-\\",run:cRe},{key:"Mod-/",run:PPe},{key:"Alt-A",run:MPe},{key:"Ctrl-m",mac:"Shift-Alt-m",run:BRe}].concat(URe),WRe={key:"Tab",run:xK,shift:yK},U8=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class qp{constructor(e,n,r=0,a=e.length,s,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,a),this.bufferStart=r,this.normalize=s?l=>s(U8(l)):U8,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ps(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=wT(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=Zo(e);let a=this.normalize(n);if(a.length)for(let s=0,o=r,l=!0;;s++){let c=a.charCodeAt(s),u=this.match(c,o,l,this.bufferPos+this.bufferStart,s==a.length-1);if(u)return this.value=u,this;if(s==a.length-1)break;l&&sthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,a=r+n[0].length;if(this.matchPos=ik(this.text,a+(r==a?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(rthis.value.to)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=r||a.to<=n){let l=new qh(n,e.sliceString(n,r));return __.set(e,l),l}if(a.from==n&&a.to==r)return a;let{text:s,from:o}=a;return o>n&&(s=e.sliceString(n,o)+s,o=n),a.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,a=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,a,n)))return this.value={from:r,to:a,precise:!0,match:n},this.matchPos=ik(this.text,a+(r==a?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=qh.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(bK.prototype[Symbol.iterator]=wK.prototype[Symbol.iterator]=function(){return this});function HRe(t){try{return new RegExp(t,QT),!0}catch{return!1}}function ik(t,e){if(e>=t.length)return e;let n=t.lineAt(e),r;for(;e=56320&&r<57344;)e++;return e}const GRe=t=>{let{state:e}=t,n=String(e.doc.lineAt(t.state.selection.main.head).number),{close:r,result:a}=sTe(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:e.phrase("go")});return a.then(s=>{let o=s&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(s.elements.line.value);if(!o){t.dispatch({effects:r});return}let l=e.doc.lineAt(e.selection.main.head),[,c,u,d,f]=o,h=d?+d.slice(1):0,p=u?+u:l.number;if(u&&f){let v=p/100;c&&(v=v*(c=="-"?-1:1)+l.number/e.doc.lines),p=Math.round(e.doc.lines*v)}else u&&c&&(p=p*(c=="-"?-1:1)+l.number);let m=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),x=Ne.cursor(m.from+Math.max(0,Math.min(h,m.length)));t.dispatch({effects:[r,Ue.scrollIntoView(x.from,{y:"center"})],selection:x})}),!0},qRe={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},KRe=Ye.define({combine(t){return Nl(t,qRe,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function YRe(t){return[eMe,QRe]}const XRe=ht.mark({class:"cm-selectionMatch"}),JRe=ht.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function V8(t,e,n,r){return(n==0||t(e.sliceDoc(n-1,n))!=sr.Word)&&(r==e.doc.length||t(e.sliceDoc(r,r+1))!=sr.Word)}function ZRe(t,e,n,r){return t(e.sliceDoc(n,n+1))==sr.Word&&t(e.sliceDoc(r-1,r))==sr.Word}const QRe=gr.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(KRe),{state:n}=t,r=n.selection;if(r.ranges.length>1)return ht.none;let a=r.main,s,o=null;if(a.empty){if(!e.highlightWordAroundCursor)return ht.none;let c=n.wordAt(a.head);if(!c)return ht.none;o=n.charCategorizer(a.head),s=n.sliceDoc(c.from,c.to)}else{let c=a.to-a.from;if(c200)return ht.none;if(e.wholeWords){if(s=n.sliceDoc(a.from,a.to),o=n.charCategorizer(a.head),!(V8(o,n,a.from,a.to)&&ZRe(o,n,a.from,a.to)))return ht.none}else if(s=n.sliceDoc(a.from,a.to),!s)return ht.none}let l=[];for(let c of t.visibleRanges){let u=new qp(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!o||V8(o,n,d,f))&&(a.empty&&d<=a.from&&f>=a.to?l.push(JRe.range(d,f)):(d>=a.to||f<=a.from)&&l.push(XRe.range(d,f)),l.length>e.maxMatches))return ht.none}}return ht.set(l)}},{decorations:t=>t.decorations}),eMe=Ue.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),tMe=({state:t,dispatch:e})=>{let{selection:n}=t,r=Ne.create(n.ranges.map(a=>t.wordAt(a.head)||Ne.cursor(a.head)),n.mainIndex);return r.eq(n)?!1:(e(t.update({selection:r})),!0)};function nMe(t,e){let{main:n,ranges:r}=t.selection,a=t.wordAt(n.head),s=a&&a.from==n.from&&a.to==n.to;for(let o=!1,l=new qp(t.doc,e,r[r.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new qp(t.doc,e,0,Math.max(0,r[r.length-1].from-1)),o=!0}else{if(o&&r.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const rMe=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return tMe({state:t,dispatch:e});let r=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=r))return!1;let a=nMe(t,r);return a?(e(t.update({selection:t.selection.addRange(Ne.range(a.from,a.to),!1),effects:Ue.scrollIntoView(a.to)})),!0):!1},Nm=Ye.define({combine(t){return Nl(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new xMe(e),scrollToMatch:e=>Ue.scrollIntoView(e)})}});class kK{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||HRe(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?` -`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new cMe(this):new iMe(this)}getCursor(e,n=0,r){let a=e.doc?e:Xt.create({doc:e});return r==null&&(r=a.doc.length),this.regexp?nh(this,a,n,r):th(this,a,n,r)}}class jK{constructor(e){this.spec=e}}function aMe(t,e,n){return(r,a,s,o)=>{if(n&&!n(r,a,s,o))return!1;let l=r>=o&&a<=o+s.length?s.slice(r-o,a-o):e.doc.sliceString(r,a);return t(l,e,r,a)}}function th(t,e,n,r){let a;return t.wholeWord&&(a=sMe(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(a=aMe(t.test,e,a)),new qp(e.doc,t.unquoted,n,r,t.caseSensitive?void 0:s=>s.toLowerCase(),a)}function sMe(t,e){return(n,r,a,s)=>((s>n||s+a.length=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=th(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}function oMe(t,e,n){return(r,a,s)=>(!n||n(r,a,s))&&t(s[0],e,r,a)}function nh(t,e,n,r){let a;return t.wholeWord&&(a=lMe(e.charCategorizer(e.selection.main.head))),t.test&&(a=oMe(t.test,e,a)),new bK(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:a},n,r)}function ok(t,e){return t.slice(ba(t,e,!1),e)}function lk(t,e){return t.slice(e,ba(t,e))}function lMe(t){return(e,n,r)=>!r[0].length||(t(ok(r.input,r.index))!=sr.Word||t(lk(r.input,r.index))!=sr.Word)&&(t(lk(r.input,r.index+r[0].length))!=sr.Word||t(ok(r.input,r.index+r[0].length))!=sr.Word)}class cMe extends jK{nextMatch(e,n,r){let a=nh(this.spec,e,r,e.doc.length).next();return a.done&&(a=nh(this.spec,e,0,n).next()),a.done?null:a.value}prevMatchInRange(e,n,r){for(let a=1;;a++){let s=Math.max(n,r-a*1e4),o=nh(this.spec,e,s,r),l=null;for(;!o.next().done;)l=o.value;if(l&&(s==n||l.from>s+10))return l;if(s==n)return null}}prevMatch(e,n,r){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let a=r.length;a>0;a--){let s=+r.slice(0,a);if(s>0&&s=n)return null;a.push(r.value)}return a}highlight(e,n,r,a){let s=nh(this.spec,e,Math.max(0,n-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)a(s.value.from,s.value.to)}}const Z0=Ot.define(),eP=Ot.define(),xu=ns.define({create(t){return new N_(lO(t).create(),null)},update(t,e){for(let n of e.effects)n.is(Z0)?t=new N_(n.value.create(),t.panel):n.is(eP)&&(t=new N_(t.query,n.value?tP:null));return t},provide:t=>q0.from(t,e=>e.panel)});class N_{constructor(e,n){this.query=e,this.panel=n}}const uMe=ht.mark({class:"cm-searchMatch"}),dMe=ht.mark({class:"cm-searchMatch cm-searchMatch-selected"}),fMe=gr.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(xu))}update(t){let e=t.state.field(xu);(e!=t.startState.field(xu)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return ht.none;let{view:n}=this,r=new hc;for(let a=0,s=n.visibleRanges,o=s.length;as[a+1].from-2*250;)c=s[++a].to;t.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?dMe:uMe)})}return r.finish()}},{decorations:t=>t.decorations});function My(t){return e=>{let n=e.state.field(xu,!1);return n&&n.query.spec.valid?t(e,n):NK(e)}}const ck=My((t,{query:e})=>{let{to:n}=t.state.selection.main,r=e.nextMatch(t.state,n,n);if(!r)return!1;let a=Ne.single(r.from,r.to),s=t.state.facet(Nm);return t.dispatch({selection:a,effects:[nP(t,r),s.scrollToMatch(a.main,t)],userEvent:"select.search"}),_K(t),!0}),uk=My((t,{query:e})=>{let{state:n}=t,{from:r}=n.selection.main,a=e.prevMatch(n,r,r);if(!a)return!1;let s=Ne.single(a.from,a.to),o=t.state.facet(Nm);return t.dispatch({selection:s,effects:[nP(t,a),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),_K(t),!0}),hMe=My((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:Ne.create(n.map(r=>Ne.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),pMe=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:a}=n.main,s=[],o=0;for(let l=new qp(t.doc,t.sliceDoc(r,a));!l.next().done;){if(s.length>1e3)return!1;l.value.from==r&&(o=s.length),s.push(Ne.range(l.value.from,l.value.to))}return e(t.update({selection:Ne.create(s,o),userEvent:"select.search.matches"})),!0},W8=My((t,{query:e})=>{let{state:n}=t,{from:r,to:a}=n.selection.main;if(n.readOnly)return!1;let s=e.nextMatch(n,r,r);if(!s)return!1;let o=s,l=[],c,u,d=[];o.precise?o.from==r&&o.to==a&&(u=n.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:u}),d.push(Ue.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):o=e.nextMatch(n,o.from,o.to);let f=t.state.changes(l);return o&&(c=Ne.single(o.from,o.to).map(f),d.push(nP(t,o)),d.push(n.facet(Nm).scrollToMatch(c.main,t))),t.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),mMe=My((t,{query:e})=>{if(t.state.readOnly)return!1;let n=[];for(let a of e.matchAll(t.state,1e9)){let{from:s,to:o,precise:l}=a;l&&n.push({from:s,to:o,insert:e.getReplacement(a)})}if(!n.length)return!1;let r=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:Ue.announce.of(r),userEvent:"input.replace.all"}),!0});function tP(t){return t.state.facet(Nm).createPanel(t)}function lO(t,e){var n,r,a,s,o;let l=t.selection.main,c=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!c)return e;let u=t.facet(Nm);return new kK({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=e==null?void 0:e.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(a=e==null?void 0:e.literal)!==null&&a!==void 0?a:u.literal,regexp:(s=e==null?void 0:e.regexp)!==null&&s!==void 0?s:u.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:u.wholeWord})}function SK(t){let e=FT(t,tP);return e&&e.dom.querySelector("[main-field]")}function _K(t){let e=SK(t);e&&e==t.root.activeElement&&e.select()}const NK=t=>{let e=t.state.field(xu,!1);if(e&&e.panel){let n=SK(t);if(n&&n!=t.root.activeElement){let r=lO(t.state,e.query.spec);r.valid&&t.dispatch({effects:Z0.of(r)}),n.focus(),n.select()}}else t.dispatch({effects:[eP.of(!0),e?Z0.of(lO(t.state,e.query.spec)):Ot.appendConfig.of(vMe)]});return!0},CK=t=>{let e=t.state.field(xu,!1);if(!e||!e.panel)return!1;let n=FT(t,tP);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:eP.of(!1)}),!0},gMe=[{key:"Mod-f",run:NK,scope:"editor search-panel"},{key:"F3",run:ck,shift:uk,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ck,shift:uk,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:CK,scope:"editor search-panel"},{key:"Mod-Shift-l",run:pMe},{key:"Mod-Alt-g",run:GRe},{key:"Mod-d",run:rMe,preventDefault:!0}];class xMe{constructor(e){this.view=e;let n=this.query=e.state.field(xu).query.spec;this.commit=this.commit.bind(this),this.searchField=Sn("input",{value:n.search,placeholder:ri(e,"Find"),"aria-label":ri(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Sn("input",{value:n.replace,placeholder:ri(e,"Replace"),"aria-label":ri(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Sn("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=Sn("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=Sn("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(a,s,o){return Sn("button",{class:"cm-button",name:a,onclick:s,type:"button"},o)}this.dom=Sn("div",{onkeydown:a=>this.keydown(a),class:"cm-search"},[this.searchField,r("next",()=>ck(e),[ri(e,"next")]),r("prev",()=>uk(e),[ri(e,"previous")]),r("select",()=>hMe(e),[ri(e,"all")]),Sn("label",null,[this.caseField,ri(e,"match case")]),Sn("label",null,[this.reField,ri(e,"regexp")]),Sn("label",null,[this.wordField,ri(e,"by word")]),...e.state.readOnly?[]:[Sn("br"),this.replaceField,r("replace",()=>W8(e),[ri(e,"replace")]),r("replaceAll",()=>mMe(e),[ri(e,"replace all")])],Sn("button",{name:"close",onclick:()=>CK(e),"aria-label":ri(e,"close"),type:"button"},["×"])])}commit(){let e=new kK({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Z0.of(e)}))}keydown(e){g3e(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?uk:ck)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),W8(this.view))}update(e){for(let n of e.transactions)for(let r of n.effects)r.is(Z0)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Nm).top}}function ri(t,e){return t.state.phrase(e)}const bb=30,wb=/[\s\.,:;?!]/;function nP(t,{from:e,to:n}){let r=t.state.doc.lineAt(e),a=t.state.doc.lineAt(n).to,s=Math.max(r.from,e-bb),o=Math.min(a,n+bb),l=t.state.sliceDoc(s,o);if(s!=r.from){for(let c=0;cl.length-bb;c--)if(!wb.test(l[c-1])&&wb.test(l[c])){l=l.slice(0,c);break}}return Ue.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${r.number}.`)}const yMe=Ue.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),vMe=[xu,_f.low(fMe),yMe];class EK{constructor(e,n,r,a){this.state=e,this.pos=n,this.explicit=r,this.view=a,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=ts(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),r=Math.max(n.from,this.pos-250),a=n.text.slice(r-n.from,this.pos-n.from),s=a.search(AK(e,!1));return s<0?null:{from:r+s,to:this.pos,text:a.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),r&&r.onDocChange&&(this.abortOnDocChange=!0))}}function H8(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function bMe(t){let e=Object.create(null),n=Object.create(null);for(let{label:a}of t){e[a[0]]=!0;for(let s=1;stypeof a=="string"?{label:a}:a),[n,r]=e.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:bMe(e);return a=>{let s=a.matchBefore(r);return s||a.explicit?{from:s?s.from:a.pos,options:e,validFor:n}:null}}class G8{constructor(e,n,r,a){this.completion=e,this.source=n,this.match=r,this.score=a}}function zd(t){return t.selection.main.from}function AK(t,e){var n;let{source:r}=t,a=e&&r[0]!="^",s=r[r.length-1]!="$";return!a&&!s?t:new RegExp(`${a?"^":""}(?:${r})${s?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const OK=_l.define();function kMe(t,e,n,r){let{main:a}=t.selection,s=n-a.from,o=r-a.from;return{...t.changeByRange(l=>{if(l!=a&&n!=r&&t.sliceDoc(l.from+s,l.from+o)!=t.sliceDoc(n,r))return{range:l};let c=t.toText(e);return{changes:{from:l.from+s,to:r==a.from?l.to:l.from+o,insert:c},range:Ne.cursor(l.from+s+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const q8=new WeakMap;function jMe(t){if(!Array.isArray(t))return t;let e=q8.get(t);return e||q8.set(t,e=wMe(t)),e}const dk=Ot.define(),Q0=Ot.define();class SMe{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(S=wT(k))!=S.toLowerCase()?1:S!=S.toUpperCase()?2:0;(!y||_==1&&v||j==0&&_!=0)&&(n[f]==k||r[f]==k&&(h=!0)?o[f++]=y:o.length&&(b=!1)),j=_,y+=Zo(k)}return f==c&&o[0]==0&&b?this.result(-100+(h?-200:0),o,e):p==c&&m==0?this.ret(-200-e.length+(x==e.length?0:-100),[0,x]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):p==c?this.ret(-900-e.length,[m,x]):f==c?this.result(-100+(h?-200:0)+-700+(b?0:-1100),o,e):n.length==2?null:this.result((a[0]?-700:0)+-200+-1100,a,e)}result(e,n,r){let a=[],s=0;for(let o of n){let l=o+(this.astral?Zo(Ps(r,o)):1);s&&a[s-1]==o?a[s-1]=l:(a[s++]=o,a[s++]=l)}return this.ret(e-r.length,a)}}class _Me{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:NMe,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>r=>K8(e(r),n(r)),optionClass:(e,n)=>r=>K8(e(r),n(r)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function K8(t,e){return t?e?t+" "+e:t:e}function NMe(t,e,n,r,a,s){let o=t.textDirection==Pn.RTL,l=o,c=!1,u="top",d,f,h=e.left-a.left,p=a.right-e.right,m=r.right-r.left,x=r.bottom-r.top;if(l&&h=x||y>e.top?d=n.bottom-e.top:(u="bottom",d=e.bottom-n.top)}let v=(e.bottom-e.top)/s.offsetHeight,b=(e.right-e.left)/s.offsetWidth;return{style:`${u}: ${d/v}px; max-width: ${f/b}px`,class:"cm-completionInfo-"+(c?o?"left-narrow":"right-narrow":l?"left":"right")}}const rP=Ot.define();function CMe(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let r=document.createElement("div");return r.classList.add("cm-completionIcon"),n.type&&r.classList.add(...n.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),r.setAttribute("aria-hidden","true"),r},position:20}),e.push({render(n,r,a,s){let o=document.createElement("span");o.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let u=0;uc&&o.appendChild(document.createTextNode(l.slice(c,d)));let h=o.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(l.slice(d,f))),h.className="cm-completionMatchedText",c=f}return cn.position-r.position).map(n=>n.render)}function C_(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let a=Math.floor(e/n);return{from:a*n,to:(a+1)*n}}let r=Math.floor((t-e)/n);return{from:t-(r+1)*n,to:t-r*n}}class EMe{constructor(e,n,r){this.view=e,this.stateField=n,this.applyCompletion=r,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let a=e.state.field(n),{options:s,selected:o}=a.open,l=e.state.facet(va);this.optionContent=CMe(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=C_(s.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:u}=e.state.field(n).open;for(let d=c.target,f;d&&d!=this.dom;d=d.parentNode)if(d.nodeName=="LI"&&(f=/-(\d+)$/.exec(d.id))&&+f[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;d!=null&&(e.dispatch({effects:rP.of(d)}),c.preventDefault())}}),this.dom.addEventListener("focusout",c=>{let u=e.state.field(this.stateField,!1);u&&u.tooltip&&e.state.facet(va).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:Q0.of(null)})}),this.showOptions(s,a.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let r=e.state.field(this.stateField),a=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),r!=a){let{options:s,selected:o,disabled:l}=r.open;(!a.open||a.open.options!=s)&&(this.range=C_(s.length,o,e.state.facet(va).maxRenderedOptions),this.showOptions(s,r.id)),this.updateSel(),l!=((n=a.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let r of this.currentClass.split(" "))r&&this.dom.classList.remove(r);for(let r of n.split(" "))r&&this.dom.classList.add(r);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected=this.range.to)&&(this.range=C_(n.options.length,n.selected,this.view.state.facet(va).maxRenderedOptions),this.showOptions(n.options,e.id));let r=this.updateSelectedOption(n.selected);if(r){this.destroyInfo();let{completion:a}=n.options[n.selected],{info:s}=a;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(a);if(!o)return;"then"in o?o.then(l=>{l&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(l,a)}).catch(l=>vs(this.view.state,l,"completion info")):(this.addInfoPane(o,a),r.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let r=this.info=document.createElement("div");if(r.className="cm-tooltip cm-completionInfo",r.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)r.appendChild(e),this.infoDestroy=null;else{let{dom:a,destroy:s}=e;r.appendChild(a),this.infoDestroy=s||null}this.dom.appendChild(r),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let r=this.list.firstChild,a=this.range.from;r;r=r.nextSibling,a++)r.nodeName!="LI"||!r.id?a--:a==e?r.hasAttribute("aria-selected")||(r.setAttribute("aria-selected","true"),n=r):r.hasAttribute("aria-selected")&&(r.removeAttribute("aria-selected"),r.removeAttribute("aria-describedby"));return n&&OMe(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),r=this.info.getBoundingClientRect(),a=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return a.top>Math.min(s.bottom,n.bottom)-10||a.bottom{o.target==a&&o.preventDefault()});let s=null;for(let o=r.from;or.from||r.from==0))if(s=h,typeof u!="string"&&u.header)a.appendChild(u.header(u));else{let p=a.appendChild(document.createElement("completion-section"));p.textContent=h}}const d=a.appendChild(document.createElement("li"));d.id=n+"-"+o,d.setAttribute("role","option");let f=this.optionClass(l);f&&(d.className=f);for(let h of this.optionContent){let p=h(l,this.view.state,this.view,c);p&&d.appendChild(p)}}return r.from&&a.classList.add("cm-completionListIncompleteTop"),r.tonew EMe(n,t,e)}function OMe(t,e){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=n.height/t.offsetHeight;r.topn.bottom&&(t.scrollTop+=(r.bottom-n.bottom)/a)}function Y8(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function TMe(t,e){let n=[],r=null,a=null,s=d=>{n.push(d);let{section:f}=d.completion;if(f){r||(r=[]);let h=typeof f=="string"?f:f.name;r.some(p=>p.name==h)||r.push(typeof f=="string"?{name:h}:f)}},o=e.facet(va);for(let d of t)if(d.hasResult()){let f=d.result.getMatch;if(d.result.filter===!1)for(let h of d.result.options)s(new G8(h,d.source,f?f(h):[],1e9-n.length));else{let h=e.sliceDoc(d.from,d.to),p,m=o.filterStrict?new _Me(h):new SMe(h);for(let x of d.result.options)if(p=m.match(x.label)){let v=x.displayLabel?f?f(x,p.matched):[]:p.matched,b=p.score+(x.boost||0);if(s(new G8(x,d.source,v,b)),typeof x.section=="object"&&x.section.rank==="dynamic"){let{name:y}=x.section;a||(a=Object.create(null)),a[y]=Math.max(b,a[y]||-1e9)}}}}if(r){let d=Object.create(null),f=0,h=(p,m)=>(p.rank==="dynamic"&&m.rank==="dynamic"?a[m.name]-a[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof m.rank=="number"?m.rank:1e9)||(p.nameh.score-f.score||u(f.completion,h.completion))){let f=d.completion;!c||c.label!=f.label||c.detail!=f.detail||c.type!=null&&f.type!=null&&c.type!=f.type||c.apply!=f.apply||c.boost!=f.boost?l.push(d):Y8(d.completion)>Y8(c)&&(l[l.length-1]=d),c=d.completion}return l}class Oh{constructor(e,n,r,a,s,o){this.options=e,this.attrs=n,this.tooltip=r,this.timestamp=a,this.selected=s,this.disabled=o}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new Oh(this.options,X8(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,r,a,s,o){if(a&&!o&&e.some(u=>u.isPending))return a.setDisabled();let l=TMe(e,n);if(!l.length)return a&&e.some(u=>u.isPending)?a.setDisabled():null;let c=n.facet(va).selectOnOpen?0:-1;if(a&&a.selected!=c&&a.selected!=-1){let u=a.options[a.selected].completion;for(let d=0;dd.hasResult()?Math.min(u,d.from):u,1e8),create:$Me,above:s.aboveCursor},a?a.timestamp:Date.now(),c,!1)}map(e){return new Oh(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Oh(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class fk{constructor(e,n,r){this.active=e,this.id=n,this.open=r}static start(){return new fk(DMe,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,r=n.facet(va),s=(r.override||n.languageDataAt("autocomplete",zd(n)).map(jMe)).map(c=>(this.active.find(d=>d.source==c)||new $i(c,this.active.some(d=>d.state!=0)?1:0)).update(e,r));s.length==this.active.length&&s.every((c,u)=>c==this.active[u])&&(s=this.active);let o=this.open,l=e.effects.some(c=>c.is(aP));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!PMe(s,this.active)||l?o=Oh.build(s,n,this.id,o,r,l):o&&o.disabled&&!s.some(c=>c.isPending)&&(o=null),!o&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new $i(c.source,0):c));for(let c of e.effects)c.is(rP)&&(o=o&&o.setSelected(c.value,this.id));return s==this.active&&o==this.open?this:new fk(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?RMe:MMe}}function PMe(t,e){if(t==e)return!0;for(let n=0,r=0;;){for(;n-1&&(n["aria-activedescendant"]=t+"-"+e),n}const DMe=[];function TK(t,e){if(t.isUserEvent("input.complete")){let r=t.annotation(OK);if(r&&e.activateOnCompletion(r))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class $i{constructor(e,n,r=!1){this.source=e,this.state=n,this.explicit=r}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let r=TK(e,n),a=this;(r&8||r&16&&this.touches(e))&&(a=new $i(a.source,0)),r&4&&a.state==0&&(a=new $i(this.source,1)),a=a.updateFor(e,r);for(let s of e.effects)if(s.is(dk))a=new $i(a.source,1,s.value);else if(s.is(Q0))a=new $i(a.source,0);else if(s.is(aP))for(let o of s.value)o.source==a.source&&(a=o);return a}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(zd(e.state))}}class Kh extends $i{constructor(e,n,r,a,s,o){super(e,3,n),this.limit=r,this.result=a,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,n){var r;if(!(n&3))return this.map(e.changes);let a=this.result;a.map&&!e.changes.empty&&(a=a.map(a,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=zd(e.state);if(l>o||!a||n&2&&(zd(e.startState)==this.from||ln.map(e))}}),Rs=ns.define({create(){return fk.start()},update(t,e){return t.update(e)},provide:t=>[LT.from(t,e=>e.tooltip),Ue.contentAttributes.from(t,e=>e.attrs)]});function sP(t,e){const n=e.completion.apply||e.completion.label;let r=t.state.field(Rs).active.find(a=>a.source==e.source);return r instanceof Kh?(typeof n=="string"?t.dispatch({...kMe(t.state,n,r.from,r.to),annotations:OK.of(e.completion)}):n(t,e.completion,r.from,r.to),!0):!1}const $Me=AMe(Rs,sP);function kb(t,e="option"){return n=>{let r=n.state.field(Rs,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+a*(t?1:-1):t?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),n.dispatch({effects:rP.of(l)}),!0}}const LMe=t=>{let e=t.state.field(Rs,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Rs,!1)?(t.dispatch({effects:dk.of(!0)}),!0):!1,FMe=t=>{let e=t.state.field(Rs,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:Q0.of(null)}),!0)};class BMe{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const zMe=50,UMe=1e3,VMe=gr.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Rs).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Rs),n=t.state.facet(va);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Rs)==e)return;let r=t.transactions.some(s=>{let o=TK(s,n);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;szMe&&Date.now()-o.time>UMe){for(let l of o.context.abortListeners)try{l()}catch(c){vs(this.view.state,c)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(s=>s.effects.some(o=>o.is(dk)))&&(this.pendingStart=!0);let a=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),a):-1,this.composing!=0)for(let s of t.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Rs);for(let n of e.active)n.isPending&&!this.running.some(r=>r.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(va).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=zd(e),r=new EK(e,n,t.explicit,this.view),a=new BMe(t,r);this.running.push(a),Promise.resolve(t.source(r)).then(s=>{a.context.aborted||(a.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:Q0.of(null)}),vs(this.view.state,s)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(va).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(va),r=this.view.state.field(Rs);for(let a=0;al.source==s.active.source);if(o&&o.isPending)if(s.done==null){let l=new $i(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||r.open&&r.open.disabled)&&this.view.dispatch({effects:aP.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Rs,!1);if(e&&e.tooltip&&this.view.state.facet(va).closeOnBlur){let n=e.open&&lq(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Q0.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:dk.of(!1)}),20),this.composing=0}}}),WMe=typeof navigator=="object"&&/Win/.test(navigator.platform),HMe=_f.highest(Ue.domEventHandlers({keydown(t,e){let n=e.state.field(Rs,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(WMe&&t.altKey)||t.metaKey)return!1;let r=n.open.options[n.open.selected],a=n.active.find(o=>o.source==r.source),s=r.completion.commitCharacters||a.result.commitCharacters;return s&&s.indexOf(t.key)>-1&&sP(e,r),!1}})),GMe=Ue.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),ey={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Cd=Ot.define({map(t,e){let n=e.mapPos(t,-1,ps.TrackAfter);return n??void 0}}),iP=new class extends Nu{};iP.startSide=1;iP.endSide=-1;const PK=ns.define({create(){return Lt.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:r=>r>=n.from&&r<=n.to})}for(let n of e.effects)n.is(Cd)&&(t=t.update({add:[iP.range(n.value,n.value+1)]}));return t}});function qMe(){return[YMe,PK]}const E_="()[]{}<>«»»«[]{}";function RK(t){for(let e=0;e{if((KMe?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let a=t.state.selection.main;if(r.length>2||r.length==2&&Zo(Ps(r,0))==1||e!=a.from||n!=a.to)return!1;let s=ZMe(t.state,r);return s?(t.dispatch(s),!0):!1}),XMe=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let r=MK(t,t.selection.main.head).brackets||ey.brackets,a=null,s=t.changeByRange(o=>{if(o.empty){let l=QMe(t.doc,o.head);for(let c of r)if(c==l&&s2(t.doc,o.head)==RK(Ps(c,0)))return{changes:{from:o.head-c.length,to:o.head+c.length},range:Ne.cursor(o.head-c.length)}}return{range:a=o}});return a||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!a},JMe=[{key:"Backspace",run:XMe}];function ZMe(t,e){let n=MK(t,t.selection.main.head),r=n.brackets||ey.brackets;for(let a of r){let s=RK(Ps(a,0));if(e==a)return s==a?n4e(t,a,r.indexOf(a+a+a)>-1,n):e4e(t,a,s,n.before||ey.before);if(e==s&&DK(t,t.selection.main.from))return t4e(t,a,s)}return null}function DK(t,e){let n=!1;return t.field(PK).between(0,t.doc.length,r=>{r==e&&(n=!0)}),n}function s2(t,e){let n=t.sliceString(e,e+2);return n.slice(0,Zo(Ps(n,0)))}function QMe(t,e){let n=t.sliceString(e-2,e);return Zo(Ps(n,0))==n.length?n:n.slice(1)}function e4e(t,e,n,r){let a=null,s=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:n,from:o.to}],effects:Cd.of(o.to+e.length),range:Ne.range(o.anchor+e.length,o.head+e.length)};let l=s2(t.doc,o.head);return!l||/\s/.test(l)||r.indexOf(l)>-1?{changes:{insert:e+n,from:o.head},effects:Cd.of(o.head+e.length),range:Ne.cursor(o.head+e.length)}:{range:a=o}});return a?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function t4e(t,e,n){let r=null,a=t.changeByRange(s=>s.empty&&s2(t.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:Ne.cursor(s.head+n.length)}:r={range:s});return r?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function n4e(t,e,n,r){let a=r.stringPrefixes||ey.stringPrefixes,s=null,o=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Cd.of(l.to+e.length),range:Ne.range(l.anchor+e.length,l.head+e.length)};let c=l.head,u=s2(t.doc,c),d;if(u==e){if(J8(t,c))return{changes:{insert:e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)};if(DK(t,c)){let h=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+h.length,insert:h},range:Ne.cursor(c+h.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(d=Z8(t,c-2*e.length,a))>-1&&J8(t,d))return{changes:{insert:e+e+e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)};if(t.charCategorizer(c)(u)!=sr.Word&&Z8(t,c,a)>-1&&!r4e(t,c,e,a))return{changes:{insert:e+e,from:c},effects:Cd.of(c+e.length),range:Ne.cursor(c+e.length)}}return{range:s=l}});return s?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function J8(t,e){let n=ts(t).resolveInner(e+1);return n.parent&&n.from==e}function r4e(t,e,n,r){let a=ts(t).resolveInner(e,-1),s=r.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=t.sliceDoc(a.from,Math.min(a.to,a.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&r.indexOf(l.slice(0,c))>-1){let d=a.firstChild;for(;d&&d.from==a.from&&d.to-d.from>n.length+c;){if(t.sliceDoc(d.to-n.length,d.to)==n)return!1;d=d.firstChild}return!0}let u=a.to==e&&a.parent;if(!u)break;a=u}return!1}function Z8(t,e,n){let r=t.charCategorizer(e);if(r(t.sliceDoc(e-1,e))!=sr.Word)return e;for(let a of n){let s=e-a.length;if(t.sliceDoc(s,e)==a&&r(t.sliceDoc(s-1,s))!=sr.Word)return s}return-1}function IK(t={}){return[HMe,Rs,va.of(t),VMe,a4e,GMe]}const $K=[{key:"Ctrl-Space",run:Yh},{mac:"Alt-`",run:Yh},{mac:"Alt-i",run:Yh},{key:"Escape",run:FMe},{key:"ArrowDown",run:kb(!0)},{key:"ArrowUp",run:kb(!1)},{key:"PageDown",run:kb(!0,"page")},{key:"PageUp",run:kb(!1,"page")},{key:"Enter",run:LMe}],a4e=_f.highest(Xj.computeN([va],t=>t.facet(va).defaultKeymap?[$K]:[]));class Q8{constructor(e,n,r){this.from=e,this.to=n,this.diagnostic=r}}class hd{constructor(e,n,r){this.diagnostics=e,this.panel=n,this.selected=r}static init(e,n,r){let a=r.facet(ol).markerFilter;a&&(e=a(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new hc,l=[],c=0,u=r.doc.iter(),d=0,f=r.doc.length;for(let p=0;;){let m=p==s.length?null:s[p];if(!m&&!l.length)break;let x,v;if(l.length)x=c,v=l.reduce((w,j)=>Math.min(w,j.to),m&&m.from>x?m.from:1e8);else{if(x=m.from,x>f)break;v=m.to,l.push(m),p++}for(;pw.from||w.to==x))l.push(w),p++,v=Math.min(w.to,v);else{v=Math.min(w.from,v);break}}v=Math.min(v,f);let b=!1;if(l.some(w=>w.from==x&&(w.to==v||v==f))&&(b=x==v,!b&&v-x<10)){let w=x-(d+u.value.length);w>0&&(u.next(w),d=x);for(let j=x;;){if(j>=v){b=!0;break}if(!u.lineBreak&&d+u.value.length>j)break;j=d+u.value.length,d+=u.value.length,u.next()}}let y=b4e(l);if(b)o.add(x,x,ht.widget({widget:new g4e(y),diagnostics:l.slice()}));else{let w=l.reduce((j,k)=>k.markClass?j+" "+k.markClass:j,"");o.add(x,v,ht.mark({class:"cm-lintRange cm-lintRange-"+y+w,diagnostics:l.slice(),inclusiveEnd:l.some(j=>j.to>v)}))}if(c=v,c==f)break;for(let w=0;w{if(!(e&&o.diagnostics.indexOf(e)<0))if(!r)r=new Q8(a,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new Q8(r.from,s,r.diagnostic)}}),r}function s4e(t,e){let n=e.pos,r=e.end||n,a=t.state.facet(ol).hideOn(t,n,r);if(a!=null)return a;let s=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(oP))||t.changes.touchesRange(s.from,Math.max(s.to,r)))}function LK(t,e){return t.field(fi,!1)?e:e.concat(Ot.appendConfig.of(VK))}function i4e(t,e){return{effects:LK(t,[oP.of(e)])}}const oP=Ot.define(),lP=Ot.define(),FK=Ot.define(),fi=ns.define({create(){return new hd(ht.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),r=null,a=t.panel;if(t.selected){let s=e.changes.mapPos(t.selected.from,1);r=Pu(n,t.selected.diagnostic,s)||Pu(n,null,s)}!n.size&&a&&e.state.facet(ol).autoPanel&&(a=null),t=new hd(n,a,r)}for(let n of e.effects)if(n.is(oP)){let r=e.state.facet(ol).autoPanel?n.value.length?ty.open:null:t.panel;t=hd.init(n.value,r,e.state)}else n.is(lP)?t=new hd(t.diagnostics,n.value?ty.open:null,t.selected):n.is(FK)&&(t=new hd(t.diagnostics,t.panel,n.value));return t},provide:t=>[q0.from(t,e=>e.panel),Ue.decorations.from(t,e=>e.diagnostics)]}),o4e=ht.mark({class:"cm-lintRange cm-lintRange-active"});function l4e(t,e,n){let{diagnostics:r}=t.state.field(fi),a,s=-1,o=-1;r.between(e-(n<0?1:0),e+(n>0?1:0),(c,u,{spec:d})=>{if(e>=c&&e<=u&&(c==u||(e>c||n>0)&&(eUK(t,n,!1)))}const u4e=t=>{let e=t.state.field(fi,!1);(!e||!e.panel)&&t.dispatch({effects:LK(t.state,[lP.of(!0)])});let n=FT(t,ty.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},e6=t=>{let e=t.state.field(fi,!1);return!e||!e.panel?!1:(t.dispatch({effects:lP.of(!1)}),!0)},d4e=t=>{let e=t.state.field(fi,!1);if(!e)return!1;let n=t.state.selection.main,r=Pu(e.diagnostics,null,n.to+1);return!r&&(r=Pu(e.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(t.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},f4e=[{key:"Mod-Shift-m",run:u4e,preventDefault:!0},{key:"F8",run:d4e}],BK=gr.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(ol);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(r(this.view))),r=>{this.view.state.doc==e.doc&&this.view.dispatch(i4e(this.view.state,r.reduce((a,s)=>a.concat(s))))},r=>{vs(this.view.state,r)})}}update(t){let e=t.state.facet(ol);(t.docChanged||e!=t.startState.facet(ol)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function h4e(t,e,n){let r=[],a=-1;for(let s of t)s.then(o=>{r.push(o),clearTimeout(a),r.length==t.length?e(r):a=setTimeout(()=>e(r),200)},n)}const ol=Ye.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...Nl(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:t6,tooltipFilter:t6,needsRefresh:(e,n)=>e?n?r=>e(r)||n(r):e:n,hideOn:(e,n)=>e?n?(r,a,s)=>e(r,a,s)||n(r,a,s):e:n,autoPanel:(e,n)=>e||n})}}});function t6(t,e){return t?e?(n,r)=>e(t(n,r),r):t:e}function p4e(t,e={}){return[ol.of({source:t,config:e}),BK,VK]}function m4e(t){let e=t.plugin(BK);e&&e.force()}function zK(t){let e=[];if(t)e:for(let{name:n}of t){for(let r=0;rs.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function UK(t,e,n){var r;let a=n?zK(e.actions):[];return Sn("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Sn("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(r=e.actions)===null||r===void 0?void 0:r.map((s,o)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=Pu(t.state.field(fi).diagnostics,e);m&&s.apply(t,m.from,m.to)},{name:u}=s,d=a[o]?u.indexOf(a[o]):-1,f=d<0?u:[u.slice(0,d),Sn("u",u.slice(d,d+1)),u.slice(d+1)],h=s.markClass?" "+s.markClass:"";return Sn("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${a[o]})"`}.`},f)}),e.source&&Sn("div",{class:"cm-diagnosticSource"},e.source))}class g4e extends Cl{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Sn("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class n6{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=UK(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ty{constructor(e){this.view=e,this.items=[];let n=a=>{if(!(a.ctrlKey||a.altKey||a.metaKey)){if(a.keyCode==27)e6(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=zK(s.actions);for(let l=0;l{for(let s=0;se6(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(fi).selected;if(!e)return-1;for(let n=0;n{for(let d of u.diagnostics){if(o.has(d))continue;o.add(d);let f=-1,h;for(let p=r;pr&&(this.items.splice(r,f-r),a=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),s=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.topc.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function n(){let r=e;e=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;e!=r.dom;)n();e=r.dom.nextSibling}else this.list.insertBefore(r.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(fi),r=Pu(n.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:FK.of(r)})}static open(e){return new ty(e)}}function x4e(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function jb(t){return x4e(``,'width="6" height="3"')}const y4e=Ue.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:jb("#d11")},".cm-lintRange-warning":{backgroundImage:jb("orange")},".cm-lintRange-info":{backgroundImage:jb("#999")},".cm-lintRange-hint":{backgroundImage:jb("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function v4e(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function b4e(t){let e="hint",n=1;for(let r of t){let a=v4e(r.severity);a>n&&(n=a,e=r.severity)}return e}const VK=[fi,Ue.decorations.compute([fi],t=>{let{selected:e,panel:n}=t.field(fi);return!e||!n||e.from==e.to?ht.none:ht.set([o4e.range(e.from,e.to)])}),rTe(l4e,{hideOn:s4e}),y4e];var r6=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(JMe)),e.defaultKeymap!==!1&&(r=r.concat(VRe)),e.searchKeymap!==!1&&(r=r.concat(gMe)),e.historyKeymap!==!1&&(r=r.concat(XPe)),e.foldKeymap!==!1&&(r=r.concat(iPe)),e.completionKeymap!==!1&&(r=r.concat($K)),e.lintKeymap!==!1&&(r=r.concat(f4e));var a=[];return e.lineNumbers!==!1&&a.push(gTe()),e.highlightActiveLineGutter!==!1&&a.push(vTe()),e.highlightSpecialChars!==!1&&a.push(R3e()),e.history!==!1&&a.push(zPe()),e.foldGutter!==!1&&a.push(uPe()),e.drawSelection!==!1&&a.push(k3e()),e.dropCursor!==!1&&a.push(C3e()),e.allowMultipleSelections!==!1&&a.push(Xt.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(XTe()),e.syntaxHighlighting!==!1&&a.push(GT(pPe,{fallback:!0})),e.bracketMatching!==!1&&a.push(wPe()),e.closeBrackets!==!1&&a.push(qMe()),e.autocompletion!==!1&&a.push(IK()),e.rectangularSelection!==!1&&a.push(G3e()),n!==!1&&a.push(Y3e()),e.highlightActiveLine!==!1&&a.push(F3e()),e.highlightSelectionMatches!==!1&&a.push(YRe()),e.tabSize&&typeof e.tabSize=="number"&&a.push(Zj.of(" ".repeat(e.tabSize))),a.concat([Xj.of(r.flat())]).filter(Boolean)};const w4e="#e5c07b",a6="#e06c75",k4e="#56b6c2",j4e="#ffffff",o1="#abb2bf",cO="#7d8799",S4e="#61afef",_4e="#98c379",s6="#d19a66",N4e="#c678dd",C4e="#21252b",i6="#2c313a",o6="#282c34",A_="#353a42",E4e="#3E4451",l6="#528bff",A4e=Ue.theme({"&":{color:o1,backgroundColor:o6},".cm-content":{caretColor:l6},".cm-cursor, .cm-dropCursor":{borderLeftColor:l6},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:E4e},".cm-panels":{backgroundColor:C4e,color:o1},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:o6,color:cO,border:"none"},".cm-activeLineGutter":{backgroundColor:i6},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:A_},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:A_,borderBottomColor:A_},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:i6,color:o1}}},{dark:!0}),O4e=Sm.define([{tag:oe.keyword,color:N4e},{tag:[oe.name,oe.deleted,oe.character,oe.propertyName,oe.macroName],color:a6},{tag:[oe.function(oe.variableName),oe.labelName],color:S4e},{tag:[oe.color,oe.constant(oe.name),oe.standard(oe.name)],color:s6},{tag:[oe.definition(oe.name),oe.separator],color:o1},{tag:[oe.typeName,oe.className,oe.number,oe.changed,oe.annotation,oe.modifier,oe.self,oe.namespace],color:w4e},{tag:[oe.operator,oe.operatorKeyword,oe.url,oe.escape,oe.regexp,oe.link,oe.special(oe.string)],color:k4e},{tag:[oe.meta,oe.comment],color:cO},{tag:oe.strong,fontWeight:"bold"},{tag:oe.emphasis,fontStyle:"italic"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.link,color:cO,textDecoration:"underline"},{tag:oe.heading,fontWeight:"bold",color:a6},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:s6},{tag:[oe.processingInstruction,oe.string,oe.inserted],color:_4e},{tag:oe.invalid,color:j4e}]),T4e=[A4e,GT(O4e)];var P4e=Ue.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),R4e=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:r=!0,readOnly:a=!1,theme:s="light",placeholder:o="",basicSetup:l=!0}=e,c=[];switch(n&&c.unshift(Xj.of([WRe])),l&&(typeof l=="boolean"?c.unshift(r6()):c.unshift(r6(l))),o&&c.unshift(iq(o)),s){case"light":c.push(P4e);break;case"dark":c.push(T4e);break;case"none":break;default:c.push(s);break}return r===!1&&c.push(Ue.editable.of(!1)),a&&c.push(Xt.readOnly.of(!0)),[...c]},M4e=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)});class D4e{constructor(e,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class c6{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var O_=null,I4e=()=>typeof window>"u"?new c6:(O_||(O_=new c6),O_),u6=_l.define(),$4e=200,L4e=[];function F4e(t){var{value:e,selection:n,onChange:r,onStatistics:a,onCreateEditor:s,onUpdate:o,extensions:l=L4e,autoFocus:c,theme:u="light",height:d=null,minHeight:f=null,maxHeight:h=null,width:p=null,minWidth:m=null,maxWidth:x=null,placeholder:v="",editable:b=!0,readOnly:y=!1,indentWithTab:w=!0,basicSetup:j=!0,root:k,initialState:S}=t,[_,C]=g.useState(),[E,P]=g.useState(),[R,A]=g.useState(),T=g.useState(()=>({current:null}))[0],D=g.useState(()=>({current:null}))[0],L=Ue.theme({"&":{height:d,minHeight:f,maxHeight:h,width:p,minWidth:m,maxWidth:x},"& .cm-scroller":{height:"100% !important"}}),X=Ue.updateListener.of(Y=>{if(Y.docChanged&&typeof r=="function"&&!Y.transactions.some(I=>I.annotation(u6))){T.current?T.current.reset():(T.current=new D4e(()=>{if(D.current){var I=D.current;D.current=null,I()}T.current=null},$4e),I4e().add(T.current));var W=Y.state.doc,G=W.toString();r(G,Y)}a&&a(M4e(Y))}),J=R4e({theme:u,editable:b,readOnly:y,placeholder:v,indentWithTab:w,basicSetup:j}),U=[X,L,...J];return o&&typeof o=="function"&&U.push(Ue.updateListener.of(o)),U=U.concat(l),g.useLayoutEffect(()=>{if(_&&!R){var Y={doc:e,selection:n,extensions:U},W=S?Xt.fromJSON(S.json,Y,S.fields):Xt.create(Y);if(A(W),!E){var G=new Ue({state:W,parent:_,root:k});P(G),s&&s(G,W)}}return()=>{E&&(A(void 0),P(void 0))}},[_,R]),g.useEffect(()=>{t.container&&C(t.container)},[t.container]),g.useEffect(()=>()=>{E&&(E.destroy(),P(void 0)),T.current&&(T.current.cancel(),T.current=null)},[E]),g.useEffect(()=>{c&&E&&E.focus()},[c,E]),g.useEffect(()=>{E&&E.dispatch({effects:Ot.reconfigure.of(U)})},[u,l,d,f,h,p,m,x,v,b,y,w,j,r,o]),g.useEffect(()=>{if(e!==void 0){var Y=E?E.state.doc.toString():"";if(E&&e!==Y){var W=T.current&&!T.current.isDone,G=()=>{E&&e!==E.state.doc.toString()&&E.dispatch({changes:{from:0,to:E.state.doc.toString().length,insert:e||""},annotations:[u6.of(!0)]})};W?D.current=G:G()}}},[e,E]),{state:R,setState:A,view:E,setView:P,container:_,setContainer:C}}var B4e=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],WK=g.forwardRef((t,e)=>{var{className:n,value:r="",selection:a,extensions:s=[],onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,autoFocus:d,theme:f="light",height:h,minHeight:p,maxHeight:m,width:x,minWidth:v,maxWidth:b,basicSetup:y,placeholder:w,indentWithTab:j,editable:k,readOnly:S,root:_,initialState:C}=t,E=dwe(t,B4e),P=g.useRef(null),{state:R,view:A,container:T,setContainer:D}=F4e({root:_,value:r,autoFocus:d,theme:f,height:h,minHeight:p,maxHeight:m,width:x,minWidth:v,maxWidth:b,basicSetup:y,placeholder:w,indentWithTab:j,editable:k,readOnly:S,selection:a,onChange:o,onStatistics:l,onCreateEditor:c,onUpdate:u,extensions:s,initialState:C});g.useImperativeHandle(e,()=>({editor:P.current,state:R,view:A}),[P,T,R,A]);var L=g.useCallback(J=>{P.current=J,D(J)},[D]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var X=typeof f=="string"?"cm-theme-"+f:"cm-theme";return i.jsx("div",S0({ref:L,className:""+X+(n?" "+n:"")},E))});WK.displayName="CodeMirror";var HK=t=>{var{theme:e,settings:n={},styles:r=[]}=t,a={".cm-gutters":{}},s={};n.background&&(s.backgroundColor=n.background),n.backgroundImage&&(s.backgroundImage=n.backgroundImage),n.foreground&&(s.color=n.foreground),n.fontSize&&(s.fontSize=n.fontSize),(n.background||n.foreground)&&(a["&"]=s),n.fontFamily&&(a["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(a[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(a[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(a[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(a[".cm-content"]={caretColor:n.caret},a[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var o={};n.gutterActiveForeground&&(o.color=n.gutterActiveForeground),n.lineHighlight&&(a[".cm-activeLine"]={backgroundColor:n.lineHighlight},o.backgroundColor=n.lineHighlight),a[".cm-activeLineGutter"]=o,n.selection&&(a["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:n.selection+" !important"}),n.selectionMatch&&(a["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var l=Ue.theme(a,{dark:e==="dark"}),c=Sm.define(r),u=[l,GT(c)];return u},z4e={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},U4e=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#116329"},{tag:[oe.comment,oe.bracket],color:"#6a737d"},{tag:[oe.className,oe.propertyName],color:"#6f42c1"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#005cc5"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#d73a49"},{tag:[oe.string,oe.meta,oe.regexp],color:"#032f62"},{tag:[oe.name,oe.quote],color:"#22863a"},{tag:[oe.heading,oe.strong],color:"#24292e",fontWeight:"bold"},{tag:[oe.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[oe.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#e36209"},{tag:[oe.url,oe.escape,oe.regexp,oe.link],color:"#032f62"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#cb2431"}],GK=t=>{var{theme:e="light",settings:n={},styles:r=[]}=t||{};return HK({theme:e,settings:S0({},z4e,n),styles:[...U4e,...r]})};GK();var V4e={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},W4e=[{tag:[oe.standard(oe.tagName),oe.tagName],color:"#7ee787"},{tag:[oe.comment,oe.bracket],color:"#8b949e"},{tag:[oe.className,oe.propertyName],color:"#d2a8ff"},{tag:[oe.variableName,oe.attributeName,oe.number,oe.operator],color:"#79c0ff"},{tag:[oe.keyword,oe.typeName,oe.typeOperator,oe.typeName],color:"#ff7b72"},{tag:[oe.string,oe.meta,oe.regexp],color:"#a5d6ff"},{tag:[oe.name,oe.quote],color:"#7ee787"},{tag:[oe.heading,oe.strong],color:"#d2a8ff",fontWeight:"bold"},{tag:[oe.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[oe.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[oe.atom,oe.bool,oe.special(oe.variableName)],color:"#ffab70"},{tag:oe.link,textDecoration:"underline"},{tag:oe.strikethrough,textDecoration:"line-through"},{tag:oe.invalid,color:"#f97583"}],qK=t=>{var{theme:e="dark",settings:n={},styles:r=[]}=t||{};return HK({theme:e,settings:S0({},V4e,n),styles:[...W4e,...r]})};qK();const H4e=["absa_sanlam","aci","adyen","adyenplatform","affirm","airwallex","amazonpay","archipel","authipay","authorizedotnet","bambora","bamboraapac","bankofamerica","barclaycard","billwerk","bitpay","blackhawknetwork","bluesnap","boku","braintree","breadpay","calida","cardinal","cashtocode","celero","chargebee","checkbook","checkout","coinbase","coingate","cryptopay","ctp_mastercard","ctp_visa","custombilling","cybersource","cybersourcedecisionmanager","datatrans","deutschebank","digitalvirgo","dlocal","dwolla","ebanx","elavon","envoy","facilitapay","finix","fiserv","fiservcommercehub","fiservemea","fiuu","flexiti","forte","getnet","gigadat","givepayments","globalpay","globepay","gocardless","helcim","hipay","hyperpg","iatapay","imerchantsolutions","inespay","interpayments","itaubank","jpmorgan","juspaythreedsserver","klarna","loonio","mifinity","mollie","moneris","multisafepay","netcetera","nexinets","nexixpay","nmi","nomupay","noon","nordea","novalnet","nuvei","opennode","paybox","payconex","payjustnow","payjustnowinstore","payload","payme","payone","paypal","paysafe","paystack","paytm","payu","peachpayments","phonepe","placetopay","plaid","powertranz","prophetpay","rapyd","razorpay","recurly","redsys","revolv3","riskified","santander","shift4","signifyd","silverflow","square","stax","stripe","stripebilling","tesouro","threedsecureio","tokenio","truelayer","trustly","trustpay","trustpayments","tsys","tsys_transit","vgs","volt","wellsfargo","wise","worldline","worldpay","worldpaymodular","worldpayvantiv","worldpayxml","xendit","zen","zift","zsl"];function Kp(t,e=[],n=[]){const r=new Set(e.filter(Boolean)),a=cEe();if(a){const o=new Set(n.filter(Boolean));return a.filter(l=>!o.has(l.merchant_connector_id)).map(l=>({name:l.connector_name,gatewayId:l.merchant_connector_id}))}const s=new Set;return[...t,...H4e].filter(o=>!o||r.has(o)||s.has(o)?!1:(s.add(o),!0)).map(o=>({name:o}))}function uO(t,e){const n=t.toLowerCase(),r=e.toLowerCase();if(!n)return 0;if(r.startsWith(n))return 1e3-r.length;let a=0,s=0,o=-1,l=0;for(let c=0;c({item:n,score:uO(t,n)})).filter(n=>n.score!==null).sort((n,r)=>r.score-n.score).map(n=>n.item):e}const G4e={"==":"=","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in",not_in:"not in"},q4e={"=":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"in","not in":"not_in"};function Qg(t){return Array.isArray(t.value)?`${t.lhs} in [${t.value.join(", ")}]`:`${t.metadataKey?`${t.lhs}.${t.metadataKey}`:t.lhs} ${G4e[t.operator]??t.operator} ${t.value}`}function d6(t){const e=t.conditions.map(Qg).join(" and ");return t.conditions.length>1?`(${e})`:e}function K4e(t){const e=[];if(t.conditions.length===0&&t.nested.length>0){const n=t.nested[0].conditions;e.push(n.length>1?`(${n.map(Qg).join(" and ")})`:n.length===1?Qg(n[0]):"");const r=t.nested.slice(1);return r.length>0&&e.push(`and (${r.map(d6).join(" or ")})`),e.filter(Boolean)}return t.conditions.forEach((n,r)=>e.push(r===0?Qg(n):`and ${Qg(n)}`)),t.nested.length>0&&e.push(`and (${t.nested.map(d6).join(" or ")})`),e}function Y4e(t){return t.map(e=>{const n=[];if(e.statements.forEach((r,a)=>{a>0&&n.push("or"),K4e(r).forEach(s=>n.push(s))}),e.outputType==="priority"){const r=e.priorityGateways.map(a=>a.gatewayId?`${a.gatewayName}(${a.gatewayId})`:a.gatewayName).join(", ");n.push(`=> priority: ${r}`)}else if(e.outputType==="volume_split"){const r=e.volumeSplitEntries.map(a=>`${a.split}% ${a.gatewayName}${a.gatewayId?`(${a.gatewayId})`:""}`).join(", ");n.push(`=> volume_split: ${r}`)}else{const r=e.volumeSplitPriorityEntries.map(a=>`${a.split}% [${a.gateways.map(s=>s.gatewayId?`${s.gatewayName}(${s.gatewayId})`:s.gatewayName).join(", ")}]`).join(", ");n.push(`=> volume_split_priority: ${r}`)}return n.join(` -`)}).join(` - -`)}class Ed extends Error{}function T_(t){if(t=t.trim(),!t)return null;const e=/^(\w+)\s+in\s+\[([^\]]*)\]$/.exec(t);if(e){const a=e[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Ed(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:e[1],operator:"in",value:a}}const n=/^(\w+)\s+not\s+in\s+\[([^\]]*)\]$/.exec(t);if(n){const a=n[2].split(",").map(s=>s.trim()).filter(Boolean);if(a.length===0)throw new Ed(`Empty value list in condition: "${t}"`);return{id:crypto.randomUUID(),lhs:n[1],operator:"not_in",value:a}}const r=/^([\w.]+)\s*(>=|<=|!=|>|<|=)\s*(.+)$/.exec(t);if(r){const a=r[3].trim();if(!a)throw new Ed(`Empty value in condition: "${t}"`);const s=r[1],o=s.indexOf("."),l=o>=0?s.slice(0,o):s,c=o>=0?s.slice(o+1):void 0;return{id:crypto.randomUUID(),lhs:l,operator:q4e[r[2]]??r[2],value:a,metadataKey:c}}throw new Ed(`Invalid condition syntax: "${t}"`)}function P_(t,e){const n=[];let r=0,a=0;for(let s=0;s0)continue;const o=e.exec(t.slice(s));o&&o.index===0&&(n.push(t.slice(a,s).trim()),s+=o[0].length-1,a=s+1)}return n.push(t.slice(a).trim()),n.filter(Boolean)}function R_(t){return t=t.trim(),t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1).trim():t}function X4e(t){const e=[],n=[];for(const r of t.split(` -`)){const a=r.trim();if(!a||a.startsWith("#"))continue;const s=a.replace(/^(?:and|or)\s+/i,"").trim();if(s.startsWith("(")&&s.endsWith(")"))if(e.length===0&&n.length===0)for(const o of P_(s.slice(1,-1),/^\s+and\s+/i))try{const l=T_(R_(o));l&&e.push(l)}catch(l){if(l instanceof Ed)return{group:null,error:l.message};throw l}else for(const o of P_(s.slice(1,-1),/^\s+or\s+/i)){const l=[];for(const c of P_(R_(o),/^\s+and\s+/i))try{const u=T_(R_(c));u&&l.push(u)}catch(u){if(u instanceof Ed)return{group:null,error:u.message};throw u}l.length&&n.push({id:crypto.randomUUID(),conditions:l,nested:[]})}else try{const o=T_(s);o&&e.push(o)}catch(o){if(o instanceof Ed)return{group:null,error:o.message};throw o}}return{group:{id:crypto.randomUUID(),conditions:e,nested:n},error:null}}function J4e(t){let e=!0;for(const n of t.split(` -`)){const r=n.trim();if(!(!r||r.startsWith("#"))){if(/^or$/i.test(r)){e=!0;continue}if(!/^and$/i.test(r)){if(e){e=!1;continue}if(!/^(?:and|or)\s+/i.test(r))return`Missing 'and' or 'or' before: "${r.length>40?r.slice(0,40)+"…":r}"`}}}return null}function Z4e(t){const e=[];let n=0,r=0,a="";for(let s=0;s0)continue;const o=/^(\s+)(and|or)(\s+)/i.exec(t.slice(s));o&&(e.push({sep:a,text:t.slice(r,s).trim()}),a=o[2].toLowerCase(),s+=o[0].length-1,r=s+1)}return e.push({sep:a,text:t.slice(r).trim()}),e.filter(s=>s.text)}function Q4e(t){return t.split(` -`).flatMap(e=>{const n=e.trim();if(!n||n.startsWith("#")||/^=>/.test(n)||/^(?:and|or)(?:\s|$)/i.test(n))return[e];const r=Z4e(n);return r.length<=1?[e]:r.map((a,s)=>s===0?a.text:`${a.sep} ${a.text}`)}).join(` -`)}function eDe(t){const e=[],n=t.split(/\n\s*\n/).map(r=>r.trim()).filter(Boolean);for(let r=0;r");if(s===-1)continue;const o=Q4e(a.slice(0,s).trim()),l=J4e(o);if(l)return{rules:null,error:`Rule ${r+1}: ${l}`};const c=a.slice(s+2).trim();let u="priority",d=[],f=[];const h=[];if(c.startsWith("priority:")){u="priority";const x=c.slice(9).trim();d=x?x.split(",").flatMap(v=>{const b=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(v.trim());return b&&b[1]?[{id:crypto.randomUUID(),gatewayName:b[1],gatewayId:b[2]??""}]:[]}):[]}else if(c.startsWith("volume_split:")){u="volume_split";const x=c.slice(13).trim();f=x?x.split(",").flatMap(v=>{const b=/^(\d+)%\s+([^\s(]+)(?:\(([^)]*)\))?$/.exec(v.trim());return b?[{id:crypto.randomUUID(),split:Number(b[1]),gatewayName:b[2],gatewayId:b[3]??""}]:[]}):[]}else if(c.startsWith("volume_split_priority:")){u="volume_split_priority";const x=c.slice(22).trim(),v=/(\d+)%\s*\[([^\]]*)\]/g;let b;for(;(b=v.exec(x))!==null;){const y=b[2].split(",").map(w=>w.trim()).filter(Boolean).map(w=>{const j=/^([^\s(]+)(?:\(([^)]*)\))?$/.exec(w);return{id:crypto.randomUUID(),gatewayName:(j==null?void 0:j[1])??w,gatewayId:(j==null?void 0:j[2])??""}});h.push({id:crypto.randomUUID(),split:Number(b[1]),gateways:y})}}else return{rules:null,error:`Rule ${r+1}: output must start with priority:, volume_split:, or volume_split_priority:`};if(u==="priority"&&d.length===0)return{rules:null,error:`Rule ${r+1}: priority output must have at least one gateway`};if(u==="volume_split"&&f.length===0)return{rules:null,error:`Rule ${r+1}: volume_split output must have at least one gateway`};if(u==="volume_split_priority"&&h.length===0)return{rules:null,error:`Rule ${r+1}: volume_split_priority output must have at least one gateway`};const p=o.replace(/^([ \t]*)or\s+(?=\S)/gim,`$1or -$1`),m=[];for(const x of p.split(/^[ \t]*or[ \t]*$/im)){const{group:v,error:b}=X4e(x.trim());if(b)return{rules:null,error:`Rule ${r+1}: ${b}`};v&&(v.conditions.length>0||v.nested.length>0)&&m.push(v)}m.length||m.push({id:crypto.randomUUID(),conditions:[],nested:[]}),e.push({id:crypto.randomUUID(),name:`Rule ${e.length+1}`,statements:m,outputType:u,priorityGateways:d,volumeSplitEntries:f,volumeSplitPriorityEntries:h})}return{rules:e,error:null}}const KK=`currency in [EUR, GBP] -and amount > 100 -and (payment_method = card or card_type = credit) -=> priority: adyen - -currency = USD -=> volume_split: 70% stripe, 30% adyen`,tDe=qT.define({startState:()=>({}),token(t){return t.eatSpace()?null:t.match(/^#.*/)?"comment":t.match("=>")?"meta":t.match(/^(?:and|or|not)\b/i)||t.match(/^in\b/i)?"keyword":t.match(/^(?:volume_split_priority|volume_split|priority)(?=\s*:)/)?"typeName":t.match(/^(?:!=|>=|<=|>|<|=)/)?"operator":t.match(/^\d+/)?"number":t.match(/^[[\]%,:]/)?"punctuation":t.match(/^\w+/)?"variableName":(t.next(),null)}}),YK=t=>[{tag:oe.keyword,color:t?"#a78bfa":"#7c3aed",fontWeight:"600"},{tag:oe.meta,color:t?"#fbbf24":"#d97706",fontWeight:"700"},{tag:oe.typeName,color:t?"#34d399":"#059669",fontWeight:"600"},{tag:oe.operator,color:t?"#60a5fa":"#2563eb"},{tag:oe.number,color:t?"#fbbf24":"#b45309"},{tag:oe.punctuation,color:"#64748b"},{tag:oe.comment,color:t?"#4e5870":"#94a3b8",fontStyle:"italic"},{tag:oe.variableName,color:t?"#cbd5e1":"#1e293b"}],nDe=GK({styles:YK(!1)}),rDe=qK({styles:YK(!0)}),aDe=/\w+\s+(?:(?:in|not\s+in)\s*\[[^\]]+\]|(?:=|!=|>=|<=|>|<)\s+\S+)\s*$/;function sDe(t,e,n,r){var m,x,v;const a=t.slice(0,e).split(` -`),s=a[a.length-1],o=a.length>=2?a[a.length-2].trim():"";if(!s.trim())return aDe.test(o)||/^or$/i.test(o)?["and","and (","or","or (","=>"]:[];const l=s.includes("]")?s.slice(s.lastIndexOf("]")+1):s;if(s.includes("]")&&!l.trim())return["and","and (","or","or (","=>"];const c=l.trimStart().replace(/^(?:and|or)\s+/i,"").replace(/^\(/,"");if(!c)return Object.keys(n).slice(0,12);if(/\)\s*$/.test(c))return["and","or","or (","=>"];const u=/=>\s*(\w*)$/.exec(s);if(u){const b=r[0]??"gateway_name",y=r[1]??"gateway_name",w=[`priority: ${b}`,`volume_split: 70% ${b}, 30% ${y}`];return u[1]?w.sort((j,k)=>(uO(u[1],k)??-1/0)-(uO(u[1],j)??-1/0)):w}if(/=>\s*(?:priority|volume_split(?:_priority)?):/.test(s)){const b=/(\w*)$/.exec(s);return _g((b==null?void 0:b[1])??"",Kp(r).map(y=>y.name)).slice(0,10)}const d=/(\w+)\s+(?:in|not\s+in)\s*\[(?:[^\]]*,\s*)?(\w*)$/.exec(c);if(d){const b=((m=n[d[1]])==null?void 0:m.values)??[],y=/\[([^\]]*)$/.exec(c),w=y?y[1].split(",").map(j=>j.trim()).filter(Boolean):[];return _g(d[2],b.filter(j=>!w.includes(j))).slice(0,12)}const f=/(\w+)\s+(?:>=|<=|!=|>|<|=)\s*(\w*)$/.exec(c);if(f)return _g(f[2],((x=n[f[1]])==null?void 0:x.values)??[]).slice(0,12);const h=/^(\w+)\s+(\w*)$/.exec(c);if(h&&n[h[1]]){const y=((v=n[h[1]])==null?void 0:v.type)==="integer"?["=","!=",">","<",">=","<="]:["=","!=","in [","not in ["];return _g(h[2],y)}if(/\)\s*$/.test(c))return["and","or","or (","=>"];const p=/(\w+)$/.exec(c);return p&&p[1].length>=1?_g(p[1],["and","and (","or","or (","=>",...Object.keys(n)]).slice(0,12):[]}function iDe(t,e){return n=>{const r=n.state.doc.toString(),a=n.pos,s=sDe(r,a,t.current??{},e.current??[]);if(!s.length)return null;const o=r.slice(0,a),l=/(\w+)$/.exec(o);return{from:l?a-l[0].length:a,options:s.map(u=>({label:u,apply(d,f,h,p){const m=d.state.doc.toString(),x=m.slice(p),v=/^\w+/.exec(x);let b=v?p+v[0].length:p;u.includes(":")&&(b=d.state.doc.lineAt(p).to);const y=m.slice(b);let w,j;if(u.endsWith("["))w=u+"]",j=h+u.length;else if(u.endsWith("("))w=u+")",j=h+u.length;else{const k=!u.endsWith(":")&&!/^\s/.test(y);w=u+(k?" ":""),j=h+w.length}d.dispatch({changes:{from:h,to:b,insert:w},selection:{anchor:j}}),setTimeout(()=>Yh(d),0)}})),validFor:/^\w*$/}}}function oDe(t){return p4e(e=>{var u;const n=t.current;if(!n)return[];const r=e.state.doc.toString(),a=/Rule (\d+)/.exec(n),s=a?parseInt(a[1],10)-1:0,o=r.split(/\n\s*\n/);let l=0;for(let d=0;d ul":{maxHeight:"220px",borderRadius:"8px",overflowY:"auto"},".cm-tooltip.cm-tooltip-autocomplete > ul > li":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",padding:"4px 12px"},".cm-diagnostic":{padding:"2px 4px",borderRadius:"3px"}});function cDe({value:t,onChange:e,parseError:n,routingKeys:r,gatewaySuggestions:a}){const[s,o]=g.useState(()=>document.documentElement.classList.contains("dark")),l=g.useRef(r),c=g.useRef(a),u=g.useRef(n),d=g.useRef(null);g.useEffect(()=>{l.current=r},[r]),g.useEffect(()=>{c.current=a},[a]),g.useEffect(()=>{u.current=n,d.current&&m4e(d.current)},[n]),g.useEffect(()=>{const p=new MutationObserver(()=>o(document.documentElement.classList.contains("dark")));return p.observe(document.documentElement,{attributeFilter:["class"]}),()=>p.disconnect()},[]);const h=g.useMemo(()=>[tDe,iq(KK),IK({override:[iDe(l,c)],activateOnTyping:!0,closeOnBlur:!0}),oDe(u),Ue.lineWrapping,lDe,Ue.domEventHandlers({click:(p,m)=>(Yh(m),!1)}),Ue.updateListener.of(p=>{if(p.docChanged)for(const m of p.transactions)m.changes.iterChanges((x,v,b,y,w)=>{const j=w.toString();(j===" "||j===` -`)&&Yh(p.view)})})],[]);return i.jsxs("div",{children:[i.jsx(WK,{value:t,onChange:p=>e(p),onCreateEditor:p=>{d.current=p},theme:s?rDe:nDe,extensions:h,basicSetup:{lineNumbers:!1,foldGutter:!1,autocompletion:!1,highlightActiveLine:!1,highlightSelectionMatches:!1,closeBrackets:!0,bracketMatching:!0,indentOnInput:!1,searchKeymap:!1},className:`rounded-xl border overflow-hidden ${n?"border-red-400 dark:border-red-500":"border-slate-200 dark:border-[#222226]"}`}),n?i.jsx("p",{className:"mt-1.5 text-xs text-red-600 font-medium",children:n}):i.jsxs("p",{className:"mt-1.5 text-[11px] text-slate-500 leading-4",children:["Tab / Enter to complete · ↑↓ navigate · ",i.jsx("code",{className:"font-mono",children:"or"})," on its own line starts an OR group"]})]})}function uDe(){for(var t=arguments.length,e=new Array(t),n=0;nr=>{e.forEach(a=>a(r))},e)}const i2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Cm(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function cP(t){return"nodeType"in t}function Ys(t){var e,n;return t?Cm(t)?t:cP(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function uP(t){const{Document:e}=Ys(t);return t instanceof e}function Dy(t){return Cm(t)?!1:t instanceof Ys(t).HTMLElement}function XK(t){return t instanceof Ys(t).SVGElement}function Em(t){return t?Cm(t)?t.document:cP(t)?uP(t)?t:Dy(t)||XK(t)?t.ownerDocument:document:document:document}const vl=i2?g.useLayoutEffect:g.useEffect;function dP(t){const e=g.useRef(t);return vl(()=>{e.current=t}),g.useCallback(function(){for(var n=arguments.length,r=new Array(n),a=0;a{t.current=setInterval(r,a)},[]),n=g.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function ny(t,e){e===void 0&&(e=[t]);const n=g.useRef(t);return vl(()=>{n.current!==t&&(n.current=t)},e),n}function Iy(t,e){const n=g.useRef();return g.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function hk(t){const e=dP(t),n=g.useRef(null),r=g.useCallback(a=>{a!==n.current&&(e==null||e(a,n.current)),n.current=a},[]);return[n,r]}function dO(t){const e=g.useRef();return g.useEffect(()=>{e.current=t},[t]),e.current}let M_={};function $y(t,e){return g.useMemo(()=>{if(e)return e;const n=M_[t]==null?0:M_[t]+1;return M_[t]=n,t+"-"+n},[t,e])}function JK(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a{const l=Object.entries(o);for(const[c,u]of l){const d=s[c];d!=null&&(s[c]=d+t*u)}return s},{...e})}}const Xh=JK(1),ry=JK(-1);function fDe(t){return"clientX"in t&&"clientY"in t}function fP(t){if(!t)return!1;const{KeyboardEvent:e}=Ys(t.target);return e&&t instanceof e}function hDe(t){if(!t)return!1;const{TouchEvent:e}=Ys(t.target);return e&&t instanceof e}function fO(t){if(hDe(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return fDe(t)?{x:t.clientX,y:t.clientY}:null}const ay=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[ay.Translate.toString(t),ay.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),f6="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function pDe(t){return t.matches(f6)?t:t.querySelector(f6)}const mDe={display:"none"};function gDe(t){let{id:e,value:n}=t;return H.createElement("div",{id:e,style:mDe},n)}function xDe(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const a={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return H.createElement("div",{id:e,style:a,role:"status","aria-live":r,"aria-atomic":!0},n)}function yDe(){const[t,e]=g.useState("");return{announce:g.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const ZK=g.createContext(null);function vDe(t){const e=g.useContext(ZK);g.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function bDe(){const[t]=g.useState(()=>new Set),e=g.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[g.useCallback(r=>{let{type:a,event:s}=r;t.forEach(o=>{var l;return(l=o[a])==null?void 0:l.call(o,s)})},[t]),e]}const wDe={draggable:` - To pick up a draggable item, press the space bar. - While dragging, use the arrow keys to move the item. - Press space again to drop the item in its new position, or press escape to cancel. - `},kDe={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function jDe(t){let{announcements:e=kDe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:a=wDe}=t;const{announce:s,announcement:o}=yDe(),l=$y("DndLiveRegion"),[c,u]=g.useState(!1);if(g.useEffect(()=>{u(!0)},[]),vDe(g.useMemo(()=>({onDragStart(f){let{active:h}=f;s(e.onDragStart({active:h}))},onDragMove(f){let{active:h,over:p}=f;e.onDragMove&&s(e.onDragMove({active:h,over:p}))},onDragOver(f){let{active:h,over:p}=f;s(e.onDragOver({active:h,over:p}))},onDragEnd(f){let{active:h,over:p}=f;s(e.onDragEnd({active:h,over:p}))},onDragCancel(f){let{active:h,over:p}=f;s(e.onDragCancel({active:h,over:p}))}}),[s,e])),!c)return null;const d=H.createElement(H.Fragment,null,H.createElement(gDe,{id:r,value:a.draggable}),H.createElement(xDe,{id:l,announcement:o}));return n?gs.createPortal(d,n):d}var Zr;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(Zr||(Zr={}));function pk(){}function h6(t,e){return g.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function SDe(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const Co=Object.freeze({x:0,y:0});function QK(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function eY(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function _De(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function p6(t){let{left:e,top:n,height:r,width:a}=t;return[{x:e,y:n},{x:e+a,y:n},{x:e,y:n+r},{x:e+a,y:n+r}]}function tY(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function m6(t,e,n){return e===void 0&&(e=t.left),n===void 0&&(n=t.top),{x:e+t.width*.5,y:n+t.height*.5}}const NDe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=m6(e,e.left,e.top),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=QK(m6(c),a);s.push({id:l,data:{droppableContainer:o,value:u}})}}return s.sort(eY)},CDe=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=p6(e),s=[];for(const o of r){const{id:l}=o,c=n.get(l);if(c){const u=p6(c),d=a.reduce((h,p,m)=>h+QK(u[m],p),0),f=Number((d/4).toFixed(4));s.push({id:l,data:{droppableContainer:o,value:f}})}}return s.sort(eY)};function EDe(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),a=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=a-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const a=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const c=EDe(l,e);c>0&&a.push({id:o,data:{droppableContainer:s,value:c}})}}return a.sort(_De)};function ODe(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function nY(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:Co}function TDe(t){return function(n){for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const PDe=TDe(1);function RDe(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function MDe(t,e,n){const r=RDe(e);if(!r)return t;const{scaleX:a,scaleY:s,x:o,y:l}=r,c=t.left-o-(1-a)*parseFloat(n),u=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),d=a?t.width/a:t.width,f=s?t.height/s:t.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const DDe={ignoreTransform:!1};function Am(t,e){e===void 0&&(e=DDe);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:u,transformOrigin:d}=Ys(t).getComputedStyle(t);u&&(n=MDe(n,u,d))}const{top:r,left:a,width:s,height:o,bottom:l,right:c}=n;return{top:r,left:a,width:s,height:o,bottom:l,right:c}}function g6(t){return Am(t,{ignoreTransform:!0})}function IDe(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function $De(t,e){return e===void 0&&(e=Ys(t).getComputedStyle(t)),e.position==="fixed"}function LDe(t,e){e===void 0&&(e=Ys(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(a=>{const s=e[a];return typeof s=="string"?n.test(s):!1})}function o2(t,e){const n=[];function r(a){if(e!=null&&n.length>=e||!a)return n;if(uP(a)&&a.scrollingElement!=null&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!Dy(a)||XK(a)||n.includes(a))return n;const s=Ys(t).getComputedStyle(a);return a!==t&&LDe(a,s)&&n.push(a),$De(a,s)?n:r(a.parentNode)}return t?r(t):n}function rY(t){const[e]=o2(t,1);return e??null}function D_(t){return!i2||!t?null:Cm(t)?t:cP(t)?uP(t)||t===Em(t).scrollingElement?window:Dy(t)?t:null:null}function aY(t){return Cm(t)?t.scrollX:t.scrollLeft}function sY(t){return Cm(t)?t.scrollY:t.scrollTop}function hO(t){return{x:aY(t),y:sY(t)}}var ga;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(ga||(ga={}));function iY(t){return!i2||!t?!1:t===document.scrollingElement}function oY(t){const e={x:0,y:0},n=iY(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},a=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:a,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const FDe={x:.2,y:.2};function BDe(t,e,n,r,a){let{top:s,left:o,right:l,bottom:c}=n;r===void 0&&(r=10),a===void 0&&(a=FDe);const{isTop:u,isBottom:d,isLeft:f,isRight:h}=oY(t),p={x:0,y:0},m={x:0,y:0},x={height:e.height*a.y,width:e.width*a.x};return!u&&s<=e.top+x.height?(p.y=ga.Backward,m.y=r*Math.abs((e.top+x.height-s)/x.height)):!d&&c>=e.bottom-x.height&&(p.y=ga.Forward,m.y=r*Math.abs((e.bottom-x.height-c)/x.height)),!h&&l>=e.right-x.width?(p.x=ga.Forward,m.x=r*Math.abs((e.right-x.width-l)/x.width)):!f&&o<=e.left+x.width&&(p.x=ga.Backward,m.x=r*Math.abs((e.left+x.width-o)/x.width)),{direction:p,speed:m}}function zDe(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:a}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:a,width:t.clientWidth,height:t.clientHeight}}function lY(t){return t.reduce((e,n)=>Xh(e,hO(n)),Co)}function UDe(t){return t.reduce((e,n)=>e+aY(n),0)}function VDe(t){return t.reduce((e,n)=>e+sY(n),0)}function WDe(t,e){if(e===void 0&&(e=Am),!t)return;const{top:n,left:r,bottom:a,right:s}=e(t);rY(t)&&(a<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const HDe=[["x",["left","right"],UDe],["y",["top","bottom"],VDe]];class hP{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=o2(n),a=lY(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of HDe)for(const c of o)Object.defineProperty(this,c,{get:()=>{const u=l(r),d=a[s]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Ax{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var a;(a=this.target)==null||a.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function GDe(t){const{EventTarget:e}=Ys(t);return t instanceof e?t:Em(t)}function I_(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var Ei;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(Ei||(Ei={}));function x6(t){t.preventDefault()}function qDe(t){t.stopPropagation()}var Yt;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(Yt||(Yt={}));const cY={start:[Yt.Space,Yt.Enter],cancel:[Yt.Esc],end:[Yt.Space,Yt.Enter,Yt.Tab]},KDe=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case Yt.Right:return{...n,x:n.x+25};case Yt.Left:return{...n,x:n.x-25};case Yt.Down:return{...n,y:n.y+25};case Yt.Up:return{...n,y:n.y-25}}};class pP{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Ax(Em(n)),this.windowListeners=new Ax(Ys(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Ei.Resize,this.handleCancel),this.windowListeners.add(Ei.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Ei.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&WDe(r),n(Co)}handleKeyDown(e){if(fP(e)){const{active:n,context:r,options:a}=this.props,{keyboardCodes:s=cY,coordinateGetter:o=KDe,scrollBehavior:l="smooth"}=a,{code:c}=e;if(s.end.includes(c)){this.handleEnd(e);return}if(s.cancel.includes(c)){this.handleCancel(e);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:Co;this.referenceCoordinates||(this.referenceCoordinates=d);const f=o(e,{active:n,context:r.current,currentCoordinates:d});if(f){const h=ry(f,d),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const x of m){const v=e.code,{isTop:b,isRight:y,isLeft:w,isBottom:j,maxScroll:k,minScroll:S}=oY(x),_=zDe(x),C={x:Math.min(v===Yt.Right?_.right-_.width/2:_.right,Math.max(v===Yt.Right?_.left:_.left+_.width/2,f.x)),y:Math.min(v===Yt.Down?_.bottom-_.height/2:_.bottom,Math.max(v===Yt.Down?_.top:_.top+_.height/2,f.y))},E=v===Yt.Right&&!y||v===Yt.Left&&!w,P=v===Yt.Down&&!j||v===Yt.Up&&!b;if(E&&C.x!==f.x){const R=x.scrollLeft+h.x,A=v===Yt.Right&&R<=k.x||v===Yt.Left&&R>=S.x;if(A&&!h.y){x.scrollTo({left:R,behavior:l});return}A?p.x=x.scrollLeft-R:p.x=v===Yt.Right?x.scrollLeft-k.x:x.scrollLeft-S.x,p.x&&x.scrollBy({left:-p.x,behavior:l});break}else if(P&&C.y!==f.y){const R=x.scrollTop+h.y,A=v===Yt.Down&&R<=k.y||v===Yt.Up&&R>=S.y;if(A&&!h.x){x.scrollTo({top:R,behavior:l});return}A?p.y=x.scrollTop-R:p.y=v===Yt.Down?x.scrollTop-k.y:x.scrollTop-S.y,p.y&&x.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,Xh(ry(f,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}pP.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=cY,onActivation:a}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),a==null||a({event:t.nativeEvent}),!0)}return!1}}];function y6(t){return!!(t&&"distance"in t)}function v6(t){return!!(t&&"delay"in t)}class mP{constructor(e,n,r){var a;r===void 0&&(r=GDe(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=Em(o),this.documentListeners=new Ax(this.document),this.listeners=new Ax(r),this.windowListeners=new Ax(Ys(o)),this.initialCoordinates=(a=fO(s))!=null?a:Co,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Ei.Resize,this.handleCancel),this.windowListeners.add(Ei.DragStart,x6),this.windowListeners.add(Ei.VisibilityChange,this.handleCancel),this.windowListeners.add(Ei.ContextMenu,x6),this.documentListeners.add(Ei.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(v6(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(y6(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:a}=this.props;a(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(Ei.Click,qDe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Ei.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:a,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!a)return;const c=(n=fO(e))!=null?n:Co,u=ry(a,c);if(!r&&l){if(y6(l)){if(l.tolerance!=null&&I_(u,l.tolerance))return this.handleCancel();if(I_(u,l.distance))return this.handleStart()}if(v6(l)&&I_(u,l.tolerance))return this.handleCancel();this.handlePending(l,u);return}e.cancelable&&e.preventDefault(),o(c)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===Yt.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const YDe={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class gP extends mP{constructor(e){const{event:n}=e,r=Em(n.target);super(e,YDe,r)}}gP.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const XDe={move:{name:"mousemove"},end:{name:"mouseup"}};var pO;(function(t){t[t.RightClick=2]="RightClick"})(pO||(pO={}));class JDe extends mP{constructor(e){super(e,XDe,Em(e.event.target))}}JDe.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===pO.RightClick?!1:(r==null||r({event:n}),!0)}}];const $_={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class ZDe extends mP{constructor(e){super(e,$_)}static setup(){return window.addEventListener($_.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener($_.move.name,e)};function e(){}}}ZDe.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:a}=n;return a.length>1?!1:(r==null||r({event:n}),!0)}}];var Ox;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})(Ox||(Ox={}));var mk;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(mk||(mk={}));function QDe(t){let{acceleration:e,activator:n=Ox.Pointer,canScroll:r,draggingRect:a,enabled:s,interval:o=5,order:l=mk.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:h}=t;const p=tIe({delta:f,disabled:!s}),[m,x]=dDe(),v=g.useRef({x:0,y:0}),b=g.useRef({x:0,y:0}),y=g.useMemo(()=>{switch(n){case Ox.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ox.DraggableRect:return a}},[n,a,c]),w=g.useRef(null),j=g.useCallback(()=>{const S=w.current;if(!S)return;const _=v.current.x*b.current.x,C=v.current.y*b.current.y;S.scrollBy(_,C)},[]),k=g.useMemo(()=>l===mk.TreeOrder?[...u].reverse():u,[l,u]);g.useEffect(()=>{if(!s||!u.length||!y){x();return}for(const S of k){if((r==null?void 0:r(S))===!1)continue;const _=u.indexOf(S),C=d[_];if(!C)continue;const{direction:E,speed:P}=BDe(S,C,y,e,h);for(const R of["x","y"])p[R][E[R]]||(P[R]=0,E[R]=0);if(P.x>0||P.y>0){x(),w.current=S,m(j,o),v.current=P,b.current=E;return}}v.current={x:0,y:0},b.current={x:0,y:0},x()},[e,j,r,x,s,o,JSON.stringify(y),JSON.stringify(p),m,u,k,d,JSON.stringify(h)])}const eIe={x:{[ga.Backward]:!1,[ga.Forward]:!1},y:{[ga.Backward]:!1,[ga.Forward]:!1}};function tIe(t){let{delta:e,disabled:n}=t;const r=dO(e);return Iy(a=>{if(n||!r||!a)return eIe;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[ga.Backward]:a.x[ga.Backward]||s.x===-1,[ga.Forward]:a.x[ga.Forward]||s.x===1},y:{[ga.Backward]:a.y[ga.Backward]||s.y===-1,[ga.Forward]:a.y[ga.Forward]||s.y===1}}},[n,e,r])}function nIe(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Iy(a=>{var s;return e==null?null:(s=r??a)!=null?s:null},[r,e])}function rIe(t,e){return g.useMemo(()=>t.reduce((n,r)=>{const{sensor:a}=r,s=a.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var sy;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(sy||(sy={}));var mO;(function(t){t.Optimized="optimized"})(mO||(mO={}));const b6=new Map;function aIe(t,e){let{dragging:n,dependencies:r,config:a}=e;const[s,o]=g.useState(null),{frequency:l,measure:c,strategy:u}=a,d=g.useRef(t),f=v(),h=ny(f),p=g.useCallback(function(b){b===void 0&&(b=[]),!h.current&&o(y=>y===null?b:y.concat(b.filter(w=>!y.includes(w))))},[h]),m=g.useRef(null),x=Iy(b=>{if(f&&!n)return b6;if(!b||b===b6||d.current!==t||s!=null){const y=new Map;for(let w of t){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){y.set(w.id,w.rect.current);continue}const j=w.node.current,k=j?new hP(c(j),j):null;w.rect.current=k,k&&y.set(w.id,k)}return y}return b},[t,s,n,f,c]);return g.useEffect(()=>{d.current=t},[t]),g.useEffect(()=>{f||p()},[n,f]),g.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),g.useEffect(()=>{f||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,f,p,...r]),{droppableRects:x,measureDroppableContainers:p,measuringScheduled:s!=null};function v(){switch(u){case sy.Always:return!1;case sy.BeforeDragging:return n;default:return!n}}}function uY(t,e){return Iy(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function sIe(t,e){return uY(t,e)}function iIe(t){let{callback:e,disabled:n}=t;const r=dP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function l2(t){let{callback:e,disabled:n}=t;const r=dP(e),a=g.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return g.useEffect(()=>()=>a==null?void 0:a.disconnect(),[a]),a}function oIe(t){return new hP(Am(t),t)}function w6(t,e,n){e===void 0&&(e=oIe);const[r,a]=g.useState(null);function s(){a(c=>{if(!t)return null;if(t.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=e(t);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const o=iIe({callback(c){if(t)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(t)){s();break}}}}),l=l2({callback:s});return vl(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function lIe(t){const e=uY(t);return nY(t,e)}const k6=[];function cIe(t){const e=g.useRef(t),n=Iy(r=>t?r&&r!==k6&&t&&e.current&&t.parentNode===e.current.parentNode?r:o2(t):k6,[t]);return g.useEffect(()=>{e.current=t},[t]),n}function uIe(t){const[e,n]=g.useState(null),r=g.useRef(t),a=g.useCallback(s=>{const o=D_(s.target);o&&n(l=>l?(l.set(o,hO(o)),new Map(l)):null)},[]);return g.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(c=>{const u=D_(c);return u?(u.addEventListener("scroll",a,{passive:!0}),[u,hO(u)]):null}).filter(c=>c!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(c=>{const u=D_(c);u==null||u.removeEventListener("scroll",a)})}},[a,t]),g.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>Xh(s,o),Co):lY(t):Co,[t,e])}function j6(t,e){e===void 0&&(e=[]);const n=g.useRef(null);return g.useEffect(()=>{n.current=null},e),g.useEffect(()=>{const r=t!==Co;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?ry(t,n.current):Co}function dIe(t){g.useEffect(()=>{if(!i2)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function fIe(t,e){return g.useMemo(()=>t.reduce((n,r)=>{let{eventName:a,handler:s}=r;return n[a]=o=>{s(o,e)},n},{}),[t,e])}function dY(t){return g.useMemo(()=>t?IDe(t):null,[t])}const S6=[];function hIe(t,e){e===void 0&&(e=Am);const[n]=t,r=dY(n?Ys(n):null),[a,s]=g.useState(S6);function o(){s(()=>t.length?t.map(c=>iY(c)?r:new hP(e(c),c)):S6)}const l=l2({callback:o});return vl(()=>{l==null||l.disconnect(),o(),t.forEach(c=>l==null?void 0:l.observe(c))},[t]),a}function pIe(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Dy(e)?e:t}function mIe(t){let{measure:e}=t;const[n,r]=g.useState(null),a=g.useCallback(u=>{for(const{target:d}of u)if(Dy(d)){r(f=>{const h=e(d);return f?{...f,width:h.width,height:h.height}:h});break}},[e]),s=l2({callback:a}),o=g.useCallback(u=>{const d=pIe(u);s==null||s.disconnect(),d&&(s==null||s.observe(d)),r(d?e(d):null)},[e,s]),[l,c]=hk(o);return g.useMemo(()=>({nodeRef:l,rect:n,setRef:c}),[n,l,c])}const gIe=[{sensor:gP,options:{}},{sensor:pP,options:{}}],xIe={current:{}},l1={draggable:{measure:g6},droppable:{measure:g6,strategy:sy.WhileDragging,frequency:mO.Optimized},dragOverlay:{measure:Am}};class Tx extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const yIe={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Tx,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:pk},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:l1,measureDroppableContainers:pk,windowRect:null,measuringScheduled:!1},vIe={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:pk,draggableNodes:new Map,over:null,measureDroppableContainers:pk},c2=g.createContext(vIe),fY=g.createContext(yIe);function bIe(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Tx}}}function wIe(t,e){switch(e.type){case Zr.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case Zr.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case Zr.DragEnd:case Zr.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Zr.RegisterDroppable:{const{element:n}=e,{id:r}=n,a=new Tx(t.droppable.containers);return a.set(r,n),{...t,droppable:{...t.droppable,containers:a}}}case Zr.SetDroppableDisabled:{const{id:n,key:r,disabled:a}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Tx(t.droppable.containers);return o.set(n,{...s,disabled:a}),{...t,droppable:{...t.droppable,containers:o}}}case Zr.UnregisterDroppable:{const{id:n,key:r}=e,a=t.droppable.containers.get(n);if(!a||r!==a.key)return t;const s=new Tx(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function kIe(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:a}=g.useContext(c2),s=dO(r),o=dO(n==null?void 0:n.id);return g.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!fP(s)||document.activeElement===s.target)return;const l=a.get(o);if(!l)return;const{activatorNode:c,node:u}=l;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=pDe(d);if(f){f.focus();break}}})}},[r,e,a,o,s]),null}function jIe(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((a,s)=>s({transform:a,...r}),n):n}function SIe(t){return g.useMemo(()=>({draggable:{...l1.draggable,...t==null?void 0:t.draggable},droppable:{...l1.droppable,...t==null?void 0:t.droppable},dragOverlay:{...l1.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function _Ie(t){let{activeNode:e,measure:n,initialRect:r,config:a=!0}=t;const s=g.useRef(!1),{x:o,y:l}=typeof a=="boolean"?{x:a,y:a}:a;vl(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const u=e==null?void 0:e.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=nY(d,r);if(o||(f.x=0),l||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const h=rY(u);h&&h.scrollBy({top:f.y,left:f.x})}},[e,o,l,r,n])}const hY=g.createContext({...Co,scaleX:1,scaleY:1});var Lc;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Lc||(Lc={}));const NIe=g.memo(function(e){var n,r,a,s;let{id:o,accessibility:l,autoScroll:c=!0,children:u,sensors:d=gIe,collisionDetection:f=ADe,measuring:h,modifiers:p,...m}=e;const x=g.useReducer(wIe,void 0,bIe),[v,b]=x,[y,w]=bDe(),[j,k]=g.useState(Lc.Uninitialized),S=j===Lc.Initialized,{draggable:{active:_,nodes:C,translate:E},droppable:{containers:P}}=v,R=_!=null?C.get(_):null,A=g.useRef({initial:null,translated:null}),T=g.useMemo(()=>{var mt;return _!=null?{id:_,data:(mt=R==null?void 0:R.data)!=null?mt:xIe,rect:A}:null},[_,R]),D=g.useRef(null),[L,X]=g.useState(null),[J,U]=g.useState(null),Y=ny(m,Object.values(m)),W=$y("DndDescribedBy",o),G=g.useMemo(()=>P.getEnabled(),[P]),I=SIe(h),{droppableRects:q,measureDroppableContainers:M,measuringScheduled:B}=aIe(G,{dragging:S,dependencies:[E.x,E.y],config:I.droppable}),z=nIe(C,_),Z=g.useMemo(()=>J?fO(J):null,[J]),pe=pn(),ae=sIe(z,I.draggable.measure);_Ie({activeNode:_!=null?C.get(_):null,config:pe.layoutShiftCompensation,initialRect:ae,measure:I.draggable.measure});const ue=w6(z,I.draggable.measure,ae),de=w6(z?z.parentElement:null),Q=g.useRef({activatorEvent:null,active:null,activeNode:z,collisionRect:null,collisions:null,droppableRects:q,draggableNodes:C,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),fe=P.getNodeFor((n=Q.current.over)==null?void 0:n.id),ne=mIe({measure:I.dragOverlay.measure}),ce=(r=ne.nodeRef.current)!=null?r:z,he=S?(a=ne.rect)!=null?a:ue:null,be=!!(ne.nodeRef.current&&ne.rect),Pe=lIe(be?null:ue),Ce=dY(ce?Ys(ce):null),Re=cIe(S?fe??z:null),Be=hIe(Re),st=jIe(p,{transform:{x:E.x-Pe.x,y:E.y-Pe.y,scaleX:1,scaleY:1},activatorEvent:J,active:T,activeNodeRect:ue,containerNodeRect:de,draggingNodeRect:he,over:Q.current.over,overlayNodeRect:ne.rect,scrollableAncestors:Re,scrollableAncestorRects:Be,windowRect:Ce}),F=Z?Xh(Z,E):null,se=uIe(Re),ie=j6(se),Se=j6(se,[ue]),te=Xh(st,ie),me=he?PDe(he,st):null,ve=T&&me?f({active:T,collisionRect:me,droppableRects:q,droppableContainers:G,pointerCoordinates:F}):null,Ee=tY(ve,"id"),[Oe,Tt]=g.useState(null),Bt=be?st:Xh(st,Se),Pt=ODe(Bt,(s=Oe==null?void 0:Oe.rect)!=null?s:null,ue),sn=g.useRef(null),It=g.useCallback((mt,Mt)=>{let{sensor:gt,options:Lr}=Mt;if(D.current==null)return;const zn=C.get(D.current);if(!zn)return;const mn=mt.nativeEvent,ge=new gt({active:D.current,activeNode:zn,event:mn,options:Lr,context:Q,onAbort(ft){if(!C.get(ft))return;const{onDragAbort:gn}=Y.current,zt={id:ft};gn==null||gn(zt),y({type:"onDragAbort",event:zt})},onPending(ft,Kt,gn,zt){if(!C.get(ft))return;const{onDragPending:as}=Y.current,xn={id:ft,constraint:Kt,initialCoordinates:gn,offset:zt};as==null||as(xn),y({type:"onDragPending",event:xn})},onStart(ft){const Kt=D.current;if(Kt==null)return;const gn=C.get(Kt);if(!gn)return;const{onDragStart:zt}=Y.current,un={activatorEvent:mn,active:{id:Kt,data:gn.data,rect:A}};gs.unstable_batchedUpdates(()=>{zt==null||zt(un),k(Lc.Initializing),b({type:Zr.DragStart,initialCoordinates:ft,active:Kt}),y({type:"onDragStart",event:un}),X(sn.current),U(mn)})},onMove(ft){b({type:Zr.DragMove,coordinates:ft})},onEnd:ut(Zr.DragEnd),onCancel:ut(Zr.DragCancel)});sn.current=ge;function ut(ft){return async function(){const{active:gn,collisions:zt,over:un,scrollAdjustedTranslate:as}=Q.current;let xn=null;if(gn&&as){const{cancelDrop:ia}=Y.current;xn={activatorEvent:mn,active:gn,collisions:zt,delta:as,over:un},ft===Zr.DragEnd&&typeof ia=="function"&&await Promise.resolve(ia(xn))&&(ft=Zr.DragCancel)}D.current=null,gs.unstable_batchedUpdates(()=>{b({type:ft}),k(Lc.Uninitialized),Tt(null),X(null),U(null),sn.current=null;const ia=ft===Zr.DragEnd?"onDragEnd":"onDragCancel";if(xn){const jr=Y.current[ia];jr==null||jr(xn),y({type:ia,event:xn})}})}}},[C]),xr=g.useCallback((mt,Mt)=>(gt,Lr)=>{const zn=gt.nativeEvent,mn=C.get(Lr);if(D.current!==null||!mn||zn.dndKit||zn.defaultPrevented)return;const ge={active:mn};mt(gt,Mt.options,ge)===!0&&(zn.dndKit={capturedBy:Mt.sensor},D.current=Lr,It(gt,Mt))},[C,It]),er=rIe(d,xr);dIe(d),vl(()=>{ue&&j===Lc.Initializing&&k(Lc.Initialized)},[ue,j]),g.useEffect(()=>{const{onDragMove:mt}=Y.current,{active:Mt,activatorEvent:gt,collisions:Lr,over:zn}=Q.current;if(!Mt||!gt)return;const mn={active:Mt,activatorEvent:gt,collisions:Lr,delta:{x:te.x,y:te.y},over:zn};gs.unstable_batchedUpdates(()=>{mt==null||mt(mn),y({type:"onDragMove",event:mn})})},[te.x,te.y]),g.useEffect(()=>{const{active:mt,activatorEvent:Mt,collisions:gt,droppableContainers:Lr,scrollAdjustedTranslate:zn}=Q.current;if(!mt||D.current==null||!Mt||!zn)return;const{onDragOver:mn}=Y.current,ge=Lr.get(Ee),ut=ge&&ge.rect.current?{id:ge.id,rect:ge.rect.current,data:ge.data,disabled:ge.disabled}:null,ft={active:mt,activatorEvent:Mt,collisions:gt,delta:{x:zn.x,y:zn.y},over:ut};gs.unstable_batchedUpdates(()=>{Tt(ut),mn==null||mn(ft),y({type:"onDragOver",event:ft})})},[Ee]),vl(()=>{Q.current={activatorEvent:J,active:T,activeNode:z,collisionRect:me,collisions:ve,droppableRects:q,draggableNodes:C,draggingNode:ce,draggingNodeRect:he,droppableContainers:P,over:Oe,scrollableAncestors:Re,scrollAdjustedTranslate:te},A.current={initial:he,translated:me}},[T,z,ve,me,C,ce,he,q,P,Oe,Re,te]),QDe({...pe,delta:E,draggingRect:me,pointerCoordinates:F,scrollableAncestors:Re,scrollableAncestorRects:Be});const za=g.useMemo(()=>({active:T,activeNode:z,activeNodeRect:ue,activatorEvent:J,collisions:ve,containerNodeRect:de,dragOverlay:ne,draggableNodes:C,droppableContainers:P,droppableRects:q,over:Oe,measureDroppableContainers:M,scrollableAncestors:Re,scrollableAncestorRects:Be,measuringConfiguration:I,measuringScheduled:B,windowRect:Ce}),[T,z,ue,J,ve,de,ne,C,P,q,Oe,M,Re,Be,I,B,Ce]),Gr=g.useMemo(()=>({activatorEvent:J,activators:er,active:T,activeNodeRect:ue,ariaDescribedById:{draggable:W},dispatch:b,draggableNodes:C,over:Oe,measureDroppableContainers:M}),[J,er,T,ue,b,W,C,Oe,M]);return H.createElement(ZK.Provider,{value:w},H.createElement(c2.Provider,{value:Gr},H.createElement(fY.Provider,{value:za},H.createElement(hY.Provider,{value:Pt},u)),H.createElement(kIe,{disabled:(l==null?void 0:l.restoreFocus)===!1})),H.createElement(jDe,{...l,hiddenTextDescribedById:W}));function pn(){const mt=(L==null?void 0:L.autoScrollEnabled)===!1,Mt=typeof c=="object"?c.enabled===!1:c===!1,gt=S&&!mt&&!Mt;return typeof c=="object"?{...c,enabled:gt}:{enabled:gt}}}),CIe=g.createContext(null),_6="button",EIe="Draggable";function AIe(t){let{id:e,data:n,disabled:r=!1,attributes:a}=t;const s=$y(EIe),{activators:o,activatorEvent:l,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:h}=g.useContext(c2),{role:p=_6,roleDescription:m="draggable",tabIndex:x=0}=a??{},v=(c==null?void 0:c.id)===e,b=g.useContext(v?hY:CIe),[y,w]=hk(),[j,k]=hk(),S=fIe(o,e),_=ny(n);vl(()=>(f.set(e,{id:e,key:s,node:y,activatorNode:j,data:_}),()=>{const E=f.get(e);E&&E.key===s&&f.delete(e)}),[f,e]);const C=g.useMemo(()=>({role:p,tabIndex:x,"aria-disabled":r,"aria-pressed":v&&p===_6?!0:void 0,"aria-roledescription":m,"aria-describedby":d.draggable}),[r,p,x,v,m,d.draggable]);return{active:c,activatorEvent:l,activeNodeRect:u,attributes:C,isDragging:v,listeners:r?void 0:S,node:y,over:h,setNodeRef:w,setActivatorNodeRef:k,transform:b}}function OIe(){return g.useContext(fY)}const TIe="Droppable",PIe={timeout:25};function RIe(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:a}=t;const s=$y(TIe),{active:o,dispatch:l,over:c,measureDroppableContainers:u}=g.useContext(c2),d=g.useRef({disabled:n}),f=g.useRef(!1),h=g.useRef(null),p=g.useRef(null),{disabled:m,updateMeasurementsFor:x,timeout:v}={...PIe,...a},b=ny(x??r),y=g.useCallback(()=>{if(!f.current){f.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{u(Array.isArray(b.current)?b.current:[b.current]),p.current=null},v)},[v]),w=l2({callback:y,disabled:m||!o}),j=g.useCallback((C,E)=>{w&&(E&&(w.unobserve(E),f.current=!1),C&&w.observe(C))},[w]),[k,S]=hk(j),_=ny(e);return g.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),g.useEffect(()=>(l({type:Zr.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:h,data:_}}),()=>l({type:Zr.UnregisterDroppable,key:s,id:r})),[r]),g.useEffect(()=>{n!==d.current.disabled&&(l({type:Zr.SetDroppableDisabled,id:r,key:s,disabled:n}),d.current.disabled=n)},[r,s,n,l]),{active:o,rect:h,isOver:(c==null?void 0:c.id)===r,node:k,over:c,setNodeRef:S}}function xP(t,e,n){const r=t.slice();return r.splice(n<0?r.length+n:n,0,r.splice(e,1)[0]),r}function MIe(t,e){return t.reduce((n,r,a)=>{const s=e.get(r);return s&&(n[a]=s),n},Array(t.length))}function Sb(t){return t!==null&&t>=0}function DIe(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n{let{rects:e,activeIndex:n,overIndex:r,index:a}=t;const s=xP(e,r,n),o=e[a],l=s[a];return!l||!o?null:{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}},_b={scaleX:1,scaleY:1},$Ie=t=>{var e;let{activeIndex:n,activeNodeRect:r,index:a,rects:s,overIndex:o}=t;const l=(e=s[n])!=null?e:r;if(!l)return null;if(a===n){const u=s[o];return u?{x:0,y:nn&&a<=o?{x:0,y:-l.height-c,..._b}:a=o?{x:0,y:l.height+c,..._b}:{x:0,y:0,..._b}};function LIe(t,e,n){const r=t[e],a=t[e-1],s=t[e+1];return r?nr.map(S=>typeof S=="object"&&"id"in S?S.id:S),[r]),m=o!=null,x=o?p.indexOf(o.id):-1,v=u?p.indexOf(u.id):-1,b=g.useRef(p),y=!DIe(p,b.current),w=v!==-1&&x===-1||y,j=IIe(s);vl(()=>{y&&m&&d(p)},[y,p,m,d]),g.useEffect(()=>{b.current=p},[p]);const k=g.useMemo(()=>({activeIndex:x,containerId:f,disabled:j,disableTransforms:w,items:p,overIndex:v,useDragOverlay:h,sortedRects:MIe(p,c),strategy:a}),[x,f,j.draggable,j.droppable,w,p,v,c,h,a]);return H.createElement(gY.Provider,{value:k},e)}const BIe=t=>{let{id:e,items:n,activeIndex:r,overIndex:a}=t;return xP(n,r,a).indexOf(e)},zIe=t=>{let{containerId:e,isSorting:n,wasDragging:r,index:a,items:s,newIndex:o,previousItems:l,previousContainerId:c,transition:u}=t;return!u||!r||l!==s&&a===o?!1:n?!0:o!==a&&e===c},UIe={duration:200,easing:"ease"},xY="transform",VIe=ay.Transition.toString({property:xY,duration:0,easing:"linear"}),WIe={roleDescription:"sortable"};function HIe(t){let{disabled:e,index:n,node:r,rect:a}=t;const[s,o]=g.useState(null),l=g.useRef(n);return vl(()=>{if(!e&&n!==l.current&&r.current){const c=a.current;if(c){const u=Am(r.current,{ignoreTransform:!0}),d={x:c.left-u.left,y:c.top-u.top,scaleX:c.width/u.width,scaleY:c.height/u.height};(d.x||d.y)&&o(d)}}n!==l.current&&(l.current=n)},[e,n,r,a]),g.useEffect(()=>{s&&o(null)},[s]),s}function GIe(t){let{animateLayoutChanges:e=zIe,attributes:n,disabled:r,data:a,getNewIndex:s=BIe,id:o,strategy:l,resizeObserverConfig:c,transition:u=UIe}=t;const{items:d,containerId:f,activeIndex:h,disabled:p,disableTransforms:m,sortedRects:x,overIndex:v,useDragOverlay:b,strategy:y}=g.useContext(gY),w=qIe(r,p),j=d.indexOf(o),k=g.useMemo(()=>({sortable:{containerId:f,index:j,items:d},...a}),[f,a,j,d]),S=g.useMemo(()=>d.slice(d.indexOf(o)),[d,o]),{rect:_,node:C,isOver:E,setNodeRef:P}=RIe({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:R,activatorEvent:A,activeNodeRect:T,attributes:D,setNodeRef:L,listeners:X,isDragging:J,over:U,setActivatorNodeRef:Y,transform:W}=AIe({id:o,data:k,attributes:{...WIe,...n},disabled:w.draggable}),G=uDe(P,L),I=!!R,q=I&&!m&&Sb(h)&&Sb(v),M=!b&&J,B=M&&q?W:null,Z=q?B??(l??y)({rects:x,activeNodeRect:T,activeIndex:h,overIndex:v,index:j}):null,pe=Sb(h)&&Sb(v)?s({id:o,items:d,activeIndex:h,overIndex:v}):j,ae=R==null?void 0:R.id,ue=g.useRef({activeId:ae,items:d,newIndex:pe,containerId:f}),de=d!==ue.current.items,Q=e({active:R,containerId:f,isDragging:J,isSorting:I,id:o,index:j,items:d,newIndex:ue.current.newIndex,previousItems:ue.current.items,previousContainerId:ue.current.containerId,transition:u,wasDragging:ue.current.activeId!=null}),fe=HIe({disabled:!Q,index:j,node:C,rect:_});return g.useEffect(()=>{I&&ue.current.newIndex!==pe&&(ue.current.newIndex=pe),f!==ue.current.containerId&&(ue.current.containerId=f),d!==ue.current.items&&(ue.current.items=d)},[I,pe,f,d]),g.useEffect(()=>{if(ae===ue.current.activeId)return;if(ae&&!ue.current.activeId){ue.current.activeId=ae;return}const ce=setTimeout(()=>{ue.current.activeId=ae},50);return()=>clearTimeout(ce)},[ae]),{active:R,activeIndex:h,attributes:D,data:k,rect:_,index:j,newIndex:pe,items:d,isOver:E,isSorting:I,isDragging:J,listeners:X,node:C,overIndex:v,over:U,setNodeRef:G,setActivatorNodeRef:Y,setDroppableNodeRef:P,setDraggableNodeRef:L,transform:fe??Z,transition:ne()};function ne(){if(fe||de&&ue.current.newIndex===j)return VIe;if(!(M&&!fP(A)||!u)&&(I||Q))return ay.Transition.toString({...u,property:xY})}}function qIe(t,e){var n,r;return typeof t=="boolean"?{draggable:t,droppable:!1}:{draggable:(n=t==null?void 0:t.draggable)!=null?n:e.draggable,droppable:(r=t==null?void 0:t.droppable)!=null?r:e.droppable}}function gk(t){if(!t)return!1;const e=t.data.current;return!!(e&&"sortable"in e&&typeof e.sortable=="object"&&"containerId"in e.sortable&&"items"in e.sortable&&"index"in e.sortable)}const KIe=[Yt.Down,Yt.Right,Yt.Up,Yt.Left],YIe=(t,e)=>{let{context:{active:n,collisionRect:r,droppableRects:a,droppableContainers:s,over:o,scrollableAncestors:l}}=e;if(KIe.includes(t.code)){if(t.preventDefault(),!n||!r)return;const c=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const h=a.get(f.id);if(h)switch(t.code){case Yt.Down:r.toph.top&&c.push(f);break;case Yt.Left:r.left>h.left&&c.push(f);break;case Yt.Right:r.left1&&(d=u[1].id),d!=null){const f=s.get(n.id),h=s.get(d),p=h?a.get(h.id):null,m=h==null?void 0:h.node.current;if(m&&p&&f&&h){const v=o2(m).some((S,_)=>l[_]!==S),b=yY(f,h),y=XIe(f,h),w=v||!b?{x:0,y:0}:{x:y?r.width-p.width:0,y:y?r.height-p.height:0},j={x:p.left,y:p.top};return w.x&&w.y?j:ry(j,w)}}}};function yY(t,e){return!gk(t)||!gk(e)?!1:t.data.current.sortable.containerId===e.data.current.sortable.containerId}function XIe(t,e){return!gk(t)||!gk(e)||!yY(t,e)?!1:t.data.current.sortable.indexw.label.toLowerCase().includes(l.toLowerCase())||w.value.toLowerCase().includes(l.toLowerCase())):n;function x(){var j;const w=(j=f.current)==null?void 0:j.getBoundingClientRect();w&&(d({position:"fixed",top:w.bottom+4,left:w.left,minWidth:w.width,zIndex:9999}),o(!0))}g.useEffect(()=>{var w;s&&((w=p.current)==null||w.focus())},[s]),g.useEffect(()=>{if(!s)return;function w(k){var _,C;const S=k.target;!((_=f.current)!=null&&_.contains(S))&&!((C=h.current)!=null&&C.contains(S))&&v()}function j(k){k.key==="Escape"&&v()}return document.addEventListener("mousedown",w),document.addEventListener("keydown",j),()=>{document.removeEventListener("mousedown",w),document.removeEventListener("keydown",j)}},[s]);function v(){o(!1),c("")}function b(w){e(t.includes(w)?t.filter(j=>j!==w):[...t,w])}function y(w,j){j.stopPropagation(),e(t.filter(k=>k!==w))}return i.jsxs("div",{className:`relative ${a}`,children:[i.jsxs("div",{ref:f,onClick:()=>s?v():x(),className:"flex w-full min-w-0 cursor-pointer flex-wrap items-center gap-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm dark:border-[#222226]",children:[t.length===0&&i.jsx("span",{className:"text-slate-500",children:r}),t.map(w=>{var k;const j=((k=n.find(S=>S.value===w))==null?void 0:k.label)??w;return i.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-brand-100 dark:bg-brand-500/20 border border-brand-200 dark:border-brand-500/40 px-1.5 py-0.5 font-medium text-brand-700 dark:text-brand-300",children:[j,i.jsx("button",{type:"button",onClick:S=>y(w,S),className:"text-brand-600 hover:text-brand-600 dark:hover:text-brand-200",children:i.jsx(Vr,{size:10})})]},w)}),i.jsx(ln,{size:11,className:`ml-auto shrink-0 text-slate-500 transition-transform duration-150 ${s?"rotate-180":""}`})]}),s&&gs.createPortal(i.jsxs("div",{ref:h,style:u,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 dark:border-[#222226] bg-white dark:bg-[#111118] shadow-lg",children:[i.jsx("div",{className:"border-b border-slate-100 dark:border-[#1c1c24] p-1.5",children:i.jsx("input",{ref:p,type:"text",value:l,onChange:w=>c(w.target.value),placeholder:"Search…",className:"w-full rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0f0f11]"})}),i.jsx("div",{className:"max-h-52 overflow-y-auto py-0.5",children:m.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:"No matches"}):m.map(w=>{const j=t.includes(w.value);return i.jsxs("button",{type:"button","data-value":w.value,onClick:()=>b(w.value),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-sm transition-colors hover:bg-slate-50 dark:hover:bg-[#1c1c24] ${j?"text-brand-600 dark:text-brand-400":"text-slate-700 dark:text-[#c8d0de]"}`,children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${j?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#3a4258]"}`,children:j&&i.jsx("svg",{viewBox:"0 0 8 8",className:"h-2 w-2 fill-current",children:i.jsx("path",{d:"M1 4l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})})}),w.label]},w.value)})})]}),document.body)]})}const N6=272,C6=160,E6=12;function Ly({value:t,onChange:e,options:n,placeholder:r="Gateway name",className:a="",dataCy:s,onEnter:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(-1),[f,h]=g.useState({}),[p,m]=g.useState(N6),x=g.useRef(null),v=g.useRef(null),b=g.useRef(null),y=t.trim().toLowerCase(),w=y?n.filter(_=>_.name.toLowerCase().includes(y)):n;function j(){var R;const _=(R=v.current)==null?void 0:R.getBoundingClientRect();if(!_)return;const C=window.innerHeight-_.bottom-E6,E=_.top-E6,P=CC;m(Math.min(N6,Math.max(C6,P?E:C))),h({position:"fixed",left:_.left,minWidth:_.width,zIndex:9999,...P?{bottom:window.innerHeight-_.top+4}:{top:_.bottom+4}}),c(!0)}function k(){c(!1),d(-1)}g.useEffect(()=>{if(!l)return;function _(C){var P,R;const E=C.target;!((P=x.current)!=null&&P.contains(E))&&!((R=b.current)!=null&&R.contains(E))&&k()}return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[l]);function S(_){if(_.key==="ArrowDown"){if(_.preventDefault(),!l)return j();d(C=>w.length?(C+1)%w.length:-1)}else if(_.key==="ArrowUp"){if(_.preventDefault(),!l)return j();d(C=>w.length?C<=0?w.length-1:C-1:-1)}else _.key==="Enter"?(_.preventDefault(),l&&u>=0&&w[u]?(e(w[u].name,w[u]),k()):(k(),o==null||o())):_.key==="Escape"&&l&&(_.stopPropagation(),k())}return i.jsxs("div",{ref:x,className:`relative ${a}`,"data-cy":s,children:[i.jsx("input",{ref:v,value:t,onChange:_=>{e(_.target.value),d(-1),l||j()},onFocus:j,onBlur:k,onKeyDown:S,placeholder:r,role:"combobox","aria-expanded":l,"aria-autocomplete":"list",autoComplete:"off",className:"w-full rounded-lg border border-slate-200 bg-transparent py-2 pl-3 pr-8 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",tabIndex:-1,"aria-label":l?"Hide gateway list":"Show gateway list",onMouseDown:_=>{var C;_.preventDefault(),(C=v.current)==null||C.focus(),l?k():j()},className:"absolute inset-y-0 right-0 flex items-center px-2 text-slate-500 hover:text-slate-600 dark:hover:text-slate-200",children:i.jsx(ln,{size:13,className:`transition-transform duration-150 ${l?"rotate-180":""}`})}),l&&gs.createPortal(i.jsx("div",{ref:b,style:f,className:"w-max min-w-[13rem] max-w-[320px] rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#222226] dark:bg-[#111118]",children:i.jsx("div",{className:"overflow-y-auto py-0.5",style:{maxHeight:`${Math.min(Math.max(w.length,1)*(w.some(_=>_.gatewayId)?52:32)+8,p)}px`},children:w.length===0?i.jsx("p",{className:"px-3 py-2.5 text-sm text-slate-500",children:t.trim()?i.jsxs(i.Fragment,{children:["No connector matches — ",i.jsx("span",{className:"font-mono",children:t.trim()})," is used as typed"]}):"No gateways"}):w.map((_,C)=>i.jsxs("button",{type:"button","data-value":_.name,onMouseDown:E=>E.preventDefault(),onMouseEnter:()=>d(C),onClick:()=>{var E;e(_.name,_),k(),(E=v.current)==null||E.focus()},className:`w-full px-3 py-2.5 text-left font-mono text-sm transition-colors ${C===u?"bg-slate-50 dark:bg-[#1c1c24]":""} ${_.name===t?"bg-brand-50/50 font-medium text-brand-600 dark:bg-brand-900/10 dark:text-brand-400":""}`,children:[_.name,_.gatewayId&&i.jsx("span",{"data-gateway-id":_.gatewayId,className:"mt-0.5 block truncate text-xs font-normal text-slate-500",children:_.gatewayId})]},_.gatewayId||_.name))})}),document.body)]})}function ZIe({id:t,position:e,gatewayName:n,gatewayId:r,options:a,onEdit:s,onRemove:o}){const[l,c]=g.useState(!1),[u,d]=g.useState(n),[f,h]=g.useState(r),{attributes:p,listeners:m,setNodeRef:x,transform:v,transition:b}=GIe({id:t,disabled:l}),y={transform:ay.Transform.toString(v),transition:b};function w(){d(n),h(r),c(!0)}function j(){const S=u.trim();S&&(s({gatewayName:S,gatewayId:f.trim()}),c(!1))}function k(){c(!1)}return l?i.jsxs("div",{ref:x,style:y,className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:S=>{S.key==="Escape"&&(S.preventDefault(),k()),S.key==="Enter"&&(S.preventDefault(),j())},children:[i.jsxs("span",{className:"w-5 shrink-0 text-center text-sm tabular-nums text-slate-500",children:[e,"."]}),i.jsx(Ly,{value:u,onChange:(S,_)=>{d(S),h((_==null?void 0:_.gatewayId)??"")},onEnter:j,options:a,className:"flex-1"}),i.jsx("input",{value:f,onChange:S=>h(S.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:j,disabled:!u.trim(),"aria-label":"Save gateway",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:k,"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{ref:x,style:y,className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsx("span",{...p,...m,className:"cursor-grab text-slate-500",children:i.jsx(WNe,{size:14})}),i.jsxs("button",{type:"button",onClick:w,"aria-label":`Edit ${n}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[e,". ",n,r?` (${r})`:""]}),i.jsx(jl,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:o,"aria-label":`Remove ${n}`,className:"text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]})}function yP({gateways:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),l=SDe(h6(gP),h6(pP,{coordinateGetter:YIe}));function c(f){const{active:h,over:p}=f;if(p&&h.id!==p.id){const m=t.findIndex(v=>v.id===h.id),x=t.findIndex(v=>v.id===p.id);e(xP(t,m,x))}}function u(){r.trim()&&(e([...t,{id:crypto.randomUUID(),gatewayName:r.trim(),gatewayId:s.trim()}]),a(""),o(""))}const d=Kp(n,t.map(f=>f.gatewayName),t.map(f=>f.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[i.jsx(NIe,{sensors:l,collisionDetection:NDe,onDragEnd:c,children:i.jsx(FIe,{items:t.map(f=>f.id),strategy:$Ie,children:t.map((f,h)=>i.jsx(ZIe,{id:f.id,position:h+1,gatewayName:f.gatewayName,gatewayId:f.gatewayId,options:Kp(n,t.filter(p=>p.id!==f.id).map(p=>p.gatewayName),t.filter(p=>p.id!==f.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===f.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==f.id))},f.id))})}),i.jsxs("div",{className:"flex gap-2",onBlur:f=>{f.currentTarget.contains(f.relatedTarget)||u()},children:[i.jsx(Ly,{value:r,onChange:(f,h)=>{a(f),o((h==null?void 0:h.gatewayId)??"")},onEnter:u,options:d,className:"flex-1"}),i.jsx("input",{value:s,onChange:f=>o(f.target.value),onKeyDown:f=>f.key==="Enter"&&(f.preventDefault(),u()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:u,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function QIe({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),[s,o]=g.useState(""),[l,c]=g.useState(""),u=t.reduce((h,p)=>h+p.split,0);function d(){!s.trim()||!r||(e([...t,{id:crypto.randomUUID(),split:Number(r),gatewayName:s.trim(),gatewayId:l.trim()}]),a(""),o(""),c(""))}const f=Kp(n,t.map(h=>h.gatewayName),t.map(h=>h.gatewayId));return i.jsxs("div",{className:"space-y-2",children:[t.map(h=>i.jsx(e$e,{entry:h,options:Kp(n,t.filter(p=>p.id!==h.id).map(p=>p.gatewayName),t.filter(p=>p.id!==h.id).map(p=>p.gatewayId)),onEdit:p=>e(t.map(m=>m.id===h.id?{...m,...p}:m)),onRemove:()=>e(t.filter(p=>p.id!==h.id))},h.id)),t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${u===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",u,"%",u!==100?" (must equal 100%)":" ✓"]}),i.jsxs("div",{className:"flex gap-2",onBlur:h=>{h.currentTarget.contains(h.relatedTarget)||d()},children:[i.jsx("input",{type:"number",value:r,onChange:h=>a(h.target.value),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-20 focus:outline-none focus:border-brand-500"}),i.jsx(Ly,{value:s,onChange:(h,p)=>{o(h),c((p==null?void 0:p.gatewayId)??"")},onEnter:d,options:f,className:"flex-1"}),i.jsx("input",{value:l,onChange:h=>c(h.target.value),onKeyDown:h=>h.key==="Enter"&&(h.preventDefault(),d()),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:d,children:[i.jsx(Qn,{size:13})," Add"]})]})]})}function e$e({entry:t,options:e,onEdit:n,onRemove:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(String(t.split)),[c,u]=g.useState(t.gatewayName),[d,f]=g.useState(t.gatewayId);function h(){l(String(t.split)),u(t.gatewayName),f(t.gatewayId),s(!0)}function p(){const m=c.trim();m&&(n({split:Number(o)||0,gatewayName:m,gatewayId:d.trim()}),s(!1))}return a?i.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-brand-300 bg-white px-2 py-1.5 dark:border-brand-500/50 dark:bg-[#111118]",onKeyDown:m=>{m.key==="Escape"&&(m.preventDefault(),s(!1)),m.key==="Enter"&&(m.preventDefault(),p())},children:[i.jsx("input",{type:"number",value:o,onChange:m=>l(m.target.value),"aria-label":"Split percentage",className:"w-20 rounded-lg border border-slate-200 bg-transparent px-2 py-1 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(Ly,{value:c,onChange:(m,x)=>{u(m),f((x==null?void 0:x.gatewayId)??"")},onEnter:p,options:e,className:"flex-1"}),i.jsx("input",{value:d,onChange:m=>f(m.target.value),placeholder:"Gateway ID (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx("button",{type:"button",onClick:p,disabled:!c.trim(),"aria-label":"Save split",className:"text-emerald-700 transition-colors hover:text-emerald-700 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:()=>s(!1),"aria-label":"Cancel edit",className:"text-slate-500 transition-colors hover:text-slate-600",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{className:"flex items-center gap-2 bg-slate-100 dark:bg-[#111118] border border-slate-200 dark:border-[#1c1c24] rounded-lg px-2 py-1.5",children:[i.jsxs("span",{className:"text-xs font-bold text-brand-600 w-10 shrink-0 tabular-nums",children:[t.split,"%"]}),i.jsxs("button",{type:"button",onClick:h,"aria-label":`Edit ${t.gatewayName}`,className:"group flex min-w-0 flex-1 items-center gap-2 text-left hover:text-brand-600 dark:hover:text-brand-400",children:[i.jsxs("span",{className:"truncate font-mono text-sm",children:[t.gatewayName,t.gatewayId?` (${t.gatewayId})`:""]}),i.jsx(jl,{size:12,className:"shrink-0 text-slate-500 transition-colors group-hover:text-brand-600 dark:group-hover:text-brand-400"})]}),i.jsx("button",{type:"button",onClick:r,"aria-label":`Remove ${t.gatewayName}`,className:"text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]})}function t$e({entries:t,onChange:e,suggestions:n=[]}){const[r,a]=g.useState(""),s=t.reduce((c,u)=>c+u.split,0);function o(){r&&(e([...t,{id:crypto.randomUUID(),split:Number(r),gateways:[]}]),a(""))}function l(c,u){e(t.map(d=>d.id===c?{...d,...u}:d))}return i.jsxs("div",{className:"space-y-3",children:[t.length>0&&i.jsxs("p",{className:`text-xs font-medium ${s===100?"text-emerald-700":"text-amber-700"}`,children:["Total: ",s,"%",s!==100?" (must equal 100%)":" ✓"]}),t.map((c,u)=>i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222226] overflow-hidden",children:[i.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-slate-50 dark:bg-[#111118] border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsxs("span",{className:"text-xs text-slate-500 font-medium shrink-0",children:["Split ",u+1,":"]}),i.jsx("input",{type:"number",value:c.split,onChange:d=>l(c.id,{split:Number(d.target.value)}),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded px-2 py-0.5 text-xs w-16 focus:outline-none"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),i.jsx("button",{type:"button",onClick:()=>e(t.filter(d=>d.id!==c.id)),className:"ml-auto text-red-600 hover:text-red-600",children:i.jsx(wn,{size:12})})]}),i.jsxs("div",{className:"p-3",children:[i.jsx("p",{className:"mb-2 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:"Priority list for this split"}),i.jsx(yP,{gateways:c.gateways,suggestions:n,onChange:d=>l(c.id,{gateways:d})})]})]},c.id)),i.jsxs("div",{className:"flex gap-2 items-center",onBlur:c=>{c.currentTarget.contains(c.relatedTarget)||o()},children:[i.jsx("input",{type:"number",value:r,onChange:c=>a(c.target.value),onKeyDown:c=>c.key==="Enter"&&(c.preventDefault(),o()),placeholder:"Split %",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 text-sm w-24 focus:outline-none focus:border-brand-500"}),i.jsxs(we,{type:"button",size:"sm",variant:"secondary",onClick:o,children:[i.jsx(Qn,{size:13})," Add split"]})]})]})}function n$e({row:t,onChange:e,onRemove:n,routingKeys:r}){const a=r[t.lhs],s=(a==null?void 0:a.type)==="enum",o=(a==null?void 0:a.type)==="integer",l=(a==null?void 0:a.type)==="udf"||(a==null?void 0:a.type)==="global_ref",c=t.operator==="in"||t.operator==="not_in",u=o?[">","<",">=","<=","==","!="]:s?["==","!=","in","not_in"]:["==","!="],d=Array.isArray(t.value)?t.value:[];function f(h){const p=h==="in"||h==="not_in",m=t.operator==="in"||t.operator==="not_in";let x=t.value;p&&!Array.isArray(t.value)?x=t.value?[t.value]:[]:!p&&m&&(x=Array.isArray(t.value)?t.value[0]??"":""),e({...t,operator:h,value:x})}return i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Go,{className:"w-[13.5rem] shrink-0",dataCy:"cond-lhs",value:t.lhs,onChange:h=>{var x;const p=r[h],m=(p==null?void 0:p.type)==="enum"?((x=p.values)==null?void 0:x[0])??"":"";e({...t,lhs:h,value:m,operator:"=="})},options:Object.keys(r).map(h=>({value:h,label:tc(h)}))}),i.jsx("select",{value:t.operator,onChange:h=>f(h.target.value),"aria-label":"Condition operator",className:"cond-select w-[10.5rem] shrink-0",children:u.map(h=>i.jsx("option",{value:h,children:LH[h]||h},h))}),i.jsx("div",{className:"flex items-center gap-2",children:s&&c?i.jsx("div",{"data-cy":"cond-val",className:"w-[14rem]",children:i.jsx(JIe,{values:d,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:tc(h)})),placeholder:"Select values…"})}):s?i.jsx(Go,{className:"w-[12rem]",dataCy:"cond-val",value:t.value,onChange:h=>e({...t,value:h}),options:((a==null?void 0:a.values)||[]).map(h=>({value:h,label:tc(h)}))}):o?i.jsx("input",{type:"number",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-32"}):l?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"text",value:t.metadataKey||"",onChange:h=>e({...t,metadataKey:h.target.value}),placeholder:"key",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-40"}),i.jsx("span",{className:"shrink-0 text-sm text-slate-500 dark:text-slate-400 select-none",children:"="}),i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-44"})]}):i.jsx("input",{type:"text",value:t.value,onChange:h=>e({...t,value:h.target.value}),placeholder:"value",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none dark:border-[#222226] w-52"})}),i.jsx("button",{type:"button",onClick:n,"aria-label":"Remove condition",className:"shrink-0 text-red-600 transition-colors hover:text-red-600",children:i.jsx(wn,{size:15})})]})}function vY({group:t,onChange:e,onRemove:n,canRemove:r,routingKeys:a,depth:s=0}){function o(){e({...t,conditions:[...t.conditions,FH(a)]})}function l(){e({...t,nested:[...t.nested,xT(a)]})}return i.jsxs("div",{className:"rounded-lg border border-slate-200 dark:border-[#222733] bg-white dark:bg-[#0f141d]",children:[i.jsxs("div",{className:"space-y-0 divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[t.conditions.map((c,u)=>i.jsxs("div",{"data-testid":"condition-row",className:"flex items-center gap-3 px-4 py-3",children:[t.conditions.length>1&&i.jsx("span",{className:"w-10 shrink-0 text-[11px] font-bold uppercase tracking-widest text-sky-700 select-none leading-4",children:u===0?"IF":"AND"}),i.jsx(n$e,{row:c,routingKeys:a,onChange:d=>e({...t,conditions:t.conditions.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,conditions:t.conditions.length>1?t.conditions.filter(d=>d.id!==c.id):t.conditions})})]},c.id)),i.jsxs("div",{className:"flex items-center gap-4 px-4 py-2.5",children:[i.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add condition"]}),s>0&&r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(wn,{size:13})," Remove group"]})]})]}),s===0&&t.nested.length>0&&i.jsxs("div",{className:"border-t border-slate-100 dark:border-[#1c1c24] px-3 pt-3 pb-2 space-y-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8] leading-4",children:[i.jsx(C$,{size:11}),"Then match any of (nested OR)"]}),t.nested.map((c,u)=>i.jsxs("div",{className:"pl-3 border-l-2 border-sky-200 dark:border-sky-800",children:[u>0&&i.jsx("p",{className:"mb-1 text-[11px] font-bold text-sky-700 leading-4",children:"OR"}),i.jsx(vY,{group:c,routingKeys:a,canRemove:!0,depth:1,onChange:d=>e({...t,nested:t.nested.map(f=>f.id===c.id?d:f)}),onRemove:()=>e({...t,nested:t.nested.filter(d=>d.id!==c.id)})})]},c.id))]}),s===0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-4 border-t border-slate-100 px-4 py-2.5 dark:border-[#1c1c24]",children:[s===0&&i.jsxs("button",{type:"button",onClick:l,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(C$,{size:13})," Add nested branch"]}),r&&i.jsxs("button",{type:"button",onClick:n,className:"ml-auto flex items-center gap-1 text-[13px] font-medium text-red-600 transition-colors hover:text-red-600 leading-[18px]",children:[i.jsx(wn,{size:13})," Remove group"]})]})]})}const A6={priority:"Priority",volume_split:"Volume Split"};function r$e({block:t,index:e,onChange:n,onRemove:r,routingKeys:a,gatewaySuggestions:s=[],error:o}){const[l,c]=g.useState(!1);g.useEffect(()=>{o&&c(!1)},[o]);function u(){n({...t,statements:[...t.statements,xT(a)]})}return i.jsxs("div",{className:`overflow-hidden rounded-xl border ${o?"border-red-300 dark:border-red-500/50":"border-slate-200 dark:border-[#1c1c24]"}`,children:[i.jsxs("div",{onClick:()=>c(!l),className:"flex cursor-pointer items-center justify-between gap-3 border-b border-slate-200 bg-slate-50 px-5 py-3 dark:border-[#1c1c24] dark:bg-[#111118]",children:[i.jsxs("div",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[i.jsx("input",{value:t.name,onChange:d=>n({...t,name:d.target.value}),onClick:d=>d.stopPropagation(),placeholder:"Rule name",className:"input-bare min-w-0 max-w-[16rem] flex-1 cursor-text text-[15px] font-semibold text-slate-800 focus:outline-none dark:text-slate-100 leading-[22px]"}),i.jsx("span",{className:"shrink-0 truncate text-xs text-slate-500 dark:text-[#78849a]",children:e===0?"(Highest priority matching check)":e!==void 0?`(Checked if rule ${e} does not match)`:""})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),r()},"aria-label":"Delete rule",className:"text-red-600 transition-colors hover:text-red-600",children:i.jsx(wn,{size:15})}),i.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),c(!l)},"aria-label":l?"Expand rule":"Collapse rule",className:"text-slate-500 transition-colors hover:text-slate-600",children:l?i.jsx(ln,{size:15}):i.jsx(hs,{size:15})})]})]}),!l&&i.jsxs("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:[i.jsxs("div",{className:"space-y-2.5 px-5 py-5",children:[i.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"If"}),t.statements.map((d,f)=>i.jsxs("div",{className:"space-y-2",children:[f>0&&i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"}),i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-sky-700 px-1 leading-4",children:"or"}),i.jsx("span",{className:"h-px flex-1 bg-slate-200 dark:bg-[#222]"})]}),i.jsx(vY,{group:d,routingKeys:a,canRemove:t.statements.length>1,onChange:h=>n({...t,statements:t.statements.map(p=>p.id===d.id?h:p)}),onRemove:()=>n({...t,statements:t.statements.filter(h=>h.id!==d.id)})})]},d.id)),i.jsxs("button",{type:"button",onClick:u,className:"mt-1 flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:13})," Add OR group"]})]}),i.jsxs("div",{"data-cy":"then-section",className:"px-5 py-5",children:[i.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[i.jsx("p",{className:"shrink-0 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Then route"}),i.jsx("div",{className:"flex overflow-hidden rounded-lg border border-slate-200 text-xs dark:border-[#222226]",children:Object.keys(A6).map(d=>i.jsx("button",{type:"button",onClick:()=>n({...t,outputType:d}),className:`px-2.5 py-1 transition-colors ${t.outputType===d?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:A6[d]},d))})]}),t.outputType==="priority"&&i.jsx(yP,{gateways:t.priorityGateways,suggestions:s,onChange:d=>n({...t,priorityGateways:d})}),t.outputType==="volume_split"&&i.jsx(QIe,{entries:t.volumeSplitEntries,suggestions:s,onChange:d=>n({...t,volumeSplitEntries:d})}),t.outputType==="volume_split_priority"&&i.jsx(t$e,{entries:t.volumeSplitPriorityEntries,suggestions:s,onChange:d=>n({...t,volumeSplitPriorityEntries:d})}),i.jsx(Ww,{message:o})]})]})]})}function O6(t,e,n,r){return JSON.stringify([t.trim(),e,n,r])}function T6(){const t=Ao(),e=Hr(),{id:n}=Tz(),[r]=vc(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=$r(),{routingKeysConfig:l,isLoading:c,error:u}=iT(),d=l,f=Object.keys(d).length>0,h=!c&&(!f||!!u),[p,m]=g.useState(""),[x,v]=g.useState(""),[b,y]=g.useState([]),[w,j]=g.useState({priorityGateways:[]}),[k,S]=g.useState("visual"),[_,C]=g.useState(""),[E,P]=g.useState(null),[R,A]=g.useState(!1),[T,D]=g.useState(null),[L,X]=g.useState(null),[J,U]=g.useState({}),Y=g.useRef(null),{data:W,mutate:G}=ct(o?`/routing/list/${o}`:null,()=>Fe(`/routing/list/${o}`)),{data:I}=ct(o?`/routing/list/active/${o}`:null,()=>Fe(`/routing/list/active/${o}`)),q=n||a,M=q?(W||[]).find(Ce=>Ce.id===q):void 0,B=s&&(I||[]).some(Ce=>Ce.id===n),z=s&&!I,Z=g.useRef(null),pe=g.useRef(null);g.useEffect(()=>{if(!M||Z.current===M.id)return;Z.current=M.id;const{ruleBlocks:Ce,defaultOutput:Re}=qAe(M);m(s?M.name:`copy-of-${M.name}`),v(M.description&&M.description!=="N/A"?M.description:""),y(Ce),j(Re),S("visual"),pe.current=O6(s?M.name:`copy-of-${M.name}`,M.description&&M.description!=="N/A"?M.description:"",Ce,Re)},[M,s]);const ae=pe.current!==null&&pe.current!==O6(p,x,b,w),ue=M&&p.trim()===M.name?`copy-of-${M.name}`:p.trim(),de=Array.from(new Set([...b.flatMap(Ce=>[...Ce.priorityGateways.map(Re=>Re.gatewayName),...Ce.volumeSplitEntries.map(Re=>Re.gatewayName),...Ce.volumeSplitPriorityEntries.flatMap(Re=>Re.gateways.map(Be=>Be.gatewayName))]),...w.priorityGateways.map(Ce=>Ce.gatewayName)].filter(Boolean))),Q=HAe(b,w,d);function fe(){m(""),v(""),y([]),j({priorityGateways:[]}),S("visual"),C(""),P(null),D(null),X(null),U({})}async function ne(Ce){var st;if(Ce.preventDefault(),!o){D("Set a Merchant ID first.");return}if(h){D("Routing key config is unavailable. Ensure backend /config/routing-keys is reachable and valid.");return}const Re=p.trim()?null:"Rule name is required.",Be={};if(b.forEach(F=>{(F.outputType==="priority"&&F.priorityGateways.length===0||F.outputType==="volume_split"&&F.volumeSplitEntries.length===0||F.outputType==="volume_split_priority"&&F.volumeSplitPriorityEntries.length===0)&&(Be[F.id]="Add at least one destination gateway to route to.")}),X(Re),U(Be),Re||Object.keys(Be).length||E){D(E&&!Re&&!Object.keys(Be).length?"Fix the syntax error in the code editor before saving.":"Fix the highlighted fields before saving."),Re&&((st=Y.current)==null||st.focus());return}A(!0),D(null);try{const F={type:"advanced",data:Q};s&&!B?await Fe("/routing/update",{created_by:o,routing_algorithm_id:n,name:p.trim(),description:x,algorithm:F}):await Fe("/routing/create",{name:B?ue:p.trim(),description:x,created_by:o,algorithm_for:(M==null?void 0:M.algorithm_for)??"payment",algorithm:F}),await G(),e("/routing/rules")}catch(F){D(String(F))}finally{A(!1)}}function ce(){y(Ce=>[...Ce,{id:crypto.randomUUID(),name:`Rule ${Ce.length+1}`,statements:[xT(d)],outputType:"priority",priorityGateways:[],volumeSplitEntries:[],volumeSplitPriorityEntries:[]}])}function he(){b.length>0?C(Y4e(b)):_.trim()||C(KK),P(null),S("code")}function be(){S("visual")}function Pe(Ce){if(C(Ce),!Ce.trim()){P(null),y([]);return}const Re=eDe(Ce);Re.error?(P(Re.error),y([])):Re.rules!==null&&(P(null),y(Re.rules))}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/rules"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Mj,{size:16})," Rule-Based Routing"]}),i.jsx(Ba,{title:s?"Edit Payment Rule":"Create Payment Rule",description:"Create precise cascading routing paths for card transactions using conditional flags.",className:"truncate"})]}),i.jsxs("div",{className:"flex shrink-0 rounded-lg border border-slate-200 text-xs dark:border-[#222226] overflow-hidden",children:[i.jsx("button",{type:"button",onClick:be,className:`px-3 py-1.5 transition-colors ${k==="visual"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Visual Builder"}),i.jsx("button",{type:"button",onClick:he,className:`px-3 py-1.5 transition-colors ${k==="code"?"bg-brand-500 text-white font-semibold":"text-slate-500 hover:bg-slate-100 dark:hover:bg-[#1c1c24]"}`,children:"Code"})]})]}),s&&!M&&W&&i.jsx(vt,{error:"That rule no longer exists for this merchant."}),B&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:ue||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:ne,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"rule-name",ref:Y,value:p,onChange:Ce=>{m(Ce.target.value),L&&X(null)},placeholder:"my-rule","aria-invalid":!!L,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${UH(!!L)}`}),i.jsx(Ww,{message:L})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"rule-description",value:x,onChange:Ce=>v(Ce.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Configured Rules"}),c&&i.jsx("p",{className:"text-sm text-slate-500",children:"Loading routing keys from backend..."}),h&&i.jsx(vt,{error:"Routing keys are unavailable from backend (/config/routing-keys). Rule Builder is disabled until this is fixed."}),k==="visual"?i.jsxs(i.Fragment,{children:[b.map((Ce,Re)=>i.jsx(r$e,{block:Ce,index:Re,routingKeys:d,gatewaySuggestions:de,error:J[Ce.id],onChange:Be=>{y(st=>st.map(F=>F.id===Ce.id?Be:F)),J[Ce.id]&&U(({[Ce.id]:st,...F})=>F)},onRemove:()=>{y(Be=>Be.filter(st=>st.id!==Ce.id)),U(({[Ce.id]:Be,...st})=>st)}},Ce.id)),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",onClick:ce,disabled:h,children:[i.jsx(Qn,{size:14})," Add Rule"]})]}):i.jsx(cDe,{value:_,onChange:Pe,parseError:E,routingKeys:d,gatewaySuggestions:de})]}),i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-300 px-4 py-4 dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-200 leading-[22px]",children:"Default Fallback Gateway"}),i.jsxs("p",{className:"mb-4 mt-1 text-[13px] text-slate-500 dark:text-[#8d96a8] leading-[18px]",children:["This gateway handles any transactions that do not match the custom rules configured above. Per-request overrides are possible via ",i.jsx("code",{className:"font-mono",children:"fallback_output"}),"."]}),i.jsx(yP,{gateways:w.priorityGateways,suggestions:de,onChange:Ce=>j({...w,priorityGateways:Ce})})]})]})}),i.jsx(vt,{error:T}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(we,{type:"submit",disabled:R||h||!t||z||B&&!ae,title:B&&!ae?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:R?"Saving...":B?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(we,{type:"button",variant:"secondary",size:"sm",onClick:fe,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/rules"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx(a$e,{ruleName:p,ruleBlocks:b,algorithmData:Q})]})]})}function a$e({ruleName:t,ruleBlocks:e,algorithmData:n}){const r={id:"preview",name:t,description:"",created_by:"",algorithm:{type:"advanced",data:n}};return i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(He,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:t.trim()||"Untitled rule"})]}),e.length===0?i.jsx("p",{className:"text-[13px] leading-relaxed text-slate-500 dark:text-[#8d96a8]",children:"No conditions yet — every payment will take the default fallback."}):i.jsx(bT,{algo:r})]})})})})}function bY(t){return{type:"volume_split",data:t.map(e=>({split:e.split,output:{gateway_name:e.gatewayName.trim(),gateway_id:e.gatewayId.trim()||null}}))}}function s$e(t,e){var n;return{name:t.ruleName.trim(),description:((n=t.description)==null?void 0:n.trim())??"",created_by:e,algorithm_for:"payment",metadata:{},algorithm:bY(t.gateways)}}function i$e(t){return t.map((e,n)=>{var r,a,s;return{id:`${((r=e.output)==null?void 0:r.gateway_name)||"gateway"}-${n}`,gatewayName:((a=e.output)==null?void 0:a.gateway_name)||"",gatewayId:((s=e.output)==null?void 0:s.gateway_id)||"",split:e.split}})}function u2(t){const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="volume_split")return null;const n=e.data||[];return{id:t.id,name:t.name,description:t.description,createdAt:t.created_at,gateways:i$e(n)}}var rn;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function n(a){throw new Error}t.assertNever=n,t.arrayToEnum=a=>{const s={};for(const o of a)s[o]=o;return s},t.getValidEnumValues=a=>{const s=t.objectKeys(a).filter(l=>typeof a[a[l]]!="number"),o={};for(const l of s)o[l]=a[l];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(s){return a[s]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const s=[];for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&s.push(o);return s},t.find=(a,s)=>{for(const o of a)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function r(a,s=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(a,s)=>typeof s=="bigint"?s.toString():s})(rn||(rn={}));var P6;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(P6||(P6={}));const it=rn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Fc=t=>{switch(typeof t){case"undefined":return it.undefined;case"string":return it.string;case"number":return Number.isNaN(t)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(t)?it.array:t===null?it.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?it.promise:typeof Map<"u"&&t instanceof Map?it.map:typeof Set<"u"&&t instanceof Set?it.set:typeof Date<"u"&&t instanceof Date?it.date:it.object;default:return it.unknown}},Ie=rn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class gc extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},a=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;cn.message){const n={},r=[];for(const a of this.issues)if(a.path.length>0){const s=a.path[0];n[s]=n[s]||[],n[s].push(e(a))}else r.push(e(a));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}gc.create=t=>new gc(t);const gO=(t,e)=>{let n;switch(t.code){case Ie.invalid_type:t.received===it.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,rn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${rn.joinValues(t.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${rn.joinValues(t.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${rn.joinValues(t.options)}, received '${t.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:rn.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Ie.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Ie.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=e.defaultError,rn.assertNever(t)}return{message:n}};let o$e=gO;function l$e(){return o$e}const c$e=t=>{const{data:e,path:n,errorMaps:r,issueData:a}=t,s=[...n,...a.path||[]],o={...a,path:s};if(a.message!==void 0)return{...a,path:s,message:a.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:e,defaultError:l}).message;return{...a,path:s,message:l}};function Xe(t,e){const n=l$e(),r=c$e({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===gO?void 0:gO].filter(a=>!!a)});t.common.issues.push(r)}class xi{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const a of n){if(a.status==="aborted")return Nt;a.status==="dirty"&&e.dirty(),r.push(a.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const a of n){const s=await a.key,o=await a.value;r.push({key:s,value:o})}return xi.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const a of n){const{key:s,value:o}=a;if(s.status==="aborted"||o.status==="aborted")return Nt;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(r[s.value]=o.value)}return{status:e.value,value:r}}}const Nt=Object.freeze({status:"aborted"}),ex=t=>({status:"dirty",value:t}),qi=t=>({status:"valid",value:t}),R6=t=>t.status==="aborted",M6=t=>t.status==="dirty",Yp=t=>t.status==="valid",xk=t=>typeof Promise<"u"&&t instanceof Promise;var lt;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(lt||(lt={}));class Ru{constructor(e,n,r,a){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const D6=(t,e)=>{if(Yp(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new gc(t.common.issues);return this._error=n,this._error}}};function $t(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:a}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,l)=>{const{message:c}=t;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:a}}class nn{get description(){return this._def.description}_getType(e){return Fc(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:Fc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new xi,ctx:{common:e.parent.common,data:e.data,parsedType:Fc(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(xk(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)},a=this._parseSync({data:e,path:r.path,parent:r});return D6(r,a)}"~validate"(e){var r,a;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return Yp(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(a=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>Yp(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fc(e)},a=this._parse({data:e,path:r.path,parent:r}),s=await(xk(a)?a:Promise.resolve(a));return D6(r,s)}refine(e,n){const r=a=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(a):n;return this._refinement((a,s)=>{const o=e(a),l=()=>s.addIssue({code:Ie.custom,...r(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(e,n){return this._refinement((r,a)=>e(r)?!0:(a.addIssue(typeof n=="function"?n(r,a):n),!1))}_refinement(e){return new hf({schema:this,typeName:Et.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return yu.create(this,this._def)}nullable(){return Zp.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gl.create(this)}promise(){return wk.create(this,this._def)}or(e){return vk.create([this,e],this._def)}and(e){return bk.create(this,e,this._def)}transform(e){return new hf({...$t(this._def),schema:this,typeName:Et.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new yO({...$t(this._def),innerType:this,defaultValue:n,typeName:Et.ZodDefault})}brand(){return new P$e({typeName:Et.ZodBranded,type:this,...$t(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new vO({...$t(this._def),innerType:this,catchValue:n,typeName:Et.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return vP.create(this,e)}readonly(){return bO.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const u$e=/^c[^\s-]{8,}$/i,d$e=/^[0-9a-z]+$/,f$e=/^[0-9A-HJKMNP-TV-Z]{26}$/i,h$e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,p$e=/^[a-z0-9_-]{21}$/i,m$e=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,g$e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,x$e=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,y$e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let L_;const v$e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,b$e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,w$e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,k$e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j$e=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,S$e=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wY="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",_$e=new RegExp(`^${wY}$`);function kY(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function N$e(t){return new RegExp(`^${kY(t)}$`)}function C$e(t){let e=`${wY}T${kY(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function E$e(t,e){return!!((e==="v4"||!e)&&v$e.test(t)||(e==="v6"||!e)&&w$e.test(t))}function A$e(t,e){if(!m$e.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(r));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function O$e(t,e){return!!((e==="v4"||!e)&&b$e.test(t)||(e==="v6"||!e)&&k$e.test(t))}class Yl extends nn{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==it.string){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.string,received:s.parsedType}),Nt}const r=new xi;let a;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(a=this._getOrReturnCtx(e,a),Xe(a,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const o=e.data.length>s.value,l=e.data.lengthe.test(a),{validation:n,code:Ie.invalid_string,...lt.errToObj(r)})}_addCheck(e){return new Yl({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...lt.errToObj(e)})}url(e){return this._addCheck({kind:"url",...lt.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...lt.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...lt.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...lt.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...lt.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...lt.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...lt.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...lt.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...lt.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...lt.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...lt.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...lt.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...lt.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...lt.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...lt.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...lt.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...lt.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...lt.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...lt.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...lt.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...lt.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...lt.errToObj(n)})}nonempty(e){return this.min(1,lt.errToObj(e))}trim(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Yl({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Yl({checks:[],typeName:Et.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...$t(t)});function T$e(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,a=n>r?n:r,s=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return s%o/10**a}class uf extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==it.number){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.number,received:s.parsedType}),Nt}let r;const a=new xi;for(const s of this._def.checks)s.kind==="int"?rn.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),a.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),a.dirty()):s.kind==="multipleOf"?T$e(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_finite,message:s.message}),a.dirty()):rn.assertNever(s);return{status:a.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,lt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,lt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,lt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,lt.toString(n))}setLimit(e,n,r,a){return new uf({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:lt.toString(a)}]})}_addCheck(e){return new uf({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:lt.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:lt.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:lt.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&rn.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew uf({checks:[],typeName:Et.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...$t(t)});class df extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==it.bigint)return this._getInvalidInput(e);let r;const a=new xi;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),a.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Xe(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),a.dirty()):rn.assertNever(s);return{status:a.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return Xe(n,{code:Ie.invalid_type,expected:it.bigint,received:n.parsedType}),Nt}gte(e,n){return this.setLimit("min",e,!0,lt.toString(n))}gt(e,n){return this.setLimit("min",e,!1,lt.toString(n))}lte(e,n){return this.setLimit("max",e,!0,lt.toString(n))}lt(e,n){return this.setLimit("max",e,!1,lt.toString(n))}setLimit(e,n,r,a){return new df({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:lt.toString(a)}]})}_addCheck(e){return new df({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:lt.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew df({checks:[],typeName:Et.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...$t(t)});class yk extends nn{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==it.boolean){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.boolean,received:r.parsedType}),Nt}return qi(e.data)}}yk.create=t=>new yk({typeName:Et.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...$t(t)});class Xp extends nn{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==it.date){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_type,expected:it.date,received:s.parsedType}),Nt}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return Xe(s,{code:Ie.invalid_date}),Nt}const r=new xi;let a;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(a=this._getOrReturnCtx(e,a),Xe(a,{code:Ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):rn.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Xp({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:lt.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:lt.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Xp({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:Et.ZodDate,...$t(t)});class I6 extends nn{_parse(e){if(this._getType(e)!==it.symbol){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.symbol,received:r.parsedType}),Nt}return qi(e.data)}}I6.create=t=>new I6({typeName:Et.ZodSymbol,...$t(t)});class $6 extends nn{_parse(e){if(this._getType(e)!==it.undefined){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.undefined,received:r.parsedType}),Nt}return qi(e.data)}}$6.create=t=>new $6({typeName:Et.ZodUndefined,...$t(t)});class L6 extends nn{_parse(e){if(this._getType(e)!==it.null){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.null,received:r.parsedType}),Nt}return qi(e.data)}}L6.create=t=>new L6({typeName:Et.ZodNull,...$t(t)});class F6 extends nn{constructor(){super(...arguments),this._any=!0}_parse(e){return qi(e.data)}}F6.create=t=>new F6({typeName:Et.ZodAny,...$t(t)});class B6 extends nn{constructor(){super(...arguments),this._unknown=!0}_parse(e){return qi(e.data)}}B6.create=t=>new B6({typeName:Et.ZodUnknown,...$t(t)});class Mu extends nn{_parse(e){const n=this._getOrReturnCtx(e);return Xe(n,{code:Ie.invalid_type,expected:it.never,received:n.parsedType}),Nt}}Mu.create=t=>new Mu({typeName:Et.ZodNever,...$t(t)});class z6 extends nn{_parse(e){if(this._getType(e)!==it.undefined){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.void,received:r.parsedType}),Nt}return qi(e.data)}}z6.create=t=>new z6({typeName:Et.ZodVoid,...$t(t)});class gl extends nn{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),a=this._def;if(n.parsedType!==it.array)return Xe(n,{code:Ie.invalid_type,expected:it.array,received:n.parsedType}),Nt;if(a.exactLength!==null){const o=n.data.length>a.exactLength.value,l=n.data.lengtha.maxLength.value&&(Xe(n,{code:Ie.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>a.type._parseAsync(new Ru(n,o,n.path,l)))).then(o=>xi.mergeArray(r,o));const s=[...n.data].map((o,l)=>a.type._parseSync(new Ru(n,o,n.path,l)));return xi.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new gl({...this._def,minLength:{value:e,message:lt.toString(n)}})}max(e,n){return new gl({...this._def,maxLength:{value:e,message:lt.toString(n)}})}length(e,n){return new gl({...this._def,exactLength:{value:e,message:lt.toString(n)}})}nonempty(e){return this.min(1,e)}}gl.create=(t,e)=>new gl({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Et.ZodArray,...$t(e)});function rh(t){if(t instanceof zr){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=yu.create(rh(r))}return new zr({...t._def,shape:()=>e})}else return t instanceof gl?new gl({...t._def,type:rh(t.element)}):t instanceof yu?yu.create(rh(t.unwrap())):t instanceof Zp?Zp.create(rh(t.unwrap())):t instanceof ff?ff.create(t.items.map(e=>rh(e))):t}class zr extends nn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=rn.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==it.object){const u=this._getOrReturnCtx(e);return Xe(u,{code:Ie.invalid_type,expected:it.object,received:u.parsedType}),Nt}const{status:r,ctx:a}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof Mu&&this._def.unknownKeys==="strip"))for(const u in a.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=s[u],f=a.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Ru(a,f,a.path,u)),alwaysSet:u in a.data})}if(this._def.catchall instanceof Mu){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:a.data[d]}});else if(u==="strict")l.length>0&&(Xe(a,{code:Ie.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const f=a.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Ru(a,f,a.path,d)),alwaysSet:d in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const f=await d.key,h=await d.value;u.push({key:f,value:h,alwaysSet:d.alwaysSet})}return u}).then(u=>xi.mergeObjectSync(r,u)):xi.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(e){return lt.errToObj,new zr({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,o;const a=((o=(s=this._def).errorMap)==null?void 0:o.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new zr({...this._def,unknownKeys:"strip"})}passthrough(){return new zr({...this._def,unknownKeys:"passthrough"})}extend(e){return new zr({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new zr({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Et.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new zr({...this._def,catchall:e})}pick(e){const n={};for(const r of rn.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new zr({...this._def,shape:()=>n})}omit(e){const n={};for(const r of rn.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new zr({...this._def,shape:()=>n})}deepPartial(){return rh(this)}partial(e){const n={};for(const r of rn.objectKeys(this.shape)){const a=this.shape[r];e&&!e[r]?n[r]=a:n[r]=a.optional()}return new zr({...this._def,shape:()=>n})}required(e){const n={};for(const r of rn.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof yu;)s=s._def.innerType;n[r]=s}return new zr({...this._def,shape:()=>n})}keyof(){return jY(rn.objectKeys(this.shape))}}zr.create=(t,e)=>new zr({shape:()=>t,unknownKeys:"strip",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});zr.strictCreate=(t,e)=>new zr({shape:()=>t,unknownKeys:"strict",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});zr.lazycreate=(t,e)=>new zr({shape:t,unknownKeys:"strip",catchall:Mu.create(),typeName:Et.ZodObject,...$t(e)});class vk extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function a(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=s.map(l=>new gc(l.ctx.common.issues));return Xe(n,{code:Ie.invalid_union,unionErrors:o}),Nt}if(n.common.async)return Promise.all(r.map(async s=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(a);{let s;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!s&&(s={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const l=o.map(c=>new gc(c));return Xe(n,{code:Ie.invalid_union,unionErrors:l}),Nt}}get options(){return this._def.options}}vk.create=(t,e)=>new vk({options:t,typeName:Et.ZodUnion,...$t(e)});function xO(t,e){const n=Fc(t),r=Fc(e);if(t===e)return{valid:!0,data:t};if(n===it.object&&r===it.object){const a=rn.objectKeys(e),s=rn.objectKeys(t).filter(l=>a.indexOf(l)!==-1),o={...t,...e};for(const l of s){const c=xO(t[l],e[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===it.array&&r===it.array){if(t.length!==e.length)return{valid:!1};const a=[];for(let s=0;s{if(R6(s)||R6(o))return Nt;const l=xO(s.value,o.value);return l.valid?((M6(s)||M6(o))&&n.dirty(),{status:n.value,value:l.data}):(Xe(r,{code:Ie.invalid_intersection_types}),Nt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>a(s,o)):a(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}bk.create=(t,e,n)=>new bk({left:t,right:e,typeName:Et.ZodIntersection,...$t(n)});class ff extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.array)return Xe(r,{code:Ie.invalid_type,expected:it.array,received:r.parsedType}),Nt;if(r.data.lengththis._def.items.length&&(Xe(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Ru(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>xi.mergeArray(n,o)):xi.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new ff({...this._def,rest:e})}}ff.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ff({items:t,typeName:Et.ZodTuple,rest:null,...$t(e)})};class U6 extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.map)return Xe(r,{code:Ie.invalid_type,expected:it.map,received:r.parsedType}),Nt;const a=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:a._parse(new Ru(r,l,r.path,[u,"key"])),value:s._parse(new Ru(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return Nt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return Nt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}U6.create=(t,e,n)=>new U6({valueType:e,keyType:t,typeName:Et.ZodMap,...$t(n)});class iy extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==it.set)return Xe(r,{code:Ie.invalid_type,expected:it.set,received:r.parsedType}),Nt;const a=this._def;a.minSize!==null&&r.data.sizea.maxSize.value&&(Xe(r,{code:Ie.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),n.dirty());const s=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return Nt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>s._parse(new Ru(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(e,n){return new iy({...this._def,minSize:{value:e,message:lt.toString(n)}})}max(e,n){return new iy({...this._def,maxSize:{value:e,message:lt.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}iy.create=(t,e)=>new iy({valueType:t,minSize:null,maxSize:null,typeName:Et.ZodSet,...$t(e)});class V6 extends nn{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}V6.create=(t,e)=>new V6({getter:t,typeName:Et.ZodLazy,...$t(e)});class W6 extends nn{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return Xe(n,{received:n.data,code:Ie.invalid_literal,expected:this._def.value}),Nt}return{status:"valid",value:e.data}}get value(){return this._def.value}}W6.create=(t,e)=>new W6({value:t,typeName:Et.ZodLiteral,...$t(e)});function jY(t,e){return new Jp({values:t,typeName:Et.ZodEnum,...$t(e)})}class Jp extends nn{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return Xe(n,{expected:rn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Nt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return Xe(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Nt}return qi(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return Jp.create(e,{...this._def,...n})}exclude(e,n=this._def){return Jp.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}}Jp.create=jY;class H6 extends nn{_parse(e){const n=rn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==it.string&&r.parsedType!==it.number){const a=rn.objectValues(n);return Xe(r,{expected:rn.joinValues(a),received:r.parsedType,code:Ie.invalid_type}),Nt}if(this._cache||(this._cache=new Set(rn.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const a=rn.objectValues(n);return Xe(r,{received:r.data,code:Ie.invalid_enum_value,options:a}),Nt}return qi(e.data)}get enum(){return this._def.values}}H6.create=(t,e)=>new H6({values:t,typeName:Et.ZodNativeEnum,...$t(e)});class wk extends nn{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==it.promise&&n.common.async===!1)return Xe(n,{code:Ie.invalid_type,expected:it.promise,received:n.parsedType}),Nt;const r=n.parsedType===it.promise?n.data:Promise.resolve(n.data);return qi(r.then(a=>this._def.type.parseAsync(a,{path:n.path,errorMap:n.common.contextualErrorMap})))}}wk.create=(t,e)=>new wk({type:t,typeName:Et.ZodPromise,...$t(e)});class hf extends nn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Et.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),a=this._def.effect||null,s={addIssue:o=>{Xe(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),a.type==="preprocess"){const o=a.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return Nt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?Nt:c.status==="dirty"||n.value==="dirty"?ex(c.value):c});{if(n.value==="aborted")return Nt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?Nt:l.status==="dirty"||n.value==="dirty"?ex(l.value):l}}if(a.type==="refinement"){const o=l=>{const c=a.refinement(l,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?Nt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?Nt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(a.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Yp(o))return Nt;const l=a.transform(o.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Yp(o)?Promise.resolve(a.transform(o.value,s)).then(l=>({status:n.value,value:l})):Nt);rn.assertNever(a)}}hf.create=(t,e,n)=>new hf({schema:t,typeName:Et.ZodEffects,effect:e,...$t(n)});hf.createWithPreprocess=(t,e,n)=>new hf({schema:e,effect:{type:"preprocess",transform:t},typeName:Et.ZodEffects,...$t(n)});class yu extends nn{_parse(e){return this._getType(e)===it.undefined?qi(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}yu.create=(t,e)=>new yu({innerType:t,typeName:Et.ZodOptional,...$t(e)});class Zp extends nn{_parse(e){return this._getType(e)===it.null?qi(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Zp.create=(t,e)=>new Zp({innerType:t,typeName:Et.ZodNullable,...$t(e)});class yO extends nn{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===it.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}yO.create=(t,e)=>new yO({innerType:t,typeName:Et.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...$t(e)});class vO extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},a=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return xk(a)?a.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new gc(r.common.issues)},input:r.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new gc(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}vO.create=(t,e)=>new vO({innerType:t,typeName:Et.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...$t(e)});class G6 extends nn{_parse(e){if(this._getType(e)!==it.nan){const r=this._getOrReturnCtx(e);return Xe(r,{code:Ie.invalid_type,expected:it.nan,received:r.parsedType}),Nt}return{status:"valid",value:e.data}}}G6.create=t=>new G6({typeName:Et.ZodNaN,...$t(t)});class P$e extends nn{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class vP extends nn{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Nt:s.status==="dirty"?(n.dirty(),ex(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const a=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Nt:a.status==="dirty"?(n.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:r.path,parent:r})}}static create(e,n){return new vP({in:e,out:n,typeName:Et.ZodPipeline})}}class bO extends nn{_parse(e){const n=this._def.innerType._parse(e),r=a=>(Yp(a)&&(a.value=Object.freeze(a.value)),a);return xk(n)?n.then(a=>r(a)):r(n)}unwrap(){return this._def.innerType}}bO.create=(t,e)=>new bO({innerType:t,typeName:Et.ZodReadonly,...$t(e)});var Et;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Et||(Et={}));const Ud=Yl.create,Ad=uf.create;df.create;yk.create;Xp.create;Mu.create;const SY=gl.create,d2=zr.create;vk.create;bk.create;ff.create;Jp.create;wk.create;yu.create;Zp.create;const Od=hf.createWithPreprocess,_Y={string:t=>Yl.create({...t,coerce:!0}),number:t=>uf.create({...t,coerce:!0}),boolean:t=>yk.create({...t,coerce:!0}),bigint:t=>df.create({...t,coerce:!0}),date:t=>Xp.create({...t,coerce:!0})},R$e=d2({id:Ud().min(1),gatewayName:Ud().trim().min(1,"Gateway name is required"),gatewayId:Ud().trim(),split:Ad().min(0).max(100)});d2({ruleName:Ud().trim().min(1,"Enter a rule name"),gateways:SY(R$e).min(1,"Add at least one gateway")});function M$e(t){return!!(t.ruleName||t.total||Object.keys(t.gateways).length)}function D$e(t){const e={gateways:{}};if(t.ruleName.trim()||(e.ruleName="Enter a rule name"),!t.gateways.length)return e.total="Add at least one gateway.",e;t.gateways.forEach(r=>{r.gatewayName.trim()||(e.gateways[r.id]="Choose a gateway.")});const n=t.gateways.reduce((r,a)=>r+a.split,0);return n!==100&&(e.total=`Splits must sum to 100 (currently ${n}).`),e}const su=["#0069ED","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function NY({gateways:t}){const e=t.filter(r=>r.gatewayName.trim());if(e.length===0)return i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:"No gateways yet — add at least one to split traffic across."});const n=e.reduce((r,a)=>r+a.split,0);return i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex h-3 w-full gap-0.5 overflow-hidden rounded-full",children:e.map((r,a)=>i.jsx("div",{className:"h-full",style:{flex:`${n>0?r.split:1} 1 0`,backgroundColor:su[a%su.length]},title:`${r.gatewayName}: ${r.split}%`},r.id))}),i.jsx("div",{className:"space-y-1.5",children:e.map((r,a)=>i.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:su[a%su.length]}}),i.jsx("span",{className:"min-w-0 truncate font-medium text-slate-700 dark:text-slate-200",title:r.gatewayName,children:r.gatewayName}),r.gatewayId&&i.jsx("span",{className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-[#78849a] leading-4",title:r.gatewayId,children:r.gatewayId}),i.jsxs("span",{className:"ml-auto shrink-0 pl-2 font-semibold tabular-nums text-slate-700 dark:text-slate-200",children:[r.split,"%"]})]},r.id))}),n!==100&&i.jsxs("p",{className:"text-[11px] font-medium text-amber-700 dark:text-amber-400 leading-4",children:["Splits total ",n,"% — must add up to 100%."]})]})}function kk(){return Math.random().toString(36).slice(2)}function q6(){return[{id:kk(),gatewayName:"",gatewayId:"",split:50},{id:kk(),gatewayName:"",gatewayId:"",split:50}]}function CY(t){return Number.isNaN(t)?0:Math.min(100,Math.max(0,Math.round(t)))}function F_(t){if(t.length===0)return t;const e=t.slice(0,-1),n=e.reduce((s,o)=>s+o.split,0),r=CY(100-n),a=t[t.length-1];return[...e,{...a,split:r}]}function K6(){var M;const t=Ao(),e=Hr(),{id:n}=Tz(),[r]=vc(),a=r.get("cloneFrom"),s=!!n,{merchantId:o}=$r(),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(()=>q6()),[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState({gateways:{}}),w=g.useRef(null),{data:j,mutate:k}=ct(o?`/routing/list/${o}`:null,()=>Fe(`/routing/list/${o}`)),{data:S}=ct(o?`/routing/list/active/${o}`:null,()=>Fe(`/routing/list/active/${o}`)),_=n||a,C=_?(j||[]).find(B=>B.id===_):void 0,E=s&&(S||[]).some(B=>B.id===n),P=s&&!S,R=g.useRef(null),A=g.useRef(null);g.useEffect(()=>{if(!C||R.current===C.id)return;const B=u2(C);B&&(R.current=C.id,c(s?B.name:`copy-of-${B.name}`),d(B.description&&B.description!=="N/A"?B.description:""),B.gateways.length>0&&h(B.gateways),A.current=JSON.stringify([(s?B.name:`copy-of-${B.name}`).trim(),B.description&&B.description!=="N/A"?B.description:"",B.gateways.length>0?B.gateways:f]))},[C,s]);const T=A.current!==null&&A.current!==JSON.stringify([l.trim(),u,f]),D=C&&l.trim()===C.name?`copy-of-${C.name}`:l.trim(),L=((M=f[f.length-1])==null?void 0:M.id)??null,X=L?f.filter(B=>B.id!==L).reduce((B,z)=>B+z.split,0):0,J=Math.max(0,X-100),U=f.reduce((B,z)=>B+z.split,0);function Y(B,z,Z){h(pe=>F_(pe.map(ae=>ae.id!==B?ae:z==="split"?{...ae,split:CY(Number(Z))}:{...ae,[z]:Z})))}function W(){h(B=>F_([...B,{id:kk(),gatewayName:"",gatewayId:"",split:0}]))}function G(B){h(z=>{const Z=z.filter(pe=>pe.id!==B);return F_(Z.length?Z:[{id:kk(),gatewayName:"",gatewayId:"",split:100}])})}function I(){c(""),d(""),h(q6()),v(null),y({gateways:{}})}async function q(B){var Z;if(B.preventDefault(),!o){v("Set a merchant ID first");return}const z=D$e({ruleName:l,gateways:f});if(y(z),M$e(z)){v("Fix the highlighted fields before saving."),z.ruleName&&((Z=w.current)==null||Z.focus());return}m(!0),v(null);try{s&&!E?await Fe("/routing/update",{created_by:o,routing_algorithm_id:n,name:l.trim(),description:u,algorithm:bY(f)}):await Fe("/routing/create",s$e({ruleName:E?D:l,description:u,gateways:f},o)),await k(),e("/routing/volume")}catch(pe){v(pe instanceof Error?pe.message:"Failed to save rule")}finally{m(!1)}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("button",{type:"button",onClick:()=>e("/routing/volume"),className:"mb-2 inline-flex items-center gap-2 text-sm font-medium text-slate-500 transition-colors hover:text-brand-600 dark:text-[#8d96a8] dark:hover:text-brand-400",children:[i.jsx(Mj,{size:16})," Volume Split Routing"]}),i.jsx(Ba,{title:s?"Edit Volume Split Rule":"Create Volume Split Rule",description:"Divide traffic across gateways by percentage. The last row absorbs whatever the others leave.",className:"truncate"})]}),s&&!C&&j&&i.jsx(vt,{error:"That rule no longer exists for this merchant."}),E&&i.jsxs($a,{tone:"warning",children:[i.jsx("strong",{children:"This rule is active"})," — it keeps serving traffic and cannot be changed in place. Edit freely: saving creates a copy named"," ",i.jsx("strong",{children:D||"copy-of-…"}),", which you can activate from the rules list when you are ready."]}),i.jsxs("div",{className:"flex flex-col gap-6 xl:flex-row xl:items-start",children:[i.jsxs("form",{onSubmit:q,className:"min-w-0 flex-1 space-y-4",children:[i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 gap-x-12 gap-y-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-name",className:"shrink-0 whitespace-nowrap py-2.5 text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Rule Name *"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("input",{id:"volume-rule-name",ref:w,value:l,onChange:B=>{c(B.target.value),b.ruleName&&y(z=>({...z,ruleName:void 0}))},placeholder:"e.g. ab-test-split","aria-invalid":!!b.ruleName,className:`w-full rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226] ${UH(!!b.ruleName)}`}),i.jsx(Ww,{message:b.ruleName})]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("label",{htmlFor:"volume-rule-description",className:"shrink-0 whitespace-nowrap text-[13px] font-semibold text-slate-700 dark:text-slate-300 leading-[18px]",children:"Description"}),i.jsx("input",{id:"volume-rule-description",value:u,onChange:B=>d(B.target.value),placeholder:"Optional description",className:"min-w-0 flex-1 rounded-lg border border-slate-200 bg-transparent px-3.5 py-2.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("p",{className:"border-b border-slate-100 pb-2.5 text-xs font-semibold uppercase tracking-widest text-slate-500 dark:border-[#1c1c24] dark:text-[#8d96a8]",children:"Traffic Distribution"}),i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] gap-3 px-1 text-xs font-medium text-slate-500 md:grid",children:[i.jsx("span",{children:"Gateway Name"}),i.jsx("span",{children:"Gateway ID"}),i.jsx("span",{children:"Split %"}),i.jsx("span",{})]}),f.map((B,z)=>{const Z=B.id===L,pe=B.gatewayName.trim()||`Gateway ${z+1}`;return i.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(260px,320px)_32px] md:items-center",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx(Ly,{value:B.gatewayName,onChange:(ae,ue)=>{Y(B.id,"gatewayName",ae),Y(B.id,"gatewayId",(ue==null?void 0:ue.gatewayId)??""),b.gateways[B.id]&&y(de=>{const{[B.id]:Q,...fe}=de.gateways;return{...de,gateways:fe}})},placeholder:"e.g. stripe",options:Kp([],f.filter(ae=>ae.id!==B.id).map(ae=>ae.gatewayName),f.filter(ae=>ae.id!==B.id).map(ae=>ae.gatewayId)),className:"min-w-0"}),i.jsx(Ww,{message:b.gateways[B.id]})]}),i.jsx("input",{value:B.gatewayId,onChange:ae=>Y(B.id,"gatewayId",ae.target.value),placeholder:"optional gateway_id",className:"rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-lg border border-slate-200 bg-transparent px-2.5 py-2 focus-within:border-brand-500 dark:border-[#222226]",children:[i.jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:su[z%su.length]}}),i.jsx("input",{type:"range",min:0,max:100,value:B.split,disabled:Z,onChange:ae=>Y(B.id,"split",Number(ae.target.value)),"aria-label":`${pe} allocation slider`,className:"h-2 min-w-0 flex-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",style:{accentColor:su[z%su.length]}}),i.jsx("input",{type:"number",min:0,max:100,value:B.split,onChange:ae=>Y(B.id,"split",Number(ae.target.value)),disabled:Z,"aria-label":`${pe} split percentage`,className:"w-12 border-0 bg-transparent p-0 text-right text-sm tabular-nums focus:outline-none disabled:cursor-not-allowed disabled:opacity-70"}),i.jsx("span",{className:"text-xs text-slate-500",children:"%"}),Z&&f.length>1&&i.jsx("span",{className:"rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-600 dark:bg-[#1a1a22] dark:text-slate-300 leading-4",children:"Auto"})]}),i.jsx("button",{type:"button",onClick:()=>G(B.id),disabled:f.length===1,"aria-label":`Remove ${pe}`,className:"text-slate-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40",children:i.jsx(wn,{size:15})})]},B.id)}),i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("button",{type:"button",onClick:W,className:"flex items-center gap-1 text-[13px] font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-400 leading-[18px]",children:[i.jsx(Qn,{size:14})," Add Gateway"]}),i.jsxs("span",{role:b.total?"alert":void 0,className:`text-xs font-medium ${U===100?"text-emerald-700":"text-red-600"}`,children:["Total: ",U,"%",J?` (reduce fixed splits by ${J}%)`:U!==100?" (must be 100)":""]})]})]})]})}),i.jsx(vt,{error:x}),i.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[i.jsx(we,{type:"submit",disabled:p||!o||!t||P||E&&!T,title:E&&!T?"Change something to save it as a copy. To copy this rule unchanged, use Duplicate in the rules list.":void 0,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):E?"Duplicate and save":s?"Save Changes":"Create Rule"}),i.jsx(we,{type:"button",variant:"secondary",size:"sm",onClick:I,children:"Clear"}),i.jsx("button",{type:"button",onClick:()=>e("/routing/volume"),className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-800 dark:text-[#8d96a8] dark:hover:text-white",children:"Cancel"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#78849a] max-w-[57ch]",children:s?"Saved changes apply the next time this rule is activated.":"A new rule is created inactive — activate it from the rules list."})]})]}),i.jsx("aside",{className:"w-full shrink-0 xl:w-[24rem]",children:i.jsx("div",{className:"xl:sticky xl:top-6",children:i.jsx(Te,{children:i.jsxs(He,{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-xs font-semibold uppercase tracking-widest text-slate-500 dark:text-[#8d96a8]",children:"Rule details"}),i.jsx("p",{className:"mt-1 truncate text-sm font-semibold text-slate-800 dark:text-slate-100",children:l.trim()||"Untitled rule"})]}),i.jsx(NY,{gateways:f})]})})})})]})]})}const I$e={"15m":{detail:"Last 15 mins",badge:"Live 15m"},"1h":{detail:"Last hour",badge:"Live 1h"},"12h":{detail:"Last 12 hours",badge:"Live 12h"},"1d":{detail:"Last 1 day",badge:"Live 1d"},"1w":{detail:"Last 1 week",badge:"Live 1w"}};function Ng(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:t&&t<100?1:0}).format(t||0)}function Y6(t){return t==null||Number.isNaN(t)?"0%":`${t.toFixed(t>=100?0:1)}%`}function $$e(t){const e=Date.now()-t;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}function L$e(t){return t>=.85?{dot:"bg-emerald-500",text:"text-emerald-700 dark:text-emerald-400"}:t>=.7?{dot:"bg-amber-500",text:"text-amber-700 dark:text-amber-400"}:{dot:"bg-red-500",text:"text-red-600 dark:text-red-400"}}function F$e(){return i.jsxs("div",{className:"grid gap-5 lg:grid-cols-[1.1fr_0.9fr]",children:[i.jsxs(Te,{className:"p-7",children:[i.jsx(vn,{children:"Merchant session required"}),i.jsx("h2",{className:"mt-4 max-w-xl text-3xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Sign in with a merchant account to turn this into a live overview."}),i.jsx("p",{className:"mt-4 max-w-xl text-sm leading-7 text-slate-600 dark:text-[#b2bdd1]",children:"Analytics use your signed-in merchant account. After sign-in, the overview shows service health, active routing, request count, and gateway activity."})]}),i.jsx(Te,{className:"p-7",children:i.jsx("div",{className:"space-y-5",children:[{icon:Ip,title:"System status",text:"Check whether the service is reachable."},{icon:Lj,title:"Routing setup",text:"See whether a strategy is configured."},{icon:_o,title:"Gateway activity",text:"View recent request distribution by gateway."}].map(t=>i.jsxs("div",{className:"flex items-start gap-4",children:[i.jsx("div",{className:"rounded-2xl border border-slate-200 bg-slate-50 p-3 dark:border-[#2a303a] dark:bg-[#161b24]",children:i.jsx(t.icon,{className:"h-5 w-5 text-brand-600 dark:text-sky-300"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:t.title}),i.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600 dark:text-[#b2bdd1]",children:t.text})]})]},t.title))})})]})}function B$e(){var I,q,M,B,z,Z,pe,ae,ue,de,Q,fe;const{merchantId:t}=$r(),e=hr(ne=>{var ce;return((ce=ne.user)==null?void 0:ce.merchantId)||""}),n=t||e,[r,a]=g.useState("1d"),[s,o]=g.useState(()=>$s(eu("1d").start_ms)),[l,c]=g.useState(()=>$s(Date.now())),u=g.useMemo(()=>r==="custom"?Fp(s,l):void 0,[l,s,r]),{data:d}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`),{shouldRetryOnError:!1}),{data:f}=ct(n?["/rule/get","successRate",n]:null,()=>Fe("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1}),h=Ey(n),p=Sl(n||void 0),m=r==="custom"?u?`range=1h&start_ms=${u.start_ms}&end_ms=${u.end_ms}`:null:`range=${r}`,x=m?`/analytics/overview?${m}`:null,v=m?`/analytics/routing-stats?${m}`:null,b=ct(x,Dt,{shouldRetryOnError:!1,keepPreviousData:!0}),y=ct(v,Dt,{shouldRetryOnError:!1,keepPreviousData:!0}),w=(d==null?void 0:d[0])||null,j=(d||[]).some(ne=>{var ce;return((ce=ne.algorithm_data||ne.algorithm)==null?void 0:ce.type)==="advanced"}),S=((q=(((I=b.data)==null?void 0:I.route_hits)||[]).find(ne=>ne.route==="/decide_gateway"))==null?void 0:q.count)||0,_=((B=(M=b.data)==null?void 0:M.top_errors)==null?void 0:B.reduce((ne,ce)=>ne+ce.count,0))||0,C=((z=b.data)==null?void 0:z.top_errors)||[],E=g.useMemo(()=>{var ce;const ne=new Map;for(const he of((ce=b.data)==null?void 0:ce.top_scores)||[]){const be=ne.get(he.gateway)??{scoreSum:0,txSum:0};be.scoreSum+=he.score_value*he.transaction_count,be.txSum+=he.transaction_count,ne.set(he.gateway,be)}return Array.from(ne.entries()).map(([he,be])=>({gateway:he,score:be.txSum>0?be.scoreSum/be.txSum:0,txCount:be.txSum})).sort((he,be)=>be.txCount-he.txCount)},[b.data]),P=g.useMemo(()=>{var he;const ne=new Map;for(const be of((he=y.data)==null?void 0:he.gateway_share)||[])ne.set(be.gateway,(ne.get(be.gateway)||0)+be.count);const ce=Array.from(ne.values()).reduce((be,Pe)=>be+Pe,0);return Array.from(ne.entries()).map(([be,Pe])=>({gateway:be,count:Pe,share:ce?Pe/ce*100:0})).sort((be,Pe)=>Pe.count-be.count)},[y.data]),R=((Z=P[0])==null?void 0:Z.gateway)||((ue=(ae=(pe=b.data)==null?void 0:pe.top_scores)==null?void 0:ae[0])==null?void 0:ue.gateway),A=r==="custom"?{detail:u?`${Uw(u.start_ms)} — ${Uw(u.end_ms)}`:"Custom window",badge:"Custom"}:I$e[r],T=!!(((de=f==null?void 0:f.config)==null?void 0:de.type)==="successRate"&&f.config.data&&f.merchant_id===n),D=p.isEnabled("autopilot"),L=T||D,X=h.isEnabled,J=[!!w,L,j,X].filter(Boolean).length,U=[{label:"Routing strategy",description:w?w.name:"None configured",state:w?"Configured":"Not set",icon:Lj,required:!0,href:"../routing"},{label:"Multi-objective config",description:D?"Autopilot mode enabled":T?"Configured":"Not configured",state:D?"Auto-pilot":T?"Configured":"Not set",icon:Bj,required:!0,href:"../routing/sr"},{label:"Rule-based routing",description:j?"Enabled":"Not enabled",state:j?"Enabled":"Optional",icon:Dj,required:!1,href:"../routing/rules"},{label:"Debit routing",description:h.isLoading?"Checking…":X?"Enabled":"Not enabled",state:h.isLoading?"Checking":X?"Enabled":"Optional",icon:_o,required:!1,href:"../routing/debit"}],Y=!b.data&&b.isLoading||!y.data&&y.isLoading,W=!Y&&(b.isValidating||y.isValidating),G=["#38bdf8","#60a5fa","#22c55e","#f59e0b"];return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsxs("header",{className:"relative flex flex-wrap items-start justify-between gap-4",children:[i.jsx(Ba,{title:"Overview",badge:(Q=b.data)!=null&&Q.merchant_id||n?i.jsx(Me,{variant:"blue",children:((fe=b.data)==null?void 0:fe.merchant_id)||n}):null}),i.jsx("div",{className:"flex flex-wrap items-center gap-2 md:justify-end",children:i.jsx(tT,{range:r,customStart:s,customEnd:l,onRangeChange:ne=>{if(a(ne),ne!=="custom"){const ce=eu(ne);o($s(ce.start_ms)),c($s(ce.end_ms))}},onCustomChange:(ne,ce)=>{o(ne),c(ce)}})}),i.jsx("div",{className:`absolute bottom-0 left-0 right-0 h-[2px] overflow-hidden transition-opacity duration-500 ${Y||W?"opacity-100":"opacity-0"}`,children:i.jsx("div",{className:"h-full origin-left animate-[analytics-progress_1.8s_ease-in-out_infinite] bg-brand-500"})})]}),n?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:`grid gap-4 sm:grid-cols-3 transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-5",children:[i.jsx(vn,{children:"Requests"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:Ng(S)}),i.jsxs("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:["/decide-gateway · ",A.detail.toLowerCase()]})]}),i.jsxs(Te,{className:`p-5 transition-colors ${_>0?"border-red-300/60 dark:border-red-500/30":""}`,children:[i.jsx(vn,{children:"Errors"}),i.jsx("p",{className:`mt-3 text-[2rem] font-semibold leading-none tracking-tight ${_>0?"text-red-600 dark:text-red-400":"text-slate-950 dark:text-white"}`,children:Ng(_)}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:_>0?"Issues detected in window":"No issues in window"})]}),i.jsxs(Te,{className:"p-5",children:[i.jsx(vn,{children:"Top gateway"}),i.jsx("p",{className:"mt-3 text-[2rem] font-semibold leading-none tracking-tight text-slate-950 dark:text-white",children:(R==null?void 0:R.toUpperCase())||"—"}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa] max-w-[57ch]",children:P[0]?`${Y6(P[0].share)} of traffic`:"No activity yet"})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-[1.1fr_0.9fr] transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Gateway activity"}),i.jsx(Me,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-6 space-y-3",children:P.length?P.slice(0,4).map((ne,ce)=>i.jsxs("div",{className:"rounded-[20px] border border-slate-200 bg-slate-50/80 p-4 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("span",{className:"h-2.5 w-2.5 flex-shrink-0 rounded-full",style:{backgroundColor:G[ce]||G[0]}}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:ne.gateway.toUpperCase()}),i.jsxs("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-[#98a3b8]",children:[Ng(ne.count)," requests"]})]})]}),i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Y6(ne.share)})]}),i.jsx("div",{className:"mt-3 h-1.5 rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${Math.max(4,ne.share)}%`,backgroundColor:G[ce]||G[0]}})})]},ne.gateway)):i.jsxs("div",{className:"rounded-[20px] border border-dashed border-slate-200 px-5 py-12 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No gateway activity yet"}),i.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-500 dark:text-[#a6b0c3]",children:"Traffic by gateway will appear here once requests flow through."})]})})]}),i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Setup"}),i.jsxs(Me,{variant:J>=2?"green":"orange",children:[J,"/4 ready"]})]}),i.jsx("div",{className:"mt-4 h-1.5 overflow-hidden rounded-full bg-slate-200 dark:bg-[#232933]",children:i.jsx("div",{className:"h-full rounded-full bg-emerald-500 transition-all duration-500",style:{width:`${J/4*100}%`}})}),i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:U.map(ne=>{const ce=ne.state==="Live"||ne.state==="Configured"||ne.state==="Enabled"||ne.state==="Auto-pilot",he=ne.state==="Issue"?"text-red-600":ce?"text-emerald-700":"text-slate-500 dark:text-[#78849a]",be=ce?"green":ne.state==="Issue"?"red":ne.state==="Checking"?"gray":ne.required?"orange":"gray",Pe=i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[i.jsx(ne.icon,{className:`h-4 w-4 flex-shrink-0 ${he}`}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:ne.label}),i.jsx("p",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.description})]})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1.5",children:[i.jsx(Me,{variant:be,children:ne.state}),ne.href&&i.jsx(So,{className:"h-3.5 w-3.5 text-slate-500 dark:text-[#78849a]"})]})]}),Ce="flex items-center justify-between gap-3 py-3.5 rounded-lg -mx-2 px-2";return ne.href?i.jsx(Yd,{to:ne.href,relative:"path",className:`${Ce} transition-colors hover:bg-slate-50 dark:hover:bg-[#13192a]`,children:Pe},ne.label):i.jsx("div",{className:Ce,children:Pe},ne.label)})})]})]}),i.jsxs("div",{className:`grid gap-6 xl:grid-cols-2 transition-opacity duration-200 ${W?"opacity-60":"opacity-100"}`,children:[i.jsxs(Te,{className:"p-6",children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Gateway health"}),i.jsx(Me,{variant:"blue",children:A.badge})]}),i.jsx("div",{className:"mt-5 space-y-2",children:E.length?E.slice(0,5).map(ne=>{const ce=L$e(ne.score);return i.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-slate-200 bg-slate-50/80 px-4 py-3 dark:border-[#2a303a] dark:bg-[#121720]",children:[i.jsx("span",{className:`h-2 w-2 flex-shrink-0 rounded-full ${ce.dot}`}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-slate-950 dark:text-white",children:ne.gateway.toUpperCase()}),i.jsxs("span",{className:`text-sm font-semibold tabular-nums ${ce.text}`,children:[(ne.score*100).toFixed(1),"%"]})]},ne.gateway)}):i.jsxs("div",{className:"rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"No score data yet"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"SR scores appear once gateways handle traffic."})]})})]}),i.jsxs(Te,{className:`p-6 transition-colors ${_>0?"border-red-300/40 dark:border-red-500/20":""}`,children:[i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx(vn,{children:"Recent errors"}),_>0?i.jsxs(Me,{variant:"red",children:[Ng(_)," total"]}):i.jsx(Me,{variant:"green",children:"Clean"})]}),C.length?i.jsx("div",{className:"mt-4 divide-y divide-slate-100 dark:divide-[#1e2535]",children:C.slice(0,5).map((ne,ce)=>i.jsxs("div",{className:"flex items-start justify-between gap-3 py-3",children:[i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"rounded bg-red-50 px-1.5 py-0.5 font-mono text-[11px] font-medium text-red-700 dark:bg-red-500/10 dark:text-red-400 leading-4",children:ne.error_code}),i.jsx("span",{className:"truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.route})]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500 dark:text-[#8d96aa]",children:ne.error_message})]}),i.jsxs("div",{className:"flex-shrink-0 text-right",children:[i.jsx("p",{className:"text-sm font-semibold tabular-nums text-slate-950 dark:text-white",children:Ng(ne.count)}),i.jsx("p",{className:"text-[11px] text-slate-500 dark:text-[#78849a] leading-4",children:$$e(ne.last_seen_ms)})]})]},ce))}):i.jsxs("div",{className:"mt-5 flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 px-5 py-10 text-center dark:border-[#2a303a]",children:[i.jsx(Ip,{className:"h-8 w-8 text-emerald-700"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:"No errors in window"}),i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#a6b0c3]",children:"All requests resolved without errors."})]})]})]})]}):i.jsx(F$e,{})]})}function Fy({text:t,label:e,size:n=10,className:r=""}){const[a,s]=g.useState(!1);function o(l){l.stopPropagation(),navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),2e3)}return i.jsx("button",{type:"button",onClick:o,title:a?"Copied!":e??"Copy to clipboard",className:`shrink-0 transition-colors text-slate-500 hover:text-slate-500 dark:text-[#78849a] dark:hover:text-[#8090a8] ${r}`,children:a?i.jsx(gi,{size:n,className:"text-emerald-700"}):i.jsx(nf,{size:n})})}const z$e=[{value:"",label:"Any status"},{value:"success",label:"Success"},{value:"failure",label:"Failure"}],U$e=[{value:"",label:"Any route"},{value:"decide_gateway",label:"Decide Gateway"},{value:"update_gateway_score",label:"Update Gateway"},{value:"routing_evaluate",label:"Rule Evaluate"}],V$e=["summary","input","response","raw"],W$e={summary:"Summary",input:"Request",response:"Response",raw:"Raw JSON"},bP="NTW_BASED_ROUTING",X6={transactions:"Multi-objective",rule_based:"Rule based / Volume based",debit_routing:"Debit routing"},J6={paymentId:"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""};function pd(t){const e=t.paymentId.trim()||t.requestId.trim(),n=H$e(e)?e:"";return{paymentId:n?"":e,requestId:n,gateway:t.gateway.trim(),route:t.route,status:t.status,flowType:t.flowType.trim(),errorCode:t.errorCode.trim()}}function H$e(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^req[_-]/i.test(t)}function wP(t){return t.flow_type||""}function G$e(t){return t.endsWith("_error")}function EY(t){return t.startsWith("routing_evaluate_")&&t!=="routing_evaluate_request_hit"}function AY(t){return t==="decide_gateway_rule_hit"}function q$e(t){return t.startsWith("update_gateway_score_")||t.startsWith("update_score_legacy_")}function OY(t){return t.startsWith("decide_gateway_")&&!AY(t)}function wO(t){const e=new URLSearchParams;return Object.entries(t).forEach(([n,r])=>{r!==void 0&&r!==""&&e.set(n,String(r))}),e.toString()}function Z6(t,e,n,r,a,s,o,l){const c=pd(a),u={range:e==="custom"?"1h":e,page:n,page_size:r,start_ms:s==null?void 0:s.start_ms,end_ms:s==null?void 0:s.end_ms,payment_id:c.paymentId||void 0,request_id:c.requestId||void 0,gateway:c.gateway||void 0,route:c.route||void 0,status:c.status||void 0,flow_type:c.flowType||void 0,routing_approach:o,exclude_routing_approach:l,error_code:c.errorCode||void 0},d=wO(u);return d?`${t}?${d}`:t}function K$e(t){return t==="debit_routing"?"debit_routing":t==="rule_based"?"rule_based":"transactions"}function Q6(t){return t==="debit_routing"?bP:void 0}function eF(t){return t==="transactions"?bP:void 0}function Y$e(t){return pd({paymentId:t.get("payment_id")||t.get("request_id")||"",requestId:"",gateway:t.get("gateway")||"",route:t.get("route")||"",status:t.get("status")||"",flowType:t.get("flow_type")||t.get("event_type")||"",errorCode:t.get("error_code")||""})}function X$e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t))}function tF(t){const e=Math.max(0,Math.round((Date.now()-t)/6e4));if(e<1)return"just now";if(e<60)return`${e}m ago`;const n=Math.round(e/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`}function Td(t){return t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().toLowerCase().replace(/\b\w/g,n=>n.toUpperCase()):""}function J$e(t){return t.filter(Boolean).join(" · ")}function Z$e(t){return t?t==="decision_gateway"||t==="decide_gateway"?"Decide Gateway":t==="update_gateway_score"?"Update Gateway":t==="routing_evaluate"?"Rule Evaluate":Td(t):"Unknown route"}function B_(t){const e=wP(t);return t.event_stage==="gateway_decided"?"Decide Gateway":t.event_stage==="score_updated"?"Update Gateway":t.event_stage==="rule_applied"?"Rule Evaluate":t.event_stage==="preview_evaluated"||EY(e)?"Decision Result":G$e(e)?"Errors":Td(t.event_stage||e)}function Q$e(t){const e=wP(t);return OY(e)||t.event_stage==="gateway_decided"?"Decide Gateway":AY(e)||t.event_stage==="rule_applied"?"Rule Evaluate":EY(e)||t.event_stage==="preview_evaluated"?"Rule Decision":q$e(e)||t.event_stage==="score_updated"?"Update Gateway":"Errors"}function eLe(t){const e=wP(t);return OY(e)||t.event_stage==="gateway_decided"}function ah(t){const e=(t||"").toUpperCase();return e==="FAILURE"||e.includes("FAILED")||e.includes("DECLINED")?"red":e==="SUCCESS"||e==="CHARGED"||e==="AUTHORIZED"?"green":e==="HIT"?"purple":"gray"}function tLe(t){const e=ah(t);return e==="green"?"bg-emerald-500":e==="red"?"bg-red-500":e==="purple"?"bg-purple-500":"bg-slate-300 dark:bg-[#3a4150]"}function nLe(t){const e=(t.gateways||[]).filter(Boolean);return e.length<2?null:(t.latest_gateway&&e.includes(t.latest_gateway)?[...e.filter(r=>r!==t.latest_gateway),t.latest_gateway]:e).join(" → ")}function z_({tone:t,label:e,detail:n}){return i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#a7b2c6]",title:n||void 0,children:[i.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t}`}),e]})}function U_({label:t,value:e}){return i.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:[t,":"]}),i.jsx("span",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:e})]})}function md(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function V_(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!==""))}function rLe(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function aLe(t){return t?"!border-brand-500/70 !bg-white !text-slate-950 shadow-[0_14px_30px_-24px_rgba(59,130,246,0.55)] ring-2 ring-brand-500/55 dark:!border-brand-500/70 dark:!bg-[#161b24] dark:!text-white dark:ring-brand-500/55":"!border-transparent !bg-slate-100 !text-slate-600 hover:!bg-slate-200 hover:!text-slate-900 dark:!bg-[#161b24] dark:!text-[#a7b2c6] dark:hover:!bg-[#1c2330] dark:hover:!text-white"}function kO(){return"h-11 w-full rounded-2xl border border-slate-200 bg-white px-4 text-[13px] text-slate-700 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-[#e5ecf7] dark:placeholder:text-[#555f6e]"}function W_(){return`${kO()} appearance-none pr-9 bg-[url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")] bg-no-repeat bg-[right_12px_center]`}function Jh({title:t,body:e}){return i.jsxs(aA,{className:"!rounded-2xl border-dashed border-slate-200 bg-slate-50/70 px-5 py-8 text-center dark:border-[#2a303a] dark:bg-[#161b24]/80",children:[i.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#b2bdd1] leading-[18px]",children:e})]})}function TY({rows:t}){return t.length?i.jsx("div",{className:"grid gap-x-8 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0",children:t.map(e=>i.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-slate-100 py-3 dark:border-[#1b2029]",children:[i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#8a8a93] leading-[18px]",children:e.label}),i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:e.value}),e.copyText&&i.jsx(Fy,{text:e.copyText,size:12})]})]},`${e.label}-${e.value}`))}):null}function kP({value:t}){return i.jsx("pre",{className:"overflow-x-auto rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 font-mono text-[13px] leading-[21px] text-slate-800 shadow-[inset_0_1px_0_rgba(255,255,255,0.75),0_16px_30px_-28px_rgba(15,23,42,0.18)] dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef] dark:shadow-none",children:rLe(t)})}function oy({title:t,children:e}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:t}),e]})}function Nb({title:t,value:e,emptyMessage:n}){return i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})})}function sLe(t){if(!md(t))return null;const e=Object.keys(t),n=Object.entries(t).filter(r=>typeof r[1]=="number"&&Number.isFinite(r[1]));return n.length&&n.length===e.length?n:null}function iLe(t){if(!md(t))return null;const e=Object.entries(t);return e.length&&e.every(([,r])=>r===null||["string","number","boolean"].includes(typeof r))?e:null}function oLe(t){return t===null?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="number"?t.toLocaleString(void 0,{maximumFractionDigits:6}):t}function lLe({title:t,value:e,emptyMessage:n,selectedGateway:r}){const a=sLe(e);if(!a)return i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})});const s=[...a].sort((d,f)=>f[1]-d[1]),o=Math.max(...s.map(([,d])=>d)),l=o<=1,c=l?1:o||1,u=r&&s.some(([d])=>d===r)?r:s[0][0];return i.jsx(oy,{title:t,children:i.jsx("div",{className:"space-y-3 rounded-2xl border border-slate-200/80 bg-slate-50/90 px-5 py-3 dark:border-[#2a303a] dark:bg-[#0b1017]",children:s.map(([d,f])=>{const h=d===u,p=Number((f/c*100).toFixed(1)),m=Math.max(3,Math.min(100,p));return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:"truncate text-[13px] font-medium text-slate-900 dark:text-white leading-[18px]",children:d}),h?i.jsx("span",{className:"shrink-0 rounded-md bg-brand-500/10 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-brand-600 dark:text-brand-300 leading-4",children:"Selected"}):null]}),i.jsx("span",{className:"shrink-0 text-[13px] font-semibold tabular-nums text-slate-700 dark:text-[#d8e1ef] leading-[18px]",children:l?`${(f*100).toFixed(1)}%`:f.toLocaleString(void 0,{maximumFractionDigits:4})})]}),i.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-slate-200/70 dark:bg-[#1e2330]",children:i.jsx("div",{className:"h-full rounded-full transition-all",style:{width:`${m}%`,backgroundColor:h?"#0069ED":"#94a3b8"}})})]},d)})})})}function cLe({title:t,value:e,emptyMessage:n}){const r=iLe(e);return r?i.jsx(oy,{title:t,children:i.jsx(TY,{rows:r.map(([a,s])=>({label:Td(a),value:oLe(s)}))})}):i.jsx(oy,{title:t,children:e?i.jsx(kP,{value:e}):i.jsx(Jh,{title:`No ${t.toLowerCase()} captured`,body:n})})}function uLe(t){if(!t)return null;const e=md(t.details_json)?t.details_json:{},n=e.response??e.response_payload??e.result??e.output??null,r=e.request??e.request_payload??e.input??e.payload??V_({payment_id:t.payment_id,request_id:t.request_id,payment_method_type:t.payment_method_type,payment_method:t.payment_method,gateway:t.gateway}),a=n??V_({flow_type:t.flow_type,status:t.status,error_code:t.error_code,error_message:t.error_message,score_value:t.score_value,sigma_factor:t.sigma_factor,average_latency:t.average_latency,tp99_latency:t.tp99_latency,transaction_count:t.transaction_count,rule_name:t.rule_name,routing_approach:t.routing_approach}),s=md(n)?n:null,o=md(s==null?void 0:s.decided_gateway)?s.decided_gateway:null,l=e.score_context??(o?o.gateway_priority_map:null)??(s?s.gateway_priority_map:null)??null,c=e.selection_reason??null,u=[{label:"Phase",value:Q$e(t)},{label:"Route",value:Z$e(t.route)},...t.payment_id?[{label:"Payment ID",value:t.payment_id,copyText:t.payment_id}]:[],...t.request_id?[{label:"Request ID",value:t.request_id,copyText:t.request_id}]:[]],d=V_(Object.fromEntries(Object.entries(e).filter(([f])=>!["request","request_payload","input","payload","response","response_payload","result","output","score_context","selection_reason"].includes(f))));return{summaryRows:u,requestPayload:md(r)&&!Object.keys(r).length?null:r,responsePayload:md(a)&&!Object.keys(a).length?null:a,scoreContext:l,selectionReason:c,signalRecord:Object.keys(d).length?d:null,rawEvent:{...t,details_json:t.details_json}}}function dLe(){var er,za,Gr,pn,mt,Mt,gt,Lr,zn,mn;const[t,e]=vc(),n=t.get("routing_approach")===bP?"debit_routing":K$e(t.get("mode")),r=t.get("start_ms")&&t.get("end_ms")?"custom":oCe(t.get("range")),a=Y$e(t),s=Math.max(1,Number(t.get("page")||"1")),o=t.get("selected")||"",l=Number(t.get("start_ms")||"0"),c=Number(t.get("end_ms")||"0"),u=l>0&&c>l?{start_ms:l,end_ms:c}:eu("1d"),[d,f]=g.useState(n),[h,p]=g.useState(r),[m,x]=g.useState(a),[v,b]=g.useState(a),[y,w]=g.useState(s),[j,k]=g.useState(o),[S,_]=g.useState(!!o),[C,E]=g.useState(null),[P,R]=g.useState("summary"),[A,T]=g.useState(!1),[D,L]=g.useState(()=>$s(u.start_ms)),[X,J]=g.useState(()=>$s(u.end_ms)),U=12,Y=g.useMemo(()=>h==="custom"?Fp(D,X):void 0,[X,D,h]),W=d==="rule_based"?"/analytics/preview-trace":"/analytics/payment-audit",G=Q6(d),I=eF(d),q=h!=="custom"||Y?Z6(W,h,y,U,v,Y,G,I):null,M=ct(q,Dt,{revalidateOnFocus:!1,dedupingInterval:5e3}),B=h!=="custom"||Y?`/analytics/gateway-scores?${wO({range:h==="custom"?"1h":h,start_ms:Y==null?void 0:Y.start_ms,end_ms:Y==null?void 0:Y.end_ms})}`:null,z=ct(B,Dt,{revalidateOnFocus:!1,dedupingInterval:6e4}),Z=g.useMemo(()=>{var ut;const ge=((ut=M.data)==null?void 0:ut.results)||[];return ge.find(ft=>ft.lookup_key===j)||ge[0]||null},[(er=M.data)==null?void 0:er.results,j]);g.useEffect(()=>{var ut,ft;if(Z!=null&&Z.lookup_key){k(Z.lookup_key);return}const ge=(ft=(ut=M.data)==null?void 0:ut.results)==null?void 0:ft[0];ge!=null&&ge.lookup_key&&k(ge.lookup_key)},[(za=M.data)==null?void 0:za.results,Z==null?void 0:Z.lookup_key]);const pe=g.useMemo(()=>Z?{paymentId:Z.payment_id||Z.request_id||"",requestId:"",gateway:"",route:"",status:"",flowType:"",errorCode:""}:null,[Z]),ae=pe?Z6(W,h,1,50,pe,Y,G,I):null,ue=ct(ae,Dt,{revalidateOnFocus:!1,dedupingInterval:5e3}),de=((Gr=ue.data)==null?void 0:Gr.timeline)||[],Q=g.useMemo(()=>de.find(ge=>ge.id===C)||de[0]||null,[C,de]);g.useEffect(()=>{if(Q!=null&&Q.id){E(Q.id);return}const ge=de[0];ge!=null&&ge.id&&E(ge.id)},[Q==null?void 0:Q.id,de]);const fe=g.useMemo(()=>uLe(Q),[Q]),ne=Q?eLe(Q):!1,ce=((pn=M.error)==null?void 0:pn.message)||((mt=ue.error)==null?void 0:mt.message)||null,he=M.isLoading,be=((Mt=M.data)==null?void 0:Mt.results)||[],Pe=((gt=M.data)==null?void 0:gt.total_results)||0,Ce=de.length,Re=((Lr=M.data)==null?void 0:Lr.total_success)??be.filter(ge=>ah(ge.latest_status)==="green").length,Be=((zn=M.data)==null?void 0:zn.total_failure)??be.filter(ge=>ah(ge.latest_status)==="red").length,st=Array.from(new Set(be.flatMap(ge=>{var ut;return(ut=ge.gateways)!=null&&ut.length?ge.gateways.filter(Boolean):ge.latest_gateway?[ge.latest_gateway]:[]}))),F=st.length,se=Object.values(m).some(Boolean),ie=Array.from(new Set([...(((mn=z.data)==null?void 0:mn.snapshots)||[]).map(ge=>ge.gateway),...st,v.gateway].filter(Boolean))).sort((ge,ut)=>ge.localeCompare(ut)),Se=d==="rule_based"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a decision from the left column to see the full rule evaluation trace.",noMatchesTitle:"No matching decisions found",noMatchesBody:"Try widening the time range or searching by a decision payment ID, request ID, or gateway."}:d==="debit_routing"?{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a debit-routing payment from the left column to see the full decision trail.",noMatchesTitle:"No debit-routing decisions found",noMatchesBody:"Run the Debit Routing tab in Decision Explorer, or widen the time range."}:{title:"Decision Audit",matchingLabel:"Matches",summaryEmpty:"Pick a payment from the left column to see the full transaction trail.",noMatchesTitle:"No matching payments found",noMatchesBody:"Try widening the time range or searching by a single payment ID, request ID, or error code."};function te(ge,ut,ft,Kt,gn,zt){const un=pd(Kt),as=wO({mode:ge==="transactions"?void 0:ge,range:ut,page:ft>1?ft:void 0,start_ms:ut==="custom"?zt==null?void 0:zt.start_ms:void 0,end_ms:ut==="custom"?zt==null?void 0:zt.end_ms:void 0,payment_id:un.paymentId||void 0,request_id:un.requestId||void 0,gateway:un.gateway||void 0,route:un.route||void 0,status:un.status||void 0,flow_type:un.flowType||void 0,routing_approach:Q6(ge),exclude_routing_approach:eF(ge),error_code:un.errorCode||void 0,selected:gn||void 0});e(as)}function me(ge,ut){x(ft=>pd({...ft,[ge]:ut}))}function ve(){const ut=pd({...m,route:d==="transactions"?m.route:""});w(1),_(!1),E(null),x(ut),b(ut),te(d,h,1,ut,void 0,Y)}function Ee(ge,ut){const Kt=pd({...m,[ge]:ut});w(1),_(!1),E(null),x(Kt),b(Kt),te(d,h,1,Kt,void 0,Y)}function Oe(){const ut={...J6,route:d==="transactions"?J6.route:""};w(1),_(!1),E(null),x(ut),b(ut),te(d,h,1,ut,void 0,Y)}function Tt(){M.mutate(),ue.mutate()}function Bt(ge){const ft=ge==="custom"?(()=>{const Kt=$0(D),gn=$0(X),zt=Date.now();return Kt!==null&&gn!==null&&gn>Kt&&Kt<=zt&&gn<=zt?{start_ms:Kt,end_ms:gn}:void 0})():void 0;if(p(ge),w(1),_(!1),E(null),ge!=="custom"){const Kt=eu(ge);L($s(Kt.start_ms)),J($s(Kt.end_ms))}te(d,ge,1,v,j,ft)}function Pt(ge,ut){L(ge),J(ut),w(1),_(!1),E(null),te(d,"custom",1,v,j,Fp(ge,ut))}function sn(ge,ut){k(ge),E(null),ut!==1&&_(!0),te(d,h,y,v,ge,Y)}function It(){_(!1),E(null),te(d,h,y,v,void 0,Y)}function xr(ge){const ft=pd({...m,route:ge==="transactions"?m.route:""});f(ge),w(1),k(""),E(null),_(!1),x(ft),b(ft),te(ge,h,1,ft,void 0,Y)}return i.jsxs("div",{className:"flex min-h-[620px] flex-col gap-5 xl:h-[calc(100vh-140px)]",children:[i.jsxs("div",{className:"grid grid-cols-1 items-center gap-3 xl:grid-cols-[1fr_auto_1fr]",children:[i.jsx(Ba,{title:Se.title}),i.jsx("div",{className:"inline-flex max-w-full flex-wrap items-center gap-1 justify-self-start rounded-[18px] border border-slate-200 bg-white/70 p-1 dark:border-[#2a303a] dark:bg-[#11151d] xl:justify-self-center",children:Object.keys(X6).map(ge=>i.jsx(we,{size:"sm",variant:"secondary",className:aLe(d===ge),onClick:()=>xr(ge),children:X6[ge]},ge))}),i.jsxs("div",{className:"flex items-center gap-2 justify-self-start xl:justify-self-end",children:[i.jsx(tT,{range:h,customStart:D,customEnd:X,onRangeChange:Bt,onCustomChange:Pt}),i.jsx(we,{size:"sm",variant:"secondary",onClick:Tt,"aria-label":"Refresh",title:"Refresh",className:"!h-9 !px-3",children:i.jsx(Es,{className:"h-4 w-4"})})]})]}),i.jsxs("form",{className:"flex flex-wrap items-center gap-3",onSubmit:ge=>{ge.preventDefault(),ve()},children:[i.jsxs("div",{className:`relative ${A?"min-w-[240px] flex-1":"min-w-[300px] flex-[1.618]"}`,children:[i.jsx(Lp,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-[#78849a]"}),i.jsx("input",{className:`${kO()} pl-11 ${se?"pr-20":""}`,value:m.paymentId||m.requestId,onChange:ge=>me("paymentId",ge.target.value),placeholder:d==="rule_based"?"Search by decision payment ID or request ID…":"Search by payment ID or request ID…","aria-label":d==="rule_based"?"Decision payment ID":"Payment ID"}),se?i.jsx("button",{type:"button",onClick:Oe,className:"absolute right-4 top-1/2 -translate-y-1/2 text-[13px] font-medium text-brand-600 transition hover:text-brand-600 dark:text-brand-400 leading-[18px]",children:"Clear"}):null]}),i.jsxs("div",{className:"flex min-w-[300px] flex-1 items-center gap-3",children:[A&&d==="transactions"?i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:W_(),value:m.route,onChange:ge=>Ee("route",ge.target.value),"aria-label":"Route",children:U$e.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}):null,A?i.jsx("div",{className:"flex-1",children:i.jsx("input",{className:kO(),value:m.errorCode,onChange:ge=>me("errorCode",ge.target.value),placeholder:"Error code","aria-label":"Error code"})}):null,i.jsx("div",{className:"flex-1",children:i.jsxs("select",{className:W_(),value:m.gateway,onChange:ge=>Ee("gateway",ge.target.value),"aria-label":"Gateway",children:[i.jsx("option",{value:"",children:"Any gateway"}),ie.map(ge=>i.jsx("option",{value:ge,children:ge},ge))]})}),i.jsx("div",{className:"flex-1",children:i.jsx("select",{className:W_(),value:m.status,onChange:ge=>Ee("status",ge.target.value),"aria-label":"Status",children:z$e.map(ge=>i.jsx("option",{value:ge.value,children:ge.label},ge.value||"all"))})}),i.jsx(we,{type:"button",variant:"secondary",onClick:()=>T(ge=>!ge),"aria-label":"More filters",title:"More filters",className:`h-11 !px-3 ${A?"!text-brand-600 dark:!text-brand-600":""}`,children:i.jsx(ec,{className:"h-4 w-4"})})]}),i.jsx("button",{type:"submit",className:"sr-only",children:"Search"})]}),i.jsx(vt,{error:ce}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-[13px] leading-[18px]",children:[he?i.jsxs("span",{className:"flex items-center gap-2 text-slate-500 dark:text-[#8a8a93]",children:[i.jsx(at,{size:14}),"Loading decision audit data…"]}):i.jsxs("span",{className:"font-semibold text-slate-900 dark:text-white",children:[Pe.toLocaleString()," ",Pe===1?"match":"matches"," found"]}),M.data?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"h-4 w-px bg-slate-200 dark:bg-[#2a303a]"}),i.jsx(z_,{tone:"bg-emerald-500",label:`${Re.toLocaleString()} successful ${Re===1?"selection":"selections"}`}),i.jsx(z_,{tone:"bg-red-500",label:`${Be.toLocaleString()} ${Be===1?"failure":"failures"}`}),i.jsx(z_,{tone:"bg-brand-500",label:`${F} ${F===1?"connector":"connectors"}`,detail:st.slice(0,3).join(", ")})]}):null]}),i.jsxs("div",{className:"grid min-h-0 flex-1 gap-5 xl:grid-cols-[minmax(360px,1fr)_minmax(0,1.618fr)]",children:[i.jsxs(Te,{className:"h-full overflow-hidden !rounded-2xl",children:[S?i.jsxs("div",{className:"shrink-0 border-b border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:It,className:"mb-3",children:[i.jsx(Mj,{className:"h-3.5 w-3.5"}),"Back to results"]}),i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:(Z==null?void 0:Z.payment_id)||(Z==null?void 0:Z.request_id)||(Z==null?void 0:Z.lookup_key)||"Selected payment"}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsxs("span",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[Ce," event",Ce===1?"":"s"]}),Z!=null&&Z.latest_status?i.jsx(Me,{variant:ah(Z.latest_status),children:Td(Z.latest_status)}):null]})]})]}):null,S?i.jsx("div",{className:"min-h-0 flex-1 space-y-1.5 overflow-y-auto p-3",children:de.length?de.map((ge,ut)=>{const ft=(Q==null?void 0:Q.id)===ge.id;return i.jsxs("button",{type:"button",onClick:()=>{E(ge.id),R("summary")},className:`relative w-full overflow-hidden rounded-2xl px-4 py-3 text-left transition-all ${ft?"bg-brand-50 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[ft&&i.jsx("span",{className:"absolute inset-y-2.5 left-0 w-[3px] rounded-full bg-brand-500"}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[13px] font-bold ${ft?"bg-brand-500/15 text-brand-500 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1e2330] dark:text-[#8a8a93]"} leading-[18px]`,children:ut+1}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:B_(ge)}),i.jsx("p",{className:"mt-2 truncate text-[13px] text-slate-500 dark:text-[#78849a] max-w-[57ch] leading-[18px]",children:J$e([ge.gateway||null,ge.routing_approach||null,ge.payment_method_type||null])}),ge.error_message?i.jsx("p",{className:"mt-2 truncate text-[13px] text-red-600 dark:text-red-400 leading-[18px]",children:ge.error_message}):null]}),i.jsxs("div",{className:"shrink-0 space-y-1 text-right",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:tF(ge.created_at_ms)}),ge.status?i.jsx(Me,{variant:ah(ge.status),children:Td(ge.status)}):null]})]})]},ge.id)}):i.jsx(Jh,{title:"No timeline selected yet",body:Se.summaryEmpty})}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 flex items-center justify-between gap-3 px-5 pb-3 pt-5",children:[i.jsx("h2",{className:"truncate text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Se.matchingLabel}),i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:[be.length," of ",Pe.toLocaleString()]})]}),i.jsx("div",{className:"min-h-0 flex-1 divide-y divide-slate-100 overflow-y-auto border-t border-slate-100 dark:divide-[#1b2029] dark:border-[#1b2029]",children:be.length>0?be.map(ge=>{const ut=(Z==null?void 0:Z.lookup_key)===ge.lookup_key,ft=nLe(ge);return i.jsxs("button",{type:"button",onClick:()=>sn(ge.lookup_key,ge.event_count),className:`relative w-full px-5 py-3 text-left transition-colors ${ut?"bg-brand-50/70 dark:bg-[#161b24]":"hover:bg-slate-50/80 dark:hover:bg-[#13131a]"}`,children:[ut&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-[3px] bg-brand-500"}),i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate font-mono text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:ge.payment_id||ge.request_id||ge.lookup_key}),i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:tF(ge.last_seen_ms)})]}),i.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${tLe(ge.latest_status)}`,title:Td(ge.latest_status)||"Unknown"}),ge.latest_gateway?i.jsx("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#a7b2c6] leading-[18px]",children:ge.latest_gateway}):null,i.jsxs("span",{className:"shrink-0 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["· ",ge.event_count," event",ge.event_count===1?"":"s"]})]}),ft?i.jsx("span",{className:"shrink-0 truncate rounded-md bg-orange-500/10 px-2 py-0.5 text-[13px] font-medium text-orange-600 ring-1 ring-inset ring-orange-500/20 dark:text-orange-300 leading-[18px]",children:ft}):null]})]},ge.lookup_key)}):i.jsx("div",{className:"p-5",children:i.jsx(Jh,{title:Se.noMatchesTitle,body:Se.noMatchesBody})})}),i.jsxs("div",{className:"shrink-0 flex items-center gap-2 border-t border-slate-200 px-5 py-3 dark:border-[#2a303a]",children:[i.jsx(we,{size:"sm",variant:"secondary",disabled:y<=1,onClick:()=>{const ge=Math.max(1,y-1);w(ge),_(!1),te(d,h,ge,v,j)},children:"Prev"}),i.jsx(we,{size:"sm",variant:"secondary",disabled:be.length{const ge=y+1;w(ge),_(!1),te(d,h,ge,v,j)},children:"Next"}),i.jsxs("span",{className:"ml-auto text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:["Page ",y]})]})]})]}),i.jsx(Te,{className:"h-full overflow-hidden !rounded-2xl",children:Q&&fe?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"shrink-0 space-y-2 px-5 pb-0 pt-5",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx("h2",{className:"truncate font-mono text-[21px] font-semibold leading-tight text-slate-900 dark:text-white",children:Q.payment_id||Q.request_id||B_(Q)}),Q.payment_id||Q.request_id?i.jsx(Fy,{text:Q.payment_id||Q.request_id||"",size:14}):null]}),Q.status?i.jsx(Me,{variant:ah(Q.status),children:Td(Q.status)}):null]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[i.jsx(U_,{label:"Gateway",value:Q.gateway||"Unknown"}),i.jsx(U_,{label:"Stage",value:B_(Q)}),i.jsx(U_,{label:"Time",value:X$e(Q.created_at_ms)})]}),i.jsx("div",{className:"!mt-5 flex flex-wrap items-center gap-5 border-b border-slate-200 dark:border-[#2a303a]",children:V$e.map(ge=>i.jsx("button",{type:"button",onClick:()=>R(ge),className:`-mb-px border-b-2 pb-3 text-[13px] font-medium transition ${P===ge?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-900 dark:text-[#a7b2c6] dark:hover:text-white"} leading-[18px]`,children:W$e[ge]},ge))})]}),i.jsxs("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-5",children:[P==="summary"?i.jsxs("div",{className:"space-y-5",children:[ne?i.jsx(lLe,{title:"Connector scores",value:fe.scoreContext,selectedGateway:Q.gateway,emptyMessage:"No connector score map was captured for this event."}):null,fe.summaryRows.length?i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-[13px] font-semibold text-slate-900 dark:text-white leading-[18px]",children:"Decision metadata"}),i.jsx(TY,{rows:fe.summaryRows})]}):null,i.jsx(cLe,{title:"Selection reason",value:fe.selectionReason,emptyMessage:"No explicit selection reason was captured for this event."}),ne?i.jsx(Nb,{title:"Details",value:fe.signalRecord,emptyMessage:"This event did not capture additional scoring or rule metadata."}):null]}):null,P==="input"?i.jsx(Nb,{title:"Request",value:fe.requestPayload,emptyMessage:"No dedicated request payload was captured for this event."}):null,P==="response"?i.jsx(Nb,{title:"Response",value:fe.responsePayload,emptyMessage:"No dedicated response payload was captured for this event."}):null,P==="raw"?i.jsx(Nb,{title:"Raw JSON",value:fe.rawEvent,emptyMessage:"No raw payload is available for this event."}):null]})]}):i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4",children:i.jsx(Jh,{title:"No event selected",body:"Select a timeline event to view scores, routing details, request payload, and response payload."})})})]})]})}const fLe=[{value:"1h",label:"Last 1 hour"},{value:"12h",label:"Last 12 hours"},{value:"1d",label:"Last 1 day"},{value:"1w",label:"Last 1 week"}],jO={leader_changed:{label:"Leader change",badge:"blue",icon:I0},gateway_entered_auth_band:{label:"Entered auth band",badge:"green",icon:Cy},gateway_exited_auth_band:{label:"Exited auth band",badge:"orange",icon:J3},calibration_applied:{label:"Autopilot tuning",badge:"purple",icon:ec}},nF=Object.keys(jO);function hLe(t){return new Date(t).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function pLe(t){return[t.payment_method_type,t.payment_method].filter(Boolean).join(" / ")||"all"}function mLe(){const[t,e]=g.useState("12h"),[n,r]=g.useState(new Set(nF)),{events:a,isLoading:s,isUnavailable:o,markAllSeen:l,unseenCount:c}=fT(t),u=g.useMemo(()=>a.filter(f=>n.has(f.event_type)),[a,n]);function d(f){r(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Routing events",description:"Live changes in success-rate based routing — leader flips and gateways entering or exiting the auth band."})}),i.jsxs("div",{className:"flex items-center gap-2",children:[c>0&&i.jsxs("button",{onClick:l,className:"text-[13px] font-medium text-brand-600 hover:underline leading-[18px]",children:["Mark all read (",c,")"]}),i.jsx("select",{value:t,onChange:f=>e(f.target.value),className:"h-9 rounded-lg border border-[#e6e6ee] bg-white px-3 text-[13px] font-medium text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 leading-[18px]",children:fLe.map(f=>i.jsx("option",{value:f.value,children:f.label},f.value))})]})]}),i.jsx("div",{className:"flex flex-wrap items-center gap-2",children:nF.map(f=>{const h=jO[f],p=n.has(f);return i.jsxs("button",{onClick:()=>d(f),className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors ${p?"border-brand-600/40 bg-brand-50 text-brand-700 dark:border-sky-400/40 dark:bg-sky-400/10 dark:text-sky-200":"border-[#e6e6ee] bg-white text-slate-500 hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-400 dark:hover:bg-[#18181f]"} leading-4`,children:[i.jsx(h.icon,{size:13}),h.label]},f)})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("p",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:[u.length," event",u.length===1?"":"s"]}),i.jsx("p",{className:"text-[12px] text-slate-500 leading-4",children:"Refreshes every 30 seconds"})]})}),i.jsx(He,{className:"p-0",children:s?i.jsx("div",{className:"flex items-center justify-center py-16",children:i.jsx(at,{})}):o?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"Routing events are unavailable"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 leading-[18px]",children:"The analytics pipeline (Kafka → ClickHouse) is offline or disabled for this environment."})]}):u.length===0?i.jsxs("div",{className:"px-6 py-14 text-center",children:[i.jsx(zw,{size:28,className:"mx-auto text-slate-500 dark:text-slate-400"}),i.jsx("p",{className:"mt-3 text-sm font-medium text-slate-700 dark:text-slate-300",children:"No routing events in this window"}),i.jsx("p",{className:"mt-1 text-[13px] text-slate-500 mx-auto max-w-[57ch] leading-[18px]",children:"Events appear once success-rate feedback flows through update-gateway-score and gateway scores start shifting."})]}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1f2a]",children:u.map(f=>{const h=jO[f.event_type];return i.jsxs("li",{className:"flex items-start gap-4 px-6 py-4",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(Me,{variant:h.badge,children:h.label})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"text-sm text-slate-800 dark:text-slate-200",children:hT(f)}),i.jsxs("p",{className:"mt-0.5 text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[hLe(f.bucket_ms)," · dimension ",pLe(f),f.transaction_count!=null&&` · ${f.transaction_count} txns in SR window`]})]})]},f.id)})})})]})]})}const rF={"auth-rate":"Multi-Objective Configuration",rules:"Rule-Based Routing",volume:"Volume Split Routing",debit:"Debit Routing","ab-test":"A/B Testing"};function gLe(t){return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(t)}function Gf(t){var e;return((e=(t==null?void 0:t.algorithm_data)||(t==null?void 0:t.algorithm))==null?void 0:e.type)||""}function aF(t){return t==="advanced"||t==="priority"||t==="single"}function sF(t){return t==="configured"?"Configured":t==="autopilot"?"Auto-pilot":"Enabled"}function xLe(){var I,q;const{mutate:t}=Wk(),e=$r(M=>M.merchantId),n=hr(M=>{var B;return((B=M.user)==null?void 0:B.merchantId)||""}),r=e||n,a=Ey(r),s=Sl(r||void 0),[o,l]=g.useState(null),[c,u]=g.useState(null),[d,f]=g.useState(null),[h,p]=g.useState(null),{data:m,isLoading:x,mutate:v}=ct(r?`/routing/list/active/${r}`:null,()=>Fe(`/routing/list/active/${r}`)),{data:b,isLoading:y,mutate:w}=ct(r?["/rule/get","successRate",r]:null,()=>Fe("/rule/get",{merchant_id:r,algorithm:"successRate"})),{data:j}=ct(r?"/analytics/overview?range=1d":null,Dt,{shouldRetryOnError:!1}),k=m==null?void 0:m[0],S=((I=b==null?void 0:b.config)==null?void 0:I.data)??(b==null?void 0:b.data),_=!!S,C=s.isEnabled("autopilot"),E=(m||[]).some(M=>aF(Gf(M))),P=(m||[]).some(M=>Gf(M)==="volume_split"),R=a.isEnabled,A=(m||[]).some(M=>Gf(M)==="ab_test"),T=x||y||a.isLoading||s.isLoading,D=(m||[]).find(M=>aF(Gf(M))),L=(m||[]).find(M=>Gf(M)==="volume_split");async function X(M){r&&u(M)}async function J(M){l(M),f(null),p(null);try{M==="auth-rate"?(_&&(await Fe("/rule/delete",{merchant_id:r,algorithm:"successRate"}),await w(void 0,{revalidate:!1})),C&&(await s.setFeatureEnabled("autopilot",!1),await s.setFeatureEnabled("elimination",!1),await s.setFeatureEnabled("multi-objective-routing",!1),await s.setFeatureEnabled("auto-calibration",!1))):M==="rules"&&D?(await Fe("/routing/deactivate",{created_by:r,routing_algorithm_id:D.id}),await Promise.all([v(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):M==="volume"&&L?(await Fe("/routing/deactivate",{created_by:r,routing_algorithm_id:L.id}),await Promise.all([v(),t(["active-routing",r]),t(["routing-list",r]),t(`/routing/list/${r}`)])):M==="debit"&&await a.setDebitRoutingEnabled(!1),f(`${rF[M]} deactivated.`)}catch(B){p(B instanceof Error?B.message:String(B))}finally{l(null)}}const U=[{id:"auth-rate",title:"Multi-objective",description:"Steers traffic toward the best authorization rate using live connector score signals.",useCase:"Use when you want automatic gateway selection driven by real-time success-rate data.",icon:Bj,state:_?"configured":C?"autopilot":"not_set",canDeactivate:_||C,href:"sr"},{id:"rules",title:"Rule based",description:"Evaluates explicit business conditions before traffic reaches connector selection.",useCase:"Use for BIN, network, country, amount, metadata, or merchant policy overrides.",icon:Dj,state:E?"enabled":"not_set",canDeactivate:!!D,href:"rules"},{id:"volume",title:"Volume split",description:"Distributes payments by configured percentages across gateways.",useCase:"Use for ramp-ups, new gateway rollout, traffic balancing, or controlled migrations.",icon:rf,state:P?"enabled":"not_set",canDeactivate:!!L,href:"volume"},{id:"debit",title:"Debit routing",description:"Enables debit-network decisions for co-badged card payment flows.",useCase:"Use when debit network cost, issuer country, or regulated-card behavior matters.",icon:_o,state:R?"enabled":"not_set",canDeactivate:R,href:"debit"},{id:"ab-test",title:"A/B Testing",description:"Tests two routing strategies against each other with statistical significance reporting.",useCase:"Use when validating a new algorithm, rule, or gateway before full rollout.",icon:$p,state:A?"enabled":"not_set",canDeactivate:!1,href:"ab-testing"}],Y=U.filter(M=>M.state!=="not_set"),W=(j==null?void 0:j.top_rules)||[],G=k!=null&&k.name?k:null;return i.jsxs("div",{className:"space-y-6 px-5 sm:px-6 lg:px-8 xl:px-10",children:[i.jsx(Hs,{open:c!==null,title:`Deactivate ${c?rF[c]:""}?`,description:"This will stop routing decisions from using this strategy. You can reactivate it at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const M=c;u(null),J(M)},onCancel:()=>u(null)}),i.jsx("header",{children:i.jsx(Ba,{title:"Routing Hub"})}),h&&i.jsx("div",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-sm text-red-600 dark:text-red-400",children:h}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:d}),i.jsxs("div",{className:"grid gap-6 xl:grid-cols-[1.3fr_0.7fr]",children:[i.jsx(Te,{children:i.jsxs(He,{className:"p-0",children:[i.jsx("div",{className:"px-6 pt-5",children:i.jsx(vn,{children:"Routing strategies"})}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:U.map(M=>{const B=M.icon,z=M.state!=="not_set";return i.jsxs("div",{className:`flex items-center gap-4 px-6 py-4 ${z?"bg-emerald-500/[0.04] dark:bg-emerald-500/[0.06]":""}`,children:[i.jsx("div",{className:`rounded-xl border p-2.5 flex-shrink-0 ${z?"border-emerald-200/60 bg-emerald-50 text-emerald-700 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400":"border-slate-200 bg-slate-50 text-slate-500 dark:border-[#273141] dark:bg-[#0c1119] dark:text-[#6d778a]"}`,children:i.jsx(B,{size:17})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:M.title}),M.state!=="not_set"?i.jsx(Me,{variant:"green",children:sF(M.state)}):i.jsx(Me,{variant:"gray",children:"Not set"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:M.description}),i.jsx("p",{className:"mt-0.5 text-xs leading-5 text-slate-500 dark:text-[#78849a]",children:M.useCase})]}),i.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[M.canDeactivate&&i.jsxs(we,{size:"sm",variant:"danger",onClick:()=>X(M.id),disabled:o===M.id,children:[i.jsx(_y,{size:13}),o===M.id?"Deactivating":"Deactivate"]}),i.jsxs(Yd,{to:M.href,className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#2a303a] dark:bg-[#11151d] dark:text-[#c4cfdf] dark:hover:bg-[#161b26]",children:["Configure",i.jsx(So,{size:13,className:"text-slate-500 dark:text-[#78849a]"})]})]})]},M.id)})})]})}),i.jsx(Te,{children:i.jsxs(He,{className:"p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx(vn,{children:"Active strategies"}),i.jsx("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:Y.length>0?Y.map(M=>{const B=M.icon;return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2.5",children:[i.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[i.jsx(B,{size:14,className:"flex-shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:M.title})]}),i.jsx(Me,{variant:"green",children:sF(M.state)})]},M.id)}):i.jsx("p",{className:"py-2 text-sm text-slate-500 dark:text-[#8d96aa]",children:T?"Checking…":"No active strategies yet"})})]}),G&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsx(vn,{children:"Running algorithm"}),i.jsx("p",{className:"mt-3 text-sm font-semibold text-slate-950 dark:text-white",children:G.name}),G.description&&i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#8d96aa]",children:G.description}),i.jsx("div",{className:"mt-2",children:i.jsx(Me,{variant:"blue",children:Gf(G).replace(/_/g," ")})})]}),i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(vn,{children:"Rules triggered"}),i.jsx(Me,{variant:"blue",children:"Last 24h"})]}),W.length>0?i.jsx("div",{className:"mt-3 space-y-2",children:W.slice(0,5).map(M=>i.jsxs("div",{className:"flex items-center justify-between gap-3",children:[i.jsx("span",{className:"truncate text-xs text-slate-700 dark:text-[#c4cfdf]",children:M.rule_name}),i.jsx("span",{className:"flex-shrink-0 text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:gLe(M.count)})]},M.rule_name))}):i.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-[#8d96aa]",children:"No rule hits in the last 24 hours."})]}),_&&S&&i.jsxs("div",{className:"border-t border-slate-100 pt-6 dark:border-[#1e2535]",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx(vn,{children:"Multi-objective config"}),i.jsx(Me,{variant:"green",children:"Configured"})]}),i.jsxs("div",{className:"mt-3 divide-y divide-slate-100 dark:divide-[#1e2535]",children:[i.jsx(sd,{label:"Score window",value:`${S.defaultBucketSize} requests`}),S.defaultHedgingPercent!=null&&i.jsx(sd,{label:"Hedging",value:`${S.defaultHedgingPercent}%`}),S.margin!=null&&i.jsx(sd,{label:"Margin",value:`${S.margin*100}%`}),S.defaultLatencyThreshold!=null&&i.jsx(sd,{label:"Latency threshold",value:`${S.defaultLatencyThreshold} ms`}),S.defaultLowerResetFactor!=null&&i.jsx(sd,{label:"Lower reset",value:String(S.defaultLowerResetFactor)}),S.defaultUpperResetFactor!=null&&i.jsx(sd,{label:"Upper reset",value:String(S.defaultUpperResetFactor)}),(((q=S.subLevelInputConfig)==null?void 0:q.length)??0)>0&&i.jsx(sd,{label:"Payment method overrides",value:`${S.subLevelInputConfig.length}`})]})]})]})})]})]})}function sd({label:t,value:e}){return i.jsxs("div",{className:"flex items-center justify-between gap-3 py-2",children:[i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:t}),i.jsx("span",{className:"text-xs font-semibold tabular-nums text-slate-950 dark:text-white",children:e})]})}var By=t=>t.type==="checkbox",Pd=t=>t instanceof Date,As=t=>t==null;const PY=t=>typeof t=="object";var Dr=t=>!As(t)&&!Array.isArray(t)&&PY(t)&&!Pd(t),yLe=t=>Dr(t)&&t.target?By(t.target)?t.target.checked:t.target.value:t,vLe=(t,e)=>e.split(".").some((n,r,a)=>!isNaN(Number(n))&&t.has(a.slice(0,r).join("."))),bLe=t=>{const e=t.constructor&&t.constructor.prototype;return Dr(e)&&e.hasOwnProperty("isPrototypeOf")},jP=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Yn(t){if(t instanceof Date)return new Date(t);const e=typeof FileList<"u"&&t instanceof FileList;if(jP&&(t instanceof Blob||e))return t;const n=Array.isArray(t);if(!n&&!(Dr(t)&&bLe(t)))return t;const r=n?[]:Object.create(Object.getPrototypeOf(t));for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=Yn(t[a]));return r}var f2=t=>/^\w*$/.test(t),An=t=>t===void 0,h2=t=>Array.isArray(t)?t.filter(Boolean):[],SP=t=>h2(t.replace(/["|']|\]/g,"").split(/\.|\[/)),qe=(t,e,n)=>{if(!e||!Dr(t))return n;const r=(f2(e)?[e]:SP(e)).reduce((a,s)=>As(a)?a:a[s],t);return An(r)||r===t?An(t[e])?n:t[e]:r},qo=t=>typeof t=="boolean",mo=t=>typeof t=="function",hn=(t,e,n)=>{let r=-1;const a=f2(e)?[e]:SP(e),s=a.length,o=s-1;for(;++rH.useContext(MY);var kLe=(t,e,n,r=!0)=>{const a={defaultValues:e._defaultValues};for(const s in t)Object.defineProperty(a,s,{get:()=>{const o=s;return e._proxyFormState[o]!==Pi.all&&(e._proxyFormState[o]=!r||Pi.all),t[o]}});return a};const DY=typeof window<"u"?H.useLayoutEffect:H.useEffect;var ms=t=>typeof t=="string",jLe=(t,e,n,r,a)=>ms(t)?(r&&e.watch.add(t),qe(n,t,a)):Array.isArray(t)?t.map(s=>(r&&e.watch.add(s),qe(n,s))):(r&&(e.watchAll=!0),n),SO=t=>As(t)||!PY(t);function Hc(t,e,n=new WeakSet){if(SO(t)||SO(e))return Object.is(t,e);if(Pd(t)&&Pd(e))return Object.is(t.getTime(),e.getTime());const r=Object.keys(t),a=Object.keys(e);if(r.length!==a.length)return!1;if(n.has(t)||n.has(e))return!0;n.add(t),n.add(e);for(const s of r){const o=t[s];if(!a.includes(s))return!1;if(s!=="ref"){const l=e[s];if(Pd(o)&&Pd(l)||(Dr(o)||Array.isArray(o))&&(Dr(l)||Array.isArray(l))?!Hc(o,l,n):!Object.is(o,l))return!1}}return!0}const SLe=H.createContext(null);SLe.displayName="HookFormContext";var IY=(t,e,n,r,a)=>e?{...n[t],types:{...n[t]&&n[t].types?n[t].types:{},[r]:a||!0}}:{},Fs=t=>Array.isArray(t)?t:[t],iF=()=>{let t=[];return{get observers(){return t},next:a=>{for(const s of t)s.next&&s.next(a)},subscribe:a=>(t.push(a),{unsubscribe:()=>{t=t.filter(s=>s!==a)}}),unsubscribe:()=>{t=[]}}};function $Y(t,e){const n={};for(const r in t)if(t.hasOwnProperty(r)){const a=t[r],s=e[r];if(a&&Dr(a)&&s){const o=$Y(a,s);Dr(o)&&(n[r]=o)}else t[r]&&(n[r]=s)}return n}var Ha=t=>Dr(t)&&!Object.keys(t).length,_P=t=>t.type==="file",jk=t=>{if(!jP)return!1;const e=t?t.ownerDocument:0;return t instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},LY=t=>t.type==="select-multiple",NP=t=>t.type==="radio",_Le=t=>NP(t)||By(t),G_=t=>jk(t)&&t.isConnected;function NLe(t,e){const n=e.slice(0,-1).length;let r=0;for(;r{for(const e in t)if(mo(t[e]))return!0;return!1};function FY(t){return Array.isArray(t)||Dr(t)&&!ELe(t)}function _O(t,e={}){for(const n in t){const r=t[n];FY(r)?(e[n]=Array.isArray(r)?[]:{},_O(r,e[n])):An(r)||(e[n]=!0)}return e}function tx(t,e,n){n||(n=_O(e));for(const r in t){const a=t[r];if(FY(a))An(e)||SO(n[r])?n[r]=_O(a,Array.isArray(a)?[]:{}):tx(a,As(e)?{}:e[r],n[r]);else{const s=e[r];n[r]=!Hc(a,s)}}return n}const oF={value:!1,isValid:!1},lF={value:!0,isValid:!0};var BY=t=>{if(Array.isArray(t)){if(t.length>1){const e=t.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:e,isValid:!!e.length}}return t[0].checked&&!t[0].disabled?t[0].attributes&&!An(t[0].attributes.value)?An(t[0].value)||t[0].value===""?lF:{value:t[0].value,isValid:!0}:lF:oF}return oF},zY=(t,{valueAsNumber:e,valueAsDate:n,setValueAs:r})=>An(t)?t:e?t===""?NaN:t&&+t:n&&ms(t)?new Date(t):r?r(t):t;const cF={isValid:!1,value:null};var UY=t=>Array.isArray(t)?t.reduce((e,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:e,cF):cF;function uF(t){const e=t.ref;return _P(e)?e.files:NP(e)?UY(t.refs).value:LY(e)?[...e.selectedOptions].map(({value:n})=>n):By(e)?BY(t.refs).value:zY(An(e.value)?t.ref.value:e.value,t)}var ALe=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,OLe=(t,e,n,r)=>{const a={};for(const s of t){const o=qe(e,s);o&&hn(a,s,o._f)}return{criteriaMode:n,names:[...t],fields:a,shouldUseNativeValidation:r}},Sk=t=>t instanceof RegExp,Cg=t=>An(t)?t:Sk(t)?t.source:Dr(t)?Sk(t.value)?t.value.source:t.value:t,Th=t=>({isOnSubmit:!t||t===Pi.onSubmit,isOnBlur:t===Pi.onBlur,isOnChange:t===Pi.onChange,isOnAll:t===Pi.all,isOnTouch:t===Pi.onTouched});const dF="AsyncFunction";var TLe=t=>!!t&&!!t.validate&&!!(mo(t.validate)&&t.validate.constructor.name===dF||Dr(t.validate)&&Object.values(t.validate).find(e=>e.constructor.name===dF)),PLe=t=>t.mount&&(t.required||t.min||t.max||t.maxLength||t.minLength||t.pattern||t.validate),NO=(t,e,n)=>!n&&(e.watchAll||e.watch.has(t)||[...e.watch].some(r=>t.startsWith(r)&&/^\.\w+/.test(t.slice(r.length))));const Zh=(t,e,n,r)=>{for(const a of n||Object.keys(t)){const s=qe(t,a);if(s){const{_f:o,...l}=s;if(o){if(o.refs&&o.refs[0]&&e(o.refs[0],a)&&!r)return!0;if(o.ref&&e(o.ref,o.name)&&!r)return!0;if(Zh(l,e))break}else if(Dr(l)&&Zh(l,e))break}}};function fF(t,e,n){const r=qe(t,n);if(r||f2(n))return{error:r,name:n};const a=n.split(".");for(;a.length;){const s=a.join("."),o=qe(e,s),l=qe(t,s);if(o&&!Array.isArray(o)&&n!==s)return{name:n};if(l&&l.type)return{name:s,error:l};if(l&&l.root&&l.root.type)return{name:`${s}.root`,error:l.root};a.pop()}return{name:n}}var RLe=(t,e,n,r)=>{n(t);const{name:a,...s}=t;return Ha(s)||Object.keys(s).length>=Object.keys(e).length||Object.keys(s).find(o=>e[o]===(!r||Pi.all))},MLe=(t,e,n)=>!t||!e||t===e||Fs(t).some(r=>r&&(n?r===e:r.startsWith(e)||e.startsWith(r))),DLe=(t,e,n,r,a)=>a.isOnAll?!1:!n&&a.isOnTouch?!(e||t):(n?r.isOnBlur:a.isOnBlur)?!t:(n?r.isOnChange:a.isOnChange)?t:!0,ILe=(t,e)=>!h2(qe(t,e)).length&&Or(t,e),VY=(t,e,n)=>{const r=Fs(qe(t,n));return hn(r,RY,e[n]),hn(t,n,r),t};function hF(t,e,n="validate"){if(ms(t)||Array.isArray(t)&&t.every(ms)||qo(t)&&!t)return{type:n,message:ms(t)?t:"",ref:e}}var Kf=t=>Dr(t)&&!Sk(t)?t:{value:t,message:""},CO=async(t,e,n,r,a,s)=>{const{ref:o,refs:l,required:c,maxLength:u,minLength:d,min:f,max:h,pattern:p,validate:m,name:x,valueAsNumber:v,mount:b}=t._f,y=qe(n,x);if(!b||e.has(x))return{};const w=l?l[0]:o,j=A=>{a&&w.reportValidity&&(w.setCustomValidity(qo(A)?"":A||""),w.reportValidity())},k={},S=NP(o),_=By(o),C=S||_,E=(v||_P(o))&&An(o.value)&&An(y)||jk(o)&&o.value===""||y===""||Array.isArray(y)&&!y.length,P=IY.bind(null,x,r,k),R=(A,T,D,L=io.maxLength,X=io.minLength)=>{const J=A?T:D;k[x]={type:A?L:X,message:J,ref:o,...P(A?L:X,J)}};if(s?!Array.isArray(y)||!y.length:c&&(!C&&(E||As(y))||qo(y)&&!y||_&&!BY(l).isValid||S&&!UY(l).isValid)){const{value:A,message:T}=ms(c)?{value:!!c,message:c}:Kf(c);if(A&&(k[x]={type:io.required,message:T,ref:w,...P(io.required,T)},!r))return j(T),k}if(!E&&(!As(f)||!As(h))){let A,T;const D=Kf(h),L=Kf(f);if(!As(y)&&!isNaN(y)){const X=o.valueAsNumber||y&&+y;As(D.value)||(A=X>D.value),As(L.value)||(T=Xnew Date(new Date().toDateString()+" "+W),U=o.type=="time",Y=o.type=="week";ms(D.value)&&y&&(A=U?J(y)>J(D.value):Y?y>D.value:X>new Date(D.value)),ms(L.value)&&y&&(T=U?J(y)+A.value,L=!As(T.value)&&y.length<+T.value;if((D||L)&&(R(D,A.message,T.message),!r))return j(k[x].message),k}if(p&&!E&&ms(y)){const{value:A,message:T}=Kf(p);if(Sk(A)&&!y.match(A)&&(k[x]={type:io.pattern,message:T,ref:o,...P(io.pattern,T)},!r))return j(T),k}if(m){if(mo(m)){const A=await m(y,n),T=hF(A,w);if(T&&(k[x]={...T,...P(io.validate,T.message)},!r))return j(T.message),k}else if(Dr(m)){let A={};for(const T in m){if(!Ha(A)&&!r)break;const D=hF(await m[T](y,n),w,T);D&&(A={...D,...P(T,D.message)},j(D.message),r&&(k[x]=A))}if(!Ha(A)&&(k[x]={ref:w,...A},!r))return k}}return j(!0),k};const $Le={mode:Pi.onSubmit,reValidateMode:Pi.onChange,shouldFocusError:!0};function LLe(t={}){let e={...$Le,...t},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:mo(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},r={},a=Dr(e.defaultValues)||Dr(e.values)?Yn(e.defaultValues||e.values)||{}:{},s=e.shouldUnregister?{}:Yn(a),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c,u=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},f={...d};let h={...f};const p={array:iF(),state:iF()},m=e.criteriaMode===Pi.all,x=F=>se=>{clearTimeout(u),u=setTimeout(F,se)},v=async F=>{if(!o.keepIsValid&&!e.disabled&&(f.isValid||h.isValid||F)){let se;e.resolver?(se=Ha((await E()).errors),b()):se=await A({fields:r,onlyCheckValid:!0,eventType:qf.VALID}),se!==n.isValid&&p.state.next({isValid:se})}},b=(F,se)=>{!e.disabled&&(f.isValidating||f.validatingFields||h.isValidating||h.validatingFields)&&((F||Array.from(l.mount)).forEach(ie=>{ie&&(se?hn(n.validatingFields,ie,se):Or(n.validatingFields,ie))}),p.state.next({validatingFields:n.validatingFields,isValidating:!Ha(n.validatingFields)}))},y=F=>{const se=tx(a,s),ie=ALe(F);hn(n.dirtyFields,ie,qe(se,ie))},w=(F,se=[],ie,Se,te=!0,me=!0)=>{if(Se&&ie&&!e.disabled){if(o.action=!0,me&&Array.isArray(qe(r,F))){const ve=ie(qe(r,F),Se.argA,Se.argB);te&&hn(r,F,ve)}if(me&&Array.isArray(qe(n.errors,F))){const ve=ie(qe(n.errors,F),Se.argA,Se.argB);te&&hn(n.errors,F,ve),ILe(n.errors,F)}if((f.touchedFields||h.touchedFields)&&me&&Array.isArray(qe(n.touchedFields,F))){const ve=ie(qe(n.touchedFields,F),Se.argA,Se.argB);te&&hn(n.touchedFields,F,ve)}(f.dirtyFields||h.dirtyFields)&&y(F),p.state.next({name:F,isDirty:D(F,se),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else hn(s,F,se)},j=(F,se)=>{hn(n.errors,F,se),p.state.next({errors:n.errors})},k=F=>{n.errors=F,p.state.next({errors:n.errors,isValid:!1})},S=(F,se,ie,Se)=>{const te=qe(r,F);if(te){const me=qe(s,F,An(ie)?qe(a,F):ie);An(me)||Se&&Se.defaultChecked||se?hn(s,F,se?me:uF(te._f)):J(F,me),o.mount&&!o.action&&v()}},_=(F,se,ie,Se,te)=>{let me=!1,ve=!1;const Ee={name:F};if(!e.disabled){if(!ie||Se){(f.isDirty||h.isDirty)&&(ve=n.isDirty,n.isDirty=Ee.isDirty=D(),me=ve!==Ee.isDirty);const Oe=Hc(qe(a,F),se);ve=!!qe(n.dirtyFields,F),Oe?Or(n.dirtyFields,F):hn(n.dirtyFields,F,!0),Ee.dirtyFields=n.dirtyFields,me=me||(f.dirtyFields||h.dirtyFields)&&ve!==!Oe}if(ie){const Oe=qe(n.touchedFields,F);Oe||(hn(n.touchedFields,F,ie),Ee.touchedFields=n.touchedFields,me=me||(f.touchedFields||h.touchedFields)&&Oe!==ie)}me&&te&&p.state.next(Ee)}return me?Ee:{}},C=(F,se,ie,Se)=>{const te=qe(n.errors,F),me=(f.isValid||h.isValid)&&qo(se)&&n.isValid!==se;if(e.delayError&&ie?(c=x(()=>j(F,ie)),c(e.delayError)):(clearTimeout(u),c=null,ie?hn(n.errors,F,ie):Or(n.errors,F)),(ie?!Hc(te,ie):te)||!Ha(Se)||me){const ve={...Se,...me&&qo(se)?{isValid:se}:{},errors:n.errors,name:F};n={...n,...ve},p.state.next(ve)}},E=async F=>(b(F,!0),await e.resolver(s,e.context,OLe(F||l.mount,r,e.criteriaMode,e.shouldUseNativeValidation))),P=async F=>{const{errors:se}=await E(F);if(b(F),F)for(const ie of F){const Se=qe(se,ie);Se?hn(n.errors,ie,Se):Or(n.errors,ie)}else n.errors=se;return se},R=async({name:F,eventType:se})=>{if(t.validate){const ie=await t.validate({formValues:s,formState:n,name:F,eventType:se});if(Dr(ie))for(const Se in ie)ie[Se]&&z(`${H_}.${Se}`,{message:ms(ie.message)?ie.message:"",type:io.validate});else ms(ie)||!ie?z(H_,{message:ie||"",type:io.validate}):B(H_);return ie}return!0},A=async({fields:F,onlyCheckValid:se,name:ie,eventType:Se,context:te={valid:!0,runRootValidation:!1}})=>{if(t.validate&&(te.runRootValidation=!0,!await R({name:ie,eventType:Se})&&(te.valid=!1,se)))return te.valid;for(const me in F){const ve=F[me];if(ve){const{_f:Ee,...Oe}=ve;if(Ee){const Tt=l.array.has(Ee.name),Bt=ve._f&&TLe(ve._f);Bt&&f.validatingFields&&b([Ee.name],!0);const Pt=await CO(ve,l.disabled,s,m,e.shouldUseNativeValidation&&!se,Tt);if(Bt&&f.validatingFields&&b([Ee.name]),Pt[Ee.name]&&(te.valid=!1,se)||(!se&&(qe(Pt,Ee.name)?Tt?VY(n.errors,Pt,Ee.name):hn(n.errors,Ee.name,Pt[Ee.name]):Or(n.errors,Ee.name)),t.shouldUseNativeValidation&&Pt[Ee.name]))break}!Ha(Oe)&&await A({context:te,onlyCheckValid:se,fields:Oe,name:me,eventType:Se})}}return te.valid},T=()=>{for(const F of l.unMount){const se=qe(r,F);se&&(se._f.refs?se._f.refs.every(ie=>!G_(ie)):!G_(se._f.ref))&&ue(F)}l.unMount=new Set},D=(F,se)=>!e.disabled&&(F&&se&&hn(s,F,se),!Hc(q(),a)),L=(F,se,ie)=>jLe(F,l,{...o.mount?s:An(se)?a:ms(F)?{[F]:se}:se},ie,se),X=F=>h2(qe(o.mount?s:a,F,e.shouldUnregister?qe(a,F,[]):[])),J=(F,se,ie={})=>{const Se=qe(r,F);let te=se;if(Se){const me=Se._f;me&&(!me.disabled&&hn(s,F,zY(se,me)),te=jk(me.ref)&&As(se)?"":se,LY(me.ref)?[...me.ref.options].forEach(ve=>ve.selected=te.includes(ve.value)):me.refs?By(me.ref)?me.refs.forEach(ve=>{(!ve.defaultChecked||!ve.disabled)&&(Array.isArray(te)?ve.checked=!!te.find(Ee=>Ee===ve.value):ve.checked=te===ve.value||!!te)}):me.refs.forEach(ve=>ve.checked=ve.value===te):_P(me.ref)?me.ref.value="":(me.ref.value=te,me.ref.type||p.state.next({name:F,values:Yn(s)})))}(ie.shouldDirty||ie.shouldTouch)&&_(F,te,ie.shouldTouch,ie.shouldDirty,!0),ie.shouldValidate&&I(F)},U=(F,se,ie)=>{for(const Se in se){if(!se.hasOwnProperty(Se))return;const te=se[Se],me=F+"."+Se,ve=qe(r,me);(l.array.has(F)||Dr(te)||ve&&!ve._f)&&!Pd(te)?U(me,te,ie):J(me,te,ie)}},Y=(F,se,ie={})=>{const Se=qe(r,F),te=l.array.has(F),me=Yn(se);hn(s,F,me),te?(p.array.next({name:F,values:Yn(s)}),(f.isDirty||f.dirtyFields||h.isDirty||h.dirtyFields)&&ie.shouldDirty&&(y(F),p.state.next({name:F,dirtyFields:n.dirtyFields,isDirty:D(F,me)}))):Se&&!Se._f&&!As(me)?U(F,me,ie):J(F,me,ie),NO(F,l)?p.state.next({...n,name:F,values:Yn(s)}):p.state.next({name:o.mount?F:void 0,values:Yn(s)})},W=async F=>{o.mount=!0;const se=F.target;let ie=se.name,Se=!0;const te=qe(r,ie),me=Oe=>{Se=Number.isNaN(Oe)||Pd(Oe)&&isNaN(Oe.getTime())||Hc(Oe,qe(s,ie,Oe))},ve=Th(e.mode),Ee=Th(e.reValidateMode);if(te){let Oe,Tt;const Bt=se.type?uF(te._f):yLe(F),Pt=F.type===qf.BLUR||F.type===qf.FOCUS_OUT,sn=!PLe(te._f)&&!t.validate&&!e.resolver&&!qe(n.errors,ie)&&!te._f.deps||DLe(Pt,qe(n.touchedFields,ie),n.isSubmitted,Ee,ve),It=NO(ie,l,Pt);hn(s,ie,Bt),Pt?(!se||!se.readOnly)&&(te._f.onBlur&&te._f.onBlur(F),c&&c(0)):te._f.onChange&&te._f.onChange(F);const xr=_(ie,Bt,Pt),er=!Ha(xr)||It;if(!Pt&&p.state.next({name:ie,type:F.type,values:Yn(s)}),sn)return(f.isValid||h.isValid)&&(e.mode==="onBlur"?Pt&&v():Pt||v()),er&&p.state.next({name:ie,...It?{}:xr});if(!e.resolver&&t.validate&&await R({name:ie,eventType:F.type}),!Pt&&It&&p.state.next({...n}),e.resolver){const{errors:za}=await E([ie]);if(b([ie]),me(Bt),Se){const Gr=fF(n.errors,r,ie),pn=fF(za,r,Gr.name||ie);Oe=pn.error,ie=pn.name,Tt=Ha(za)}}else b([ie],!0),Oe=(await CO(te,l.disabled,s,m,e.shouldUseNativeValidation))[ie],b([ie]),me(Bt),Se&&(Oe?Tt=!1:(f.isValid||h.isValid)&&(Tt=await A({fields:r,onlyCheckValid:!0,name:ie,eventType:F.type})));Se&&(te._f.deps&&(!Array.isArray(te._f.deps)||te._f.deps.length>0)&&I(te._f.deps),C(ie,Tt,Oe,xr))}},G=(F,se)=>{if(qe(n.errors,se)&&F.focus)return F.focus(),1},I=async(F,se={})=>{let ie,Se;const te=Fs(F);if(e.resolver){const me=await P(An(F)?F:te);ie=Ha(me),Se=F?!te.some(ve=>qe(me,ve)):ie}else F?(Se=(await Promise.all(te.map(async me=>{const ve=qe(r,me);return await A({fields:ve&&ve._f?{[me]:ve}:ve,eventType:qf.TRIGGER})}))).every(Boolean),!(!Se&&!n.isValid)&&v()):Se=ie=await A({fields:r,name:F,eventType:qf.TRIGGER});return p.state.next({...!ms(F)||(f.isValid||h.isValid)&&ie!==n.isValid?{}:{name:F},...e.resolver||!F?{isValid:ie}:{},errors:n.errors}),se.shouldFocus&&!Se&&Zh(r,G,F?te:l.mount),Se},q=(F,se)=>{let ie={...o.mount?s:a};return se&&(ie=$Y(se.dirtyFields?n.dirtyFields:n.touchedFields,ie)),An(F)?ie:ms(F)?qe(ie,F):F.map(Se=>qe(ie,Se))},M=(F,se)=>({invalid:!!qe((se||n).errors,F),isDirty:!!qe((se||n).dirtyFields,F),error:qe((se||n).errors,F),isValidating:!!qe(n.validatingFields,F),isTouched:!!qe((se||n).touchedFields,F)}),B=F=>{const se=F?Fs(F):void 0;se==null||se.forEach(ie=>Or(n.errors,ie)),se?se.forEach(ie=>{p.state.next({name:ie,errors:n.errors})}):p.state.next({errors:{}})},z=(F,se,ie)=>{const Se=(qe(r,F,{_f:{}})._f||{}).ref,te=qe(n.errors,F)||{},{ref:me,message:ve,type:Ee,...Oe}=te;hn(n.errors,F,{...Oe,...se,ref:Se}),p.state.next({name:F,errors:n.errors,isValid:!1}),ie&&ie.shouldFocus&&Se&&Se.focus&&Se.focus()},Z=(F,se)=>mo(F)?p.state.subscribe({next:ie=>"values"in ie&&F(L(void 0,se),ie)}):L(F,se,!0),pe=F=>p.state.subscribe({next:se=>{MLe(F.name,se.name,F.exact)&&RLe(se,F.formState||f,Re,F.reRenderRoot)&&F.callback({values:{...s},...n,...se,defaultValues:a})}}).unsubscribe,ae=F=>(o.mount=!0,h={...h,...F.formState},pe({...F,formState:{...d,...F.formState}})),ue=(F,se={})=>{for(const ie of F?Fs(F):l.mount)l.mount.delete(ie),l.array.delete(ie),se.keepValue||(Or(r,ie),Or(s,ie)),!se.keepError&&Or(n.errors,ie),!se.keepDirty&&Or(n.dirtyFields,ie),!se.keepTouched&&Or(n.touchedFields,ie),!se.keepIsValidating&&Or(n.validatingFields,ie),!e.shouldUnregister&&!se.keepDefaultValue&&Or(a,ie);p.state.next({values:Yn(s)}),p.state.next({...n,...se.keepDirty?{isDirty:D()}:{}}),!se.keepIsValid&&v()},de=({disabled:F,name:se})=>{if(qo(F)&&o.mount||F||l.disabled.has(se)){const te=l.disabled.has(se)!==!!F;F?l.disabled.add(se):l.disabled.delete(se),te&&o.mount&&!o.action&&v()}},Q=(F,se={})=>{let ie=qe(r,F);const Se=qo(se.disabled)||qo(e.disabled),te=!l.registerName.has(F)&&ie&&!ie._f.mount;return hn(r,F,{...ie||{},_f:{...ie&&ie._f?ie._f:{ref:{name:F}},name:F,mount:!0,...se}}),l.mount.add(F),ie&&!te?de({disabled:qo(se.disabled)?se.disabled:e.disabled,name:F}):S(F,!0,se.value),{...Se?{disabled:se.disabled||e.disabled}:{},...e.progressive?{required:!!se.required,min:Cg(se.min),max:Cg(se.max),minLength:Cg(se.minLength),maxLength:Cg(se.maxLength),pattern:Cg(se.pattern)}:{},name:F,onChange:W,onBlur:W,ref:me=>{if(me){l.registerName.add(F),Q(F,se),l.registerName.delete(F),ie=qe(r,F);const ve=An(me.value)&&me.querySelectorAll&&me.querySelectorAll("input,select,textarea")[0]||me,Ee=_Le(ve),Oe=ie._f.refs||[];if(Ee?Oe.find(Tt=>Tt===ve):ve===ie._f.ref)return;hn(r,F,{_f:{...ie._f,...Ee?{refs:[...Oe.filter(G_),ve,...Array.isArray(qe(a,F))?[{}]:[]],ref:{type:ve.type,name:F}}:{ref:ve}}}),S(F,!1,void 0,ve)}else ie=qe(r,F,{}),ie._f&&(ie._f.mount=!1),(e.shouldUnregister||se.shouldUnregister)&&!(vLe(l.array,F)&&o.action)&&l.unMount.add(F)}}},fe=()=>e.shouldFocusError&&Zh(r,G,l.mount),ne=F=>{qo(F)&&(p.state.next({disabled:F}),Zh(r,(se,ie)=>{const Se=qe(r,ie);Se&&(se.disabled=Se._f.disabled||F,Array.isArray(Se._f.refs)&&Se._f.refs.forEach(te=>{te.disabled=Se._f.disabled||F}))},0,!1))},ce=(F,se)=>async ie=>{let Se;ie&&(ie.preventDefault&&ie.preventDefault(),ie.persist&&ie.persist());let te=Yn(s);if(p.state.next({isSubmitting:!0}),e.resolver){const{errors:me,values:ve}=await E();b(),n.errors=me,te=Yn(ve)}else await A({fields:r,eventType:qf.SUBMIT});if(l.disabled.size)for(const me of l.disabled)Or(te,me);if(Or(n.errors,RY),Ha(n.errors)){p.state.next({errors:{}});try{await F(te,ie)}catch(me){Se=me}}else se&&await se({...n.errors},ie),fe(),setTimeout(fe);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Ha(n.errors)&&!Se,submitCount:n.submitCount+1,errors:n.errors}),Se)throw Se},he=(F,se={})=>{qe(r,F)&&(An(se.defaultValue)?Y(F,Yn(qe(a,F))):(Y(F,se.defaultValue),hn(a,F,Yn(se.defaultValue))),se.keepTouched||Or(n.touchedFields,F),se.keepDirty||(Or(n.dirtyFields,F),n.isDirty=se.defaultValue?D(F,Yn(qe(a,F))):D()),se.keepError||(Or(n.errors,F),f.isValid&&v()),p.state.next({...n}))},be=(F,se={})=>{const ie=F?Yn(F):a,Se=Yn(ie),te=Ha(F),me=te?a:Se;if(se.keepDefaultValues||(a=ie),!se.keepValues){if(se.keepDirtyValues){const ve=new Set([...l.mount,...Object.keys(tx(a,s))]);for(const Ee of Array.from(ve)){const Oe=qe(n.dirtyFields,Ee),Tt=qe(s,Ee),Bt=qe(me,Ee);Oe&&!An(Tt)?hn(me,Ee,Tt):!Oe&&!An(Bt)&&Y(Ee,Bt)}}else{if(jP&&An(F))for(const ve of l.mount){const Ee=qe(r,ve);if(Ee&&Ee._f){const Oe=Array.isArray(Ee._f.refs)?Ee._f.refs[0]:Ee._f.ref;if(jk(Oe)){const Tt=Oe.closest("form");if(Tt){Tt.reset();break}}}}if(se.keepFieldsRef)for(const ve of l.mount)Y(ve,qe(me,ve));else r={}}s=e.shouldUnregister?se.keepDefaultValues?Yn(a):{}:Yn(me),p.array.next({values:{...me}}),p.state.next({values:{...me}})}l={mount:se.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!f.isValid||!!se.keepIsValid||!!se.keepDirtyValues||!e.shouldUnregister&&!Ha(me),o.watch=!!e.shouldUnregister,o.keepIsValid=!!se.keepIsValid,o.action=!1,se.keepErrors||(n.errors={}),p.state.next({submitCount:se.keepSubmitCount?n.submitCount:0,isDirty:te?!1:se.keepDirty?n.isDirty:!!(se.keepDefaultValues&&!Hc(F,a)),isSubmitted:se.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:te?{}:se.keepDirtyValues?se.keepDefaultValues&&s?tx(a,s):n.dirtyFields:se.keepDefaultValues&&F?tx(a,F):se.keepDirty?n.dirtyFields:{},touchedFields:se.keepTouched?n.touchedFields:{},errors:se.keepErrors?n.errors:{},isSubmitSuccessful:se.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:a})},Pe=(F,se)=>be(mo(F)?F(s):F,{...e.resetOptions,...se}),Ce=(F,se={})=>{const ie=qe(r,F),Se=ie&&ie._f;if(Se){const te=Se.refs?Se.refs[0]:Se.ref;te.focus&&setTimeout(()=>{te.focus(),se.shouldSelect&&mo(te.select)&&te.select()})}},Re=F=>{n={...n,...F}},st={control:{register:Q,unregister:ue,getFieldState:M,handleSubmit:ce,setError:z,_subscribe:pe,_runSchema:E,_updateIsValidating:b,_focusError:fe,_getWatch:L,_getDirty:D,_setValid:v,_setFieldArray:w,_setDisabledField:de,_setErrors:k,_getFieldArray:X,_reset:be,_resetDefaultValues:()=>mo(e.defaultValues)&&e.defaultValues().then(F=>{Pe(F,e.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:T,_disableForm:ne,_subjects:p,_proxyFormState:f,get _fields(){return r},get _formValues(){return s},get _state(){return o},set _state(F){o=F},get _defaultValues(){return a},get _names(){return l},set _names(F){l=F},get _formState(){return n},get _options(){return e},set _options(F){e={...e,...F}}},subscribe:ae,trigger:I,register:Q,handleSubmit:ce,watch:Z,setValue:Y,getValues:q,reset:Pe,resetField:he,clearErrors:B,unregister:ue,setError:z,setFocus:Ce,getFieldState:M};return{...st,formControl:st}}var Tc=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=(Math.random()*16+t)%16|0;return(e=="x"?n:n&3|8).toString(16)})},q_=(t,e,n={})=>n.shouldFocus||An(n.shouldFocus)?n.focusName||`${t}.${An(n.focusIndex)?e:n.focusIndex}.`:"",K_=(t,e)=>[...t,...Fs(e)],Y_=t=>Array.isArray(t)?t.map(()=>{}):void 0;function X_(t,e,n){return[...t.slice(0,e),...Fs(n),...t.slice(e)]}var J_=(t,e,n)=>Array.isArray(t)?(An(t[n])&&(t[n]=void 0),t.splice(n,0,t.splice(e,1)[0]),t):[],Z_=(t,e)=>[...Fs(e),...Fs(t)];function FLe(t,e){let n=0;const r=[...t];for(const a of e)r.splice(a-n,1),n++;return h2(r).length?r:[]}var Q_=(t,e)=>An(e)?[]:FLe(t,Fs(e).sort((n,r)=>n-r)),eN=(t,e,n)=>{[t[e],t[n]]=[t[n],t[e]]},pF=(t,e,n)=>(t[e]=n,t);function BLe(t){const e=wLe(),{control:n=e,name:r,keyName:a="id",shouldUnregister:s,rules:o}=t,[l,c]=H.useState(n._getFieldArray(r)),u=H.useRef(n._getFieldArray(r).map(Tc)),d=H.useRef(!1);n._names.array.add(r),H.useMemo(()=>o&&l.length>=0&&n.register(r,o),[n,r,l.length,o]),DY(()=>n._subjects.array.subscribe({next:({values:j,name:k})=>{if(k===r||!k){const S=qe(j,r);Array.isArray(S)&&(c(S),u.current=S.map(Tc))}}}).unsubscribe,[n,r]);const f=H.useCallback(j=>{d.current=!0,n._setFieldArray(r,j)},[n,r]),h=(j,k)=>{const S=Fs(Yn(j)),_=K_(n._getFieldArray(r),S);n._names.focus=q_(r,_.length-1,k),u.current=K_(u.current,S.map(Tc)),f(_),c(_),n._setFieldArray(r,_,K_,{argA:Y_(j)})},p=(j,k)=>{const S=Fs(Yn(j)),_=Z_(n._getFieldArray(r),S);n._names.focus=q_(r,0,k),u.current=Z_(u.current,S.map(Tc)),f(_),c(_),n._setFieldArray(r,_,Z_,{argA:Y_(j)})},m=j=>{const k=Q_(n._getFieldArray(r),j);u.current=Q_(u.current,j),f(k),c(k),!Array.isArray(qe(n._fields,r))&&hn(n._fields,r,void 0),n._setFieldArray(r,k,Q_,{argA:j})},x=(j,k,S)=>{const _=Fs(Yn(k)),C=X_(n._getFieldArray(r),j,_);n._names.focus=q_(r,j,S),u.current=X_(u.current,j,_.map(Tc)),f(C),c(C),n._setFieldArray(r,C,X_,{argA:j,argB:Y_(k)})},v=(j,k)=>{const S=n._getFieldArray(r);eN(S,j,k),eN(u.current,j,k),f(S),c(S),n._setFieldArray(r,S,eN,{argA:j,argB:k},!1)},b=(j,k)=>{const S=n._getFieldArray(r);J_(S,j,k),J_(u.current,j,k),f(S),c(S),n._setFieldArray(r,S,J_,{argA:j,argB:k},!1)},y=(j,k)=>{const S=Yn(k),_=pF(n._getFieldArray(r),j,S);u.current=[..._].map((C,E)=>!C||E===j?Tc():u.current[E]),f(_),c([..._]),n._setFieldArray(r,_,pF,{argA:j,argB:S},!0,!1)},w=j=>{const k=Fs(Yn(j));u.current=k.map(Tc),f([...k]),c([...k]),n._setFieldArray(r,[...k],S=>S,{},!0,!1)};return H.useEffect(()=>{if(n._state.action=!1,NO(r,n._names)&&n._subjects.state.next({...n._formState}),d.current&&(!Th(n._options.mode).isOnSubmit||n._formState.isSubmitted)&&!Th(n._options.reValidateMode).isOnSubmit)if(n._options.resolver)n._runSchema([r]).then(j=>{n._updateIsValidating([r]);const k=qe(j.errors,r),S=qe(n._formState.errors,r);(S?!k&&S.type||k&&(S.type!==k.type||S.message!==k.message):k&&k.type)&&(k?hn(n._formState.errors,r,k):Or(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{const j=qe(n._fields,r);j&&j._f&&!(Th(n._options.reValidateMode).isOnSubmit&&Th(n._options.mode).isOnSubmit)&&CO(j,n._names.disabled,n._formValues,n._options.criteriaMode===Pi.all,n._options.shouldUseNativeValidation,!0).then(k=>!Ha(k)&&n._subjects.state.next({errors:VY(n._formState.errors,k,r)}))}n._subjects.state.next({name:r,values:Yn(n._formValues)}),n._names.focus&&Zh(n._fields,(j,k)=>{if(n._names.focus&&k.startsWith(n._names.focus)&&j.focus)return j.focus(),1}),n._names.focus="",n._setValid(),d.current=!1},[l,r,n]),H.useEffect(()=>(!qe(n._formValues,r)&&n._setFieldArray(r),()=>{const j=(k,S)=>{const _=qe(n._fields,k);_&&_._f&&(_._f.mount=S)};n._options.shouldUnregister||s?n.unregister(r):j(r,!1)}),[r,n,a,s]),{swap:H.useCallback(v,[f,r,n]),move:H.useCallback(b,[f,r,n]),prepend:H.useCallback(p,[f,r,n]),append:H.useCallback(h,[f,r,n]),remove:H.useCallback(m,[f,r,n]),insert:H.useCallback(x,[f,r,n]),update:H.useCallback(y,[f,r,n]),replace:H.useCallback(w,[f,r,n]),fields:H.useMemo(()=>l.map((j,k)=>({...j,[a]:u.current[k]||Tc()})),[l,a])}}function zLe(t={}){const e=H.useRef(void 0),n=H.useRef(void 0),[r,a]=H.useState({isDirty:!1,isValidating:!1,isLoading:mo(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,isReady:!1,defaultValues:mo(t.defaultValues)?void 0:t.defaultValues});if(!e.current)if(t.formControl)e.current={...t.formControl,formState:r},t.defaultValues&&!mo(t.defaultValues)&&t.formControl.reset(t.defaultValues,t.resetOptions);else{const{formControl:o,...l}=LLe(t);e.current={...l,formState:r}}const s=e.current.control;return s._options=t,DY(()=>{const o=s._subscribe({formState:s._proxyFormState,callback:()=>a({...s._formState}),reRenderRoot:!0});return a(l=>({...l,isReady:!0})),s._formState.isReady=!0,o},[s]),H.useEffect(()=>s._disableForm(t.disabled),[s,t.disabled]),H.useEffect(()=>{t.mode&&(s._options.mode=t.mode),t.reValidateMode&&(s._options.reValidateMode=t.reValidateMode)},[s,t.mode,t.reValidateMode]),H.useEffect(()=>{t.errors&&(s._setErrors(t.errors),s._focusError())},[s,t.errors]),H.useEffect(()=>{t.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,t.shouldUnregister]),H.useEffect(()=>{if(s._proxyFormState.isDirty){const o=s._getDirty();o!==r.isDirty&&s._subjects.state.next({isDirty:o})}},[s,r.isDirty]),H.useEffect(()=>{var o;t.values&&!Hc(t.values,n.current)?(s._reset(t.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((o=s._options.resetOptions)===null||o===void 0)&&o.keepIsValid||s._setValid(),n.current=t.values,a(l=>({...l}))):s._resetDefaultValues()},[s,t.values]),H.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),e.current.formState=H.useMemo(()=>kLe(r,s),[s,r]),e.current}const mF=(t,e,n)=>{if(t&&"reportValidity"in t){const r=qe(n,e);t.setCustomValidity(r&&r.message||""),t.reportValidity()}},WY=(t,e)=>{for(const n in e.fields){const r=e.fields[n];r&&r.ref&&"reportValidity"in r.ref?mF(r.ref,n,t):r.refs&&r.refs.forEach(a=>mF(a,n,t))}},ULe=(t,e)=>{e.shouldUseNativeValidation&&WY(t,e);const n={};for(const r in t){const a=qe(e.fields,r),s=Object.assign(t[r]||{},{ref:a&&a.ref});if(VLe(e.names||Object.keys(t),r)){const o=Object.assign({},qe(n,r));hn(o,"root",s),hn(n,r,o)}else hn(n,r,s)}return n},VLe=(t,e)=>t.some(n=>n.startsWith(e+"."));var WLe=function(t,e){for(var n={};t.length;){var r=t[0],a=r.code,s=r.message,o=r.path.join(".");if(!n[o])if("unionErrors"in r){var l=r.unionErrors[0].errors[0];n[o]={message:l.message,type:l.code}}else n[o]={message:s,type:a};if("unionErrors"in r&&r.unionErrors.forEach(function(d){return d.errors.forEach(function(f){return t.push(f)})}),e){var c=n[o].types,u=c&&c[r.code];n[o]=IY(o,e,n,a,u?[].concat(u,r.message):r.message)}t.shift()}return n},HLe=function(t,e,n){return n===void 0&&(n={}),function(r,a,s){try{return Promise.resolve(function(o,l){try{var c=Promise.resolve(t[n.mode==="sync"?"parse":"parseAsync"](r,e)).then(function(u){return s.shouldUseNativeValidation&&WY({},s),{errors:{},values:n.raw?r:u}})}catch(u){return l(u)}return c&&c.then?c.then(void 0,l):c}(0,function(o){if(function(l){return Array.isArray(l==null?void 0:l.errors)}(o))return{values:{},errors:ULe(WLe(o.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw o}))}catch(o){return Promise.reject(o)}}};const gF=[420,260,180,140,130,210,480,950,1700,2400,2900,3200,3400,3300,3100,2950,3050,3350,3600,3450,2800,1900,1100,640],GLe=t=>Math.round(t/25)*25;function xF(t,e,n,r){return n<=1||t<=0?100:Math.max(100,GLe(5*Math.sqrt(t*e/(n-1))))}function yF(t,e,n,r){const a=(.1+.2*n)/Math.max(1,r-1),s=e*n,o=s>0?t/s:a;return Math.max(.01,Math.min(o,a))}function vF(t){return Number.isFinite(t)?t<=60?"text-emerald-700":t<=120?"text-amber-700":"text-red-600":"text-slate-500"}function bF(t){const e=t.filter(n=>Number.isFinite(n)&&n>=0);if(e.length===24)return{hours:e,note:"Loaded 24 hourly values."};if(e.length>24&&e.length%24===0){const n=e.length/24;return{hours:Array.from({length:24},(a,s)=>{let o=0;for(let l=0;l24?{hours:e.slice(0,24),note:`Using first 24 of ${e.length} values.`}:{error:`Expected 24 values — found ${e.length}. Paste one day (row/column) or N×24.`}}function qLe(t){const e=t.trim();if(!e)return{error:"Paste hourly volumes or upload a CSV."};const n=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>/\d/.test(r));if(n.length>=12){const r=n.map(a=>{const s=a.match(/-?\d+(?:\.\d+)?/g);return s?Number(s[s.length-1]):NaN}).filter(a=>Number.isFinite(a));return bF(r)}return bF((e.match(/-?\d+(?:\.\d+)?/g)||[]).map(Number))}async function KLe(t,e){const n=t.stream().pipeThrough(new TextDecoderStream).getReader();let r=!1,a=!1,s=[],o="",l=0,c=!0,u=-1,d=-1,f=!1,h="",p="";const m=new Map;let x=0;const v=E=>a&&(E===u||E===d),b=()=>{a?l===u?h=o:l===d&&(p=o):s.push(o),o=""},y=()=>{if(!a)u=s.indexOf("Booking Date"),d=s.indexOf("Record Type"),f=u>=0&&d>=0,a=!0,s=[];else if(f){if(x++,p==="Received"&&h.length>=13){const E=(h.charCodeAt(11)-48)*10+(h.charCodeAt(12)-48);if(E>=0&&E<24){const P=h.slice(0,10);let R=m.get(P);R||(R=new Array(24).fill(0),m.set(P,R)),R[E]++}}x%2e5===0&&e(x)}l=0,c=!a||v(0),h="",p=""};for(;;){const{done:E,value:P}=await n.read();if(E)break;const R=P;for(let A=0;A0)&&(b(),y()),!f)return{error:'Not a PAR export (no "Booking Date" / "Record Type" columns).'};if(m.size===0)return{error:'PAR parsed, but found no "Received" rows.'};const w=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j=E=>new Date(`${E}T00:00:00Z`).getUTCDay();let k="",S=new Array(24).fill(0),_=-1,C=!1;for(const[E,P]of m){const R=P.reduce((D,L)=>D+L,0),A=j(E)>=1&&j(E)<=5;(_<0||A&&!C||A===C&&R>_)&&(k=E,S=P,_=R,C=A)}return{hours:S.slice(),note:`PAR detected — busiest weekday ${k} (${w[j(k)]}): ${_.toLocaleString()} Received attempts (of ${m.size} day(s) scanned).`}}function YLe(){const[t,e]=g.useState(3),[n,r]=g.useState(100),a=5,s=0,[o,l]=g.useState(gF),[c,u]=g.useState("bucket"),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null),[v,b]=g.useState("Sample day"),[y,w]=g.useState(null),j=g.useRef(null),k=Math.min(1,Math.max(0,n/100)),S=()=>{l(gF),b("Sample day"),w(null),x(null)},_=g.useMemo(()=>{const T=o,D=Math.max(1,t-1),L=T.map((ne,ce)=>({v:ne,h:ce})).filter(({v:ne})=>ne>0&&ne>=s),X=L.length?Math.min(...L.map(ne=>ne.v)):0,J=L.length?Math.min(...L.map(ne=>xF(ne.v,k,t))):100,U=yF(J,X||1,k,t),Y=(ne,ce,he)=>{const be=he*k,Pe=ce*D,Ce=be*Math.max(0,1-Pe),Re=be*ce;return{bucket:ne,h:ce,noise:Math.sqrt(1875/ne),bestRefresh:Ce>0?ne/Ce*60:1/0,worstRefresh:Re>0?ne/Re*60:1/0,hedged:be*Pe}},W=T.map((ne,ce)=>{const he=ne>0&&ne>=s,be=he?xF(ne,k,t):J,Pe=he?yF(be,ne,k,t):U;return{v:ne,hour:ce,on:he,static:Y(J,U,ne),auto:Y(be,Pe,ne)}}),G=W.filter(ne=>ne.on),I=ne=>G.reduce((ce,he)=>ce+ne(he),0),q=I(ne=>ne.v),M=ne=>q>0?I(ce=>ce.v*ce[ne].noise)/q:0,B=ne=>I(ce=>ce[ne].hedged),z=G.map(ne=>ne.auto.bucket),Z=G.map(ne=>ne.auto.h),pe=B("static"),ae=B("auto"),ue=pe-ae,de=ue*(Math.max(0,a)/100/2),Q=T.reduce((ne,ce)=>ne+ce,0),fe=T.reduce((ne,ce,he)=>ce>ne.v?{v:ce,h:he}:ne,{v:0,h:0});return{rows:W,staticB:J,staticH:U,autoBMin:z.length?Math.min(...z):J,autoBMax:z.length?Math.max(...z):J,autoHMin:Z.length?Math.min(...Z):U,autoHMax:Z.length?Math.max(...Z):U,staticNoise:M("static"),autoNoise:M("auto"),staticHedged:pe,autoHedged:ae,hedgedSaved:ue,recovered:de,nHedged:D,totalDay:Q,avgV:T.length?Q/T.length:0,peak:fe,activeCount:G.length,hoursCount:T.length}},[o,t,k,a,s]),C=async T=>{w(null);let D=!1;try{const X=((await T.slice(0,65536).text()).split(/\r?\n/,1)[0]??"").split(",").map(J=>J.trim());D=X.includes("Booking Date")&&X.includes("Record Type")}catch{D=!1}if(D){x("Crunching PAR…");try{const L=await KLe(T,X=>x(`Crunching PAR… ${X.toLocaleString()} rows`));"hours"in L?(l(L.hours.map(X=>Math.round(X))),b(L.note)):w(L.error)}catch{w("Could not read the file (too large for the browser? try a smaller slice).")}finally{x(null)}return}if(x(null),T.size>2e6){w("Unrecognised large file — expected a PAR export or a small 24-value CSV.");return}try{const L=qLe(await T.text());"hours"in L?(l(L.hours),b(`Loaded ${T.name}`)):w(L.error)}catch{w("Could not read the file.")}},E=_.rows.map(T=>({hour:`${String(T.hour).padStart(2,"0")}`,volume:T.v,staticBucket:T.static.bucket,autoBucket:T.auto.bucket,staticHedge:T.static.h*100,autoHedge:T.auto.h*100,staticNoise:T.static.noise,autoNoise:T.auto.noise})),P={bucket:{label:"Bucket B",staticKey:"staticBucket",autoKey:"autoBucket",unit:"",fmt:T=>T.toFixed(0)},hedge:{label:"Hedge %/PG",staticKey:"staticHedge",autoKey:"autoHedge",unit:"%",fmt:T=>T.toFixed(1)},noise:{label:"Noise ±pp",staticKey:"staticNoise",autoKey:"autoNoise",unit:"pp",fmt:T=>T.toFixed(2)}},R=P[c],A="w-full rounded-lg border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-sm font-semibold text-slate-800 focus:outline-none focus:border-brand-500 dark:border-[#222226] dark:bg-[#0d0d13] dark:text-slate-100";return i.jsxs("div",{className:"space-y-5",children:[i.jsx(Te,{children:i.jsxs(He,{children:[i.jsx("div",{className:"mb-3",children:i.jsx("h3",{className:"text-sm font-semibold text-slate-800 dark:text-white",children:"Auto-tuning — Static vs Automatic"})}),i.jsxs("div",{className:"flex flex-wrap items-end gap-4",children:[i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(vn,{children:"Processors (N)"}),i.jsx("input",{type:"number",min:2,max:12,value:t,onChange:T=>e(Math.max(2,Math.min(12,parseInt(T.target.value||"2",10)))),className:`${A} w-[90px]`})]}),i.jsx("button",{type:"button",onClick:()=>p(T=>!T),className:"self-end pb-1.5 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:h?"▾ Advanced":"▸ Advanced"}),h&&i.jsxs("label",{className:"flex flex-col gap-1",children:[i.jsx(vn,{children:"SRV3 split %"}),i.jsx("input",{type:"number",min:1,max:100,value:n,onChange:T=>r(Math.max(1,Math.min(100,parseInt(T.target.value||"100",10)))),className:`${A} w-[90px]`})]})]}),i.jsxs("div",{className:"mt-4 flex flex-col gap-3 sm:flex-row sm:items-stretch",children:[i.jsxs("div",{onClick:()=>{var T;return(T=j.current)==null?void 0:T.click()},onDragOver:T=>T.preventDefault(),onDrop:T=>{var L;T.preventDefault();const D=(L=T.dataTransfer.files)==null?void 0:L[0];D&&C(D)},className:"flex flex-1 cursor-pointer flex-col items-center justify-center gap-1 rounded-xl border border-dashed border-slate-300 bg-slate-50/60 px-4 py-4 text-center text-xs text-slate-500 hover:border-brand-400 hover:bg-brand-50/30 dark:border-[#222226] dark:bg-[#0b0b10] dark:text-slate-400",children:[i.jsx("input",{ref:j,type:"file",accept:".csv,.txt,text/csv,text/plain",className:"hidden",onChange:T=>{var L;const D=(L=T.target.files)==null?void 0:L[0];D&&C(D)}}),i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:"Drop a CSV or click to browse"}),i.jsx("span",{children:"A raw PAR export (auto-detected — busiest weekday), or any 24-value layout — row, column, N×24, time-column."}),m&&i.jsx("span",{className:"mt-1 font-medium text-amber-700 dark:text-amber-400",children:m})]}),i.jsx("button",{type:"button",onClick:S,className:"shrink-0 rounded-xl border border-slate-200 px-4 py-2 text-sm font-medium text-slate-600 hover:bg-slate-50 dark:border-[#222226] dark:text-slate-300 dark:hover:bg-[#0d0d13] sm:self-stretch",children:"Load sample day"})]}),i.jsx("p",{className:"mt-2 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:y?i.jsx("span",{className:"text-red-600",children:y}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:v})," · ","Total ",_.totalDay.toLocaleString()," · avg ",_.avgV.toFixed(0),"/hr · peak ",_.peak.v.toLocaleString()," @ ",_.peak.h,"h · active ",_.activeCount,"/",_.hoursCount,"h"]})})]})}),i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"mb-2 flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("h4",{className:"text-sm font-medium text-slate-800 dark:text-white",children:["Daily volume & ",R.label.toLowerCase()]}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-[18px]",children:"Bars = traffic. Lines = the static (flat) vs automatic (per-hour) value — watch automatic track the volume."})]}),i.jsx("div",{className:"inline-flex rounded-md border border-slate-200 p-0.5 dark:border-[#1f1f29]",children:["bucket","hedge","noise"].map(T=>i.jsx("button",{type:"button",onClick:()=>u(T),className:`px-2.5 py-1 text-[11px] font-medium rounded transition-colors ${c===T?"bg-brand-500 text-white":"text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"} leading-4`,children:P[T].label},T))})]}),i.jsx("div",{className:"h-[300px] w-full",children:i.jsx(tl,{width:"100%",height:"100%",children:i.jsxs(eA,{data:E,margin:{top:8,right:8,bottom:4,left:0},children:[i.jsx(Kl,{strokeDasharray:"3 3",stroke:"#e2e8f0",className:"dark:opacity-20",vertical:!1}),i.jsx(ys,{dataKey:"hour",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:{stroke:"#e2e8f0"},minTickGap:16}),i.jsx(Qa,{yAxisId:"vol",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:48,tickFormatter:T=>T>=1e3?`${(T/1e3).toFixed(1)}k`:`${T}`}),i.jsx(Qa,{yAxisId:"ov",orientation:"right",tick:{fontSize:11,fill:"#94a3b8"},tickLine:!1,axisLine:!1,width:44,tickFormatter:T=>`${R.fmt(T)}${R.unit}`}),i.jsx(xa,{formatter:(T,D)=>D==="Volume"?[Math.round(T).toLocaleString(),D]:[`${R.fmt(T)}${R.unit}`,D],labelFormatter:T=>`${T}:00`,contentStyle:{fontSize:12,borderRadius:8}}),i.jsx(ul,{wrapperStyle:{fontSize:11}}),i.jsx(pi,{yAxisId:"vol",dataKey:"volume",name:"Volume",fill:"#c7d2fe",radius:[3,3,0,0],isAnimationActive:!1}),i.jsx(dc,{yAxisId:"ov",dataKey:R.staticKey,name:`Static ${R.label}`,stroke:"#94a3b8",strokeWidth:2,strokeDasharray:"5 4",dot:!1,isAnimationActive:!1}),i.jsx(dc,{yAxisId:"ov",dataKey:R.autoKey,name:`Auto ${R.label}`,stroke:"#10b981",strokeWidth:2.5,dot:!1,isAnimationActive:!1})]})})})]})}),i.jsx(Te,{children:i.jsxs(He,{children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 bg-white px-4 py-3 dark:border-[#1c1c24] dark:bg-[#0b0b10]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-slate-600 dark:text-slate-300 leading-[18px]",children:"Static"}),i.jsx("span",{className:"rounded bg-slate-100 px-2 py-0.5 text-[11px] font-medium text-slate-500 dark:bg-[#1f1f29] dark:text-slate-400 leading-4",children:"sized for leanest hour"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:_.staticB}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(_.staticH*100).toFixed(1),"% ",i.jsxs("span",{className:"text-slate-500",children:["(tot ",(_.staticH*_.nHedged*100).toFixed(0),"%)"]})]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(_.staticHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",_.staticNoise.toFixed(2),"pp"]})]})]}),i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50/40 px-4 py-3 dark:border-emerald-900 dark:bg-emerald-950/20",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-[13px] font-semibold text-emerald-700 dark:text-emerald-300 leading-[18px]",children:"Automatic"}),i.jsx("span",{className:"rounded bg-emerald-100 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-200 leading-4",children:"per-hour sizing"})]}),i.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-y-2 text-sm",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket B"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:_.autoBMin===_.autoBMax?_.autoBMin:`${_.autoBMin}–${_.autoBMax}`}),i.jsx("span",{className:"text-slate-500",children:"Hedge / PG"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:[(_.autoHMin*100).toFixed(1),"–",(_.autoHMax*100).toFixed(1),"%"]}),i.jsx("span",{className:"text-slate-500",children:"Hedged / day"}),i.jsx("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:Math.round(_.autoHedged).toLocaleString()}),i.jsx("span",{className:"text-slate-500",children:"Vol-wt noise"}),i.jsxs("span",{className:"text-right font-mono font-semibold text-slate-800 dark:text-slate-100",children:["±",_.autoNoise.toFixed(2),"pp"]})]})]})]}),i.jsxs("div",{className:"mt-3 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 text-sm text-slate-700 dark:border-[#1c1c24] dark:bg-[#0b0b10] dark:text-slate-200",children:["Automatic trims ",i.jsx("strong",{className:"font-mono",children:Math.round(_.hedgedSaved).toLocaleString()})," hedged txns/day (≈ ",i.jsx("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:Math.round(_.recovered).toLocaleString()})," recovered approvals) and cuts volume-weighted noise from",i.jsxs("strong",{className:"font-mono",children:[" ±",_.staticNoise.toFixed(2),"pp"]})," → ",i.jsxs("strong",{className:"font-mono text-emerald-700 dark:text-emerald-400",children:["±",_.autoNoise.toFixed(2),"pp"]})," by enlarging buckets in busy hours."," ","Lean-hour refresh is volume-limited, so both stay equal there — the win is the over-hedge trim and busy-hour accuracy."]}),i.jsxs("button",{type:"button",onClick:()=>f(T=>!T),className:"mt-3 text-xs font-medium text-brand-600 hover:underline dark:text-brand-400",children:[d?"Hide":"Show"," per-hour breakdown"]}),d&&i.jsx("div",{className:"mt-2 overflow-x-auto",children:i.jsxs("table",{className:"w-full text-right text-xs tabular-nums",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Hour"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"B (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"h% (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Noise (S→A)"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Worst refresh (S→A)"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-slate-300",children:_.rows.filter(T=>T.on).map(T=>i.jsxs("tr",{className:"border-b border-slate-100 dark:border-[#141418]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left font-mono",children:[String(T.hour).padStart(2,"0"),":00"]}),i.jsx("td",{className:"py-1 pr-3 font-mono",children:Math.round(T.v).toLocaleString()}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[T.static.bucket," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:T.auto.bucket})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[(T.static.h*100).toFixed(1)," → ",i.jsx("span",{className:"text-slate-800 dark:text-slate-100",children:(T.auto.h*100).toFixed(1)})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:["±",T.static.noise.toFixed(1)," → ",i.jsxs("span",{className:"text-slate-800 dark:text-slate-100",children:["±",T.auto.noise.toFixed(1)]})]}),i.jsxs("td",{className:"py-1 pr-3 font-mono",children:[i.jsx("span",{className:vF(T.static.worstRefresh),children:T.static.worstRefresh.toFixed(0)})," → ",i.jsx("span",{className:vF(T.auto.worstRefresh),children:T.auto.worstRefresh.toFixed(0)}),i.jsx("span",{className:"text-slate-500",children:" min"})]})]},T.hour))})]})})]})})]})}function XLe({merchantId:t}){const{coverage:e,error:n,isLoading:r}=Vj(t),a=!!e&&e.total_clusters>0;return t&&r?i.jsxs("div",{className:"flex items-center gap-2 py-2 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading breakdown…"]}):n?i.jsx("p",{className:"text-sm text-red-600",children:"Failed to load coverage."}):!a||!e?i.jsx("p",{className:"text-sm text-slate-500",children:"The breakdown appears once a settlement report has been fitted."}):i.jsx("div",{className:"space-y-4",children:i.jsx(JLe,{coverage:e})})}function JLe({coverage:t}){const e=[{verdict:"GOOD",note:"trustworthy cost model",dot:"bg-emerald-500",txns:t.good_txns,gross:t.good_gross},{verdict:"Tiered",note:"priced per amount tier — capped or tiered interchange",dot:"bg-sky-500",txns:t.tiered_txns,gross:t.tiered_gross,hideWhenEmpty:!0},{verdict:"THIN",note:"too few txns — safe fallback",dot:"bg-slate-400",txns:t.thin_txns,gross:t.thin_gross},{verdict:"Poor fit",note:"no single rate and no clean tiers — set a contract rate",dot:"bg-amber-500",txns:t.non_linear_txns,gross:t.non_linear_gross,hideWhenEmpty:!0}].filter(a=>!a.hideWhenEmpty||a.txns>0||a.gross>0),n=a=>t.total_txns>0?a/t.total_txns*100:0,r=a=>t.total_gross>0?a/t.total_gross*100:0;return i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[520px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Verdict"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Txn %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Vol %"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Avg ticket"})]})}),i.jsx("tbody",{children:e.map(a=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsxs("td",{className:"py-2 pr-3",children:[i.jsxs("span",{className:"flex items-center gap-2",children:[i.jsx("span",{className:`h-2 w-2 rounded-full ${a.dot}`}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-[#c7cfdd]",children:a.verdict})]}),i.jsx("span",{className:"ml-4 text-xs text-slate-500",children:a.note})]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns.toLocaleString()}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[n(a.txns).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:ZLe(a.gross)}),i.jsxs("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:[r(a.gross).toFixed(1),"%"]}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:a.txns>0?QLe(a.gross/a.txns):"—"})]},a.verdict))})]})})}function ZLe(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function QLe(t){return t.toLocaleString(void 0,{maximumFractionDigits:0})}const e8e=[{key:"card_network",label:"Network"},{key:"variant",label:"Program"},{key:"funding",label:"Type"},{key:"issuer_country",label:"Country"},{key:"currency",label:"Currency"},{key:"ic_category",label:"Category"},{key:"verdict",label:"Fit"}],t8e="flex w-full items-center justify-between gap-1 rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-700 hover:border-slate-300 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-[#c7cede] dark:hover:border-[#2e3545]",n8e="w-full rounded-md border border-slate-200 bg-white px-2 py-1 text-[12px] text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white dark:placeholder:text-[#5c6577]";function r8e({label:t,selected:e,options:n,onChange:r}){const[a,s]=g.useState(!1),[o,l]=g.useState(""),c=g.useRef(null);g.useEffect(()=>{if(!a)return;function h(m){c.current&&!c.current.contains(m.target)&&s(!1)}function p(m){m.key==="Escape"&&s(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",p)}},[a]);const u=g.useMemo(()=>{const h=o.trim().toLowerCase(),p=h?n.filter(v=>v.value.toLowerCase().includes(h)):n,m=new Set(e);return[...e.filter(v=>!p.some(b=>b.value===v)).map(v=>({dim:"",value:v,txns:0})),...p].slice(0,300).map(v=>({...v,on:m.has(v.value)}))},[n,o,e]);function d(h){r(e.includes(h)?e.filter(p=>p!==h):[...e,h])}const f=e.length===0?t:e.length===1?`${t}: ${e[0]}`:`${t} · ${e.length}`;return i.jsxs("div",{className:"relative",ref:c,children:[i.jsxs("button",{type:"button",className:t8e,"aria-label":`Filter by ${t}`,"aria-expanded":a,onClick:()=>s(h=>!h),children:[i.jsx("span",{className:`truncate ${e.length?"font-medium":"text-slate-500 dark:text-[#78849a]"}`,children:f}),i.jsx(ln,{size:13,className:"shrink-0 opacity-60"})]}),a&&i.jsxs("div",{className:"absolute z-30 mt-1 w-[260px] rounded-lg border border-slate-200 bg-white p-2 shadow-lg dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("input",{autoFocus:!0,className:n8e,value:o,placeholder:`Search ${t.toLowerCase()}…`,onChange:h=>l(h.target.value)}),e.length>0&&i.jsxs("button",{type:"button",className:"mt-1 w-full rounded px-1 py-0.5 text-left text-[11px] text-brand-600 hover:underline dark:text-brand-400 leading-4",onClick:()=>r([]),children:["Clear ",e.length," selected"]}),i.jsxs("div",{className:"mt-1 max-h-56 overflow-y-auto",children:[u.length===0&&i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matching values."}),u.map(h=>i.jsxs("button",{type:"button",className:"flex w-full items-center gap-2 rounded px-1 py-1 text-left text-[12px] text-slate-700 hover:bg-slate-100 dark:text-[#c7cede] dark:hover:bg-[#141a24] leading-4",onClick:()=>d(h.value),children:[i.jsx("span",{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border ${h.on?"border-brand-500 bg-brand-500 text-white":"border-slate-300 dark:border-[#39414f]"}`,children:h.on&&i.jsx(gi,{size:10,strokeWidth:3})}),i.jsx("span",{className:"min-w-0 flex-1 truncate",title:h.value,children:h.value}),h.txns>0&&i.jsx("span",{className:"shrink-0 text-[11px] text-slate-500 leading-4",children:h.txns.toLocaleString()})]},h.value))]})]})]})}function HY({filters:t,facets:e,onChange:n,rightSlot:r}){const a=cT(t);return i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a>0&&i.jsxs(we,{variant:"ghost",onClick:()=>n({}),children:[i.jsx(Vr,{size:14})," Clear ",a," filter",a===1?"":"s"]}),r]}),i.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-7",children:e8e.map(s=>i.jsx(r8e,{label:s.label,selected:t[s.key]??[],options:e[s.key]??[],onChange:o=>n({...t,[s.key]:o})},s.key))})]})}const wF=[{value:"adyen",label:"Adyen"},{value:"braintree",label:"Braintree"},{value:"chase",label:"Chase"},{value:"checkout",label:"Checkout"},{value:"stripe",label:"Stripe"}],Bs="w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function vo({label:t,hint:e,children:n}){return i.jsxs("label",{className:"block space-y-1.5",children:[i.jsx("span",{className:ks,children:t}),n,e&&i.jsx("span",{className:`block ${pl}`,children:e})]})}const a8e={blue:"bg-blue-50 text-blue-600 dark:bg-blue-500/12 dark:text-blue-300",purple:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300",teal:"bg-teal-50 text-teal-700 dark:bg-teal-500/12 dark:text-teal-300",orange:"bg-orange-50 text-orange-700 dark:bg-orange-500/12 dark:text-orange-300",red:"bg-rose-50 text-rose-600 dark:bg-rose-500/12 dark:text-rose-300",gray:"bg-slate-100 text-slate-600 dark:bg-white/[0.06] dark:text-slate-300"};function GY({variant:t,children:e}){return i.jsx("span",{className:`inline-flex max-w-full items-center truncate rounded-md px-2 py-0.5 text-xs font-semibold ${a8e[t]}`,children:e})}const Bc="w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 placeholder:text-slate-500 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white disabled:opacity-50",s8e={adyen:"blue",stripe:"purple",checkout:"green","checkout.com":"green",braintree:"orange",authorizenet:"teal","authorize.net":"teal",chase:"blue",paypal:"blue",worldpay:"red"},i8e={visa:"blue",mastercard:"red",amex:"purple","american express":"purple",discover:"orange",ideal:"orange",jcb:"green",diners:"gray",rupay:"green",unionpay:"red"},kF=["blue","purple","green","teal","orange","red"];function o8e(t){let e=0;for(let n=0;n>>0;return kF[e%kF.length]}function l8e(t){const e=t.toLowerCase().trim();return s8e[e]??o8e(e)}function c8e(t){return i8e[t.toLowerCase().trim()]??"gray"}const u8e={usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",inr:"₹",jpy:"¥",aed:"AED "};function zy(t){return t?u8e[t.toLowerCase()]??`${t.toUpperCase()} `:"$"}function CP(t){return t.interchange_bps+t.scheme_bps+t.markup_bps}function vu(t){return`${(t/100).toFixed(2)}%`}function EP(t){return Number.isFinite(t)?Math.round(t/100*1e4)/1e4:0}function AP(t){return Number.isFinite(t)?Math.round(t*100*100)/100:0}function qY(t,e){const n=vu(CP(t));return t.fixed?`${n} + ${zy(t.transaction_currency)}${t.fixed.toFixed(2)}`:n}function iu(t,e,{currency:n,perTxn:r=!1}={}){if(t==null&&e==null)return"—";const a=vu(t??0);return e&&e>0?`${a} + ${zy(n)}${e.toFixed(2)}${r?"/txn":""}`:a}const d8e=["standard","premium","ultra_premium","commercial"];function f8e(t){return{psp:t,card_network:"",payment_method_type:"",card_type:"",transaction_currency:"",card_issuing_country:"",interchange_bps:0,scheme_bps:0,markup_bps:0,fixed:0,label:"",example_amount:null,is_default:!1,effective_pct_bps:0}}function h8e({row:t,busy:e,disabled:n,onEdit:r}){var a;return i.jsxs("tr",{className:"border-b border-slate-100 transition-colors last:border-0 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"px-5 py-3 text-slate-700 dark:text-[#c7cfdd]",children:t.is_default?i.jsx(Me,{variant:"gray",children:"Default"}):t.label||"—"}),i.jsx("td",{className:"py-3 pr-3",children:t.card_network?i.jsx(GY,{variant:c8e(t.card_network),children:t.card_network}):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.payment_method_type||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_type?t.card_type.replace(/_/g," "):i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((a=t.transaction_currency)==null?void 0:a.toUpperCase())||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:t.card_issuing_country||i.jsx("span",{className:"text-slate-500",children:"Any"})}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.interchange_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.scheme_bps)}),i.jsx("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:vu(t.markup_bps)}),i.jsxs("td",{className:"py-3 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[zy(t.transaction_currency),t.fixed.toFixed(2)]}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right tabular-nums font-semibold text-brand-700 dark:bg-brand-500/[0.1] dark:text-brand-300",children:qY(t)}),i.jsx("td",{className:"bg-brand-500/[0.06] py-3 pr-5 text-right dark:bg-brand-500/[0.1]",children:i.jsx("button",{type:"button",onClick:r,disabled:n||e,title:"Edit scenario","aria-label":"Edit scenario",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-emerald-600 transition-colors hover:bg-emerald-500/10 disabled:opacity-40 dark:text-emerald-400",children:i.jsx(jl,{size:14})})})]})}function p8e({initial:t,isNew:e,busy:n,saveError:r,onSave:a,onRemove:s,onClose:o}){const[l,c]=g.useState(t),[u,d]=g.useState(null),f=g.useRef(null),h=m=>c(x=>({...x,...m}));g.useEffect(()=>{var x;(x=f.current)==null||x.focus();function m(v){v.key==="Escape"&&!n&&o()}return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[n,o]);function p(){if(!l.psp.trim()){d("Enter a connector (PSP).");return}for(const m of[l.interchange_bps,l.scheme_bps,l.markup_bps,l.fixed])if(!Number.isFinite(m)||m<0){d("Fees must be non-negative numbers.");return}d(null),a(l)}return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!n&&o()}),i.jsxs("div",{ref:f,tabIndex:-1,className:"relative w-full max-w-lg rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl outline-none dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e?"Add scenario":"Edit scenario"}),i.jsx("button",{type:"button",onClick:o,disabled:n,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Vr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(so,{label:"Scenario name",children:l.is_default?i.jsx("div",{className:"flex h-[34px] items-center",children:i.jsx(Me,{variant:"gray",children:"Default"})}):i.jsx("input",{className:Bc,value:l.label??"",placeholder:"e.g. Visa credit — US",onChange:m=>h({label:m.target.value})})}),i.jsx(so,{label:"PSP",children:i.jsx("div",{className:"flex h-[34px] items-center",children:l.psp?i.jsx(GY,{variant:l8e(l.psp),children:l.psp}):"—"})})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Applies to ",i.jsx("span",{className:"font-normal text-slate-500",children:"(blank = any card)"})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsx(so,{label:"Network",children:i.jsx("input",{className:Bc,value:l.card_network??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_network:m.target.value})})}),i.jsx(so,{label:"Funding",children:i.jsx("input",{className:Bc,value:l.payment_method_type??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({payment_method_type:m.target.value})})}),i.jsx(so,{label:"Program",children:i.jsxs("select",{className:Bc,value:l.card_type??"",disabled:l.is_default,onChange:m=>h({card_type:m.target.value}),children:[i.jsx("option",{value:"",children:"any"}),d8e.map(m=>i.jsx("option",{value:m,children:m},m))]})}),i.jsx(so,{label:"Currency",children:i.jsx("input",{className:`${Bc} uppercase`,value:l.transaction_currency??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({transaction_currency:m.target.value})})}),i.jsx(so,{label:"Region",children:i.jsx("input",{className:Bc,value:l.card_issuing_country??"",placeholder:"any",disabled:l.is_default,onChange:m=>h({card_issuing_country:m.target.value})})})]})]}),i.jsxs("div",{children:[i.jsxs("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:["Fees ",i.jsx("span",{className:"font-normal text-slate-500",children:"(rates in %, fixed per transaction)"})]}),i.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[i.jsx(so,{label:"Interchange",children:i.jsx(c1,{bps:l.interchange_bps,onChange:m=>h({interchange_bps:m})})}),i.jsx(so,{label:"Scheme",children:i.jsx(c1,{bps:l.scheme_bps,onChange:m=>h({scheme_bps:m})})}),i.jsx(so,{label:"Markup",children:i.jsx(c1,{bps:l.markup_bps,onChange:m=>h({markup_bps:m})})}),i.jsx(so,{label:"Fixed",children:i.jsx(m8e,{value:l.fixed,step:.01,onChange:m=>h({fixed:m})})})]})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg bg-slate-50 px-3 py-2 text-sm dark:bg-[#0b1017]",children:[i.jsx("span",{className:"text-slate-500 dark:text-[#8d96aa]",children:"Effective rate"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-white",children:qY(l)})]}),i.jsx(vt,{error:u??r})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e?i.jsx("span",{}):i.jsxs(we,{variant:"danger",size:"sm",onClick:s,disabled:n,children:[i.jsx(wn,{size:13})," Remove"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:o,disabled:n,children:"Cancel"}),i.jsxs(we,{variant:"primary",size:"sm",onClick:p,disabled:n,children:[n?i.jsx(at,{size:13}):null," Save"]})]})]})]})]})}function so({label:t,children:e}){return i.jsxs("label",{className:"block space-y-1",children:[i.jsx("span",{className:"block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),e]})}function m8e({value:t,step:e=1,onChange:n}){return i.jsx("input",{className:`${Bc} text-right tabular-nums`,type:"number",min:"0",step:e,value:Number.isFinite(t)?t:0,onChange:r=>{const a=parseFloat(r.target.value);n(Number.isFinite(a)?a:0)}})}function c1({bps:t,onChange:e}){const n=EP(t);return i.jsxs("div",{className:"relative",children:[i.jsx("input",{className:`${Bc} pr-6 text-right tabular-nums`,type:"number",min:"0",step:.01,value:n,onChange:r=>{e(AP(parseFloat(r.target.value)))}}),i.jsx("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-500",children:"%"})]})}const g8e=["adyen","stripe","checkout","worldpay","braintree","chase","cybersource"],x8e=2e3,Cb=10,EO={mc:"Mastercard",mastercard:"Mastercard",visa:"Visa",amex:"Amex",mada:"Mada",diners:"Diners",discover:"Discover",jcb:"JCB"};function xl(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function y8e(t){const e=Number(t);return!t||!Number.isFinite(e)||e<=0?"—":vu(e)}function v8e(t){return EO[t.toLowerCase()]??t.toUpperCase()}function b8e(t){var r;if((r=t.card_network)!=null&&r.trim())return v8e(t.card_network);const e=(t.variant??"").trim().toLowerCase();if(!e)return"—";const n=Object.keys(EO).find(a=>e.startsWith(a));return n?EO[n]:xl(e)}function nx(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}function jF(t){const e=t.toUpperCase();return e==="GOOD"?"green":e==="THIN"?"orange":"red"}function KY(t){var e;return(e=t.find(({row:n})=>n.is_default)??t[0])==null?void 0:e.row}function YY(t,e){return(t==null?void 0:t.source)==="override"?"override":(t==null?void 0:t.model_pct_bps)!=null?"reports":e?"contract":"none"}const XY={override:"MANUAL OVERRIDE",reports:"FROM REPORTS",contract:"CONTRACT BASELINE",none:"NO FEE SET"},w8e={indigo:"bg-indigo-50 text-indigo-600 dark:bg-indigo-500/12 dark:text-indigo-300",violet:"bg-violet-50 text-violet-600 dark:bg-violet-500/12 dark:text-violet-300",slate:"bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-slate-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/12 dark:text-emerald-300"};function p2({tone:t,children:e}){return i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-md px-2 py-1 text-[11px] font-semibold uppercase tracking-wide ${w8e[t]} leading-4`,children:e})}const JY={override:"violet",reports:"indigo",contract:"slate",none:"slate"};function k8e({merchantId:t}){const{fees:e,isLoading:n,error:r,mutate:a}=vH(t),[s,o]=g.useState({}),{clusters:l,mutate:c}=uT(t,{limit:x8e,order:"gross_sum",filters:s}),{facets:u}=bH(t),{rows:d,error:f,mutate:h}=kH(t),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(null),[k,S]=g.useState(!1),[_,C]=g.useState(null),[E,P]=g.useState(!1),R=g.useMemo(()=>{const de=new Map;for(const Q of l){const fe=de.get(Q.connector);fe?fe.push(Q):de.set(Q.connector,[Q])}return de},[l]),A=g.useMemo(()=>{const de=new Map;return d.forEach((Q,fe)=>{const ne=de.get(Q.psp);ne?ne.push({row:Q,index:fe}):de.set(Q.psp,[{row:Q,index:fe}])}),de},[d]),T=e.map(de=>de.connector),D=new Set(T),L=Array.from(A.keys()).filter(de=>de&&!D.has(de)),X=[...T,...L],J=new Set([...D,...A.keys()]),U=g8e.filter(de=>!J.has(de)),Y=p&&X.includes(p)?p:X[0]??null,W=e.find(de=>de.connector===Y),G=Y?A.get(Y)??[]:[],I=Y?R.get(Y)??[]:[];async function q(){await Promise.all([a(),c(),h()])}function M(de){m(de),v(null)}async function B(de){if(t){S(!0),C(null);try{await BEe(t,de),await h(),j(null)}catch(Q){C(Q instanceof Error?Q.message:"Failed to save contract rates")}finally{S(!1)}}}function z(de){if(!w)return;const Q=w.index===null?[...d,de]:d.map((fe,ne)=>ne===w.index?de:fe);B(Q)}function Z(){!w||w.index===null||B(d.filter((de,Q)=>Q!==w.index))}async function pe(){if(t){P(!0),C(null);try{await zEe(t),await h()}catch(de){C(de instanceof Error?de.message:"Failed to reset contract rates")}finally{P(!1)}}}function ae(de){const Q=e.find(ne=>ne.connector===de),fe=KY(A.get(de)??[]);y({connector:de,isNew:!1,initialPctBps:(Q==null?void 0:Q.override_pct_bps)??(Q==null?void 0:Q.model_pct_bps)??(fe?CP(fe):0),initialFixed:(Q==null?void 0:Q.override_fixed)??(Q==null?void 0:Q.model_fixed)??(fe==null?void 0:fe.fixed)??0,canClear:(Q==null?void 0:Q.source)==="override"})}const ue=d.length>0;return i.jsxs("div",{className:"space-y-5",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Costs"}),i.jsx("p",{className:"mt-1 max-w-2xl text-sm text-slate-500 dark:text-[#9ca7ba]",children:"What each connector costs at decide time, and where that number comes from. Pick a connector to override a learned fee or edit its contract baseline."})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[t&&ue&&i.jsxs(we,{variant:"secondary",size:"sm",onClick:pe,disabled:E,children:[E?i.jsx(at,{size:13}):i.jsx(FW,{size:13})," Reset contract rates"]}),t&&U.length>0&&i.jsxs(we,{variant:"primary",size:"sm",onClick:()=>y({connector:U[0],connectors:U,isNew:!0,initialPctBps:0,initialFixed:0,canClear:!1}),children:[i.jsx(Qn,{size:14})," Add connector"]})]})]}),i.jsx(j8e,{}),t?n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading connectors…"]}):X.length===0?i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500 max-w-[57ch]",children:"No connectors yet. Add one to set its fee or contract baseline, or configure ingestion below to learn fees from settlement reports."})}):i.jsxs(i.Fragment,{children:[i.jsx(Te,{className:"!rounded-2xl overflow-hidden",children:i.jsx("div",{className:"divide-y divide-slate-100 dark:divide-[#1c1c23]",children:X.map(de=>{const Q=e.find(ne=>ne.connector===de),fe=A.get(de)??[];return i.jsx(S8e,{connector:de,fee:Q,clusters:R.get(de)??[],seedRows:fe,isSelected:de===Y,onSelect:()=>M(de),onEditFee:()=>ae(de)},de)})})}),Y&&i.jsx(_8e,{merchantId:t,connector:Y,fee:W,clusters:I,seedRows:G,filters:s,facets:u,onFiltersChange:o,editingKey:x,setEditingKey:v,onRefresh:q,onAddScenario:()=>{C(null),j({connector:Y,index:null,row:f8e(Y)})},onEditScenario:de=>{C(null),j({connector:Y,index:de,row:{...d[de]}})}})]}):i.jsx(Te,{children:i.jsx("p",{className:"px-5 py-4 text-sm text-slate-500",children:"Set a merchant ID to view connector costs."})}),i.jsx("p",{className:"px-1 text-xs text-slate-500 max-w-[57ch]",children:"Rates are a percentage of the transaction amount; fit error stays in basis points (100 bps = 1%) because it is a residual, not a rate. Contract-baseline rates are the last-resort fallback used when a connector has no learned or overridden fee."}),i.jsx(vt,{error:_??(r instanceof Error?r.message:r?"Failed to load connectors":null)??(f instanceof Error?f.message:f?"Failed to load contract rates":null)}),b&&t&&i.jsx(E8e,{merchantId:t,state:b,onClose:()=>y(null),onSaved:async()=>{y(null),await q()}}),w&&i.jsx(p8e,{initial:w.row,isNew:w.index===null,busy:k,saveError:_,onSave:z,onRemove:Z,onClose:()=>{j(null),C(null)}})]})}function j8e(){const t=["override","reports","contract"];return i.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-slate-200 bg-slate-50/60 px-4 py-2.5 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa]",children:"Active fee"}),i.jsx("span",{className:"text-sm font-semibold text-slate-400 dark:text-[#5c6577]",children:"="}),t.map((e,n)=>i.jsxs(g.Fragment,{children:[n>0&&i.jsx(ju,{size:13,"aria-hidden":"true",className:"text-slate-300 dark:text-[#3a3a44]"}),i.jsx(p2,{tone:JY[e],children:XY[e]})]},e)),i.jsx("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:"— the first one set wins."})]})}function S8e({connector:t,fee:e,clusters:n,seedRows:r,isSelected:a,onSelect:s,onEditFee:o}){var h;const l=KY(r),c=YY(e,r.length>0),u=(e==null?void 0:e.effective_pct_bps)??(l?CP(l):null),d=(e==null?void 0:e.effective_fixed)??(l==null?void 0:l.fixed)??null,f=(l==null?void 0:l.transaction_currency)||((h=n[0])==null?void 0:h.currency)||null;return i.jsxs("div",{role:"button",tabIndex:0,"aria-pressed":a,onClick:s,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),s())},className:`relative flex cursor-pointer items-center gap-3 px-5 py-3.5 transition-colors ${a?"bg-brand-500/[0.06] dark:bg-brand-500/[0.09]":"hover:bg-slate-50 dark:hover:bg-[#0f131b]"}`,children:[a&&i.jsx("span",{className:"absolute inset-y-0 left-0 w-1 bg-brand-500","aria-hidden":!0}),i.jsx("p",{className:"w-28 shrink-0 truncate text-sm font-semibold text-slate-900 dark:text-white",children:xl(t)}),i.jsx(p2,{tone:JY[c],children:XY[c]}),(e==null?void 0:e.account)&&i.jsxs("p",{className:"hidden min-w-0 truncate text-xs text-slate-500 dark:text-[#8d96aa] sm:block",children:["Account ",e.account]}),i.jsx("span",{className:"ml-auto shrink-0 tabular-nums text-sm font-semibold text-slate-900 dark:text-white",children:iu(u,d,{currency:f,perTxn:!0})}),i.jsx("button",{type:"button",onClick:p=>{p.stopPropagation(),o()},title:"Set a manual override for this connector","aria-label":`Set a manual override for ${xl(t)}`,className:"shrink-0 rounded-md border border-transparent p-1 text-slate-400 transition-colors hover:border-brand-500/40 hover:bg-brand-500/10 hover:text-brand-600 dark:text-[#78849a] dark:hover:text-brand-400",children:i.jsx(jl,{size:14})}),i.jsx(So,{size:16,"aria-hidden":"true",className:`shrink-0 ${a?"text-brand-500":"text-slate-300 dark:text-[#3a3a44]"}`})]})}function _8e({merchantId:t,connector:e,fee:n,clusters:r,seedRows:a,filters:s,facets:o,onFiltersChange:l,editingKey:c,setEditingKey:u,onRefresh:d,onAddScenario:f,onEditScenario:h}){const[p,m]=g.useState(null),x=p??(r.length>0?"reports":"contract"),[v,b]=g.useState(0);g.useEffect(()=>{m(null),b(0)},[e]),g.useEffect(()=>{b(0)},[x]);const y=YY(n,a.length>0),w=x==="reports"?r.length:a.length,j=Math.max(1,Math.ceil(w/Cb)),k=Math.min(v,j-1),S=k*Cb,_=r.slice(S,S+Cb),C=a.slice(S,S+Cb),E=r.reduce((D,L)=>D+L.gross_sum,0),P=r.reduce((D,L)=>D+L.n,0),R=x==="reports"?_.length:C.length,A=x==="reports"?"active learned fees":"contract scenarios",T=w===0?`No ${A}`:j>1?`Showing ${S+1}–${S+R} of ${w} ${A}`:`Showing ${w} ${A}`;return i.jsxs(Te,{className:"!rounded-2xl overflow-hidden",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 px-5 py-4",children:[i.jsxs("div",{className:"flex items-center gap-2.5",children:[i.jsx("span",{className:"h-4 w-1 rounded-full bg-brand-500","aria-hidden":!0}),i.jsxs("h3",{className:"text-base font-semibold text-slate-900 dark:text-white",children:[xl(e)," Detail"]}),i.jsx(p2,{tone:y==="none"?"slate":"green",children:y==="none"?"NO FEE":"ACTIVE"}),r.length>0&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:[nx(E)," settled · ",P.toLocaleString()," txns"]})]}),i.jsxs("div",{className:"flex items-center gap-1 rounded-lg border border-slate-200 bg-slate-50 p-1 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsxs(SF,{active:x==="reports",onClick:()=>m("reports"),children:["From reports (",r.length,")"]}),i.jsxs(SF,{active:x==="contract",onClick:()=>m("contract"),children:["Contract baseline (",a.length,")"]})]})]}),x==="reports"?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:i.jsx(HY,{filters:s,facets:o,onChange:l})}),r.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:bg-[#0e131b] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"w-16 py-2 pl-5 pr-3"}),i.jsx("th",{className:"w-28 py-2 pr-3 text-left font-semibold",children:"Network"}),i.jsx("th",{className:"w-24 py-2 pr-3 text-left font-semibold",children:"Type"}),i.jsx("th",{className:"w-16 py-2 pr-3 text-left font-semibold",children:"Country"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-left font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 text-left font-semibold",children:"Category"}),i.jsx("th",{className:"w-20 py-2 pr-3 text-right font-semibold",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),i.jsx("th",{className:"py-2 pr-5"})]})}),i.jsx("tbody",{children:_.map(D=>i.jsx(C8e,{merchantId:t,c:D,isEditing:c===D.key,editingActive:c!==null,onEdit:()=>u(D.key),onCancel:()=>u(null),onSaved:async()=>{u(null),await d()}},D.key))})]})}):i.jsx("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:cT(s)>0?"No segments match these filters — clear one to widen the search.":`No settlement data yet for ${xl(e)}. Ingest a report below to learn its fees, or set a contract baseline.`})]}):i.jsx(N8e,{connector:e,rows:C,onAdd:f,onEdit:h}),i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-slate-200 px-5 py-3 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:T}),j>1&&i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#8d96aa]",children:["Page ",k+1," of ",j]}),i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>b(k-1),disabled:k===0,children:"Previous"}),i.jsx(we,{variant:"secondary",size:"sm",onClick:()=>b(k+1),disabled:k>=j-1,children:"Next"})]})]})]})}function SF({active:t,onClick:e,children:n}){return i.jsx("button",{type:"button",onClick:e,"aria-current":t?"true":void 0,className:`rounded-md px-3 py-1.5 text-[13px] font-medium transition-colors ${t?"bg-white text-brand-600 shadow-sm dark:bg-[#161c26] dark:text-brand-400":"text-slate-500 hover:text-slate-700 dark:text-[#8d96aa] dark:hover:text-white"} leading-[18px]`,children:n})}function N8e({connector:t,rows:e,onAdd:n,onEdit:r}){return i.jsxs("div",{className:"border-t border-slate-200 dark:border-[#232833]",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-2.5",children:[i.jsxs("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:["Your contract rate per card scenario — the last-resort fallback when ",xl(t)," ","has no learned or overridden fee. A blank dimension matches any card."]}),i.jsxs(we,{variant:"secondary",size:"sm",onClick:n,children:[i.jsx(Qn,{size:13})," Add scenario"]})]}),e.length>0?i.jsx("div",{className:"overflow-x-auto border-t border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-[12px] font-semibold text-slate-500 dark:border-[#232833] dark:bg-[#0b0e14] dark:text-[#8d96aa] leading-4",children:[i.jsx("th",{className:"px-5 py-3",children:"Scenario"}),i.jsx("th",{className:"py-3 pr-3",children:"Network"}),i.jsx("th",{className:"py-3 pr-3",children:"Funding"}),i.jsx("th",{className:"py-3 pr-3",children:"Program"}),i.jsx("th",{className:"py-3 pr-3",children:"Currency"}),i.jsx("th",{className:"py-3 pr-3",children:"Region"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Interchange"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Scheme"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Markup"}),i.jsx("th",{className:"py-3 pr-3 text-right",children:"Fixed"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-3 text-right dark:bg-brand-500/[0.1]",children:"Total rate"}),i.jsx("th",{className:"bg-brand-500/[0.06] py-3 pr-5 dark:bg-brand-500/[0.1]"})]})}),i.jsx("tbody",{children:e.map(({row:a,index:s})=>i.jsx(h8e,{row:a,busy:!1,disabled:!1,onEdit:()=>r(s)},s))})]})}):i.jsxs("div",{className:"border-t border-slate-200 px-5 py-8 text-sm text-slate-500 dark:border-[#232833]",children:["No contract baseline for ",xl(t)," yet. Add a scenario to price it when no learned data is available."]})]})}function C8e({merchantId:t,c:e,isEditing:n,editingActive:r,onEdit:a,onCancel:s,onSaved:o}){var E,P,R;const l=e.source==="override",c=(((E=e.segments)==null?void 0:E.length)??0)>0,u=()=>String(EP(e.effective_pct_bps??e.override_pct_bps??e.model_pct_bps??0)),d=()=>String(e.effective_fixed??e.override_fixed??e.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(!1),[k,S]=g.useState(!1);g.useEffect(()=>{n&&(h(u()),m(d()),y(null))},[n]);async function _(){const A=parseFloat(f),T=parseFloat(p);if(!isFinite(A)||A<0||!isFinite(T)||T<0){y("Enter non-negative numbers for the rate and fixed fee.");return}v("save"),y(null);try{await wH(t,e.key,{pct_bps:AP(A),fixed:T}),await o()}catch(D){y(D instanceof Error?D.message:"Failed to save fee")}finally{v(null)}}async function C(){v("clear"),y(null);try{await FEe(t,e.key),await o()}catch(A){y(A instanceof Error?A.message:"Failed to clear override")}finally{v(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 hover:bg-slate-50/70 dark:border-[#1c1c23] dark:hover:bg-[#0f131b]",children:[i.jsx("td",{className:"w-16 py-3.5 pl-5 pr-3",children:i.jsx("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-lg bg-slate-100 text-slate-500 dark:bg-white/[0.06] dark:text-[#8d96aa]",children:i.jsx(FNe,{size:15})})}),i.jsx("td",{className:"w-28 py-3.5 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:b8e(e)}),i.jsx("td",{className:"w-24 py-3.5 pr-3 font-semibold capitalize text-slate-800 dark:text-white",children:e.funding||"—"}),i.jsx("td",{className:"w-16 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((P=e.issuer_country)==null?void 0:P.toUpperCase())||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd]",children:((R=e.currency)==null?void 0:R.toUpperCase())||"—"}),i.jsx("td",{className:"py-3.5 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:e.ic_category||"—"}),i.jsx("td",{className:"w-20 py-3.5 pr-3 text-right tabular-nums font-medium text-slate-600 dark:text-[#9ca7ba]",children:e.n.toLocaleString()}),i.jsx("td",{className:"py-3.5 pr-3 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${_F} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:A=>h(A.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${_F} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:A=>m(A.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[c&&i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[e.segments.length," tiers"]}),l&&i.jsx(p2,{tone:"indigo",children:"OVERRIDE"}),i.jsxs("div",{children:[i.jsx("span",{className:`block tabular-nums font-semibold ${l?"text-brand-600 dark:text-brand-400":"text-slate-800 dark:text-[#c7cfdd]"}`,children:iu(e.effective_pct_bps,e.effective_fixed,{currency:e.currency})}),l&&e.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:iu(e.model_pct_bps,e.model_fixed,{currency:e.currency})})]})]})}),i.jsx("td",{className:"w-[120px] py-3.5 pr-5 text-right",children:n?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:_,disabled:x!==null,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(at,{size:13}):i.jsx(gi,{size:14})}),l&&i.jsx("button",{type:"button",onClick:C,disabled:x!==null,title:"Remove override","aria-label":"Remove override",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-rose-50 hover:text-rose-600 disabled:opacity-40 dark:hover:bg-rose-500/10",children:x==="clear"?i.jsx(at,{size:13}):i.jsx(Vr,{size:14})}),!l&&i.jsx("button",{type:"button",onClick:s,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Vr,{size:14})})]}):i.jsxs("div",{className:"flex items-center justify-end gap-0.5",children:[i.jsx(tN,{title:"Edit segment fee",disabled:r,onClick:a,icon:i.jsx(jl,{size:15})}),i.jsx(tN,{title:"Show the evidence behind this fee",expanded:k,onClick:()=>S(A=>!A),icon:i.jsx(jf,{size:15})}),c&&i.jsx(tN,{title:"Show per-segment rates",expanded:w,onClick:()=>j(A=>!A),icon:w?i.jsx(ln,{size:16,className:"text-brand-600 dark:text-brand-400"}):i.jsx(So,{size:16,className:"text-brand-600 dark:text-brand-400"})})]})})]}),k&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsx("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:i.jsxs("div",{className:"flex flex-wrap gap-x-10 gap-y-3 rounded-lg border border-slate-200 bg-white px-4 py-3 dark:border-[#232833] dark:bg-[#0b0e14]",children:[i.jsx(Eg,{label:"Learned",value:iu(e.model_pct_bps,e.model_fixed,{currency:e.currency})}),i.jsx(Eg,{label:"Override",value:e.override_pct_bps!=null?iu(e.override_pct_bps,e.override_fixed,{currency:e.currency}):"—"}),i.jsx(Eg,{label:"Txns",value:e.n.toLocaleString()}),i.jsx(Eg,{label:"Volume",value:nx(e.gross_sum)}),i.jsx(Eg,{label:"Program",value:y8e(e.card_product)}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fit"}),i.jsx("div",{className:"mt-1",children:e.verdict?i.jsx(Me,{variant:jF(e.verdict),children:e.verdict}):i.jsx("span",{className:"text-[13px] text-slate-500 leading-[18px]",children:"no fitted rate"})})]})]})})}),w&&c&&i.jsx("tr",{className:"bg-slate-50/70 dark:bg-[#0d1017]",children:i.jsxs("td",{colSpan:9,className:"px-5 pb-4 pt-2",children:[i.jsx("p",{className:"mb-0.5 text-sm font-semibold text-slate-700 dark:text-[#c7cfdd]",children:"Per-segment rates"}),i.jsx("p",{className:"mb-2 text-[12px] text-slate-500 dark:text-[#8d96aa] max-w-[57ch] leading-4",children:"Optimized tiers dynamically calculated based on historical card activity and fit-error thresholds."}),i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 bg-white dark:border-[#232833] dark:bg-[#0b0e14]",children:i.jsxs("table",{className:"w-full min-w-[560px] text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left uppercase tracking-wide text-slate-500 dark:border-[#232833] dark:text-[#78849a]",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Amount range"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:e.segments.map(A=>i.jsxs("tr",{className:"border-b border-slate-100 tabular-nums text-slate-600 last:border-0 dark:border-[#1c1c23] dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"px-3 py-2 text-left",children:[nx(A.lo)," - ",nx(A.hi)]}),i.jsx("td",{className:"py-2 pr-3 text-right font-medium",children:A.pct_bps!=null?vu(A.pct_bps):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.fixed!=null?`${zy(e.currency)}${A.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.n.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right",children:nx(A.gross_sum)}),i.jsx("td",{className:"py-2 pr-3 text-right",children:A.bps_rmse!=null?A.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:i.jsx(Me,{variant:jF(A.verdict),children:A.verdict})})]},A.seg_idx))})]})})]})}),n&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:9,className:"px-5 pb-2",children:i.jsx(vt,{error:b})})})]})}function tN({title:t,icon:e,onClick:n,disabled:r=!1,expanded:a}){return i.jsx("button",{type:"button",onClick:n,disabled:r,title:t,"aria-label":t,"aria-expanded":a,className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:opacity-40 dark:hover:bg-[#121214] dark:hover:text-white",children:e})}function Eg({label:t,value:e}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("p",{className:"mt-1 truncate text-[13px] tabular-nums font-medium text-slate-700 dark:text-[#c7cfdd] leading-[18px]",children:e})]})}const _F="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white";function E8e({merchantId:t,state:e,onClose:n,onSaved:r}){const[a,s]=g.useState(e.connector),[o,l]=g.useState(e.initialPctBps),[c,u]=g.useState(String(e.initialFixed)),[d,f]=g.useState(null),[h,p]=g.useState(null);g.useEffect(()=>{function y(w){w.key==="Escape"&&!d&&n()}return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[d,n]);async function m(){const y=parseFloat(c);if(o<0||!isFinite(y)||y<0){p("Enter non-negative numbers for the rate and fixed fee.");return}f("save"),p(null);try{await $Ee(t,a,{pct_bps:o,fixed:y}),await r()}catch(w){p(w instanceof Error?w.message:"Failed to save fee")}finally{f(null)}}async function x(){f("clear"),p(null);try{await LEe(t,a),await r()}catch(y){p(y instanceof Error?y.message:"Failed to clear override")}finally{f(null)}}const v="block text-[12px] font-medium text-slate-500 dark:text-[#8d96aa]";return i.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[i.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px]",onClick:()=>!d&&n()}),i.jsxs("div",{className:"relative w-full max-w-md rounded-2xl border border-slate-200 bg-white p-6 shadow-2xl dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-slate-900 dark:text-white",children:e.isNew?"Add connector fee":`${xl(a)} manual override`}),i.jsx("button",{type:"button",onClick:n,disabled:d!==null,"aria-label":"Close",className:"text-slate-500 transition-colors hover:text-slate-700 disabled:opacity-40 dark:hover:text-white",children:i.jsx(Vr,{size:16})})]}),i.jsxs("div",{className:"mt-4 space-y-4",children:[e.isNew&&e.connectors&&i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Connector"}),i.jsx("select",{className:`${Bs} mt-1`,value:a,onChange:y=>s(y.target.value),children:e.connectors.map(y=>i.jsx("option",{value:y,children:xl(y)},y))})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Rate"}),i.jsx("div",{className:"mt-1",children:i.jsx(c1,{bps:o,onChange:l})})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:v,children:"Fixed per txn"}),i.jsx("input",{className:"mt-1 w-full rounded-md border border-slate-200 bg-white px-2 py-1.5 text-sm text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",type:"number",step:"0.01",min:"0",value:c,onChange:y=>u(y.target.value)})]})]}),i.jsxs("p",{className:"text-xs text-slate-500 max-w-[57ch]",children:["Applied to every economic-value calculation for ",xl(a)," from now on, overriding the learned model and contract baseline for this connector."]}),i.jsx(vt,{error:h})]}),i.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.canClear?i.jsxs(we,{variant:"danger",size:"sm",onClick:x,disabled:d!==null,children:[d==="clear"?i.jsx(at,{size:13}):null," Remove override"]}):i.jsx("span",{}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(we,{variant:"secondary",size:"sm",onClick:n,disabled:d!==null,children:"Cancel"}),i.jsxs(we,{variant:"primary",size:"sm",onClick:m,disabled:d!==null,children:[d==="save"?i.jsx(at,{size:13}):null," Save fee"]})]})]})]})]})}function A8e({merchantId:t}){const{sources:e,mutate:n}=UEe(t),[r,a]=g.useState("adyen"),[s,o]=g.useState(""),[l,c]=g.useState(""),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(null);function k(){c(""),d("")}function S(){h(null),o(""),k()}const _=r==="checkout",C=_?"Checkout":"Adyen",E=t?QNe(`/webhooks/settlement/${encodeURIComponent(t)}/${r}`):null;async function P(){if(!t){y("Set a merchant ID first");return}if(!s||!l||!u){y("Account, webhook secret and download auth are all required");return}const T={account:s,webhook_secret:l,download_auth:u};m(!0),y(null),j(null);try{await VEe(t,r,T),j(`Saved credentials for ${r} / ${s}.`),S(),await n()}catch(D){y(D instanceof Error?D.message:"Failed to save credentials")}finally{m(!1)}}function R(T){h(T),a(T.connector),o(T.account),c(""),d(""),y(null),j(null)}async function A(T){if(!t||!window.confirm(`Delete credentials for ${T.connector} / ${T.account}?`))return;const D=`${T.connector}:${T.account}`;v(D),y(null),j(null);try{await WEe(t,T.connector,T.account),f&&s===T.account&&r===T.connector&&S(),await n()}catch(L){y(L instanceof Error?L.message:"Failed to delete credentials")}finally{v(null)}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(X3,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Settlement report access"})})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsx(vo,{label:"Connector",children:i.jsxs("select",{className:Bs,value:r,onChange:T=>{a(T.target.value),y(null)},children:[i.jsx("option",{value:"adyen",children:"Adyen"}),i.jsx("option",{value:"checkout",children:"Checkout"})]})}),E&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("span",{className:`block ${ks}`,children:"Webhook URL"}),i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsx("code",{className:"min-w-0 flex-1 break-all font-mono text-[13px] text-slate-700 dark:text-[#c7cfdd]",children:E}),i.jsx(Fy,{text:E,size:14,label:"Copy webhook URL",className:"mt-0.5"})]}),i.jsxs("span",{className:`block ${pl}`,children:["Register this in your ",C," dashboard as the settlement-report notification endpoint. It's public - deliveries are authenticated by the webhook secret below."]})]}),i.jsx(vo,{label:"Account",hint:f?"Editing an existing source — account is locked":_?"Checkout entity id the report relates to (ent_…)":"Connector-side account (e.g. Adyen merchantAccountCode)",children:i.jsx("input",{className:Bs,value:s,onChange:T=>o(T.target.value),placeholder:_?"ent_r7nge7vl53crsa3ozjxzoiykj4":"AcmeMerchantEU",disabled:f!==null})}),i.jsx(vo,{label:"Webhook secret",hint:f?"Enter a new value to replace the stored secret":_?"Checkout webhook signature key (HMAC-SHA256 over the raw body, sent as Cko-Signature)":"Used to verify inbound webhook signatures (HMAC key)",children:i.jsx("input",{className:Bs,type:"password",value:l,onChange:T=>c(T.target.value),placeholder:(f==null?void 0:f.webhook_secret_hint)||"••••••••"})}),i.jsx(vo,{label:"Report download auth",hint:f?"Enter a new value to replace the stored auth":_?'Checkout secret key (sk_…). Or JSON {"secret_key":"sk_…","api_base_url":"…"} for a sandbox/regional host.':"Report-user Basic auth as user:password, or a Report Service API key on its own",children:i.jsx("input",{className:Bs,type:"password",value:u,onChange:T=>d(T.target.value),placeholder:(f==null?void 0:f.download_auth_hint)||"••••••••"})}),i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(we,{onClick:P,disabled:!t||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Saving..."]}):f?"Update credentials":"Save credentials"}),f&&i.jsx(we,{variant:"ghost",size:"sm",onClick:S,disabled:p,children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:"Secrets are encrypted at rest."})]}),i.jsx(vt,{error:b}),w&&i.jsx("p",{className:"text-sm text-emerald-700",children:w}),e.length>0&&i.jsxs("div",{className:"mt-2 border-t border-slate-100 pt-4 dark:border-[#232833]",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Configured"}),i.jsx("ul",{className:"mt-2 space-y-1 text-sm text-slate-600 dark:text-[#9ca7ba]",children:e.map(T=>{const D=`${T.connector}:${T.account}`;return i.jsxs("li",{className:"flex items-center justify-between gap-2 py-0.5",children:[i.jsxs("span",{children:[T.connector," · ",T.account]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",title:"Edit credentials",onClick:()=>R(T),className:"rounded p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(jl,{size:14})}),i.jsx("button",{type:"button",title:"Delete credentials",disabled:x===D,onClick:()=>A(T),className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:x===D?i.jsx(at,{size:14}):i.jsx(wn,{size:14})})]})]},D)})})]})]})]})}function O8e({merchantId:t,connector:e,account:n,preflight:r,sampleText:a,truncated:s,initialMapping:o,onSaved:l,onCancel:c}){const[u,d]=g.useState(o??{}),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(!1),[b,y]=g.useState(null),[w,j]=g.useState(!1),k=g.useMemo(()=>P8e(a,r.found),[a,r.found]);g.useEffect(()=>{if(o&&Object.keys(o).length>0)return;const A=new Set,T={};for(const D of r.missing){const L=R8e(D,r.found,A);L&&(T[D]=L,A.add(L))}Object.keys(T).length>0&&d(D=>({...T,...D}))},[r.missing,r.found,o]);const S=r.missing.filter(A=>!u[A]),_=S.length===0,C=g.useCallback((A,T)=>{h(null),y(null),d(D=>{const L={...D};return T?L[A]=T:delete L[A],L})},[]),E=new Set(Object.values(u));async function P(){m(!0),y(null);try{h(await qEe(t,e,u,a,s))}catch(A){h(null),y(A instanceof Error?A.message:"Could not preview this mapping")}finally{m(!1)}}async function R(){v(!0),y(null);try{await YEe(t,e,n,u,a,s),l()}catch(A){y(A instanceof Error?A.message:"Could not save this mapping")}finally{v(!1)}}return i.jsxs("div",{className:"space-y-4 rounded-lg border border-amber-200 bg-amber-50/50 p-4 dark:border-amber-900/40 dark:bg-amber-950/20",children:[i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(wm,{size:16,className:"mt-0.5 shrink-0 text-amber-700"}),i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-slate-800 dark:text-white",children:["This file's columns don't match ",e]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#9ca7ba] max-w-[57ch]",children:[r.missing.length," required"," ",r.missing.length===1?"column is":"columns are"," missing. Map them to the matching columns in your file below — we'll remember this mapping for future"," ",e," / ",n," reports."]})]})]}),r.suggested_connectors.length>0&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-900/40 dark:bg-blue-950/30",children:[i.jsx(qu,{size:15,className:"mt-0.5 shrink-0 text-blue-600"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-300",children:["This file matches all"," ",r.suggested_connectors[0].matched_required," columns of"," ",i.jsx("strong",{children:r.suggested_connectors[0].connector}),". If it's a"," ",r.suggested_connectors[0].connector," report, switch the connector above instead of mapping columns — mapping it as ",e," would produce a wrong cost model."]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] gap-3 px-1 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:[i.jsx("span",{children:"Your column"}),i.jsx("span",{}),i.jsxs("span",{children:["Maps to (",e,")"]})]}),r.missing.map(A=>{const T=u[A]??"",D=T?k[T]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Bs,value:T,onChange:L=>C(A,L.target.value),children:[i.jsx("option",{value:"",children:"— Select your column —"}),r.found.map(L=>i.jsx("option",{value:L,disabled:E.has(L)&&L!==T,children:L},L))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:T?D?`e.g. ${D}`:"no example value in this file":" "})]}),i.jsx(ju,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm font-medium text-slate-700 dark:border-[#232833] dark:bg-[#141a24] dark:text-[#c7cfdd]",children:A}),i.jsx("p",{className:"mt-1 text-xs text-amber-700 dark:text-amber-500",children:"Required"})]})]},A)})]}),r.optional_missing.length>0&&i.jsxs("details",{className:"rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("summary",{className:"cursor-pointer text-sm text-slate-600 dark:text-[#9ca7ba]",children:[r.optional_missing.length," optional"," ",r.optional_missing.length===1?"column is":"columns are"," also missing — not required, but they improve the model"]}),i.jsx("div",{className:"mt-3 space-y-2",children:r.optional_missing.map(A=>{const T=u[A]??"",D=T?k[T]:void 0;return i.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] items-center gap-3 rounded-lg border border-slate-100 p-2 dark:border-[#1a1f29]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("select",{className:Bs,value:T,onChange:L=>C(A,L.target.value),children:[i.jsx("option",{value:"",children:"— Not in my file —"}),r.found.map(L=>i.jsx("option",{value:L,disabled:E.has(L)&&L!==T,children:L},L))]}),i.jsx("p",{className:"mt-1 truncate text-xs text-slate-500",title:D,children:T&&D?`e.g. ${D}`:" "})]}),i.jsx(ju,{size:15,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx($a,{tone:"info",children:A}),i.jsx("p",{className:"mt-1 text-xs text-slate-500",children:"Optional"})]})]},A)})})]}),r.matched.length>0&&i.jsxs("div",{children:[i.jsxs("button",{type:"button",onClick:()=>j(A=>!A),className:"flex items-center gap-1.5 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(gi,{size:14,className:"text-emerald-700"}),r.matched.length," required"," ",r.matched.length===1?"column":"columns"," already matched",i.jsx("span",{className:"text-xs",children:w?"▲":"▼"})]}),w&&i.jsx("ul",{className:"mt-2 grid gap-1 sm:grid-cols-2",children:r.matched.map(A=>i.jsxs("li",{className:"flex items-center gap-2 rounded-md bg-white px-2.5 py-1.5 text-xs text-slate-600 dark:bg-[#0b1017] dark:text-[#9ca7ba]",children:[i.jsx(gi,{size:12,className:"shrink-0 text-emerald-700"}),i.jsx("span",{className:"truncate",children:A})]},A))})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[i.jsx(we,{variant:"secondary",onClick:P,disabled:!_||p,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Checking…"]}):"Preview result"}),i.jsx(we,{onClick:R,disabled:!f||x,children:x?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Saving…"]}):"Save mapping"}),i.jsx("button",{type:"button",onClick:c,className:"text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:"Cancel"}),i.jsx("span",{className:"text-xs text-slate-500",children:_?f?"Applied to this and future reports for this account":"Preview your mapping before saving":`${S.length} still to map`})]}),i.jsx(vt,{error:b}),f&&i.jsx(T8e,{preview:f})]})}function T8e({preview:t}){return i.jsxs("div",{className:"space-y-2 rounded-lg border border-slate-200 bg-white p-3 dark:border-[#232833] dark:bg-[#0b1017]",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium text-slate-700 dark:text-[#c7cfdd]",children:"Result of this mapping"}),t.median_effective_pct!=null&&i.jsxs("span",{className:"text-xs text-slate-500 dark:text-[#9ca7ba]",children:["median effective fee"," ",i.jsxs("strong",{className:"text-slate-700 dark:text-white",children:[t.median_effective_pct.toFixed(3),"%"]})]})]}),t.warning&&i.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-900/40 dark:bg-red-950/30",children:[i.jsx(wm,{size:15,className:"mt-0.5 shrink-0 text-red-600"}),i.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:t.warning})]}),t.rows.length>0?i.jsxs("div",{className:"overflow-x-auto",children:[i.jsxs("table",{className:"w-full text-left text-xs",children:[i.jsx("thead",{className:"text-slate-500",children:i.jsxs("tr",{children:[i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Network"}),i.jsx("th",{className:"py-1 pr-3 font-medium",children:"Currency"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Gross"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fee"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Effective"})]})}),i.jsx("tbody",{className:"text-slate-600 dark:text-[#c7cfdd]",children:t.rows.map((e,n)=>i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1f29]",children:[i.jsx("td",{className:"py-1 pr-3",children:e.card_network||"—"}),i.jsx("td",{className:"py-1 pr-3",children:e.currency||"—"}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.gross.toFixed(2)}),i.jsx("td",{className:"py-1 pr-3 text-right tabular-nums",children:e.total_fee.toFixed(2)}),i.jsxs("td",{className:"py-1 text-right tabular-nums",children:[e.effective_pct.toFixed(3),"%"]})]},n))})]}),i.jsx("p",{className:"mt-2 text-xs text-slate-500 max-w-[57ch]",children:"Gross, Fee and Effective are derived from the columns you mapped — check they look right for your business before saving."})]}):i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba]",children:"No rows were produced from this file sample."})]})}function P8e(t,e){const n={};if(e.length===0)return n;const r=t.split(/\r?\n/),a=r.findIndex(o=>{const l=NF(o);return l.length===e.length&&l[0]===e[0]});if(a<0)return n;const s=NF(r[a+1]??"");return e.forEach((o,l)=>{const c=(s[l]??"").trim();c&&(n[o]=c.length>40?`${c.slice(0,40)}…`:c)}),n}function NF(t){const e=[];let n="",r=!1;for(let a=0;a0&&(e[0]=e[0].replace(/^/,"")),e}function R8e(t,e,n){const r=CF(t);if(r.length===0)return;let a,s=0;for(const o of e){if(n.has(o))continue;const l=new Set(CF(o)),u=r.filter(d=>l.has(d)).length/r.length;u>s&&(s=u,a=o)}return s>.5?a:void 0}function CF(t){return t.toLowerCase().replace(/\(.*?\)/g," ").split(/[^a-z0-9]+/).filter(e=>e.length>1)}const M8e="development".trim().toLowerCase(),OP=M8e==="production",TP=!OP,PP=!OP,EF=!OP;function D8e({merchantId:t}){var z;const{mutate:e}=Vj(t),{ingestions:n,mutate:r}=dT(t),a=g.useRef(null),[s,o]=g.useState(EF?"sample":"upload"),[l,c]=g.useState("adyen"),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(!1),[x,v]=g.useState(0),[b,y]=g.useState(null),[w,j]=g.useState(null),[k,S]=g.useState(null),[_,C]=g.useState(""),[E,P]=g.useState(!1),[R,A]=g.useState(!1),[T,D]=g.useState(!1),{connectors:L}=KEe(),X=(L.length>0?L.map(Z=>Z.id):wF.map(Z=>Z.value)).map(Z=>{var pe;return{value:Z,label:((pe=wF.find(ae=>ae.value===Z))==null?void 0:pe.label)??Z.charAt(0).toUpperCase()+Z.slice(1)}}),J=((z=X.find(Z=>Z.value===l))==null?void 0:z.label)??l,U=w!=null?n.find(Z=>Z.id===w):void 0;g.useEffect(()=>{(U==null?void 0:U.status)==="completed"&&e()},[U==null?void 0:U.status,e]),g.useEffect(()=>{f&&Y(f)},[l,u]);const Y=g.useCallback(async Z=>{if(t){D(!0),S(null),y(null);try{const pe=Z.slice(0,aL),ae=await pe.text();C(ae),P(Z.size>aL),A(!1),S(await GEe(t,l,pe,u||void 0))}catch(pe){S(null),y(pe instanceof Error?pe.message:"Could not check this file’s columns")}finally{D(!1)}}},[t,l,u]);function W(Z){h(Z),S(null),C(""),A(!1),y(null),Z&&Y(Z)}async function G(){if(!t){y("Set a merchant ID first");return}if(!u||!f){y("Account and a report file are both required");return}m(!0),v(0),y(null),j(null);try{const Z=await HEe(t,l,u,f,pe=>{pe.phase==="uploading"?v(pe.total?Math.round(pe.loaded/pe.total*100):0):v(100)});j(Z.id),h(null),a.current&&(a.current.value=""),await r()}catch(Z){y(Z instanceof Error?Z.message:"Failed to upload report")}finally{m(!1)}}async function I(){if(!t){y("Set a merchant ID first");return}m(!0),v(100),y(null),j(null);try{const Z=await XEe(t,l);j(Z.id),await r()}catch(Z){const pe=Z instanceof Error?Z.message:"";y(/404|not found|no sample/i.test(pe)?`No sample report available for ${J}.`:pe||"Failed to run sample report")}finally{m(!1)}}const q=(U==null?void 0:U.status)==="processing",M=(U==null?void 0:U.status)==="completed",B=(U==null?void 0:U.status)==="failed";return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(UW,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Upload a settlement report"})})]})}),i.jsxs(He,{className:"space-y-4",children:[EF&&i.jsx("div",{className:"inline-flex rounded-lg border border-slate-200 p-0.5 dark:border-[#2a3344]",children:[["sample","Use a sample file"],["upload","Upload a file"]].map(([Z,pe])=>i.jsx("button",{type:"button",onClick:()=>{o(Z),y(null)},className:"rounded-md px-3 py-1.5 text-sm font-medium transition-colors "+(s===Z?"bg-brand-500 text-white":"text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white"),children:pe},Z))}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:s==="upload"?"Upload a settlement report file directly - no webhook needed. Processing runs in the background (the upload won't hang on large files). Watch progress below and in the history.":`No report file? Run a curated ${J} sample report through the exact same fit, so you can see the ingest → cost-coverage flow end to end. Progress shows below and in the history.`}),i.jsx(vo,{label:"Connector",children:i.jsx("select",{className:Bs,value:l,onChange:Z=>c(Z.target.value),children:X.map(Z=>i.jsx("option",{value:Z.value,children:Z.label},Z.value))})}),s==="upload"&&i.jsxs(i.Fragment,{children:[i.jsx(vo,{label:"Account",hint:"Connector-side account the report belongs to",children:i.jsx("input",{className:Bs,value:u,onChange:Z=>d(Z.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(vo,{label:"Report file",hint:"The connector's settlement / PAR report (CSV)",children:i.jsx("input",{ref:a,type:"file",accept:".csv,text/csv,text/plain",className:Bs,onChange:Z=>{var pe;return W(((pe=Z.target.files)==null?void 0:pe[0])??null)}})}),T&&i.jsxs("p",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx(at,{size:14}),"Checking this file's columns…"]}),(k==null?void 0:k.ok)&&i.jsxs($a,{tone:"success",children:["All ",k.required.length," required columns found — this file is ready to upload."]}),k&&!k.ok&&!R&&t&&u&&i.jsx(O8e,{merchantId:t,connector:l,account:u,preflight:k,sampleText:_,truncated:E,onCancel:()=>A(!0),onSaved:()=>{f&&Y(f)}}),k&&!k.ok&&R&&u&&i.jsxs($a,{tone:"warning",children:["This file is still missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",", so it can't be uploaded."," ",i.jsx("button",{type:"button",onClick:()=>A(!1),className:"font-medium underline underline-offset-2",children:"Map columns"})," ","or choose a different file."]}),k&&!k.ok&&!u&&i.jsxs($a,{tone:"warning",children:["This file is missing ",k.missing.length," required"," ",k.missing.length===1?"column":"columns",". Enter the account above to map your columns to ",l,"'s."]})]}),i.jsxs("div",{className:"flex items-center gap-3",children:[s==="upload"?i.jsx(we,{onClick:G,disabled:!t||p||q||T||(k==null?void 0:k.ok)===!1,children:p||q?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),p?"Uploading…":"Processing…"]}):"Upload & fit"}):i.jsx(we,{onClick:I,disabled:!t||p||q,children:p||q?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),p?"Starting…":"Processing…"]}):"Run sample"}),i.jsx("span",{className:"text-xs text-slate-500",children:s==="upload"?"Runs in the background after upload.":"Fetches the sample and runs in the background."})]}),s==="upload"&&p&&i.jsx(AF,{label:`Uploading report… ${x}%`,pct:x,showPct:!1}),q&&U&&i.jsx(AF,{label:`Processing — ${U.staged_rows.toLocaleString()} rows staged…`,pct:100,pulse:!0}),i.jsx(vt,{error:b}),M&&U&&i.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-900/40 dark:bg-emerald-950/30",children:[i.jsxs("p",{className:"text-sm font-medium text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:["Ingested ",U.staged_rows.toLocaleString()," rows for ",U.connector," /"," ",U.account,U.period_start&&U.period_end?` (${U.period_start} → ${U.period_end})`:"","."]}),i.jsxs("p",{className:"mt-1 text-sm text-emerald-700 dark:text-emerald-400 max-w-[57ch]",children:[U.good_clusters," of ",U.total_clusters," clusters graded GOOD ·"," ",U.currency_count," currencies · ",U.country_count," countries.",U.good_clusters===0&&" No trustworthy cost model yet — this volume still falls back to SR routing."]})]}),B&&U&&i.jsx(vt,{error:U.last_error||"Ingestion failed"})]})]})}function AF({label:t,pct:e,pulse:n,showPct:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex justify-between text-xs text-slate-500 dark:text-[#9ca7ba]",children:[i.jsx("span",{children:t}),r&&i.jsxs("span",{children:[e,"%"]})]}),i.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full bg-brand-500 transition-all duration-200 ${n?"animate-pulse":""}`,style:{width:`${e}%`}})})]})}const I8e=[{value:"adyen",label:"Adyen"}];function Qh(t,e,n=2){const r=e?{style:"currency",currency:e,maximumFractionDigits:n}:{maximumFractionDigits:n};try{return new Intl.NumberFormat(void 0,r).format(t)}catch{return`${t.toFixed(n)}${e?` ${e}`:""}`}}const $8e={flat_per_txn:"Flat per transaction",periodic:"Periodic / non-transactional",credit:"Credit",already_modeled:"Already in report",volume:"Turnover"};function L8e({merchantId:t}){const{addons:e,mutate:n}=ZEe(t),r=g.useRef(null),[a,s]=g.useState("adyen"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(null),[h,p]=g.useState(!1),[m,x]=g.useState(null),[v,b]=g.useState(null);async function y(){if(!t)return x("Set a merchant ID first");if(!o||!d)return x("Account and an invoice file are both required");p(!0),x(null),b(null);try{const j=await QEe(t,a,o,d,c||void 0);b(j),f(null),r.current&&(r.current.value=""),await n()}catch(j){x(j instanceof Error?j.message:"Failed to process invoice")}finally{p(!1)}}async function w(j){if(t)try{await eAe(t,j),await n(),(v==null?void 0:v.connector)===j&&b(null)}catch(k){x(k instanceof Error?k.message:"Failed to remove add-on")}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(MW,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Upload a connector invoice"})})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:"The settlement report only carries a transaction's core fees, so our model was structurally missing ~9% of the true cost — flat per-transaction fees, periodic fees and credits that only appear on the monthly invoice. Upload that invoice and we'll identify those missing fees and start applying them to every routing decision."}),i.jsx(vo,{label:"Connector",children:i.jsx("select",{className:Bs,value:a,onChange:j=>s(j.target.value),children:I8e.map(j=>i.jsx("option",{value:j.value,children:j.label},j.value))})}),i.jsx(vo,{label:"Account",hint:"Connector-side account the invoice covers",children:i.jsx("input",{className:Bs,value:o,onChange:j=>l(j.target.value),placeholder:"AcmeMerchantEU"})}),i.jsx(vo,{label:"Invoice number",hint:"Optional — for your records",children:i.jsx("input",{className:Bs,value:c,onChange:j=>u(j.target.value),placeholder:"NL2025…"})}),i.jsx(vo,{label:"Invoice file",hint:"The monthly invoice — a PDF (as downloaded from Adyen) or a CSV export",children:i.jsx("input",{ref:r,type:"file",accept:".pdf,application/pdf,.csv,text/csv,text/plain",className:Bs,onChange:j=>{var k;return f(((k=j.target.files)==null?void 0:k[0])??null)}})}),i.jsx("div",{className:"flex items-center gap-3",children:i.jsx(we,{onClick:y,disabled:!t||h,children:h?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14}),"Reading invoice…"]}):"Upload & identify fees"})}),i.jsx(vt,{error:m})]})]}),v&&i.jsx(F8e,{result:v}),e.length>0&&i.jsx(z8e,{addons:e,onRemove:w})]})}function F8e({result:t}){const e=t.currency,n=t.breakdown.filter(a=>a.added),r=t.breakdown.filter(a=>!a.added);return i.jsx(Te,{children:i.jsxs(He,{className:"space-y-5",children:[i.jsxs("div",{className:"rounded-xl border border-brand-500/30 bg-brand-500/5 p-5",children:[i.jsxs("div",{className:"flex items-center gap-2 text-brand-600 dark:text-brand-400",children:[i.jsx(gi,{size:16}),i.jsx("span",{className:"text-sm font-medium",children:"We understood the fees missing from your settlement report"})]}),i.jsxs("p",{className:"mt-3 text-3xl font-semibold text-slate-900 dark:text-white",children:["+",Qh(t.total_addon_per_txn,e,4),i.jsx("span",{className:"ml-2 text-base font-normal text-slate-500 dark:text-[#9ca7ba]",children:"additional cost per transaction"})]}),i.jsxs("p",{className:"mt-1 text-sm text-slate-600 dark:text-[#c7cfdd]",children:["Now applied on top of the learned model for"," ",i.jsxs("span",{className:"font-medium",children:[t.connector," / ",t.account]})," ","in every economic-value calculation."]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[i.jsxs(Eb,{children:["+",Qh(t.fixed_addon,e,4)," flat / txn"]}),i.jsxs(Eb,{children:["+",t.pct_addon_bps.toFixed(3)," bps on amount"]}),t.subtotal_ex_tax!=null&&i.jsxs(Eb,{muted:!0,children:["Invoice subtotal ",Qh(t.subtotal_ex_tax,e)]}),t.txn_count!=null&&i.jsxs(Eb,{muted:!0,children:[t.txn_count.toLocaleString()," transactions"]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-medium text-slate-800 dark:text-white",children:"Fees we identified and are now applying"}),i.jsx(OF,{lines:n,ccy:e,showPerTxn:!0})]}),r.length>0&&i.jsxs("details",{className:"group",children:[i.jsxs("summary",{className:"flex cursor-pointer items-center gap-2 text-sm text-slate-500 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:text-white",children:[i.jsx(qu,{size:14}),r.length," line",r.length===1?"":"s"," already captured by your settlement report — ignored so nothing is double-counted"]}),i.jsx("div",{className:"mt-3",children:i.jsx(OF,{lines:r,ccy:e,showPerTxn:!1})})]})]})})}function OF({lines:t,ccy:e,showPerTxn:n}){return t.length===0?i.jsx("p",{className:"text-sm text-slate-500",children:"No lines in this group."}):i.jsx("div",{className:"overflow-x-auto rounded-lg border border-slate-200 dark:border-[#232833]",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"px-3 py-2 font-medium",children:"Fee"}),i.jsx("th",{className:"px-3 py-2 font-medium",children:"Category"}),i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"On invoice"}),n&&i.jsx("th",{className:"px-3 py-2 text-right font-medium",children:"Per transaction"})]})}),i.jsx("tbody",{children:t.map((r,a)=>i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"px-3 py-2 capitalize text-slate-800 dark:text-[#e7ecf3]",children:r.description}),i.jsx("td",{className:"px-3 py-2",children:i.jsx(B8e,{kind:r.kind,added:r.added})}),i.jsx("td",{className:"px-3 py-2 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:Qh(r.amount,e)}),n&&i.jsx("td",{className:"px-3 py-2 text-right font-medium tabular-nums text-slate-900 dark:text-white",children:r.per_txn!==0?`${r.per_txn<0?"−":"+"}${Qh(Math.abs(r.per_txn),e,4)}`:"—"})]},`${r.kind}-${r.description}-${a}`))})]})})}function B8e({kind:t,added:e}){const n=$8e[t]??t,r=e?"bg-brand-500/10 text-brand-600 dark:text-brand-400":"bg-slate-100 text-slate-500 dark:bg-[#1c1c23] dark:text-[#9ca7ba]";return i.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${r}`,children:n})}function Eb({children:t,muted:e}){const n=e?"border-slate-200 text-slate-500 dark:border-[#232833] dark:text-[#9ca7ba]":"border-brand-500/30 text-brand-600 dark:text-brand-400";return i.jsx("span",{className:`rounded-full border px-2.5 py-1 font-medium ${n}`,children:t})}function z8e({addons:t,onRemove:e}){return i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h3",{className:ra,children:"Active invoice add-ons"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Currently applied to routing."})]}),i.jsx(He,{className:"space-y-2",children:t.map(n=>i.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-slate-200 px-3 py-2.5 dark:border-[#232833]",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-white",children:n.connector}),i.jsxs("p",{className:"text-xs text-slate-500 dark:text-[#9ca7ba] max-w-[57ch]",children:["+",Qh(n.fixed_addon,n.currency,4)," / txn · +",n.pct_addon_bps.toFixed(3)," bps",n.invoice_ref?` · invoice ${n.invoice_ref}`:""]})]}),i.jsxs("button",{type:"button",onClick:()=>e(n.connector),className:"flex shrink-0 items-center gap-1 rounded-lg border border-slate-200 px-2.5 py-1.5 text-xs text-slate-500 hover:border-rose-300 hover:text-rose-600 dark:border-[#232833] dark:hover:border-rose-900/50",children:[i.jsx(wn,{size:13}),"Remove"]})]},n.connector))})]})}const TF="rounded-lg border border-slate-200 bg-white px-2 py-1 text-sm text-right text-slate-900 focus:border-brand-500 focus:outline-none dark:border-[#232833] dark:bg-[#0b1017] dark:text-white",U8e={mc:"Mastercard",visa:"Visa",amex:"Amex",diners:"Diners",discover:"Discover",jcb:"JCB"};function Px(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function V8e(t){return U8e[t.toLowerCase()]??Px(t)}const W8e=["world elite","ultra premium","superpremium","infinite","signature","platinum","purchasing","corporate","business","premium","classic","standard","world","gold"];function ZY(t){var o,l;let e=(t.variant??"").toLowerCase();if(e.includes("_")){const c=e.split("_").slice(1).join(" ");return c.includes("apple")?"Apple Pay":c.includes("google")?"Google Pay":Px(c)}const n=((o=t.card_network)==null?void 0:o.toLowerCase())??"",r=((l=t.funding)==null?void 0:l.toLowerCase())??"";if(n&&e.startsWith(n)&&(e=e.slice(n.length)),r&&e.endsWith(r)&&(e=e.slice(0,e.length-r.length)),e)return Px(e);const a=(t.ic_category??"").toLowerCase(),s=W8e.find(c=>a.includes(c));return s?s.split(" ").map(Px).join(" "):"—"}function H8e(t){const e=Number(t.card_product);if(!(!t.card_product||!Number.isFinite(e)||e<=0))return`Issuer BIN's dominant interchange rate: ${(e/100).toFixed(2)}%`}function Ab(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const QY={GOOD:{label:"Good",variant:"green",hint:"Enough transactions and a tight fit — this rate is trusted at decide time."},THIN:{label:"Thin",variant:"orange",hint:"Too few transactions to pin the rate confidently. Override it with your contract rate."},NON_LINEAR:{label:"Poor fit",variant:"red",hint:"A single rate can't price this segment — its cost isn't one straight line, and no clean set of amount tiers could be recovered either. Override it with your contract rate."}};function G8e({merchantId:t,editable:e,limit:n=500,scope:r,defaultSort:a="gross_sum"}){const[s,o]=g.useState({}),l=cT(s),{clusters:c,isLoading:u,error:d,mutate:f}=uT(t,{limit:n,order:a,filters:s,...r}),{facets:h}=bH(t,r),[p,m]=g.useState(null),[x,v]=g.useState(a),[b,y]=g.useState("desc"),w=g.useMemo(()=>{const _=[...c];return _.sort((C,E)=>{const P=C[x]-E[x];return b==="desc"?-P:P}),_},[c,x,b]),j=g.useMemo(()=>c.some(_=>ZY(_)!=="—"),[c]);function k(_){_===x?y(C=>C==="desc"?"asc":"desc"):(v(_),y("desc"))}const S=i.jsx(HY,{filters:s,facets:h,onChange:o,rightSlot:i.jsxs("span",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:[c.length.toLocaleString()," segment",c.length===1?"":"s",c.length>=n&&" (capped — narrow the filters to see the rest)"]})});return t&&u?i.jsxs("div",{className:"space-y-3",children:[S,i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16})," Loading segments…"]})]}):c.length?i.jsxs("div",{className:"space-y-3",children:[S,i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Network"}),j&&i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Program"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Type"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Country"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Currency"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Category"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Fit"}),i.jsx(PF,{label:"Volume",active:x==="gross_sum",dir:b,onClick:()=>k("gross_sum")}),i.jsx(PF,{label:"Txns",active:x==="n",dir:b,onClick:()=>k("n")}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Fee"}),e&&i.jsx("th",{className:"py-2 pr-3"})]})}),i.jsx("tbody",{children:w.map(_=>i.jsx(K8e,{c:_,editable:e,showProgram:j,merchantId:t,isEditing:p===_.key,onEdit:()=>m(_.key),onCancel:()=>m(null),onSaved:()=>{m(null),f()}},_.key))})]})}),i.jsx(vt,{error:d instanceof Error?d.message:d?"Failed to load segments":null})]}):i.jsxs("div",{className:"space-y-3",children:[S,i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:l>0?"No segments match these filters — clear one to widen the search.":"No fitted segments yet — they appear once a settlement report has been ingested."})]})}function q8e({verdict:t,segments:e}){const n=(e==null?void 0:e.length)??0;if(n>0){const a=e.filter(s=>{var o;return((o=s.verdict)==null?void 0:o.toUpperCase())!=="GOOD"}).length;return a===0?i.jsx("span",{title:`One rate couldn't price this segment, so it was split into ${n} amount tiers — each one fits tightly. The tiered rates are what the Fee column expands to.`,children:i.jsx(Me,{variant:"green",children:"Tiered"})}):i.jsx("span",{title:`Split into ${n} amount tiers, but ${a} of them still don't fit well. Worth overriding with your contract rate.`,children:i.jsx(Me,{variant:"orange",children:"Tiered"})})}const r=QY[(t==null?void 0:t.toUpperCase())??""];return r?i.jsx("span",{title:r.hint,children:i.jsx(Me,{variant:r.variant,children:r.label})}):i.jsx("span",{className:"text-slate-500 dark:text-[#78849a]",children:"—"})}function PF({label:t,active:e,dir:n,onClick:r}){return i.jsx("th",{className:"py-2 pr-3 text-right font-medium",children:i.jsxs("button",{type:"button",onClick:r,"aria-sort":e?n==="desc"?"descending":"ascending":"none",className:`inline-flex items-center gap-1 transition-colors hover:text-slate-600 dark:hover:text-slate-200 ${e?"text-slate-600 dark:text-slate-200":""}`,children:[t,e?n==="desc"?i.jsx(ln,{size:12}):i.jsx(hs,{size:12}):i.jsx(ln,{size:12,className:"opacity-30"})]})})}function K8e({c:t,editable:e,showProgram:n,merchantId:r,isEditing:a,onEdit:s,onCancel:o,onSaved:l}){var _,C,E;const c=t.source==="override",u=()=>String(EP(t.effective_pct_bps??t.override_pct_bps??t.model_pct_bps??0)),d=()=>String(t.effective_fixed??t.override_fixed??t.model_fixed??0),[f,h]=g.useState(u),[p,m]=g.useState(d),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState(!1),k=(((_=t.segments)==null?void 0:_.length)??0)>0;g.useEffect(()=>{a&&(h(u()),m(d()),y(null))},[a]);async function S(){if(!r)return;const P=parseFloat(f),R=parseFloat(p);if(!isFinite(P)||P<0||!isFinite(R)||R<0){y("Enter non-negative numbers for the rate and fixed fee.");return}v("save"),y(null);try{await wH(r,t.key,{pct_bps:AP(P),fixed:R}),l()}catch(A){y(A instanceof Error?A.message:"Failed to save fee")}finally{v(null)}}return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"border-b border-slate-100 last:border-0 dark:border-[#1c1c23]",children:[i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:Px(t.connector)}),i.jsx("td",{className:"py-2 pr-3 font-medium text-slate-700 dark:text-[#c7cfdd]",children:V8e(t.card_network)}),n&&i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",title:H8e(t),children:ZY(t)}),i.jsx("td",{className:"py-2 pr-3 capitalize text-slate-600 dark:text-[#c7cfdd]",children:t.funding||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((C=t.issuer_country)==null?void 0:C.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:((E=t.currency)==null?void 0:E.toUpperCase())||"—"}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:t.ic_category||"—"}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(q8e,{verdict:t.verdict,segments:t.segments})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:t.gross_sum>0?Ab(t.gross_sum):"—"}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-500 dark:text-[#9ca7ba]",children:t.n>0?t.n.toLocaleString():"—"}),i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1",children:[i.jsx("input",{className:`${TF} w-20`,type:"number",step:"0.01",min:"0",value:f,onChange:P=>h(P.target.value),title:"Rate (%)","aria-label":"Rate (%)"}),i.jsx("input",{className:`${TF} w-16`,type:"number",step:"0.01",min:"0",value:p,onChange:P=>m(P.target.value),title:"Fixed per txn","aria-label":"Fixed per txn"})]}):k?i.jsxs("button",{type:"button",onClick:()=>j(P=>!P),className:"ml-auto flex items-center justify-end gap-1.5",title:"Show per-segment rates","aria-expanded":w,children:[i.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:bg-amber-500/15 dark:text-amber-400 leading-4",children:[t.segments.length," tiers"]}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:iu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})}),w?i.jsx(hs,{size:12}):i.jsx(ln,{size:12})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[c&&i.jsx(Me,{variant:"purple",children:"Override"}),i.jsx("span",{className:"tabular-nums font-medium text-slate-800 dark:text-[#c7cfdd]",children:iu(t.effective_pct_bps,t.effective_fixed,{currency:t.currency})})]}),c&&t.model_pct_bps!=null&&i.jsx("span",{className:"block text-[11px] tabular-nums text-slate-500 line-through leading-4",children:iu(t.model_pct_bps,t.model_fixed,{currency:t.currency})})]})}),e&&i.jsx("td",{className:"py-2 pr-3 text-right",children:a?i.jsxs("div",{className:"flex items-center justify-end gap-1 whitespace-nowrap",children:[i.jsx("button",{type:"button",onClick:S,disabled:x!==null||!r,title:"Save fee","aria-label":"Save fee",className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-brand-600 text-white transition-colors hover:bg-brand-700 disabled:opacity-40 dark:bg-white dark:text-black dark:hover:bg-slate-200",children:x==="save"?i.jsx(at,{size:13}):i.jsx(gi,{size:14})}),i.jsx("button",{type:"button",onClick:o,disabled:x!==null,title:"Cancel","aria-label":"Cancel",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-800 disabled:opacity-40 dark:text-[#a1a1aa] dark:hover:bg-[#121214] dark:hover:text-white",children:i.jsx(Vr,{size:14})})]}):i.jsxs(we,{variant:"ghost",size:"sm",onClick:s,children:[i.jsx(jl,{size:13})," Edit"]})})]}),w&&k&&i.jsx("tr",{className:"bg-slate-50/60 dark:bg-[#15151a]",children:i.jsxs("td",{colSpan:10+(n?1:0)+(e?1:0),className:"px-3 pb-3 pt-1",children:[i.jsx("div",{className:"mb-1 text-[11px] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Per-segment rates — this cluster’s interchange is capped or tiered, so one rate can’t price it. Each tier below is priced separately by transaction amount."}),i.jsxs("table",{className:"w-full text-[12px] leading-4",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-slate-500 dark:text-[#78849a]",children:[i.jsx("th",{className:"py-1 pr-3 text-left font-medium",children:"Amount range"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Rate"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fixed"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Txns"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Volume"}),i.jsx("th",{className:"py-1 pr-3 text-right font-medium",children:"Fit err (bps)"}),i.jsx("th",{className:"py-1 text-right font-medium",children:"Quality"})]})}),i.jsx("tbody",{children:t.segments.map(P=>{var R,A;return i.jsxs("tr",{className:"tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:[i.jsxs("td",{className:"py-1 pr-3 text-left",children:[Ab(P.lo),"–",Ab(P.hi)]}),i.jsx("td",{className:"py-1 pr-3 text-right font-medium",children:P.pct_bps!=null?vu(P.pct_bps):"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.fixed!=null?`${zy(t.currency)}${P.fixed.toFixed(2)}`:"—"}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.n.toLocaleString()}),i.jsx("td",{className:"py-1 pr-3 text-right",children:Ab(P.gross_sum)}),i.jsx("td",{className:"py-1 pr-3 text-right",children:P.bps_rmse!=null?P.bps_rmse.toFixed(1):"—"}),i.jsx("td",{className:"py-1 text-right text-slate-500 dark:text-[#9ca7ba]",children:((A=QY[((R=P.verdict)==null?void 0:R.toUpperCase())??""])==null?void 0:A.label)??P.verdict})]},P.seg_idx)})})]})]})}),a&&b&&i.jsx("tr",{children:i.jsx("td",{colSpan:10+(n?1:0)+(e?1:0),className:"pb-2 pr-3",children:i.jsx(vt,{error:b})})})]})}function Y8e({merchantId:t}){const{ingestions:e,isLoading:n,mutate:r}=dT(t),{mutate:a}=Vj(t),[s,o]=g.useState(new Set),[l,c]=g.useState(null);function u(f){o(h=>{const p=new Set(h);return p.has(f)?p.delete(f):p.add(f),p})}async function d(f){const h=f.period_start&&f.period_end?`${f.connector} / ${f.account} (${f.period_start} → ${f.period_end})`:`${f.connector} / ${f.account}`;if(!(!t||!window.confirm(`Delete this ingestion? - -${h} - -This removes its fitted cost models and staged rows. Coverage reverts to the previous snapshot. This cannot be undone.`))){c(f.id);try{await JEe(t,f.id),await Promise.all([r(),a()])}catch(p){window.alert(p instanceof Error?p.message:"Failed to delete ingestion")}finally{c(null)}}}return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(HNe,{size:16,className:"text-brand-600"}),i.jsx("div",{children:i.jsx("h2",{className:ra,children:"Reports ingested"})})]})}),i.jsx(He,{children:t&&n?i.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-slate-500",children:[i.jsx(at,{size:16}),"Loading history..."]}):e.length===0?i.jsx("p",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-500 dark:border-[#232833] dark:bg-[#0b1017]",children:"No ingestions yet. Upload a report or configure a webhook connector."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] dark:border-[#232833] leading-4",children:[i.jsx("th",{className:"py-2 pr-2 font-semibold"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Ingested"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Source"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Connector · Account"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Period"}),i.jsx("th",{className:"py-2 pr-3 font-semibold",children:"Status"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Rows"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ccy"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",children:"Ctry"}),i.jsx("th",{className:"py-2 pr-3 text-right font-semibold",title:"Segments whose fitted rate graded GOOD, out of all fitted segments. Expand a row to see every segment with its grade.",children:"GOOD"}),i.jsx("th",{className:"py-2 pr-2 font-semibold"})]})}),i.jsx("tbody",{children:e.map(f=>i.jsx(X8e,{merchantId:t,job:f,open:s.has(f.id),onToggle:()=>u(f.id),onDelete:()=>d(f),deleting:l===f.id},f.id))})]})})})]})}function X8e({merchantId:t,job:e,open:n,onToggle:r,onDelete:a,deleting:s}){const o=e.period_start&&e.period_end?`${e.period_start} → ${e.period_end}`:"—";return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{className:"cursor-pointer border-b border-slate-100 hover:bg-slate-50 dark:border-[#1c1c23] dark:hover:bg-[#0b1017]",onClick:r,children:[i.jsx("td",{className:"py-2 pr-2 text-slate-500",children:n?i.jsx(ln,{size:14}):i.jsx(So,{size:14})}),i.jsx("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:Z8e(e.created_at)}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx("span",{className:"rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]",children:e.source})}),i.jsxs("td",{className:"py-2 pr-3 text-slate-600 dark:text-[#c7cfdd]",children:[e.connector," · ",e.account]}),i.jsx("td",{className:"py-2 pr-3 text-slate-500 dark:text-[#9ca7ba]",children:o}),i.jsx("td",{className:"py-2 pr-3",children:i.jsx(J8e,{status:e.status})}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.staged_rows.toLocaleString()}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.currency_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.country_count}),i.jsx("td",{className:"py-2 pr-3 text-right tabular-nums text-slate-600 dark:text-[#c7cfdd]",children:e.status==="completed"?`${e.good_clusters}/${e.total_clusters}`:"—"}),i.jsx("td",{className:"py-2 pr-2 text-right",children:e.status!=="processing"&&i.jsx("button",{type:"button",title:"Delete ingestion",disabled:s,onClick:l=>{l.stopPropagation(),a()},className:"rounded p-1 text-slate-500 hover:bg-red-50 hover:text-red-600 disabled:opacity-50 dark:hover:bg-red-950/30",children:s?i.jsx(at,{size:14}):i.jsx(wn,{size:14})})})]}),n&&i.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/60 dark:border-[#1c1c23] dark:bg-[#0b1017]",children:[i.jsx("td",{}),i.jsxs("td",{colSpan:10,className:"py-3 pr-3",children:[i.jsxs("dl",{className:"grid grid-cols-1 gap-x-8 gap-y-2 sm:grid-cols-2",children:[i.jsx(Ag,{label:"Settled volume",value:Q8e(e.total_gross)}),i.jsx(Ag,{label:"Report date",value:e.report_date??"—"}),i.jsx(Ag,{label:`Currencies (${e.currency_count})`,value:e.currencies.length?e.currencies.join(", "):"—"}),i.jsx(Ag,{label:`Countries (${e.country_count})`,value:e.countries.length?e.countries.join(", "):"—"}),e.last_error&&i.jsx(Ag,{label:"Error",value:e.last_error,error:!0})]}),e.status==="completed"&&e.report_date&&i.jsxs("div",{className:"mt-4 border-t border-slate-200 pt-3 dark:border-[#232833]",children:[i.jsx("p",{className:"mb-2 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Fitted segments (top by txns) — edit any rate to override it"}),i.jsx(G8e,{merchantId:t,editable:!1,limit:2e3,defaultSort:"n",scope:{connector:e.connector,account:e.account,reportDate:e.report_date,ingestionId:e.id}})]})]})]})]})}function Ag({label:t,value:e,error:n}){return i.jsxs("div",{children:[i.jsx("dt",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:t}),i.jsx("dd",{className:`mt-0.5 break-words text-sm ${n?"text-red-600":"text-slate-600 dark:text-[#c7cfdd]"}`,children:e})]})}function J8e({status:t}){const e={completed:"bg-emerald-100 text-emerald-700 dark:bg-emerald-950/40 dark:text-emerald-400",processing:"bg-amber-100 text-amber-700 dark:bg-amber-950/40 dark:text-amber-400 animate-pulse",failed:"bg-red-100 text-red-700 dark:bg-red-950/40 dark:text-red-400",pending:"bg-slate-100 text-slate-600 dark:bg-[#1c1c23] dark:text-[#9ca7ba]"},n=e[t]??e.pending;return i.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs ${n}`,children:t})}function Z8e(t){const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}function Q8e(t){return t>=1e9?`${(t/1e9).toFixed(1)}B`:t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toFixed(0)}const e6e=["ingestion","data","costs"],eX=[{id:"automatic",label:"Automatic"},{id:"manual",label:"Manual"},{id:"invoice",label:"Invoice"}],t6e=[{id:"ingestion",icon:tA,title:"Data ingestion",blurb:"Connect a settlement source or upload a report"},{id:"data",icon:IW,title:"Ingested data",blurb:"What we learned — coverage & history"},{id:"costs",icon:RW,title:"Costs",blurb:"Effective fees per connector — overrides, learned rates & contract baseline"}];function n6e({merchantId:t}){const[e,n]=vc(),r=e.get("section"),a=e6e.includes(r)?r:"costs",s=e.get("source"),o=a==="ingestion"&&eX.some(c=>c.id===s)?s:"automatic",l=(c,u=o)=>{n(d=>{const f=new URLSearchParams(d);return c==="costs"?f.delete("section"):f.set("section",c),c!=="ingestion"||u==="automatic"?f.delete("source"):f.set("source",u),f},{replace:!0})};return g.useEffect(()=>{(r!==(a==="costs"?null:a)||s!==(a==="ingestion"&&o!=="automatic"?o:null))&&l(a,o)},[a,r,o,s]),i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(r6e,{merchantId:t,active:a,onSelect:c=>l(c),ingestMode:o,onSelectIngestMode:c=>l("ingestion",c)}),i.jsxs("div",{className:"min-w-0",children:[a==="ingestion"&&i.jsx(s6e,{merchantId:t,mode:o}),a==="data"&&i.jsx(a6e,{merchantId:t}),a==="costs"&&i.jsx(k8e,{merchantId:t})]})]})}function r6e({merchantId:t,active:e,onSelect:n,ingestMode:r,onSelectIngestMode:a}){const{coverage:s}=Vj(t),{ingestions:o}=dT(t),l={ingestion:o.length>0?`${o.length} report${o.length===1?"":"s"}`:"Not set up",data:s&&s.total_clusters>0?`${s.priced_gross_pct.toFixed(1)}% volume covered`:"No data yet",costs:void 0};return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:t6e.map(({id:c,icon:u,title:d,blurb:f})=>{const h=e===c;return i.jsxs("div",{className:"shrink-0 lg:w-full",children:[i.jsxs("button",{type:"button",onClick:()=>n(c),"aria-current":h?"page":void 0,className:`flex w-full items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors ${h?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(u,{size:18,className:`mt-0.5 shrink-0 ${h?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:d}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:l[c]??f})]})]}),c==="ingestion"&&h&&i.jsx("div",{className:"ml-[1.3125rem] mt-1 flex flex-col gap-0.5 border-l border-slate-200 pl-2 dark:border-[#2a3344]",children:eX.map(p=>{const m=r===p.id;return i.jsx("button",{type:"button",onClick:()=>a(p.id),"aria-current":m?"true":void 0,className:`rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors ${m?"bg-brand-500/10 font-medium text-brand-600 dark:text-brand-400":"text-slate-500 hover:bg-slate-50 hover:text-slate-700 dark:text-[#9ca7ba] dark:hover:bg-[#141923] dark:hover:text-white"}`,children:p.label},p.id)})})]},c)})})}function tX({title:t,subtitle:e}){return i.jsxs("div",{className:"mb-5",children:[i.jsx("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:t}),i.jsx("p",{className:"mt-1 max-w-[57ch] text-sm text-slate-500 dark:text-[#9ca7ba]",children:e})]})}function a6e({merchantId:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx(tX,{title:"Ingested data",subtitle:"What your settlement reports taught us: how much volume we can cost accurately, and — inside each report below — the fee learned for every segment."}),!1,i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h3",{className:ra,children:"Cost model coverage"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"How much volume we can cost accurately."})]}),i.jsx(He,{children:i.jsx(XLe,{merchantId:t})})]}),i.jsx(Y8e,{merchantId:t})]})}function s6e({merchantId:t,mode:e}){return i.jsxs("div",{children:[i.jsx(tX,{title:"Data ingestion",subtitle:"Connect a settlement source so reports flow in automatically, or upload a report file manually. Add the monthly invoice to also recover the fees the report can't carry."}),e==="automatic"&&i.jsx(A8e,{merchantId:t}),e==="manual"&&i.jsx(D8e,{merchantId:t}),e==="invoice"&&i.jsx(L8e,{merchantId:t})]})}const Rx="w-full rounded-lg border border-slate-200 bg-transparent px-3 py-2 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function RF(t,e){return e&&!t.includes(e)?[e,...t]:[...t]}const i6e=[{key:"card_network",label:"Card network"},{key:"currency",label:"Currency"},{key:"country",label:"Country"},{key:"auth_type",label:"Auth type"},{key:"card_is_in",label:"Card BIN",note:"High cardinality — not auto-calibrated"}],o6e=["card_network","currency","country","auth_type"];async function l6e(t){var a,s;let e=[],n=[];try{const o=await Dt(`/config-sr-dimension/${t}`);e=((a=o==null?void 0:o.paymentInfo)==null?void 0:a.fields)??[],n=((s=o==null?void 0:o.paymentInfo)==null?void 0:s.udfs)??[]}catch{}const r=Array.from(new Set([...e,...o6e]));await Fe("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:n,fields:r}})}const Og=Od(t=>t===""||t===null||t===void 0?null:t,Ud().nullable()),c6e=d2({paymentMethodType:Ud().min(1),paymentMethod:Ud().min(1),cardNetwork:Og,currency:Og,country:Og,authType:Og,source:Og,bucketSize:_Y.number().int().positive(),hedgingPercent:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),latencyThreshold:Od(t=>t===""||t===null?null:Number(t),Ad().nullable())}),u6e=d2({defaultBucketSize:_Y.number().int().positive(),defaultSuccessRate:Od(t=>t===""||t===null?null:Number(t),Ad().min(0).max(1).nullable()),defaultLatencyThreshold:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),defaultHedgingPercent:Od(t=>t===""||t===null?null:Number(t),Ad().nullable()),margin:Od(t=>t===""||t===null?null:Number(t),Ad().min(0).max(100).nullable()),subLevelInputConfig:SY(c6e)}),d6e=["autopilot","manual","flags","cost"],f6e=["manual","cost"],h6e=["scoring","elimination","dimensions"],p6e=[{id:"scoring",icon:ec,title:"Scoring defaults",blurb:"Bucket size, hedging & per-payment-type overrides"},{id:"elimination",icon:OW,title:"Elimination",blurb:"Drop a PSP whose auth rate falls too low"},{id:"dimensions",icon:Fj,title:"SR Dimensions",blurb:"Attributes scoring splits clusters on"}];function m6e(){const t=$r(M=>M.merchantId),e=hr(M=>{var B;return((B=M.user)==null?void 0:B.merchantId)||""}),n=t||e,a=Sl(n??void 0).isEnabled("autopilot"),[s,o]=vc(),l=s.get("tab"),c=d6e.includes(l)?l:"autopilot",u=M=>{o(B=>{const z=new URLSearchParams(B);return M==="autopilot"?z.delete("tab"):z.set("tab",M),z},{replace:!0})},d=s.get("section"),f=h6e.includes(d)?d:"scoring",h=M=>{o(B=>{const z=new URLSearchParams(B);return M==="scoring"?z.delete("section"):z.set("section",M),z},{replace:!0})};g.useEffect(()=>{if(c!=="manual")return;d!==(f==="scoring"?null:f)&&h(f)},[c,f,d]);const[p,m]=g.useState(!1),[x,v]=g.useState(null),[b,y]=g.useState(!1),[w,j]=g.useState(!1),{data:k,isLoading:S,mutate:_}=ct(n?["/rule/get","successRate",n]:null,()=>Fe("/rule/get",{merchant_id:n,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{register:C,control:E,handleSubmit:P,reset:R,watch:A,formState:{errors:T}}=zLe({resolver:HLe(u6e),defaultValues:{defaultBucketSize:200,defaultSuccessRate:.5,defaultLatencyThreshold:null,defaultHedgingPercent:null,margin:null,subLevelInputConfig:[]}});g.useEffect(()=>{var M;if((M=k==null?void 0:k.config)!=null&&M.data){const B=k.config.data,z=(B.subLevelInputConfig??[]).map(Z=>({paymentMethodType:Z.paymentMethodType,paymentMethod:Z.paymentMethod,cardNetwork:Z.cardNetwork??null,currency:Z.currency??null,country:Z.country??null,authType:Z.authType??null,source:Z.source??null,bucketSize:Z.bucketSize,hedgingPercent:Z.hedgingPercent??null,latencyThreshold:Z.latencyThreshold??null}));R({defaultBucketSize:B.defaultBucketSize??200,defaultSuccessRate:B.defaultSuccessRate??.5,defaultLatencyThreshold:B.defaultLatencyThreshold??null,defaultHedgingPercent:B.defaultHedgingPercent??null,margin:B.margin!=null?B.margin*100:null,subLevelInputConfig:z}),j(z.length>0)}},[k,R]);const{fields:D,append:L,remove:X}=BLe({control:E,name:"subLevelInputConfig"}),J=A("subLevelInputConfig"),U=w||D.length>0;function Y(){j(!0),L({paymentMethodType:"card",paymentMethod:"credit",cardNetwork:null,currency:null,country:null,authType:null,source:null,bucketSize:20,hedgingPercent:null,latencyThreshold:null})}function W(M){X(M),D.length<=1&&j(!1)}async function G(){try{await Fe("/merchant-account/create",{merchant_id:n,gateway_success_rate_based_decider_input:null})}catch{}}async function I(M){if(!n){v("Set a Merchant ID first.");return}m(!0),v(null),y(!1);try{k||await G(),await Fe(k?"/rule/update":"/rule/create",{merchant_id:n,config:{type:"successRate",data:{defaultBucketSize:M.defaultBucketSize,defaultSuccessRate:M.defaultSuccessRate,defaultLatencyThreshold:M.defaultLatencyThreshold,defaultHedgingPercent:M.defaultHedgingPercent,subLevelInputConfig:M.subLevelInputConfig.length>0?M.subLevelInputConfig:null}}}),y(!0),_()}catch(B){v(B instanceof Error?B.message:String(B))}finally{m(!1)}}const q=M=>`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${c===M?"border-brand-500 text-brand-600 dark:text-brand-400":"border-transparent text-slate-500 hover:text-slate-700 dark:hover:text-slate-300"}`;return i.jsxs("div",{className:`space-y-6 ${f6e.includes(c)?"w-full":"max-w-4xl"}`,children:[i.jsx("div",{children:i.jsx(Ba,{title:"Multi Objective Routing",description:"Dynamic gateway scoring based on real-time success rates."})}),!n&&i.jsx($a,{tone:"warning",children:"Set a Merchant ID in the top bar to load and save configuration."}),i.jsx("div",{className:"border-b border-slate-200 dark:border-[#1c1c23]",children:i.jsxs("nav",{className:"-mb-px flex gap-1",children:[i.jsx("button",{type:"button",className:q("autopilot"),onClick:()=>u("autopilot"),children:"Autopilot"}),i.jsx("button",{type:"button",className:q("manual"),onClick:()=>u("manual"),children:"Manual"}),i.jsx("button",{type:"button",className:q("flags"),onClick:()=>u("flags"),children:"Feature Flags"}),i.jsx("button",{type:"button",className:q("cost"),onClick:()=>u("cost"),children:"Cost Estimation"})]})}),S?i.jsx("div",{className:"flex justify-center py-12",children:i.jsx(at,{})}):i.jsxs(i.Fragment,{children:[c==="autopilot"&&i.jsx(y6e,{merchantId:n}),c==="manual"&&i.jsxs("div",{className:"grid gap-6 lg:grid-cols-[220px_1fr] lg:items-start",children:[i.jsx(g6e,{active:f,onSelect:h}),i.jsxs("div",{className:"min-w-0 space-y-6",children:[f==="scoring"&&i.jsx("div",{className:"space-y-6",children:i.jsxs("form",{onSubmit:P(I),className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"Scoring defaults"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Applied to every payment type unless an override below replaces them."})]}),i.jsxs(He,{className:"grid gap-6 md:grid-cols-3",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Bucket size"}),i.jsx("input",{type:"number",placeholder:"50–200",...C("defaultBucketSize"),className:Rx}),T.defaultBucketSize&&i.jsx("p",{className:"text-[13px] text-red-600 leading-[18px]",children:T.defaultBucketSize.message}),i.jsx("p",{className:pl,children:"Recent payments per gateway score. Lower adapts faster, higher stays steadier."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Hedging %"}),i.jsx("input",{type:"number",step:"0.1",...C("defaultHedgingPercent"),placeholder:"10",className:Rx}),i.jsx("p",{className:pl,children:"Traffic share sent to non-top gateways to keep their scores fresh. Needs Explore-exploit on."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Latency threshold (s)"}),i.jsx("input",{type:"number",...C("defaultLatencyThreshold"),placeholder:"300",className:Rx}),i.jsx("p",{className:pl,children:"Timeouts inside this window count as outages, outside it as slow performance."})]})]})]}),i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h2",{className:ra,children:"Sub-level overrides"}),i.jsx("p",{className:`mt-1 ${fc}`,children:"Optional per payment-method-type overrides for the settings above."})]}),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",onClick:Y,children:[i.jsx(Qn,{size:14})," Add Override"]})]}),U&&i.jsx(He,{className:"overflow-x-auto p-0",children:D.length?i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] border-b border-slate-200 dark:border-[#1c1c24] bg-slate-50 dark:bg-[#0a0a0f] leading-4",children:[i.jsx("th",{className:"px-4 py-2",children:"Source"}),i.jsx("th",{className:"px-4 py-2",children:"Method Type"}),i.jsx("th",{className:"px-4 py-2",children:"Method"}),i.jsx("th",{className:"px-4 py-2",children:"Card Network"}),i.jsx("th",{className:"px-4 py-2",children:"Currency"}),i.jsx("th",{className:"px-4 py-2",children:"Country"}),i.jsx("th",{className:"px-4 py-2",children:"Auth Type"}),i.jsx("th",{className:"px-4 py-2",children:"Bucket Size"}),i.jsx("th",{className:"px-4 py-2",children:"Hedging %"}),i.jsx("th",{className:"px-4 py-2",children:"Latency Threshold (s)"}),i.jsx("th",{className:"px-4 py-2"})]})}),i.jsx("tbody",{children:D.map((M,B)=>{var be,Pe,Ce,Re;const z=((be=J==null?void 0:J[B])==null?void 0:be.paymentMethodType)||"",Z=((Pe=J==null?void 0:J[B])==null?void 0:Pe.paymentMethod)||"",pe=pEe[z.toLowerCase()]||["credit","debit"],ae=RF(hEe,z),ue=RF(pe,Z),de=a&&((Ce=J==null?void 0:J[B])==null?void 0:Ce.source)==="autopilot",Q=de?"Managed by Autopilot — turn Autopilot off to edit":void 0,fe="text-sm text-slate-600 dark:text-slate-300",ne=J==null?void 0:J[B],ce=Be=>Be==null||Be===""?"Any":Be,he=Be=>Be==null||Be===""?"—":String(Be);return i.jsxs("tr",{className:"border-b border-slate-200 dark:border-[#1c1c24] hover:bg-slate-50 dark:bg-[#0f0f16] transition-colors",children:[i.jsxs("td",{className:"px-4 py-2",children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.source`)}),((Re=J==null?void 0:J[B])==null?void 0:Re.source)==="autopilot"?i.jsx(Me,{variant:"green",children:"Auto"}):i.jsx(Me,{variant:"gray",children:"Manual"})]}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.paymentMethodType`)}),i.jsx("span",{className:fe,title:Q,children:z||"—"})]}):i.jsx("select",{...C(`subLevelInputConfig.${B}.paymentMethodType`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:ae.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.paymentMethod`)}),i.jsx("span",{className:fe,title:Q,children:Z||"—"})]}):i.jsx("select",{...C(`subLevelInputConfig.${B}.paymentMethod`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg pl-2 pr-7 py-1 text-sm min-w-[6rem] focus:outline-none focus:border-brand-500",children:ue.map(Be=>i.jsx("option",{value:Be,children:Be},Be))})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.cardNetwork`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.cardNetwork)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.cardNetwork`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.currency`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.currency)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.currency`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.country`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.country)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.country`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.authType`)}),i.jsx("span",{className:fe,title:Q,children:ce(ne==null?void 0:ne.authType)})]}):i.jsx("input",{type:"text",...C(`subLevelInputConfig.${B}.authType`),placeholder:"Any",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.bucketSize`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.bucketSize)})]}):i.jsx("input",{type:"number",...C(`subLevelInputConfig.${B}.bucketSize`),className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.hedgingPercent`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.hedgingPercent)})]}):i.jsx("input",{type:"number",step:"0.1",...C(`subLevelInputConfig.${B}.hedgingPercent`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-20 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsxs(i.Fragment,{children:[i.jsx("input",{type:"hidden",...C(`subLevelInputConfig.${B}.latencyThreshold`)}),i.jsx("span",{className:fe,title:Q,children:he(ne==null?void 0:ne.latencyThreshold)})]}):i.jsx("input",{type:"number",...C(`subLevelInputConfig.${B}.latencyThreshold`),placeholder:"—",className:"border border-slate-200 dark:border-[#222226] bg-transparent rounded-lg px-2 py-1 w-24 focus:outline-none focus:border-brand-500"})}),i.jsx("td",{className:"px-4 py-2",children:de?i.jsx("span",{className:"text-slate-500 dark:text-slate-400",title:"Managed by Autopilot — turn Autopilot off to remove",children:i.jsx(wn,{size:14})}):i.jsx("button",{type:"button",onClick:()=>W(B),className:"text-slate-500 hover:text-red-600",children:i.jsx(wn,{size:14})})})]},M.id)})})]}):i.jsx("div",{className:"px-4 py-6 text-sm text-slate-500",children:"No overrides yet — defaults apply to all payment types."})})]}),i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Configuration saved."}),i.jsx(we,{type:"submit",disabled:p||!n,children:p?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save changes"})]})}),f==="elimination"&&i.jsx(w6e,{merchantId:n}),f==="dimensions"&&i.jsx(v6e,{merchantId:n})]})]}),c==="flags"&&i.jsx(b6e,{merchantId:n}),c==="cost"&&i.jsx(n6e,{merchantId:n})]})]})}function g6e({active:t,onSelect:e}){return i.jsx("nav",{className:"flex gap-2 overflow-x-auto lg:flex-col lg:gap-1 lg:overflow-visible",children:p6e.map(({id:n,icon:r,title:a,blurb:s})=>{const o=t===n;return i.jsxs("button",{type:"button",onClick:()=>e(n),"aria-current":o?"page":void 0,className:`flex shrink-0 items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors lg:w-full ${o?"border-brand-500/40 bg-brand-500/8 text-slate-900 dark:text-white":"border-transparent text-slate-600 hover:bg-slate-50 dark:text-[#9ca7ba] dark:hover:bg-[#141923]"}`,children:[i.jsx(r,{size:18,className:`mt-0.5 shrink-0 ${o?"text-brand-600":"text-slate-500"}`}),i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block text-sm font-medium",children:a}),i.jsx("span",{className:"mt-0.5 hidden text-xs text-slate-500 lg:block",children:s})]})]},n)})})}function x6e({on:t,onClick:e,disabled:n}){return i.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:n,onClick:e,className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${t?"bg-brand-500":"bg-slate-300 dark:bg-slate-600"}`,children:i.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${t?"translate-x-6":"translate-x-1"}`})})}function y6e({merchantId:t}){const e=Sl(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null),[c,u]=g.useState(!1),d=e.isEnabled("autopilot");async function f(p){r("master"),s(null),l(null);try{await e.setFeatureEnabled("autopilot",p),p?(await e.setFeatureEnabled("multi-objective-routing",!0),await e.setFeatureEnabled("auto-calibration",!0),t&&await l6e(t)):(await e.setFeatureEnabled("elimination",!1),await e.setFeatureEnabled("multi-objective-routing",!1),await e.setFeatureEnabled("auto-calibration",!1)),l(p?"Autopilot on — the engine self-tunes to your traffic (cost savings also enabled).":"Autopilot off — routing uses your Manual configuration.")}catch(m){s(m instanceof Error?m.message:String(m))}finally{r(null)}}const h=!t||e.isLoading;return i.jsxs("div",{className:"space-y-4",children:[a&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:a}),o&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:o}),i.jsx(Te,{children:i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:ra,children:"Autopilot mode"}),d?i.jsx(Me,{variant:"green",children:"On"}):i.jsx(Me,{variant:"gray",children:"Off"}),d&&i.jsx("button",{type:"button",onClick:()=>u(p=>!p),"aria-expanded":c,"aria-label":"Show static vs automatic tuning illustration",className:`inline-flex items-center rounded-full p-0.5 transition-colors ${c?"text-brand-600 dark:text-brand-400":"text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300"}`,children:i.jsx(qu,{className:"h-4 w-4"})})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb] max-w-[57ch]",children:"Let the engine self-tune routing to your traffic — it auto-configures the Learning window and Discovery share from your volume. Turn off to route purely by your Manual configuration."})]}),i.jsx(x6e,{on:d,disabled:h||n!==null,onClick:()=>f(!d)})]})}),i.jsx(Te,{className:d?"":"opacity-60",children:i.jsx("div",{className:"flex flex-wrap items-center justify-between gap-4 px-5 py-4",children:i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:"Always route to the best-performing PSP"}),i.jsx(Me,{variant:"gray",children:"SRv3"}),i.jsx(Me,{variant:"green",children:"Active"})]}),i.jsx("p",{className:"mt-1 text-xs leading-5 text-slate-500 dark:text-[#9aa6bb]",children:"Real-time success-rate routing. Always on — it is the base routing path."})]})})}),d&&c&&i.jsx(YLe,{})]})}const MF=[{feature:"gsm-scoring-filter",title:"GSM scoring filter",description:"Skip gateway penalization for failures classified by GSM as user or issuer-originated. Keeps gateway scores accurate by excluding faults that are not the gateway's responsibility."},{feature:"explore-exploit-srv3",title:"Explore-exploit on SRv3 (Card)",description:"Keeps all gateway ratings fresh by regularly sending a small share of payments to every gateway — not just the top performer. This ensures the system can quickly detect when a backup gateway becomes better than the current top, and reroute accordingly. The Hedging % setting controls how large this share is."},{feature:"ab-test-real-payments",title:"A/B test on real payments",description:"Routes live production traffic through the active A/B test algorithm. When enabled, each payment is deterministically assigned to a control or variant arm based on its payment ID. Disable at any time to fall back to standard SR routing with no impact on in-flight payments."},{feature:"multi-objective-routing",title:"Cost savings (optimize for economic value)",description:"Multi-objective routing: alongside approval rate, weighs each PSP's expected cost and picks the highest expected-value option. Works with either the Autopilot or Manual scoring config.",docsUrl:"https://docs.hyperswitch.io/integration-guide/workflows/intelligent-routing/routing-strategies/multi-objective-routing"}];function v6e({merchantId:t}){const e=Ao(),{data:n,mutate:r}=ct(t?`/config-sr-dimension/${t}`:null,Dt,{revalidateOnFocus:!1,shouldRetryOnError:!1}),[a,s]=g.useState(null),[o,l]=g.useState([]),[c,u]=g.useState(!1),[d,f]=g.useState(null),[h,p]=g.useState(!1);g.useEffect(()=>{var b,y;n&&(s(((b=n.paymentInfo)==null?void 0:b.fields)??[]),l(((y=n.paymentInfo)==null?void 0:y.udfs)??[]))},[n]);const m=a??[];function x(b){p(!1),s(y=>{const w=y??[];return w.includes(b)?w.filter(j=>j!==b):[...w,b]})}async function v(){if(!(!t||a==null)){u(!0),f(null),p(!1);try{await Fe("/config-sr-dimension",{merchant_id:t,paymentInfo:{udfs:o,fields:a}}),p(!0),r()}catch(b){f(b instanceof Error?b.message:String(b))}finally{u(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"SR scoring dimensions"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Attributes SR scoring splits clusters on. More dimensions = finer, more responsive scores, but more clusters (each needs its own volume to score well). Changing this re-buckets scores. Autopilot enables the low-cardinality dimensions automatically."})]}),i.jsx(He,{className:"space-y-1",children:i6e.map(({key:b,label:y,note:w})=>i.jsxs("label",{className:"flex items-center gap-3 cursor-pointer select-none py-1.5",children:[i.jsx("input",{type:"checkbox",checked:m.includes(b),onChange:()=>x(b),disabled:!t||a==null,className:"rounded border-slate-300 dark:border-slate-600 disabled:cursor-not-allowed"}),i.jsx("span",{className:"text-sm text-slate-700 dark:text-slate-200",children:y}),w&&i.jsx("span",{className:"text-[11px] text-amber-700 leading-4",children:w})]},b))})]}),i.jsx(vt,{error:d}),h&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"SR dimensions saved."}),i.jsx(we,{onClick:v,disabled:c||!t||a==null||!e,children:c?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save SR Dimensions"})]})}function b6e({merchantId:t}){const e=Sl(t??void 0),[n,r]=g.useState(null),[a,s]=g.useState(null),[o,l]=g.useState(null);async function c(u,d){var f;r(u),s(null),l(null);try{await e.setFeatureEnabled(u,d);const h=((f=MF.find(p=>p.feature===u))==null?void 0:f.title)??u;s(`${h} ${d?"enabled":"disabled"}.`)}catch(h){l(h instanceof Error?h.message:String(h))}finally{r(null)}}return i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h2",{className:ra,children:"Scoring behaviour flags"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Merchant-level toggles that affect how SR scores are computed and how traffic is explored."})]}),o&&i.jsx("p",{className:"rounded-lg border border-red-500/20 bg-red-500/8 px-3 py-2 text-xs text-red-500",children:o}),a&&i.jsx("p",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-xs text-emerald-500",children:a}),i.jsx(Te,{children:MF.map(({feature:u,title:d,description:f,docsUrl:h},p)=>{const m=e.isEnabled(u);return i.jsxs("div",{className:`flex flex-wrap items-center justify-between gap-4 px-5 py-4 ${p>0?"border-t border-slate-100 dark:border-[#222226]":""}`,children:[i.jsxs("div",{className:"max-w-2xl",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:"text-sm font-medium text-slate-800 dark:text-white",children:d}),h&&i.jsx("a",{href:h,target:"_blank",rel:"noreferrer","aria-label":`${d} — documentation`,title:"Learn more",className:"inline-flex items-center rounded-full p-0.5 text-slate-500 transition-colors hover:text-brand-600 dark:text-slate-400 dark:hover:text-brand-400",children:i.jsx(qu,{className:"h-4 w-4"})}),e.isLoading?i.jsx(Me,{variant:"gray",children:"Checking"}):m?i.jsx(Me,{variant:"green",children:"Enabled"}):null]}),i.jsx("p",{className:`mt-1 ${pl} max-w-[68ch]`,children:f})]}),i.jsx("div",{children:m?i.jsxs(we,{size:"sm",variant:"danger",onClick:()=>c(u,!1),disabled:!t||n===u||e.isLoading,children:[i.jsx(_y,{size:13}),n===u?"Disabling":"Disable"]}):i.jsx(we,{size:"sm",variant:"primary",onClick:()=>c(u,!0),disabled:!t||n===u||e.isLoading,children:n===u?"Enabling":"Enable"})})]},u)})})]})}function w6e({merchantId:t}){var j;const e=Ao(),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(!1),{data:v,mutate:b}=ct(t?["rule-elimination",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});g.useEffect(()=>{var k,S;if((k=v==null?void 0:v.config)!=null&&k.data){const _=v.config.data;r(String(_.threshold)),s(((S=_.txnLatency)==null?void 0:S.gatewayLatency)!=null?String(_.txnLatency.gatewayLatency):"")}},[v]);async function y(){if(!t)return;const k=parseFloat(n);if(isNaN(k)||k<0||k>1){u("Threshold must be a number between 0 and 1.");return}l(!0),u(null),f(!1);try{const S=v?"/rule/update":"/rule/create",_=a!==""?parseFloat(a):null;await Fe(S,{merchant_id:t,config:{type:"elimination",data:{threshold:k,txnLatency:_!=null?{gatewayLatency:_}:null}}}),f(!0),b()}catch(S){u(S instanceof Error?S.message:String(S))}finally{l(!1)}}async function w(){if(t){p(!0);try{await Fe("/rule/delete",{merchant_id:t,algorithm:"elimination"}),r(""),s(""),b(void 0,{revalidate:!1})}catch(k){u(k instanceof Error?k.message:String(k))}finally{p(!1)}}}return i.jsxs("div",{className:"space-y-6",children:[t&&((j=v==null?void 0:v.config)==null?void 0:j.data)&&i.jsxs(Te,{children:[i.jsxs(yt,{className:"flex flex-row items-center justify-between gap-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:ra,children:"Elimination Configuration"}),i.jsxs("p",{className:`mt-1 ${fc}`,children:["Elimination routing is active · threshold ",v.config.data.threshold]})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Me,{variant:"green",children:"Active"}),i.jsxs(we,{type:"button",variant:"ghost",size:"sm",onClick:()=>x(k=>!k),children:[i.jsx(jf,{size:14,className:"mr-1"}),m?"Hide":"View"]}),i.jsxs(we,{type:"button",variant:"secondary",size:"sm",disabled:h||!e,onClick:()=>{confirm("Clear the Elimination configuration?")&&w()},children:[i.jsx(wn,{size:14,className:"mr-1"}),h?"Clearing…":"Clear"]})]})]}),m&&i.jsx(He,{className:"border-t border-slate-100 dark:border-[#222226] text-xs text-slate-600 dark:text-[#b2bdd1]",children:i.jsx("pre",{className:"max-h-40 overflow-auto rounded-lg border border-slate-200/80 bg-slate-50/90 p-3 font-mono text-xs dark:border-[#2a303a] dark:bg-[#0b1017] dark:text-[#d8e1ef]",children:JSON.stringify(v.config,null,2)})})]}),i.jsxs(Te,{children:[i.jsxs(yt,{children:[i.jsx("h2",{className:ra,children:"Elimination"}),i.jsx("p",{className:`mt-1 ${fc} max-w-[68ch]`,children:"Each gateway carries a health score that decays on consecutive failures and recovers on successes. Below the threshold, it drops out of routing until it recovers."})]}),i.jsxs(He,{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("label",{className:"space-y-1.5",children:[i.jsxs("span",{className:ks,children:["Threshold ",i.jsx("span",{className:"text-red-600",children:"*"})]}),i.jsx("input",{type:"number",step:"0.01",min:"0",max:"1",value:n,onChange:k=>r(k.target.value),placeholder:"0.05",className:Rx}),i.jsx("p",{className:pl,children:"Health score from 0 to 1, not success rate. Lower tolerates more failures before dropping a gateway."})]}),i.jsxs("label",{className:"space-y-1.5",children:[i.jsx("span",{className:ks,children:"Gateway latency threshold (ms)"}),i.jsx("input",{type:"number",value:a,onChange:k=>s(k.target.value),placeholder:"5000",className:Rx}),i.jsx("p",{className:pl,children:"Gateways slower than this are eliminated too. Leave blank to disable."})]})]})]}),i.jsx(vt,{error:c}),d&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-4 py-3 text-sm text-emerald-400",children:"Elimination configuration saved successfully."}),i.jsx(we,{onClick:y,disabled:o||!t||n===""||!e,children:o?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," Saving…"]}):"Save Elimination Config"})]})}function k6e(t){var r;const n=(((r=u2(t))==null?void 0:r.gateways)??[]).filter(a=>a.gatewayName.trim());return n.length===0?"No gateways configured":n.map(a=>`${a.gatewayName} ${a.split}%`).join(" / ")}function DF(t){var e;return(((e=u2(t))==null?void 0:e.gateways)??[]).map(n=>n.gatewayName.trim()).filter(Boolean)}function j6e(){const t=Ao(),e=Hr(),{merchantId:n}=$r(),[r,a]=g.useState(new Set),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(!1),[p,m]=g.useState(null),[x,v]=g.useState(null),[b,y]=g.useState(null),[w,j]=g.useState("all"),[k,S]=g.useState("all"),[_,C]=g.useState(""),{data:E,mutate:P}=ct(n?`/routing/list/${n}`:null,()=>Fe(`/routing/list/${n}`)),{data:R,mutate:A}=ct(n?`/routing/list/active/${n}`:null,()=>Fe(`/routing/list/active/${n}`)),T=new Set((R||[]).map(M=>M.id)),D=(R||[]).find(M=>{var z;const B=(z=M.algorithm_data||M.algorithm)==null?void 0:z.type;return B&&B!=="volume_split"}),L=(E||[]).filter(M=>{var B;return((B=M.algorithm_data||M.algorithm)==null?void 0:B.type)==="volume_split"}).sort((M,B)=>F0(B)-F0(M)),X=Array.from(new Set(L.flatMap(DF))).sort(),J=L.filter(M=>{if(w==="active"&&!T.has(M.id)||w==="inactive"&&T.has(M.id)||k!=="all"&&!DF(M).includes(k))return!1;if(_.trim()){const B=_.trim().toLowerCase();if(!M.name.toLowerCase().includes(B)&&!M.id.toLowerCase().includes(B))return!1}return!0});function U(M){a(B=>{const z=new Set(B);return z.has(M)?z.delete(M):z.add(M),z})}async function Y(M){if(n){if(D){o(M);return}await W(M)}}async function W(M){h(!0),v(null),y(null);try{await Fe("/routing/activate",{created_by:n,routing_algorithm_id:M}),y("Rule activated."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to activate")}finally{h(!1)}}async function G(M){m(M),v(null),y(null);try{await Fe("/routing/deactivate",{created_by:n,routing_algorithm_id:M}),y("Rule deactivated."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to deactivate")}finally{m(null)}}async function I(M){if(n){v(null),y(null);try{await Fe("/routing/delete",{created_by:n,routing_algorithm_id:M}),y("Rule deleted."),await Promise.all([P(),A()])}catch(B){v(B instanceof Error?B.message:"Failed to delete")}finally{d(null)}}}const q=L.find(M=>M.id===u);return i.jsxs("div",{className:"space-y-6",children:[i.jsx(Hs,{open:s!==null,title:"Switch to Volume Split Routing?",description:`"${D==null?void 0:D.name}" is currently active. Activating this rule will replace it.`,confirmLabel:"Yes, activate",variant:"primary",onConfirm:()=>{const M=s;o(null),W(M)},onCancel:()=>o(null)}),i.jsx(Hs,{open:l!==null,title:"Deactivate this rule?",description:"The rule will be deactivated for this merchant. It will remain saved and can be reactivated at any time.",confirmLabel:"Deactivate",variant:"danger",onConfirm:()=>{const M=l;c(null),G(M)},onCancel:()=>c(null)}),i.jsx(Hs,{open:u!==null,title:"Delete this rule?",description:`"${q==null?void 0:q.name}" will be permanently deleted. This cannot be undone.`,confirmLabel:"Delete",variant:"danger",onConfirm:()=>I(u),onCancel:()=>d(null)}),i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(Ba,{title:"Volume Split Routing",description:"Divide payment traffic across gateways by fixed percentages, independent of transaction attributes."})}),i.jsxs(we,{onClick:()=>e("/routing/volume/new"),disabled:!t,children:[i.jsx(Qn,{size:15})," Create Rule"]})]}),x&&i.jsx(vt,{error:x}),b&&i.jsx("div",{className:"rounded-lg border border-emerald-500/20 bg-emerald-500/8 px-3 py-2 text-sm text-emerald-600 dark:text-emerald-400",children:b}),i.jsx(Te,{className:"!rounded-[18px]",children:n?E?L.length===0?i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"No volume split rules yet."}):i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[880px] text-left",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-100 text-[11px] font-semibold uppercase tracking-wide text-slate-500 dark:border-[#1e2330] dark:text-[#78849a] leading-4",children:[i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(DH,{label:"Rule Name & ID",value:_,onChange:C,ariaLabel:"Filter rules by name"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Status",value:w,options:[{value:"all",label:"All statuses"},{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}],onChange:M=>j(M),ariaLabel:"Filter by status"})}),i.jsx("th",{className:"px-5 py-3.5",children:i.jsx(Vw,{label:"Distribution",value:k,options:[{value:"all",label:"All gateways"},...X.map(M=>({value:M,label:M}))],onChange:S,ariaLabel:"Filter by gateway"})}),i.jsx("th",{className:"px-5 py-3.5",children:"Last Modified"}),i.jsx("th",{className:"px-5 py-3.5 text-right",children:"Actions"})]})}),i.jsxs("tbody",{children:[J.length===0&&i.jsx("tr",{children:i.jsxs("td",{colSpan:5,className:"px-4 py-8 text-center",children:[i.jsx("p",{className:"text-sm text-slate-500",children:"No rules match these filters."}),i.jsx("button",{type:"button",onClick:()=>{j("all"),S("all"),C("")},className:"mt-1.5 text-sm font-medium text-brand-600 hover:text-brand-700 dark:text-brand-400",children:"Clear filters"})]})}),J.map(M=>{var ae;const B=T.has(M.id),z=r.has(M.id),Z=k6e(M),pe=B?"Deactivate this rule first":t?void 0:"You do not have permission to change routing";return[i.jsxs("tr",{"data-testid":"rule-row","data-rule-name":M.name,onClick:()=>U(M.id),className:`cursor-pointer border-b border-slate-100 align-middle transition-colors hover:bg-slate-50 dark:border-[#1e2330] dark:hover:bg-[#11151d] ${B?"bg-emerald-50/50 dark:bg-emerald-900/10":""}`,children:[i.jsx("td",{className:"px-5 py-4",children:i.jsxs("div",{className:"flex items-start gap-2",children:[z?i.jsx(ln,{size:14,className:"mt-1 shrink-0 text-slate-500"}):i.jsx(So,{size:14,className:"mt-1 shrink-0 text-slate-500"}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"truncate text-sm font-semibold text-slate-900 dark:text-white",children:M.name}),i.jsx("p",{className:"mt-0.5 truncate font-mono text-xs text-slate-500 dark:text-[#78849a]",children:M.id})]})]})}),i.jsx("td",{className:"px-5 py-4",children:i.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full px-2.5 py-1 text-[11px] font-semibold ${B?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400":"bg-slate-100 text-slate-500 dark:bg-[#1a1f2a] dark:text-[#8090a8]"} leading-4`,children:B?"Active":"Inactive"})}),i.jsx("td",{className:"max-w-[320px] px-5 py-4",children:i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",title:Z,children:Z})}),i.jsx("td",{className:"whitespace-nowrap px-5 py-4 text-[13px] text-slate-500 dark:text-[#78849a] leading-[18px]",children:(()=>{const ue=$H(M);return ue?i.jsxs("span",{title:ue.full,children:[ue.date,i.jsx("span",{className:"block text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:ue.time})]}):"—"})()}),i.jsx("td",{className:"px-5 py-4",onClick:ue=>ue.stopPropagation(),children:i.jsx(IH,{items:[B?{label:p===M.id?"Deactivating…":"Deactivate",icon:_y,onSelect:()=>c(M.id),disabled:p===M.id||!t}:{label:"Activate",icon:VW,tone:"positive",onSelect:()=>Y(M.id),disabled:f||!t},{label:"Edit",icon:jl,onSelect:()=>e(`/routing/volume/${M.id}/edit`),disabled:!!pe,hint:pe},{label:"Duplicate",icon:nf,onSelect:()=>e(`/routing/volume/new?cloneFrom=${M.id}`),disabled:!t},{label:"Delete",icon:wn,tone:"danger",onSelect:()=>d(M.id),disabled:!!pe,hint:pe}]})})]},M.id),z?i.jsx("tr",{className:"border-b border-slate-100 dark:border-[#1e2330]",children:i.jsxs("td",{colSpan:5,className:"bg-slate-50/60 px-6 py-5 dark:bg-[#0c0f17]",children:[M.description&&M.description!=="N/A"&&i.jsx("p",{className:"mb-3 text-sm text-slate-500 dark:text-[#78849a]",children:M.description}),i.jsx(NY,{gateways:((ae=u2(M))==null?void 0:ae.gateways)??[]})]})},`${M.id}-detail`):null]})]})]})}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Loading..."}):i.jsx("p",{className:"px-4 py-6 text-sm text-slate-500",children:"Set merchant ID to load rules."})}),D&&i.jsxs($a,{tone:"warning",children:[i.jsxs("strong",{children:["“",D.name,"” is active"]})," — activating a volume split rule will automatically deactivate it."]})]})}function S6e(t){if(!t.name.trim())return"Enter an experiment name";if(t.experimentType==="sr_config_tuning"){const e=t.variantSrConfig;if(e.hedgingPercent!==null&&(e.hedgingPercent<0||e.hedgingPercent>100))return"Hedging % must be between 0 and 100";if(e.eliminationThreshold!==null&&(e.eliminationThreshold<0||e.eliminationThreshold>1))return"Elimination threshold must be between 0 and 1";if(e.hedgingPercent===null&&e.eliminationThreshold===null)return"Set at least one parameter override for the variant arm"}else{if(!t.controlAlgorithmId)return"Select a control strategy";if(!t.variantAlgorithmId)return"Select a variant strategy";if(t.controlAlgorithmId===t.variantAlgorithmId)return"Control and variant must be different strategies"}return t.variantSplitPct<5||t.variantSplitPct>30?"Variant traffic must be between 5% and 30%":t.minSampleSize<100?"Minimum sample size must be at least 100 transactions":t.guardrailThresholdPp<=0||t.guardrailThresholdPp>20?"Guardrail threshold must be between 0.1 and 20 percentage points":null}function _6e(t){const e={};return t.hedgingPercent!==null&&(e.hedging_percent=t.hedgingPercent),t.eliminationThreshold!==null&&(e.elimination_threshold=t.eliminationThreshold),e}const N6e={sr_config_tuning:t=>`SR config tuning: ${t}% variant traffic`,algorithm_comparison:t=>`A/B test: ${t}% variant traffic`};function IF(t){switch(t){case"sr_auth":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!1}};case"sr_auth_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!1,use_autopilot:!0}};case"sr_mo_manual":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!1}};case"sr_mo_autopilot":return{id:"sr_routing",config:{enable_multi_objective:!0,use_autopilot:!0}};default:return{id:t}}}function C6e(t,e){const n={variant_split_pct:t.variantSplitPct,min_sample_size:t.minSampleSize,guardrail_threshold_pp:t.guardrailThresholdPp};let r;if(t.experimentType==="sr_config_tuning")r={...n,control_algorithm_id:"sr_routing",variant_algorithm_id:"sr_routing",variant_sr_config:_6e(t.variantSrConfig)};else{const a=IF(t.controlAlgorithmId),s=IF(t.variantAlgorithmId);r={...n,control_algorithm_id:a.id,variant_algorithm_id:s.id,...a.config&&{control_sr_config:a.config},...s.config&&{variant_sr_config:s.config}}}return{name:t.name.trim(),description:N6e[t.experimentType](t.variantSplitPct),created_by:e,algorithm_for:"payment",metadata:{},algorithm:{type:"ab_test",data:r}}}const RP={sr_auth:"Maximize approvals · manual tuning",sr_auth_autopilot:"Maximize approvals · auto-tuned",sr_mo_manual:"Approvals + save on fees · manual",sr_mo_autopilot:"Approvals + save on fees · auto-tuned"},E6e={hedgingPercent:null,eliminationThreshold:null};function A6e(t){const e=t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function $F(t,e){return t!=="sr_routing"?t:(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth"}function LF(t){var r,a;const e=t.algorithm_data||t.algorithm;if(!e||e.type!=="ab_test")return null;const n=e.data;return{name:t.name,experimentType:A6e(n),controlAlgorithmId:$F(n.control_algorithm_id,n.control_sr_config),variantAlgorithmId:$F(n.variant_algorithm_id,n.variant_sr_config),variantSplitPct:n.variant_split_pct,minSampleSize:n.min_sample_size,guardrailThresholdPp:n.guardrail_threshold_pp,variantSrConfig:{hedgingPercent:((r=n.variant_sr_config)==null?void 0:r.hedging_percent)??null,eliminationThreshold:((a=n.variant_sr_config)==null?void 0:a.elimination_threshold)??null}}}const FF=[1e3,5e3,1e4,5e4],O6e={algorithm_comparison:"Compare any two routing strategies — SR (auth), SR cost-aware (manual/autopilot), rule-based, or volume split.",sr_config_tuning:"Same SR algorithm, different hedging % or elimination threshold on the variant."};function nX(t){const e=t==null?void 0:t.variant_sr_config;return e&&(e.hedging_percent!==void 0||e.elimination_threshold!==void 0)?"sr_config_tuning":"algorithm_comparison"}function T6e(t){var e,n;return((e=t==null?void 0:t.control_sr_config)==null?void 0:e.enable_multi_objective)===!0||((n=t==null?void 0:t.variant_sr_config)==null?void 0:n.enable_multi_objective)===!0}function P6e({kind:t}){return t==="sr_config_tuning"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-violet-100 text-violet-700 dark:bg-violet-900/30 dark:text-violet-300 leading-4",children:[i.jsx(zW,{size:9})," SR Config Tuning"]}):null}function ly(t,e,n){if(t==="sr_routing"){const r=(e==null?void 0:e.enable_multi_objective)===!0?e.use_autopilot===!0?"sr_mo_autopilot":"sr_mo_manual":(e==null?void 0:e.use_autopilot)===!0?"sr_auth_autopilot":"sr_auth";return RP[r]}return n(t)}function AO({algorithmId:t,algorithms:e}){const n=e.find(o=>o.id===t);if(!n)return null;const r=n.algorithm_data||n.algorithm,a=r==null?void 0:r.type,s=r==null?void 0:r.data;if(a==="advanced")return i.jsx(bT,{algo:n});if(a==="priority"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-brand-50 dark:bg-brand-900/20 px-2 py-0.5 text-xs font-medium text-brand-700 dark:text-brand-300",children:[c+1,". ",l.gateway_name]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connectors configured."})}if(a==="volume_split"){const o=Array.isArray(s)?s:[];return o.length>0?i.jsx("div",{className:"flex flex-wrap gap-1",children:o.map((l,c)=>i.jsxs("span",{className:"rounded-full bg-emerald-50 dark:bg-emerald-900/20 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300",children:[l.output.gateway_name," ",l.split,"%"]},c))}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No splits configured."})}if(a==="single"){const o=s;return o?i.jsx("span",{className:"rounded-full bg-slate-100 dark:bg-[#1a1f2a] px-2 py-0.5 text-xs font-medium text-slate-600 dark:text-[#8090a8]",children:o.gateway_name}):i.jsx("p",{className:"text-sm text-slate-500 italic",children:"No connector configured."})}return null}function pf({text:t}){const[e,n]=g.useState(null);return i.jsxs("span",{tabIndex:0,"aria-label":t,className:"inline-flex cursor-help align-middle text-slate-500 hover:text-slate-600 focus:text-slate-600 focus:outline-none dark:text-slate-400 dark:hover:text-slate-300 dark:focus:text-slate-300 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-brand-500/60",onMouseEnter:r=>n({x:r.clientX,y:r.clientY}),onMouseLeave:()=>n(null),onFocus:r=>{const a=r.currentTarget.getBoundingClientRect();n({x:a.left+a.width/2,y:a.bottom})},onBlur:()=>n(null),children:[i.jsx(qu,{size:12}),e&&gs.createPortal(i.jsx("span",{role:"tooltip",style:{position:"fixed",left:Math.min(e.x+14,window.innerWidth-252),top:e.y+16,maxWidth:240},className:"pointer-events-none z-[200] block w-max rounded-lg bg-slate-900 px-2.5 py-1.5 text-xs font-normal leading-snug text-white shadow-lg dark:bg-slate-700",children:t}),document.body)]})}function nN({children:t,hint:e,required:n}){return i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:[t,n&&i.jsx("span",{className:"text-slate-500",children:"*"}),e&&i.jsx(pf,{text:e})]})}const ep="border border-slate-200 bg-transparent rounded-lg px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]";function rN({children:t,divide:e}){return i.jsx("section",{className:`space-y-4 ${e?"border-t border-slate-200 dark:border-[#262d3a] pt-6":""}`,children:t})}const BF={advanced:"Rule-based",volume_split:"Volume split",priority:"Priority list",single:"Single connector"},rX=Object.keys(RP),Tg=t=>rX.includes(t);function zF({label:t,help:e,accent:n,algorithms:r,value:a,excludeId:s,allowedSrStrategies:o,liveSrConfig:l,onChange:c}){var b;const u=rX.filter(y=>o.includes(y)||a===y),d=y=>{var j;if(Tg(y))return y;const w=r.find(k=>k.id===y);return w?((j=w.algorithm_data||w.algorithm)==null?void 0:j.type)??"":""},[f,h]=g.useState(()=>d(a));g.useEffect(()=>{const y=d(a);y&&h(y)},[a,r]);const p=Array.from(new Set(r.map(y=>{var w;return(w=y.algorithm_data||y.algorithm)==null?void 0:w.type}).filter(Boolean))),m=f&&!Tg(f)?r.filter(y=>{var w;return((w=y.algorithm_data||y.algorithm)==null?void 0:w.type)===f}):[];function x(y){if(h(y),Tg(y)){c(y);return}if(!y){c("");return}const w=r.filter(j=>{var k;return((k=j.algorithm_data||j.algorithm)==null?void 0:k.type)===y});c(w.length===1?w[0].id:"")}const v=`w-full ${ep}`;return i.jsxs("div",{className:`rounded-xl border p-3 ${n?"border-brand-200 bg-brand-50/40 dark:border-brand-800/50 dark:bg-brand-900/10":"border-slate-200 bg-slate-50/50 dark:border-[#222226] dark:bg-[#0c0c10]"}`,children:[i.jsxs("div",{className:"mb-2 flex items-center gap-1.5",children:[i.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:t}),i.jsx(pf,{text:e})]}),i.jsxs("select",{className:v,value:f,onChange:y=>x(y.target.value),children:[i.jsx("option",{value:"",children:"Select strategy"}),u.map(y=>i.jsx("option",{value:y,disabled:s===y,children:RP[y]},y)),p.map(y=>i.jsx("option",{value:y,children:BF[y]??y},y))]}),m.length>1&&i.jsxs("select",{className:`${v} mt-2`,value:a,onChange:y=>c(y.target.value),children:[i.jsxs("option",{value:"",children:["Select ",((b=BF[f])==null?void 0:b.toLowerCase())??"config"]}),m.map(y=>i.jsx("option",{value:y.id,disabled:y.id===s,children:y.name},y.id))]}),m.length===1&&i.jsxs("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:["Using ",i.jsx("span",{className:"font-medium text-slate-600 dark:text-slate-300",children:m[0].name})]}),a&&!Tg(a)&&i.jsx("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:i.jsx(AO,{algorithmId:a,algorithms:r})}),a&&Tg(a)&&i.jsxs("div",{className:"mt-2 rounded-lg border border-slate-100 dark:border-[#1a1f2a] bg-slate-50/60 dark:bg-[#0a0a0f]/60 p-2",children:[i.jsx("p",{className:"text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] mb-1.5 leading-4",children:"Base SR config"}),i.jsx(D6e,{hedging:l.hedging,elimination:l.elimination,bucketSize:l.bucketSize,autopilotSegmentCount:l.autopilotSegmentCount,autopilotFeatureOn:l.autopilotFeatureOn,honorsAutopilot:a==="sr_mo_autopilot"||a==="sr_auth_autopilot"})]})]})}function UF(t){return`${t>0?"+":""}${t.toFixed(2)}pp`}function Ob(t){return`${(t*100).toFixed(2)}%`}function R6e({verdict:t}){return t==="collecting_data"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(PW,{size:11})," Collecting data"]}):t==="variant_wins"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[i.jsx(Ip,{size:11})," Variant wins"]}):t==="variant_loses"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(Ij,{size:11})," Variant loses"]}):t==="guardrail_breached"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400",children:[i.jsx(wm,{size:11})," Guardrail breached"]}):t==="not_significant"?i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-slate-100 text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:[i.jsx(Ip,{size:11})," No significant difference"]}):null}const M6e="autopilot";function aX(t){var r,a,s,o,l,c,u,d;const{data:e}=ct(t?["rule-sr-live",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"successRate"}),{shouldRetryOnError:!1,revalidateOnFocus:!1}),{data:n}=ct(t?["rule-elim-live",t]:null,()=>Fe("/rule/get",{merchant_id:t,algorithm:"elimination"}),{shouldRetryOnError:!1,revalidateOnFocus:!1});return{liveHedging:((a=(r=e==null?void 0:e.config)==null?void 0:r.data)==null?void 0:a.defaultHedgingPercent)??null,liveElimination:((o=(s=n==null?void 0:n.config)==null?void 0:s.data)==null?void 0:o.threshold)??null,liveBucketSize:((c=(l=e==null?void 0:e.config)==null?void 0:l.data)==null?void 0:c.defaultBucketSize)??null,autopilotSegmentCount:(((d=(u=e==null?void 0:e.config)==null?void 0:u.data)==null?void 0:d.subLevelInputConfig)??[]).filter(f=>f.source===M6e).length}}function D6e({hedging:t,elimination:e,bucketSize:n,autopilotSegmentCount:r,honorsAutopilot:a,autopilotFeatureOn:s}){return i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Hedging %"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:t!==null?`${t}%`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Elimination threshold"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:e!==null?`Drops below ${(e*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),i.jsxs("div",{className:"flex items-center justify-between text-[13px] leading-[18px]",children:[i.jsx("span",{className:"text-slate-500",children:"Bucket size"}),i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-300",children:n!==null?`${n} requests`:i.jsx("span",{className:"text-slate-500 italic",children:"Uses default"})})]}),a&&s&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-amber-700 dark:text-amber-400 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Auto-tunes bucket size and hedging % per segment, based on your traffic volume.",i.jsx(pf,{text:r>0?`Autopilot is tuning ${r} segment${r===1?"":"s"} (by payment method / network / currency / country) — bucket size and hedging % can differ per segment and over time, so the values above are just the base config.`:"Autopilot will start tuning bucket size and hedging % per segment once enough traffic flows through it. Until then, every transaction uses the base config shown above."})]}),a&&!s&&r>0&&i.jsxs("p",{className:"flex items-center gap-1 text-[12px] text-slate-500 pt-1.5 mt-0.5 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Autopilot is off — ",r," segment",r===1?"":"s"," from earlier tuning",i.jsx(pf,{text:`Autopilot (auto-calibration) is currently disabled for this merchant. ${r} segment${r===1?"":"s"} still carry values it tuned before being turned off, but nothing is being actively adjusted right now — every transaction uses the base config shown above.`})]})]})}function I6e(t){return t==="variant_wins"||t==="variant_loses"||t==="guardrail_breached"}function $6e({verdict:t}){return t==="not_significant"?i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-slate-300 bg-slate-50 px-4 py-3 dark:border-slate-600/40 dark:bg-slate-500/10",children:[i.jsx(qu,{size:16,className:"mt-0.5 shrink-0 text-slate-500 dark:text-slate-400"}),i.jsxs("p",{className:"text-[13px] text-slate-700 dark:text-slate-300 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-slate-900 dark:text-slate-100",children:"Sample target reached — no significant difference."})," ","Control and variant are statistically tied: the delta below sits within the 95% confidence interval, so neither strategy is a proven winner. Collecting more traffic won't change this unless the true gap is larger than the current split can detect — a wider variant allocation would tighten the interval faster."]})]}):i.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(wm,{size:16,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("p",{className:"text-[13px] text-amber-800 dark:text-amber-300/90 leading-[18px]",children:[i.jsx("span",{className:"font-medium text-amber-900 dark:text-amber-200",children:"Not statistically significant yet."})," ","The deltas below are still within noise — let the experiment reach its sample target before drawing conclusions."]})]})}function _k({label:t,pct:e,accent:n}){return i.jsxs("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-semibold ${n?"bg-brand-100 text-brand-700 dark:bg-brand-900/40 dark:text-brand-300":"bg-slate-200 text-slate-600 dark:bg-slate-700 dark:text-slate-200"} leading-4`,children:[t," · ",e,"%"]})}function L6e({abData:t,isTuning:e,controlPct:n,variantPct:r,live:a,autopilotOn:s,algorithmName:o,algorithms:l}){var x,v,b,y;const c=t.control_algorithm_id==="sr_routing",u=t.variant_algorithm_id==="sr_routing",d=w=>i.jsx("span",{className:"italic text-slate-500",children:w}),f=i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"—"}),h=w=>i.jsx("span",{className:"font-medium text-brand-600 dark:text-brand-400",children:w}),p=w=>`Drops below ${(w*100).toFixed(0)}% score`,m=[{label:"Strategy",control:ly(t.control_algorithm_id,t.control_sr_config,o),variant:ly(t.variant_algorithm_id,t.variant_sr_config,o)}];if(e){const w=(x=t.variant_sr_config)==null?void 0:x.hedging_percent,j=(v=t.variant_sr_config)==null?void 0:v.elimination_threshold;m.push({label:"Hedging %",control:a.hedging!=null?`${a.hedging}%`:d("Uses default"),variant:typeof w=="number"?h(`${w}%`):d("Same as control")}),m.push({label:"Elimination threshold",control:a.elimination!=null?p(a.elimination):d("Uses default"),variant:typeof j=="number"?h(p(j)):d("Same as control")})}else{if(c||u){const w=c&&((b=t.control_sr_config)==null?void 0:b.use_autopilot)!==!1&&s,j=u&&((y=t.variant_sr_config)==null?void 0:y.use_autopilot)!==!1&&s,k=(C,E)=>C?E?d("Auto-tuned per segment"):a.hedging!=null?`${a.hedging}%`:d("Uses default"):f,S=(C,E)=>C?E?d("Auto-tuned per segment"):a.bucketSize!=null?`${a.bucketSize} requests`:d("Uses default"):f,_=C=>C?a.elimination!=null?p(a.elimination):d("Uses default"):f;m.push({label:"Hedging %",control:k(c,w),variant:k(u,j)}),m.push({label:"Elimination threshold",control:_(c),variant:_(u)}),m.push({label:"Bucket size",control:S(c,w),variant:S(u,j)})}(!c||!u)&&m.push({label:"Routing rule",control:c?d("SR scoring"):i.jsx(AO,{algorithmId:t.control_algorithm_id,algorithms:l}),variant:u?d("SR scoring"):i.jsx(AO,{algorithmId:t.variant_algorithm_id,algorithms:l})})}return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"w-[28%] px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Attribute"}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(_k,{label:"Control",pct:n})}),i.jsx("th",{className:"px-4 py-2.5",children:i.jsx(_k,{label:"Variant",pct:r,accent:!0})})]})}),i.jsx("tbody",{children:m.map((w,j)=>i.jsxs("tr",{className:j>0?"border-t border-slate-100 dark:border-[#1a1a22]":"",children:[i.jsx("td",{className:"px-4 py-2.5 align-top text-[13px] font-medium text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:w.label}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.control}),i.jsx("td",{className:"px-4 py-2.5 align-top text-slate-700 dark:text-slate-200",children:w.variant})]},w.label))})]})})}function F6e({results:t,controlPct:e,variantPct:n,costKind:r,significant:a}){const s=t.control,o=t.variant,l=(o.auth_rate-s.auth_rate)*100,c=(o.first_attempt_auth_rate-s.first_attempt_auth_rate)*100,u=(o.total_cost_saved??0)-(s.total_cost_saved??0),d=p=>a?p>0?"text-emerald-700 dark:text-emerald-400":p<0?"text-red-600":"text-slate-500":"text-slate-500 dark:text-slate-400",f="px-4 py-2.5 text-right text-slate-700 dark:text-slate-200",h=(p,m)=>i.jsxs("td",{className:"px-4 py-2.5",children:[i.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:p})," ",i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:m})]});return i.jsx("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:i.jsxs("table",{className:"w-full min-w-[520px] text-sm [font-variant-numeric:tabular-nums]",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-slate-200 bg-slate-50 text-left dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsx("th",{className:"px-4 py-2.5 text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Metric"}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(_k,{label:"Control",pct:e})}),i.jsx("th",{className:"px-4 py-2.5 text-right",children:i.jsx(_k,{label:"Variant",pct:n,accent:!0})}),i.jsx("th",{className:"px-4 py-2.5 text-right text-[12px] font-medium text-slate-500 dark:text-[#8d96aa] leading-4",children:"Delta"})]})}),i.jsxs("tbody",{children:[i.jsxs("tr",{children:[h("Net auth rate","NAR"),i.jsx("td",{className:f,children:Ob(s.auth_rate)}),i.jsx("td",{className:f,children:Ob(o.auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(l)}`,children:UF(l)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("First-attempt rate","FAAR"),i.jsx("td",{className:f,children:Ob(s.first_attempt_auth_rate)}),i.jsx("td",{className:f,children:Ob(o.first_attempt_auth_rate)}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(c)}`,children:UF(c)})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Transactions","count"),i.jsx("td",{className:f,children:s.transaction_count.toLocaleString()}),i.jsx("td",{className:f,children:o.transaction_count.toLocaleString()}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Outcome","success / fail"),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:s.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:s.failure_count.toLocaleString()})]}),i.jsxs("td",{className:"px-4 py-2.5 text-right",children:[i.jsx("span",{className:"text-emerald-700 dark:text-emerald-400",children:o.success_count.toLocaleString()})," ",i.jsx("span",{className:"text-slate-500 dark:text-slate-400",children:"/"})," ",i.jsx("span",{className:"text-red-600",children:o.failure_count.toLocaleString()})]}),i.jsx("td",{className:"px-4 py-2.5 text-right text-slate-500 dark:text-slate-400",children:"—"})]}),r&&i.jsxs("tr",{className:"border-t border-slate-100 dark:border-[#1a1a22]",children:[h("Cost saved","TCS"),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:s.total_cost_saved!=null?s.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:"px-4 py-2.5 text-right text-sky-700 dark:text-sky-400",children:o.total_cost_saved!=null?o.total_cost_saved.toLocaleString(void 0,{maximumFractionDigits:2}):"—"}),i.jsx("td",{className:`px-4 py-2.5 text-right font-medium ${d(u)}`,children:`${u>0?"+":""}${u.toLocaleString(void 0,{maximumFractionDigits:2})}`})]})]})]})})}function B6e(t){return new Intl.DateTimeFormat(void 0,{dateStyle:"short",timeStyle:"short"}).format(new Date(t))}function z6e({algorithm:t,isActive:e,merchantId:n,algorithmName:r,algorithms:a,onActivate:s,onStop:o,onEdit:l,onDelete:c,onClone:u,realPaymentsOn:d}){var Z,pe;const f=Ao(),h=(Z=t.algorithm_data||t.algorithm)==null?void 0:Z.data,p=nX(h),m=p==="sr_config_tuning",x=T6e(h),{liveHedging:v,liveElimination:b,liveBucketSize:y}=aX(n||void 0),w=Sl(n||void 0),j=w.isEnabled("auto-calibration")||w.isEnabled("autopilot"),k=(pe=h==null?void 0:h.variant_sr_config)==null?void 0:pe.margin,S=h?`/analytics/experiment/${t.id}/results?min_sample_size=${h.min_sample_size}&guardrail_threshold_pp=${h.guardrail_threshold_pp}${k!==void 0?`&evaluation_margin=${k}`:""}`:null,{data:_,isLoading:C}=ct(n&&S?S:null,Dt,{refreshInterval:6e4}),E=20,[P,R]=g.useState(1),A=`/analytics/experiment/${t.id}/transactions?page_size=${E}&page=${P}`,{data:T,isLoading:D}=ct(n?A:null,Dt,{refreshInterval:6e4});function L(ae){if(!h)return"—";const ue=ae==="control"?h.control_algorithm_id:h.variant_algorithm_id,de=ae==="control"?h.control_sr_config:h.variant_sr_config;return ue==="sr_routing"&&m?ae==="variant"?"SR Routing (custom params)":"SR Routing (live config)":ly(ue,de,r)}function X(ae,ue){if(!(ue==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing"))return;const Q=`/audit?range=1d&exclude_routing_approach=NTW_BASED_ROUTING&payment_id=${encodeURIComponent(ae)}`;window.open(Q,"_blank")}function J(ae,ue){if(ue<=7)return Array.from({length:ue},(he,be)=>be+1);const Q=Math.floor(5/2);let fe=ae-Q,ne=ae+Q;fe<2&&(ne+=2-fe,fe=2),ne>ue-1&&(fe-=ne-(ue-1),ne=ue-1),fe=Math.max(2,fe),ne=Math.min(ue-1,ne);const ce=[1];fe>2&&ce.push(null);for(let he=fe;he<=ne;he++)ce.push(he);return ne{if(q!=="active"||U<=0||U>=Y)return null;const ae=t.modified_at?Date.parse(t.modified_at):NaN;if(!Number.isFinite(ae))return null;const ue=Date.now()-ae;if(ue<=0)return null;const Q=ue/U*(Y-U)/36e5;if(!Number.isFinite(Q)||Q<=0)return null;const fe="at current volume";return Q<1?`~${Math.max(1,Math.round(Q*60))} min remaining ${fe}`:Q<48?`~${Math.round(Q)} hrs remaining ${fe}`:`~${Math.round(Q/24)} days remaining ${fe}`})(),z=h?[{label:"Traffic split",value:`${G}% / ${I}%`},{label:"Sample target",value:`${Y.toLocaleString()} txns`},{label:"Guardrail",value:`${h.guardrail_threshold_pp}pp`}]:[];return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white px-5 py-5 dark:border-[#222226] dark:bg-[#0c0c10]",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx("div",{className:"min-w-0",children:i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("h2",{className:"text-lg font-semibold tracking-tight text-slate-900 dark:text-white",children:t.name}),i.jsx(P6e,{kind:p}),q==="active"&&i.jsx(Me,{variant:"green",children:"Active"}),q==="paused"&&i.jsx(Me,{variant:"orange",children:"Not collecting"}),q==="inactive"&&i.jsx(Me,{variant:"gray",children:"Inactive"})]})}),i.jsx("div",{className:"flex shrink-0 items-center gap-2",children:e?i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(nf,{size:13})," Duplicate"]}),i.jsxs(we,{size:"sm",variant:"danger",onClick:o,disabled:!f,children:[i.jsx(_y,{size:13})," Stop"]})]}):i.jsxs(i.Fragment,{children:[i.jsxs(we,{size:"sm",variant:"secondary",onClick:u,disabled:!f,children:[i.jsx(nf,{size:13})," Duplicate"]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:l,disabled:!f,children:[i.jsx(jl,{size:13})," Edit"]}),i.jsxs(we,{size:"sm",variant:"secondary",onClick:c,disabled:!f,children:[i.jsx(wn,{size:13})," Delete"]}),i.jsx(we,{size:"sm",variant:"primary",onClick:s,disabled:!f,children:"Activate"})]})})]}),z.length>0&&i.jsx("div",{className:"mt-4 flex flex-wrap gap-y-3",children:z.map((ae,ue)=>i.jsxs("div",{className:`min-w-[8rem] pr-6 ${ue>0?"border-l border-slate-200 pl-6 dark:border-[#222226]":""}`,children:[i.jsx("p",{className:"text-[12px] text-slate-500 dark:text-[#8d96aa] leading-4",children:ae.label}),i.jsx("p",{className:"mt-0.5 text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:ae.value})]},ae.label))}),_&&i.jsxs("div",{className:"mt-5 space-y-2 border-t border-slate-100 pt-4 dark:border-[#1a1a22]",children:[i.jsxs("div",{className:"flex items-end justify-between",children:[i.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.08em] text-slate-500 dark:text-[#8d96aa] leading-4",children:"Transactions collected"}),i.jsxs("p",{className:"text-[15px] font-semibold text-slate-800 dark:text-slate-100 [font-variant-numeric:tabular-nums] leading-[22px]",children:[U.toLocaleString()," ",i.jsxs("span",{className:"text-slate-500",children:["/ ",Y.toLocaleString()]})]})]}),i.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-slate-100 dark:bg-[#232833]",children:i.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${M?"bg-emerald-500":"bg-brand-500"}`,style:{width:`${W}%`}})}),i.jsxs("p",{className:"text-[12px] text-slate-500 max-w-[57ch] leading-4",children:[W,"% of the ",Y.toLocaleString(),"-transaction target",B?` · ${B}`:""]})]})]}),h&&i.jsxs("section",{className:"space-y-2.5 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsx("h3",{className:ra,children:"Configuration"}),i.jsx(L6e,{abData:h,isTuning:m,controlPct:G,variantPct:I,live:{hedging:v,elimination:b,bucketSize:y},autopilotOn:j,algorithmName:r,algorithms:a})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:ra,children:"Results"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:"Updates every 60 seconds"})]}),_&&i.jsx(R6e,{verdict:_.verdict})]}),C&&!_?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[i.jsx(at,{size:14})," Loading stats…"]}):_?i.jsxs("div",{className:"space-y-4",children:[!M&&i.jsx($6e,{verdict:_.verdict}),i.jsx(F6e,{results:_,controlPct:G,variantPct:I,costKind:x,significant:M}),_.verdict==="guardrail_breached"&&i.jsxs($a,{tone:"danger",children:[i.jsx(qNe,{size:12}),"Variant auth rate dropped ",Math.abs(_.delta_pp).toFixed(2),"pp below control — beyond the ",h==null?void 0:h.guardrail_threshold_pp,"pp guardrail. Consider stopping the experiment."]})]}):i.jsx("p",{className:"text-sm italic text-slate-500",children:"Stats unavailable — analytics pipeline may not be configured in this environment."})]}),i.jsxs("section",{className:"space-y-3 border-t border-slate-200 dark:border-[#262d3a] pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h3",{className:ra,children:"Transactions"}),i.jsx("p",{className:"mt-0.5 text-[12px] text-slate-500 leading-4",children:T?`${T.total.toLocaleString()} decisions`:"Loading…"})]}),D&&i.jsx(at,{size:14})]}),i.jsxs("div",{className:"overflow-x-auto rounded-xl border border-slate-200 dark:border-[#222226]",children:[i.jsx("table",{className:"w-full text-sm",children:i.jsx("thead",{children:i.jsxs("tr",{className:"text-left text-xs text-slate-500 bg-slate-50 dark:bg-[#0c0c10] border-b border-slate-200 dark:border-[#222226]",children:[i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Arm"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Routing"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Payment ID"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Gateway"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Status"}),i.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Time"})]})})}),i.jsxs("div",{className:"max-h-[400px] overflow-y-auto",children:[i.jsx("table",{className:"w-full text-base",children:i.jsx("tbody",{children:T!=null&&T.transactions.length?T.transactions.map((ae,ue)=>{const de=ae.variant_arm==="control"?(h==null?void 0:h.control_algorithm_id)==="sr_routing":(h==null?void 0:h.variant_algorithm_id)==="sr_routing";return i.jsxs("tr",{onClick:()=>X(ae.payment_id,ae.variant_arm),title:de?"Open in Decision Audit":"Audit trail not available for static arm payments",className:`border-b border-slate-50 dark:border-[#131318] transition-colors ${de?"cursor-pointer hover:bg-slate-50 dark:hover:bg-[#0f0f16]":"cursor-default opacity-60"}`,children:[i.jsx("td",{className:"px-4 py-2.5",children:i.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-semibold ${ae.variant_arm==="control"?"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300":"bg-brand-100 text-brand-700 dark:bg-brand-900/30 dark:text-brand-300"} leading-4`,children:ae.variant_arm==="control"?"Control":"Variant"})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 dark:text-slate-400 whitespace-nowrap",children:L(ae.variant_arm)}),i.jsx("td",{className:"px-4 py-3 font-mono text-sm text-slate-600 dark:text-slate-400 max-w-[180px] truncate",children:ae.payment_id}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-700 dark:text-slate-300",children:ae.gateway??"—"}),i.jsx("td",{className:"px-4 py-3",children:ae.status==="success"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400 leading-4",children:"success"}):ae.status==="failure"?i.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400 leading-4",children:"failure"}):i.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 leading-4",title:"Payment was routed but no outcome was recorded — counted against auth rate",children:[i.jsx(PW,{size:9})," no outcome"]})}),i.jsx("td",{className:"px-4 py-3 text-sm text-slate-500 whitespace-nowrap",children:B6e(ae.created_at_ms)})]},`${ae.payment_id}-${ue}`)}):i.jsx("tr",{children:i.jsx("td",{colSpan:6,className:"px-4 py-8 text-base text-slate-500 text-center",children:D?"Loading…":"No transactions logged yet for this experiment."})})})}),T&&T.total>E&&(()=>{const ae=Math.ceil(T.total/E);return i.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-t border-slate-100 dark:border-[#1e2330]",children:[i.jsxs("p",{className:"text-sm text-slate-500",children:["Page ",P," of ",ae," · ",T.total.toLocaleString()," total"]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("button",{type:"button",onClick:()=>R(ue=>Math.max(1,ue-1)),disabled:P===1||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"← Prev"}),J(P,ae).map((ue,de)=>ue===null?i.jsx("span",{className:"px-1 text-sm text-slate-500",children:"…"},`ellipsis-${de}`):i.jsx("button",{type:"button",onClick:()=>R(ue),disabled:D,className:`min-w-[28px] px-2 py-1 rounded-md border text-sm transition-colors ${ue===P?"border-brand-500 bg-brand-500 text-white":"border-slate-200 dark:border-[#222226] text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22]"}`,children:ue},ue)),i.jsx("button",{type:"button",onClick:()=>R(ue=>Math.min(ae,ue+1)),disabled:P===ae||D,className:"px-2.5 py-1 rounded-md border border-slate-200 dark:border-[#222226] text-sm text-slate-600 dark:text-slate-400 hover:bg-slate-50 dark:hover:bg-[#1a1a22] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:"Next →"})]})]})})()]})]})]})]})}function U6e({label:t,splitPct:e,config:n,onChange:r}){return i.jsxs("div",{className:"rounded-xl border border-brand-200 dark:border-brand-800/50 bg-brand-50/30 dark:bg-brand-900/10 px-4 py-4 space-y-3",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-brand-100 px-2 py-0.5 text-[11px] font-semibold text-brand-700 dark:bg-brand-900/40 dark:text-brand-300 leading-4",children:[t," (",e,"%)"]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:["Hedging %",i.jsx(pf,{text:"Share of traffic sent to non-top gateways to keep their scores fresh (the explore-exploit tradeoff)."})]}),i.jsx("input",{type:"number",min:0,max:100,step:1,value:n.hedgingPercent??"",placeholder:"e.g. 5",onChange:a=>r(s=>({...s,hedgingPercent:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${ep}`})]}),i.jsxs("div",{children:[i.jsxs("label",{className:`mb-1.5 flex items-center gap-1 ${ks}`,children:["Elimination threshold (0–1)",i.jsx(pf,{text:"SR score (0–1) below which a gateway is dropped from routing."})]}),i.jsx("input",{type:"number",min:0,max:1,step:.01,value:n.eliminationThreshold??"",placeholder:"e.g. 0.70",onChange:a=>r(s=>({...s,eliminationThreshold:a.target.value===""?null:Number(a.target.value)})),className:`w-full ${ep}`})]})]})]})}function VF({form:t,setForm:e,eligibleAlgorithms:n,saving:r,error:a,success:s,createdId:o,merchantId:l,isEditing:c,onCreate:u,onActivateCreated:d,onCancel:f}){const h=Ao(),p=Sl(l||void 0),m=p.isEnabled("multi-objective-routing"),x=p.isEnabled("auto-calibration")||p.isEnabled("autopilot"),v=["sr_auth",...x?["sr_auth_autopilot"]:[],...m?["sr_mo_manual"]:[],...m&&x?["sr_mo_autopilot"]:[]],{liveHedging:b,liveElimination:y,liveBucketSize:w,autopilotSegmentCount:j}=aX(l||void 0),[k,S]=g.useState(!FF.includes(t.minSampleSize)),_=C=>`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors ${t.experimentType===C?"bg-white text-slate-900 shadow-sm dark:bg-[#2a3140] dark:text-white":"text-slate-500 hover:text-slate-800 dark:text-slate-400 dark:hover:text-white"}`;return i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsx("h2",{className:ra,children:c?"Edit experiment":"New experiment"})}),i.jsxs(He,{className:"space-y-6",children:[c&&i.jsxs("div",{children:[i.jsx(nN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${ep}`,value:t.name,onChange:C=>e(E=>({...E,name:C.target.value}))}),i.jsx("p",{className:"mt-1.5 text-[13px] text-slate-500 dark:text-[#8d96aa] leading-[18px]",children:"Only the name can be changed. To test a different routing setup, create a new experiment."})]}),!c&&i.jsxs(i.Fragment,{children:[i.jsxs(rN,{children:[i.jsxs("div",{children:[i.jsx("label",{className:`mb-2 block ${ks}`,children:"Experiment type"}),i.jsxs("div",{className:"inline-flex rounded-lg border border-slate-200 bg-slate-100 p-0.5 dark:border-[#222226] dark:bg-[#14181f]",children:[i.jsxs("button",{type:"button",className:_("algorithm_comparison"),onClick:()=>e(C=>({...C,experimentType:"algorithm_comparison"})),children:[i.jsx(VNe,{size:13})," Algorithm comparison"]}),i.jsxs("button",{type:"button",className:_("sr_config_tuning"),onClick:()=>e(C=>({...C,experimentType:"sr_config_tuning"})),children:[i.jsx(zW,{size:13})," SR config tuning"]})]}),i.jsxs("div",{className:"mt-2.5 flex items-start gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-[#14181f]",children:[i.jsx(qu,{size:14,className:"mt-0.5 shrink-0 text-slate-500"}),i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#9ca7ba] leading-[18px]",children:O6e[t.experimentType]})]})]}),i.jsxs("div",{children:[i.jsx(nN,{required:!0,children:"Experiment name"}),i.jsx("input",{className:`w-full ${ep}`,placeholder:t.experimentType==="sr_config_tuning"?"e.g. Hedging 10% vs 5%":"e.g. Stripe vs Checkout.com",value:t.name,onChange:C=>e(E=>({...E,name:C.target.value}))})]}),t.experimentType==="algorithm_comparison"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i.jsx(zF,{label:"Control",help:"Your current strategy — the baseline.",algorithms:n,value:t.controlAlgorithmId,excludeId:t.variantAlgorithmId,allowedSrStrategies:v,liveSrConfig:{hedging:b,elimination:y,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:C=>e(E=>({...E,controlAlgorithmId:C}))}),i.jsx(zF,{label:"Variant",help:"The new strategy you want to test.",accent:!0,algorithms:n,value:t.variantAlgorithmId,excludeId:t.controlAlgorithmId,allowedSrStrategies:v,liveSrConfig:{hedging:b,elimination:y,bucketSize:w,autopilotSegmentCount:j,autopilotFeatureOn:x},onChange:C=>e(E=>({...E,variantAlgorithmId:C}))})]}),t.experimentType==="sr_config_tuning"&&i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[i.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] bg-slate-50/50 dark:bg-[#0c0c10] px-4 py-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"inline-flex items-center rounded-full bg-slate-200 px-2 py-0.5 text-[11px] font-semibold text-slate-600 dark:bg-slate-700 dark:text-slate-200 leading-4",children:["Control (",100-t.variantSplitPct,"%)"]}),i.jsx("span",{className:"text-[12px] text-slate-500 leading-4",children:"current config"})]}),i.jsxs("div",{className:"space-y-2.5",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Hedging %"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:b!==null?`${b}%`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-[13px] text-slate-500 mb-0.5 leading-[18px]",children:"Elimination threshold"}),i.jsx("p",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:y!==null?`Drops below ${(y*100).toFixed(0)}% score`:i.jsx("span",{className:"text-slate-500 italic text-xs",children:"Uses default"})})]})]}),i.jsxs("p",{className:"text-[12px] text-slate-500 pt-1 border-t border-slate-100 dark:border-[#1e2330] leading-4",children:["Edit in ",i.jsx("span",{className:"font-medium",children:"SR Routing → Scoring / Elimination"})]})]}),i.jsx(U6e,{label:"Variant",splitPct:t.variantSplitPct,config:t.variantSrConfig,onChange:C=>e(E=>({...E,variantSrConfig:C(E.variantSrConfig)}))})]})]}),i.jsxs(rN,{divide:!0,children:[i.jsxs("div",{children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("span",{className:ks,children:"Traffic allocation"}),i.jsxs("span",{className:"text-[13px] tabular-nums text-slate-500 dark:text-slate-400 leading-[18px]",children:[100-t.variantSplitPct,"% control",i.jsx("span",{className:"mx-1.5 text-slate-500 dark:text-slate-400",children:"/"}),i.jsxs("span",{className:"font-semibold text-brand-600 dark:text-brand-400",children:[t.variantSplitPct,"% variant"]})]})]}),i.jsxs("div",{className:"relative rounded-full py-2 focus-within:ring-2 focus-within:ring-brand-500/40",children:[i.jsxs("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full",children:[i.jsx("div",{className:"bg-slate-200 dark:bg-[#232833] transition-all duration-100",style:{width:`${100-t.variantSplitPct}%`}}),i.jsx("div",{className:"flex-1 bg-brand-500"})]}),i.jsx("div",{className:"pointer-events-none absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-brand-500 bg-white shadow-sm dark:bg-slate-900",style:{left:`${100-t.variantSplitPct}%`}}),i.jsx("input",{type:"range",min:0,max:100,step:1,value:100-t.variantSplitPct,onChange:C=>{const E=Math.min(30,Math.max(5,100-Number(C.target.value)));e(P=>({...P,variantSplitPct:E}))},className:"absolute inset-0 h-full w-full cursor-pointer opacity-0","aria-label":"Control traffic percentage"})]})]}),i.jsxs("div",{children:[i.jsx(nN,{hint:"Transactions the experiment collects before it reports a significance verdict.",children:"Sample target"}),i.jsxs("div",{className:"inline-flex flex-wrap items-center gap-0.5 rounded-lg border border-slate-200 p-0.5 dark:border-[#222226]",children:[FF.map(C=>{const E=!k&&t.minSampleSize===C;return i.jsx("button",{type:"button",onClick:()=>{S(!1),e(P=>({...P,minSampleSize:C}))},className:`rounded-md px-3 py-1.5 text-xs font-medium tabular-nums transition-colors ${E?"bg-brand-500 text-white":"text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white"}`,children:C.toLocaleString()},C)}),k?i.jsx("input",{type:"text",inputMode:"numeric",autoFocus:!0,placeholder:"Custom",className:"w-24 rounded-md bg-transparent px-2.5 py-1.5 text-xs tabular-nums focus:outline-none focus:border-brand-500",value:t.minSampleSize?t.minSampleSize.toLocaleString():"",onChange:C=>e(E=>({...E,minSampleSize:Number(C.target.value.replace(/[^\d]/g,""))}))}):i.jsx("button",{type:"button",onClick:()=>S(!0),className:"rounded-md px-3 py-1.5 text-xs font-medium text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",children:"Custom…"})]})]})]}),i.jsx(rN,{divide:!0,children:i.jsxs("label",{className:"flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-slate-700 dark:text-[#c7cfdd]",children:[i.jsx("span",{children:"Flag if variant auth drops by"}),i.jsx("input",{type:"number",min:.5,max:20,step:.5,className:`w-16 ${ep}`,value:t.guardrailThresholdPp,onChange:C=>e(E=>({...E,guardrailThresholdPp:Number(C.target.value)}))}),i.jsx("span",{children:"percentage points below control"}),i.jsx(pf,{text:"Percentage points, not percent — a 3 here flags the test when the variant's auth rate is 3+ points under control (say 89% vs 92%)."})]})})]}),i.jsx(vt,{error:a}),s&&i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-emerald-200 bg-emerald-50 px-5 py-4 text-base text-emerald-800 dark:border-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-200",children:[i.jsx("span",{children:s}),o&&i.jsx(we,{size:"sm",variant:"primary",onClick:()=>d(o),disabled:!h,children:"Activate now"})]}),i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-slate-100 dark:border-[#1e2330] pt-5",children:[f&&i.jsx(we,{variant:"secondary",onClick:f,disabled:r,children:"Cancel"}),i.jsx(we,{variant:"primary",onClick:u,disabled:r||!l||!h,children:r?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:14})," ",c?"Saving…":"Creating…"]}):c?"Save changes":"Create experiment"})]})]})]})}const Pg={name:"",experimentType:"algorithm_comparison",controlAlgorithmId:"",variantAlgorithmId:"",variantSplitPct:10,minSampleSize:5e3,guardrailThresholdPp:3,variantSrConfig:{...E6e}};function V6e(){const t=Ao(),{merchantId:e}=$r(),{mutate:n}=Wk(),{data:r,mutate:a}=ct(e?["routing-list",e]:null,()=>Fe(`/routing/list/${e}`)),{data:s,mutate:o}=ct(e?["active-routing",e]:null,()=>Fe(`/routing/list/active/${e}`)),l=Sl(e||void 0),c=l.isEnabled("ab-test-real-payments"),u=s==null?void 0:s.find(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)==="ab_test"}),d=(r==null?void 0:r.filter(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)==="ab_test"}))??[],f=(r==null?void 0:r.filter(ce=>{var he;return((he=ce.algorithm_data||ce.algorithm)==null?void 0:he.type)!=="ab_test"}))??[],[h,p]=vc(),m=h.get("experiment"),[x,v]=g.useState(!1),b=d.find(ce=>ce.id===m)??null,[y,w]=g.useState({...Pg}),[j,k]=g.useState(!1),[S,_]=g.useState(null),[C,E]=g.useState(null),[P,R]=g.useState(null),[A,T]=g.useState(null),[D,L]=g.useState(null),[X,J]=g.useState(null),[U,Y]=g.useState(!1),[W,G]=g.useState(null);g.useEffect(()=>{!m&&!x&&u&&p({experiment:u.id},{replace:!0})},[u==null?void 0:u.id]);function I(ce){p({experiment:ce},{replace:!0}),v(!1)}function q(){p({},{replace:!0}),v(!0),G(null),w({...Pg}),E(null),_(null)}function M(ce){const he=LF(ce);he&&(w(he),G(ce.id),v(!0),E(null),_(null))}function B(ce){const he=LF(ce);he&&(p({},{replace:!0}),w({...he,name:`${he.name} (copy)`}),G(null),v(!0),E(null),_(null))}function z(){v(!1),G(null),w({...Pg}),_(null),E(null),u&&p({experiment:u.id},{replace:!0})}async function Z(){if(!e)return;if(W){if(!y.name.trim()){_("Enter an experiment name");return}const he=d.find(Pe=>Pe.id===W),be=he&&(he.algorithm_data||he.algorithm);if(!he||!be){_("Could not load the experiment to edit");return}k(!0),_(null),E(null);try{await Fe("/routing/update",{created_by:e,routing_algorithm_id:W,name:y.name.trim(),description:he.description??"",algorithm:be}),await a(),E(`"${y.name.trim()}" updated.`),p({experiment:W},{replace:!0}),G(null),w({...Pg}),v(!1)}catch(Pe){_(Pe instanceof Error?Pe.message:"Failed to update experiment")}finally{k(!1)}return}const ce=S6e(y);if(ce){_(ce);return}k(!0),_(null),E(null);try{const he=C6e(y,e),be=await Fe("/routing/create",he),Pe=be.rule_id||be.id;R(Pe),E(`"${y.name}" created.`),w({...Pg}),await a(),p({experiment:Pe},{replace:!0}),v(!1)}catch(he){_(he instanceof Error?he.message:"Failed to create experiment")}finally{k(!1)}}async function pe(ce){if(e)try{await Fe("/routing/delete",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a()]),m===ce&&p({},{replace:!0})}catch(he){_(he instanceof Error?he.message:"Failed to delete experiment")}finally{J(null)}}async function ae(ce){if(!!(u&&u.id!==ce)||!c){T(ce);return}await ue(ce)}async function ue(ce){if(e)try{c||await l.setFeatureEnabled("ab-test-real-payments",!0),await Fe("/routing/activate",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a()]),R(null),E(null)}catch(he){_(he instanceof Error?he.message:"Failed to activate experiment")}}async function de(ce){Y(!0),_(null);try{await l.setFeatureEnabled("ab-test-real-payments",ce)}catch(he){_(he instanceof Error?he.message:"Failed to enable A/B testing on live traffic")}finally{Y(!1)}}async function Q(ce){if(e)try{await Fe("/routing/deactivate",{created_by:e,routing_algorithm_id:ce}),await Promise.all([o(),a(),n(["active-routing",e])])}catch(he){_(he instanceof Error?he.message:"Failed to stop experiment")}finally{L(null)}}function fe(ce){var he;return ce==="sr_routing"?"SR Routing (Dynamic)":((he=r==null?void 0:r.find(be=>be.id===ce))==null?void 0:he.name)??ce}const ne=x?"create":b?"detail":d.length===0?"create":"empty";return i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("div",{children:i.jsx(Ba,{title:"A/B Testing",description:"Compare routing strategies on live traffic with statistical significance."})}),ne!=="create"&&i.jsxs(we,{variant:"secondary",size:"sm",onClick:q,disabled:!t,children:[i.jsx(Qn,{size:14})," New experiment"]})]}),u&&l.data&&!c&&i.jsxs("div",{className:"flex flex-wrap items-start gap-3 rounded-xl border border-amber-300 bg-amber-50 px-4 py-3 dark:border-amber-500/30 dark:bg-amber-500/10",children:[i.jsx(wm,{size:18,className:"mt-0.5 shrink-0 text-amber-700 dark:text-amber-400"}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("p",{className:"text-sm font-medium text-amber-900 dark:text-amber-200",children:["“",u.name,"” is active but not collecting results"]}),i.jsx("p",{className:"mt-0.5 text-[13px] text-amber-800/90 dark:text-amber-300/90 max-w-[57ch] leading-[18px]",children:"“A/B test on real payments” is off, so live traffic isn’t being split between the arms. Turn it back on to resume recording stats."})]}),i.jsx(we,{size:"sm",variant:"primary",onClick:()=>de(!0),disabled:U,children:U?i.jsxs(i.Fragment,{children:[i.jsx(at,{size:13})," Enabling…"]}):"Enable live-traffic testing"})]}),e&&r&&d.length===0?i.jsx("div",{className:"mx-auto w-full max-w-3xl",children:i.jsx(VF,{form:y,setForm:w,eligibleAlgorithms:f,saving:j,error:S,success:C,createdId:P,merchantId:e,isEditing:W!==null,onCreate:Z,onActivateCreated:ce=>ae(ce)})}):i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[280px_1fr] gap-5",children:[i.jsx("div",{className:"space-y-1",children:e?r?i.jsx("div",{className:"rounded-xl border border-slate-200 dark:border-[#222226] overflow-hidden",children:d.map((ce,he)=>{var Be;const be=(Be=ce.algorithm_data||ce.algorithm)==null?void 0:Be.data,Pe=(u==null?void 0:u.id)===ce.id,Ce=m===ce.id,Re=nX(be);return i.jsxs("button",{type:"button",onClick:()=>I(ce.id),className:`relative w-full text-left pl-4 pr-3 py-3 transition-colors ${he>0?"border-t border-slate-100 dark:border-[#1e2330]":""} ${Ce?"bg-brand-50 dark:bg-brand-900/20":"hover:bg-slate-50 dark:hover:bg-[#0f0f16]"}`,children:[Ce&&i.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-brand-500"}),i.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[i.jsx("p",{className:`truncate text-base font-medium ${Ce?"text-brand-700 dark:text-brand-300":"text-slate-800 dark:text-white"}`,children:ce.name}),Pe&&i.jsx("span",{className:"shrink-0 inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[11px] font-semibold bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 leading-4",children:"● Active"})]}),be&&i.jsx("p",{className:"text-[13px] text-slate-500 dark:text-[#8d96aa] mt-0.5 truncate max-w-[57ch] leading-[18px]",children:Re==="sr_config_tuning"?"SR config tuning":`${ly(be.control_algorithm_id,be.control_sr_config,fe)} → ${ly(be.variant_algorithm_id,be.variant_sr_config,fe)}`})]},ce.id)})}):i.jsx("p",{className:"px-2 py-2 text-sm text-slate-500",children:"Loading…"}):i.jsx("p",{className:"px-2 py-2 text-base text-slate-500",children:"Set merchant ID to load experiments."})}),i.jsxs("div",{children:[ne==="detail"&&b&&e&&i.jsx(z6e,{algorithm:b,isActive:(u==null?void 0:u.id)===b.id,merchantId:e,algorithmName:fe,algorithms:r??[],onActivate:()=>ae(b.id),onStop:()=>L(b.id),onEdit:()=>M(b),onClone:()=>B(b),onDelete:()=>J(b.id),realPaymentsOn:c}),ne==="create"&&i.jsx(VF,{form:y,setForm:w,eligibleAlgorithms:f,saving:j,error:S,success:C,createdId:P,merchantId:e,isEditing:W!==null,onCreate:Z,onActivateCreated:ce=>ae(ce),onCancel:z}),ne==="empty"&&i.jsxs("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-slate-200 dark:border-[#222226] py-16 text-center",children:[i.jsx($p,{size:26,className:"text-slate-500 dark:text-slate-400 mb-2"}),i.jsx("p",{className:"text-base text-slate-500",children:"Select an experiment to view details"})]})]})]}),(()=>{const ce=!!(A&&u&&u.id!==A),he=!c,be=[ce?"An experiment is already running — activating this one replaces it.":null,he?"This also turns on “A/B test on real payments”, so live traffic is split between the arms and results start collecting. You can stop the experiment at any time to revert to standard routing.":null].filter(Boolean).join(" ");return i.jsx(Hs,{open:A!==null,title:ce?"Switch active experiment?":"Route live traffic through this experiment?",description:be,confirmLabel:he?"Enable & activate":"Yes, activate",variant:"primary",onConfirm:()=>{const Pe=A;T(null),ue(Pe)},onCancel:()=>T(null)})})(),i.jsx(Hs,{open:D!==null,title:"Stop experiment?",description:"This will deactivate the experiment and restore default routing. Results will remain available.",confirmLabel:"Stop experiment",variant:"danger",onConfirm:()=>{Q(D)},onCancel:()=>L(null)}),i.jsx(Hs,{open:X!==null,title:"Delete experiment?",description:"This permanently deletes the experiment definition. Any results already collected remain in analytics. This cannot be undone.",confirmLabel:"Delete",variant:"danger",onConfirm:()=>{pe(X)},onCancel:()=>J(null)})]})}const sX="theme";function iX(){if(typeof window>"u")return null;const t=window.localStorage.getItem(sX);return t==="dark"||t==="light"?t:null}function W6e(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Om(){return iX()??W6e()}function MP(t=Om()){typeof document>"u"||document.documentElement.classList.toggle("dark",t==="dark")}function Uy(t){typeof window<"u"&&window.localStorage.setItem(sX,t),MP(t)}function H6e(){const t=wl(),e=Hr(),{user:n,clearAuth:r}=hr(),[a,s]=g.useState(null),[o,l]=g.useState(()=>Om()==="dark"),[c,u]=g.useState(!1),d=g.useRef(null),f=a??t.pathname,h=n!=null&&n.email?n.email.slice(0,2).toUpperCase():"ME";g.useEffect(()=>{function x(v){d.current&&!d.current.contains(v.target)&&u(!1)}return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[]),g.useEffect(()=>{if(typeof window.matchMedia!="function")return;const x=window.matchMedia("(prefers-color-scheme: dark)"),v=()=>{if(iX())return;const b=x.matches;l(b),MP(b?"dark":"light")};return v(),x.addEventListener("change",v),()=>x.removeEventListener("change",v)},[]);async function p(){u(!1);try{await aa("/auth/logout",{method:"POST"})}catch{}r(),e("/login",{replace:!0})}function m(){const x=o?"light":"dark";l(x==="dark"),Uy(x)}return g.useLayoutEffect(()=>{if(!a)return;(t.pathname===a||t.pathname.startsWith(`${a}/`))&&s(null)},[t.pathname,a]),i.jsxs("aside",{className:"relative z-20 flex h-screen w-64 shrink-0 flex-col border-r border-slate-200 bg-white transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d]",children:[i.jsx("div",{className:"flex h-[78px] shrink-0 items-center border-b border-slate-200 px-4 transition-colors duration-300 dark:border-[#22262f]",children:i.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 434 56",fill:"none",className:"h-14 w-auto","aria-label":"Juspay Decision Engine",role:"img",children:[i.jsx("defs",{children:i.jsx("style",{children:".de-brand{font-family:'Google Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:30px;dominant-baseline:central}.de-bold{font-weight:700;letter-spacing:-0.02em}.de-semi{font-weight:600;letter-spacing:-0.01em}"})}),i.jsxs("g",{transform:"translate(0, 1)",children:[i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2375 54.3079C25.9366 54.3441 24.6718 54.2355 23.3708 54.0545C19.8655 53.5477 16.577 52.4255 13.5414 50.5792C6.81987 46.5246 2.51952 40.6238 0.748782 32.8766C0.35127 31.139 0.170583 29.3651 0.170583 27.5912C0.134446 20.4957 2.44724 14.2691 7.1451 8.98363C11.2286 4.42224 16.2879 1.63472 22.2505 0.476271C23.9129 0.150457 25.5752 -0.0305508 27.2375 0.0418522C27.2375 2.75697 27.2375 5.43588 27.2375 8.15099C27.1652 8.18719 27.093 8.2234 27.0207 8.2958C26.045 8.98363 25.0693 9.70766 24.1297 10.4679C21.9976 12.2056 19.9739 14.0518 18.2754 16.2601C15.9988 19.1925 14.481 22.4144 14.2642 26.2156C14.1558 28.0256 14.3726 29.7995 14.9508 31.501C16.3601 35.7366 20.7328 40.1169 26.8761 40.2255C27.2375 40.2255 27.3098 40.298 27.3098 40.6962C27.2736 42.5424 27.2736 46.235 27.2736 46.235C27.2736 46.235 27.2736 46.4522 27.2736 46.5608C27.2375 49.1311 27.2375 51.7014 27.2375 54.3079Z",fill:"#0099FF"}),i.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M27.2368 8.11469C27.2368 8.11469 27.2368 2.72066 27.2368 0.00554404C28.7184 -0.0306575 30.1639 0.114149 31.6094 0.331358C34.3197 0.765776 36.9216 1.56221 39.379 2.82926C44.4743 5.47197 48.4856 9.23693 51.1959 14.3775C52.7498 17.3461 53.7617 20.4956 54.1592 23.7899C54.6289 27.6635 54.2676 31.5009 53.1112 35.2296C51.7741 39.4652 49.5336 43.194 46.3896 46.3435C42.5591 50.1447 38.0057 52.6064 32.7297 53.7286C30.9228 54.0906 29.0798 54.3078 27.2368 54.2716C27.2368 51.6651 27.2368 49.0948 27.2368 46.4883C27.2368 46.3797 27.2368 46.1987 27.2368 46.1987C27.2368 46.1987 27.3452 46.1263 27.3813 46.0901C30.2001 44.099 32.8742 41.9269 35.187 39.3204C36.7048 37.6189 38.0057 35.8088 38.9092 33.7092C40.174 30.7406 40.6799 27.6997 40.0294 24.4778C38.873 18.6131 33.6331 14.2327 27.5982 14.0879C27.2007 14.0879 27.2368 13.7621 27.2368 13.7621V8.11469Z",fill:"#0561E2"})]}),i.jsx("text",{x:"72",y:"28",className:"de-brand de-bold fill-[#0F172A] dark:fill-white",children:"JUSPAY"}),i.jsx("text",{x:"200",y:"28",className:"de-brand de-semi fill-[#475569] dark:fill-[#9CA3AF]",children:"Decision Engine"})]})}),i.jsxs("nav",{className:"flex-1 space-y-0.5 overflow-y-auto px-4 py-4",children:[i.jsx(Cs,{to:"/",icon:DW,end:!0,selectedPath:f,onNavigate:s,children:"Overview"}),i.jsx(Cs,{to:"/analytics",icon:Yb,selectedPath:f,onNavigate:s,children:"Analytics"}),i.jsx(Cs,{to:"/audit",icon:Uh,selectedPath:f,onNavigate:s,children:"Decision Audit"}),i.jsx(Cs,{to:"/events",icon:zw,selectedPath:f,onNavigate:s,children:"Routing Events"}),i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Routing"})}),i.jsx(Cs,{to:"/routing",icon:Lj,end:!0,selectedPath:f,onNavigate:s,children:"Routing Hub"}),i.jsx(Cs,{to:"/routing/sr",icon:Bj,indent:!0,selectedPath:f,onNavigate:s,children:"Multi Objective"}),i.jsx(Cs,{to:"/routing/rules",icon:Dj,indent:!0,selectedPath:f,onNavigate:s,children:"Rule-Based"}),i.jsx(Cs,{to:"/routing/volume",icon:rf,indent:!0,selectedPath:f,onNavigate:s,children:"Volume Split"}),i.jsx(Cs,{to:"/routing/debit",icon:_o,indent:!0,selectedPath:f,onNavigate:s,children:"Debit Routing"}),i.jsx(Cs,{to:"/routing/volume-contracts",icon:Cy,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"Volume Contracts"}),i.jsx(Cs,{to:"/routing/ab-testing",icon:$p,indent:!0,beta:!0,selectedPath:f,onNavigate:s,children:"A/B Testing"}),PP?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Simulation"})}),i.jsx(Cs,{to:"/decisions/simulator",icon:$p,selectedPath:f,onNavigate:s,children:"Decision Simulator"})]}):null,i.jsx("div",{className:"flex items-center gap-2 px-3 pb-2 pt-5",children:i.jsx("span",{className:"text-[11px] font-bold uppercase tracking-widest text-slate-500 dark:text-[#78849a] leading-4",children:"Settings"})}),i.jsx(Cs,{to:"/members",icon:Z3,selectedPath:f,onNavigate:s,children:"Members"}),i.jsx(Cs,{to:"/api-keys",icon:Y3,selectedPath:f,onNavigate:s,children:"API Keys"})]}),i.jsxs("div",{ref:d,className:"relative border-t border-slate-200 bg-white px-4 py-4 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#0a0d12]",children:[c?i.jsxs("div",{className:"absolute bottom-full left-4 right-4 mb-3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_20px_60px_-36px_rgba(15,23,42,0.35)] dark:border-[#2a303a] dark:bg-[#0d1118]",children:[i.jsxs("div",{className:"border-b border-slate-200 px-3 py-3 dark:border-[#242b36]",children:[i.jsx("p",{className:"break-all text-sm font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Signed-in user"}),n!=null&&n.merchantId?i.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[i.jsx("p",{className:"min-w-0 flex-1 truncate text-xs text-slate-500 dark:text-[#8a8a93]",children:n.merchantId}),i.jsx(Fy,{text:n.merchantId,label:"Copy merchant ID",size:13,className:"rounded-md p-1 text-slate-500 hover:bg-slate-100 hover:text-slate-700 dark:text-[#6d768a] dark:hover:bg-[#151b24] dark:hover:text-white"})]}):null]}),i.jsxs("button",{type:"button",onClick:()=>{u(!1),e("/account")},className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:text-slate-300 dark:hover:bg-white/5",children:[i.jsx(K3,{size:16}),"Change password"]}),i.jsxs("button",{type:"button",onClick:p,className:"flex w-full items-center gap-2.5 px-3 py-3 text-left text-sm font-medium text-red-600 transition-colors hover:bg-red-50 dark:text-red-300 dark:hover:bg-red-950/25",children:[i.jsx($W,{size:16}),"Logout"]})]}):null,i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsxs("button",{type:"button",onClick:()=>u(x=>!x),"aria-haspopup":"menu","aria-expanded":c,title:(n==null?void 0:n.email)||"Account",className:"flex min-w-0 flex-1 items-center gap-2 rounded-2xl px-1.5 py-2 text-left transition-colors hover:bg-slate-100 dark:hover:bg-[#151b24]",children:[i.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:h}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx("span",{className:"block truncate text-xs font-semibold text-slate-900 dark:text-white",children:(n==null?void 0:n.email)||"Account"})}),i.jsx(ln,{size:13,className:`shrink-0 text-slate-500 transition-transform ${c?"rotate-180":""}`})]}),i.jsx("button",{type:"button",onClick:m,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-[#1a1f2a] dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Ny,{size:15}):i.jsx(Sy,{size:15})})]})]})]})}function Cs({to:t,icon:e,children:n,end:r,indent:a,beta:s,selectedPath:o,onNavigate:l}){const c=Hr(),u=r?o===t:o===t||o.startsWith(`${t}/`);return i.jsxs("button",{type:"button","aria-current":u?"page":void 0,onMouseDown:d=>{d.detail>0&&d.preventDefault()},onClick:d=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),l==null||l(t),d.currentTarget.blur(),c(t)},className:`group relative flex w-full appearance-none items-center gap-3 rounded-[16px] border-0 px-4 py-2.5 text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[#3b82f6]/40 focus-visible:ring-offset-0 ${a?"pl-8":""} ${u?"bg-transparent text-slate-950 dark:text-white":"bg-transparent text-slate-500 hover:bg-slate-900/[0.025] hover:text-slate-900 dark:text-[#8d96aa] dark:hover:bg-white/[0.035] dark:hover:text-white"} leading-5`,children:[i.jsx("span",{"aria-hidden":"true",className:`absolute left-1 top-1/2 h-7 w-[3px] -translate-y-1/2 rounded-full transition-all duration-150 ${u?"bg-brand-600 opacity-100 dark:bg-sky-300":"opacity-0"}`}),i.jsx(e,{size:18,className:`transition-colors duration-200 ${u?"text-brand-600 dark:text-sky-300":"text-slate-500 group-hover:text-slate-700 dark:text-[#78849a] dark:group-hover:text-white"}`,strokeWidth:u?2.5:2}),i.jsx("span",{className:"flex-1 text-left",children:n}),s&&i.jsx("span",{className:"rounded-full bg-violet-100 px-1.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-violet-600 dark:bg-violet-500/15 dark:text-violet-400 leading-4",children:"Beta"})]})}const G6e={leader_changed:I0,gateway_entered_auth_band:Cy,gateway_exited_auth_band:J3,calibration_applied:ec},q6e={leader_changed:"text-sky-700 dark:text-sky-300",gateway_entered_auth_band:"text-emerald-700 dark:text-emerald-300",gateway_exited_auth_band:"text-amber-700 dark:text-amber-300",calibration_applied:"text-violet-600 dark:text-violet-300"};function K6e(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Y6e(){const t=Hr(),[e,n]=g.useState(!1),{events:r,unseenCount:a,markAllSeen:s,isUnavailable:o}=fT("1h",{enabled:e}),l=g.useRef(null);g.useEffect(()=>{function u(d){l.current&&!l.current.contains(d.target)&&n(!1)}return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[]);const c=r.slice(0,8);return i.jsxs("div",{className:"relative shrink-0",ref:l,children:[i.jsxs("button",{onClick:()=>n(u=>!u),"aria-label":"Routing events",className:"relative flex items-center justify-center h-8 w-8 rounded-lg border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] hover:bg-slate-50 dark:hover:bg-[#18181f] transition-colors text-slate-700 dark:text-slate-300",children:[i.jsx(DNe,{size:14,className:"text-slate-500"}),a>0&&i.jsx("span",{className:"absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-brand-600 px-1 text-[11px] font-semibold text-white leading-4",children:a>99?"99+":a})]}),e&&i.jsxs("div",{className:"absolute right-0 top-10 w-96 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg py-1 z-50",children:[i.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 leading-4",children:"Routing events"}),r.length>0&&i.jsx("button",{onClick:s,className:"text-[11px] font-medium text-brand-600 hover:underline leading-4",children:"Mark all read"})]}),c.length===0?i.jsx("p",{className:"px-3 py-4 text-[12px] text-slate-500 dark:text-slate-400 max-w-[57ch] leading-4",children:o?"Routing events are unavailable — analytics pipeline is offline.":"No routing events in the last hour."}):c.map(u=>{const d=G6e[u.event_type];return i.jsxs("div",{className:"flex items-start gap-2.5 px-3 py-2 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors",children:[i.jsx("div",{className:"mt-0.5 shrink-0",children:i.jsx(d,{size:14,className:q6e[u.event_type]})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-[12px] text-slate-700 dark:text-slate-300 leading-4",children:hT(u)}),i.jsx("p",{className:"text-[11px] text-slate-500 leading-4",children:K6e(u.bucket_ms)})]})]},u.id)}),i.jsx("div",{className:"border-t border-[#e6e6ee] dark:border-[#1a1a24] mt-1 pt-1",children:i.jsx("button",{onClick:()=>{n(!1),t("/events")},className:"w-full px-3 py-2 text-left text-[13px] font-medium text-brand-600 hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors leading-[18px]",children:"View all events"})})]})]})}var WF=1,X6e=.9,J6e=.8,Z6e=.17,aN=.1,sN=.999,Q6e=.9999,eFe=.99,tFe=/[\\\/_+.#"@\[\(\{&]/,nFe=/[\\\/_+.#"@\[\(\{&]/g,rFe=/[\s-]/,oX=/[\s-]/g;function OO(t,e,n,r,a,s,o){if(s===e.length)return a===t.length?WF:eFe;var l=`${a},${s}`;if(o[l]!==void 0)return o[l];for(var c=r.charAt(s),u=n.indexOf(c,a),d=0,f,h,p,m;u>=0;)f=OO(t,e,n,r,u+1,s+1,o),f>d&&(u===a?f*=WF:tFe.test(t.charAt(u-1))?(f*=J6e,p=t.slice(a,u-1).match(nFe),p&&a>0&&(f*=Math.pow(sN,p.length))):rFe.test(t.charAt(u-1))?(f*=X6e,m=t.slice(a,u-1).match(oX),m&&a>0&&(f*=Math.pow(sN,m.length))):(f*=Z6e,a>0&&(f*=Math.pow(sN,u-a))),t.charAt(u)!==e.charAt(s)&&(f*=Q6e)),(ff&&(f=h*aN)),f>d&&(d=f),u=n.indexOf(c,u+1);return o[l]=d,d}function HF(t){return t.toLowerCase().replace(oX," ")}function aFe(t,e,n){return t=n&&n.length>0?`${t+" "+n.join(" ")}`:t,OO(t,e,HF(t),HF(e),0,0,{})}var sFe=Object.defineProperty,Tm=(t,e)=>sFe(t,"name",{value:e,configurable:!0}),lX=!!(typeof window<"u"&&window.document&&window.document.createElement);function Vd(t,e,{checkForDefaultPrevented:n=!0}={}){return Tm(function(a){if(t==null||t(a),n===!1||!a||!a.defaultPrevented)return e==null?void 0:e(a)},"handleEvent")}Tm(Vd,"composeEventHandlers");function iFe(t){var e;if(!lX)throw new Error("Cannot access window outside of the DOM");return((e=t==null?void 0:t.ownerDocument)==null?void 0:e.defaultView)??window}Tm(iFe,"getOwnerWindow");function TO(t){if(!lX)throw new Error("Cannot access document outside of the DOM");return(t==null?void 0:t.ownerDocument)??document}Tm(TO,"getOwnerDocument");function cX(t,e=!1){const{activeElement:n}=TO(t);if(!(n!=null&&n.nodeName))return null;if(uX(n)&&n.contentDocument)return cX(n.contentDocument.body,e);if(e){const r=n.getAttribute("aria-activedescendant");if(r){const a=TO(n).getElementById(r);if(a)return a}}return n}Tm(cX,"getActiveElement");function uX(t){return t.tagName==="IFRAME"}Tm(uX,"isFrame");function GF(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Qp(...t){return e=>{let n=!1;const r=t.map(a=>{const s=GF(a,e);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{var b;const{scope:h,children:p,...m}=f,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,v=g.useMemo(()=>m,Object.values(m));return i.jsx(x.Provider,{value:v,children:p})};u.displayName=s+"Provider";function d(f,h,p={}){var b;const{optional:m=!1}=p,x=((b=h==null?void 0:h[t])==null?void 0:b[c])||l,v=g.useContext(x);if(v)return v;if(o!==void 0)return o;if(!m)throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const a=()=>{const s=n.map(o=>g.createContext(o));return function(l){const c=(l==null?void 0:l[t])||s;return g.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,lFe(a,...e)]}function lFe(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const o=r.reduce((l,{useScope:c,scopeName:u})=>{const f=c(s)[`__scope${u}`];return{...l,...f}},{});return g.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var em=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},cFe=nm[" useId ".trim().toString()]||(()=>{}),uFe=0;function rc(t){const[e,n]=g.useState(cFe());return em(()=>{n(r=>r??String(uFe++))},[t]),e?`radix-${e}`:""}var qF=nm[" useEffectEvent ".trim().toString()],KF=nm[" useInsertionEffect ".trim().toString()];function dFe(t){if(typeof qF=="function")return qF(t);const e=g.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof KF=="function"?KF(()=>{e.current=t}):em(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var fFe=Object.defineProperty,Wy=(t,e)=>fFe(t,"name",{value:e,configurable:!0}),hFe=nm[" useInsertionEffect ".trim().toString()]||em;function dX({prop:t,defaultProp:e,onChange:n=Wy(()=>{},"onChange"),caller:r}){const[a,s,o]=fX({defaultProp:e,onChange:n}),l=t!==void 0,c=l?t:a,u=g.useCallback(d=>{var f;if(l){const h=hX(d)?d(t):d;h!==t&&((f=o.current)==null||f.call(o,h))}else s(d)},[l,t,s,o]);return[c,u]}Wy(dX,"useControllableState");function fX({defaultProp:t,onChange:e}){const[n,r]=g.useState(t),a=g.useRef(n),s=g.useRef(e);return hFe(()=>{s.current=e},[e]),g.useEffect(()=>{var o;a.current!==n&&((o=s.current)==null||o.call(s,n),a.current=n)},[n,a]),[n,r,s]}Wy(fX,"useUncontrolledState");function hX(t){return typeof t=="function"}Wy(hX,"isFunction");var YF=Symbol("RADIX:SYNC_STATE");function pFe(t,e,n,r){const{prop:a,defaultProp:s,onChange:o,caller:l}=e,c=a!==void 0,u=dFe(o),d=[{...n,state:s}];r&&d.push(r);const[f,h]=g.useReducer((v,b)=>{if(b.type===YF)return{...v,state:b.state};const y=t(v,b);return c&&!Object.is(y.state,v.state)&&u(y.state),y},...d),p=f.state,m=g.useRef(p);g.useEffect(()=>{m.current!==p&&(m.current=p,c||u(p))},[p,m,c]);const x=g.useMemo(()=>a!==void 0?{...f,state:a}:f,[f,a]);return g.useEffect(()=>{c&&!Object.is(a,f.state)&&h({type:YF,state:a})},[a,f.state,c]),[x,h]}Wy(pFe,"useControllableStateReducer");function pX(t){const e=g.forwardRef((n,r)=>{let{children:a,...s}=n,o=null,l=!1;const c=[];XF(a)&&typeof Tb=="function"&&(a=Tb(a._payload)),g.Children.forEach(a,h=>{var p;if(vFe(h)){l=!0;const m=h;let x="child"in m.props?m.props.child:m.props.children;XF(x)&&typeof Tb=="function"&&(x=Tb(x._payload)),o=gFe(m,x),c.push((p=o==null?void 0:o.props)==null?void 0:p.children)}else c.push(h)}),o?o=g.cloneElement(o,void 0,c):!l&&g.Children.count(a)===1&&g.isValidElement(a)&&(o=a);const u=o?yFe(o):void 0,d=Vy(r,u);if(!o){if(a||a===0)throw new Error(l?jFe(t):kFe(t));return a}const f=xFe(s,o.props??{});return o.type!==g.Fragment&&(f.ref=r?d:u),g.cloneElement(o,f)});return e.displayName=`${t}.Slot`,e}var mFe=Symbol.for("radix.slottable"),gFe=(t,e)=>{if("child"in t.props){const n=t.props.child;return g.isValidElement(n)?g.cloneElement(n,void 0,t.props.children(n.props.children)):null}return g.isValidElement(e)?e:null};function xFe(t,e){const n={...e};for(const r in e){const a=t[r],s=e[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const c=s(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...t,...n}}function yFe(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function vFe(t){return g.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===mFe}var bFe=Symbol.for("react.lazy");function XF(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===bFe&&"_payload"in t&&wFe(t._payload)}function wFe(t){return typeof t=="object"&&t!==null&&"then"in t}var kFe=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,jFe=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Tb=nm[" use ".trim().toString()],SFe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ki=SFe.reduce((t,e)=>{const n=pX(`Primitive.${e}`),r=g.forwardRef((a,s)=>{const{asChild:o,...l}=a,c=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function _Fe(t,e){t&&gs.flushSync(()=>t.dispatchEvent(e))}function cy(t){const e=g.useRef(t);return g.useEffect(()=>{e.current=t}),g.useMemo(()=>(...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}var NFe=Object.defineProperty,ya=(t,e)=>NFe(t,"name",{value:e,configurable:!0}),PO="dismissableLayer.update",CFe="dismissableLayer.pointerDownOutside",EFe="dismissableLayer.focusOutside",JF,mX=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),AFe=g.forwardRef(ya(function(e,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...d}=e,f=g.useContext(mX),[h,p]=g.useState(null),m=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=g.useState({}),v=Vy(n,p),b=Array.from(f.layers),[y]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),w=y?b.indexOf(y):-1,j=h?b.indexOf(h):-1,k=f.layersWithOutsidePointerEventsDisabled.size>0,S=j>=w,_=g.useRef(!1),C=xX(A=>{o==null||o(A),c==null||c(A),A.defaultPrevented||u==null||u()},{ownerDocument:m,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:_,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:g.useCallback(A=>{if(!(A instanceof Node))return!1;const T=[...f.branches].some(D=>D.contains(A));return S&&!T},[f.branches,S])}),E=yX(A=>{if(a&&_.current)return;const T=A.target;[...f.branches].some(L=>L.contains(T))||(l==null||l(A),c==null||c(A),A.defaultPrevented||u==null||u())},m),P=h?j===b.length-1:!1,R=cy(A=>{A.key==="Escape"&&(s==null||s(A),!A.defaultPrevented&&u&&(A.preventDefault(),u()))});return g.useEffect(()=>{if(P)return m.addEventListener("keydown",R,{capture:!0}),()=>m.removeEventListener("keydown",R,{capture:!0})},[m,P,R]),g.useEffect(()=>{if(h)return r&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(JF=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(h)),f.layers.add(h),RO(),()=>{r&&(f.layersWithOutsidePointerEventsDisabled.delete(h),f.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=JF))}},[h,m,r,f]),g.useEffect(()=>()=>{h&&(f.layers.delete(h),f.layersWithOutsidePointerEventsDisabled.delete(h),RO())},[h,f]),g.useEffect(()=>{const A=ya(()=>x({}),"handleUpdate");return document.addEventListener(PO,A),()=>document.removeEventListener(PO,A)},[]),i.jsx(Ki.div,{...d,ref:v,style:{pointerEvents:k?S?"auto":"none":void 0,...e.style},onFocusCapture:Vd(e.onFocusCapture,E.onFocusCapture),onBlurCapture:Vd(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:Vd(e.onPointerDownCapture,C.onPointerDownCapture)})},"DismissableLayer"));function gX(){const t=g.useContext(mX),[e,n]=g.useState(null);return g.useEffect(()=>{if(e)return t.dismissableSurfaces.add(e),()=>{t.dismissableSurfaces.delete(e)}},[e,t.dismissableSurfaces]),n}ya(gX,"useDismissableLayerSurface");var OFe=ya(()=>!0,"IS_TRUE");function xX(t,e){const{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:a,dismissableSurfaces:s,shouldHandlePointerDownOutside:o=OFe}=e,l=cy(t),c=g.useRef(!1),u=g.useRef(!1),d=g.useRef(new Map),f=g.useRef(()=>{});return g.useEffect(()=>{function h(){u.current=!1,a.current=!1,d.current.clear()}ya(h,"resetOutsideInteraction");function p(){return Array.from(d.current.values()).some(Boolean)}ya(p,"isOutsideInteractionIntercepted");function m(w){if(!u.current)return;const j=w.target;j instanceof Node&&[...s].some(S=>S.contains(j))||d.current.set(w.type,!0),w.type==="click"&&window.setTimeout(()=>{u.current&&f.current()},0)}ya(m,"handleInteractionCapture");function x(w){u.current&&d.current.set(w.type,!1)}ya(x,"handleInteractionBubble");const v=ya(w=>{if(w.target&&!c.current){let j=function(){n.removeEventListener("click",f.current);const S=p();h(),S||DP(CFe,l,k,{discrete:!0})};if(ya(j,"handleAndDispatchPointerDownOutsideEvent"),!o(w.target)){n.removeEventListener("click",f.current),h(),c.current=!1;return}const k={originalEvent:w};u.current=!0,a.current=r&&w.button===0,d.current.clear(),!r||w.button!==0?j():(n.removeEventListener("click",f.current),f.current=j,n.addEventListener("click",f.current,{once:!0}))}else n.removeEventListener("click",f.current),h();c.current=!1},"handlePointerDown"),b=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const w of b)n.addEventListener(w,m,!0),n.addEventListener(w,x);const y=window.setTimeout(()=>{n.addEventListener("pointerdown",v)},0);return()=>{window.clearTimeout(y),n.removeEventListener("pointerdown",v),n.removeEventListener("click",f.current);for(const w of b)n.removeEventListener(w,m,!0),n.removeEventListener(w,x)}},[n,l,r,a,s,o]),{onPointerDownCapture:ya(()=>c.current=!0,"onPointerDownCapture")}}ya(xX,"usePointerDownOutside");function yX(t,e=globalThis==null?void 0:globalThis.document){const n=cy(t),r=g.useRef(!1);return g.useEffect(()=>{const a=ya(s=>{s.target&&!r.current&&DP(EFe,n,{originalEvent:s},{discrete:!1})},"handleFocus");return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:ya(()=>r.current=!0,"onFocusCapture"),onBlurCapture:ya(()=>r.current=!1,"onBlurCapture")}}ya(yX,"useFocusOutside");function RO(){const t=new CustomEvent(PO);document.dispatchEvent(t)}ya(RO,"dispatchUpdate");function DP(t,e,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),r?_Fe(a,s):a.dispatchEvent(s)}ya(DP,"handleAndDispatchCustomEvent");var TFe=Object.defineProperty,bs=(t,e)=>TFe(t,"name",{value:e,configurable:!0}),iN="focusScope.autoFocusOnMount",oN="focusScope.autoFocusOnUnmount",ZF={bubbles:!1,cancelable:!0},PFe=g.forwardRef(bs(function(e,n){const{loop:r=!1,trapped:a=!1,onMountAutoFocus:s,onUnmountAutoFocus:o,...l}=e,[c,u]=g.useState(null),d=cy(s),f=cy(o),h=g.useRef(null),p=Vy(n,u),m=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(a){let v=function(j){if(m.paused||!c)return;const k=j.target;c.contains(k)?h.current=k:Ll(h.current,{select:!0})},b=function(j){if(m.paused||!c)return;const k=j.relatedTarget;k!==null&&(c.contains(k)||Ll(h.current,{select:!0}))},y=function(j){if(document.activeElement===document.body)for(const S of j)S.removedNodes.length>0&&Ll(c)};bs(v,"handleFocusIn"),bs(b,"handleFocusOut"),bs(y,"handleMutations"),document.addEventListener("focusin",v),document.addEventListener("focusout",b);const w=new MutationObserver(y);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",b),w.disconnect()}}},[a,c,m.paused]),g.useEffect(()=>{if(c){QF.add(m);const v=document.activeElement;if(!c.contains(v)){const y=new CustomEvent(iN,ZF);c.addEventListener(iN,d),c.dispatchEvent(y),y.defaultPrevented||(vX(SX(IP(c)),{select:!0}),document.activeElement===v&&Ll(c))}return()=>{c.removeEventListener(iN,d),setTimeout(()=>{const y=new CustomEvent(oN,ZF);c.addEventListener(oN,f),c.dispatchEvent(y),y.defaultPrevented||Ll(v??document.body,{select:!0}),c.removeEventListener(oN,f),QF.remove(m)},0)}}},[c,d,f,m]);const x=g.useCallback(v=>{if(!r&&!a||m.paused)return;const b=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,y=document.activeElement;if(b&&y){const w=v.currentTarget,[j,k]=bX(w);j&&k?!v.shiftKey&&y===k?(v.preventDefault(),r&&Ll(j,{select:!0})):v.shiftKey&&y===j&&(v.preventDefault(),r&&Ll(k,{select:!0})):y===w&&v.preventDefault()}},[r,a,m.paused]);return i.jsx(Ki.div,{tabIndex:-1,...l,ref:p,onKeyDown:x})},"FocusScope"));function vX(t,{select:e=!1}={}){const n=document.activeElement;for(const r of t)if(Ll(r,{select:e}),document.activeElement!==n)return}bs(vX,"focusFirst");function bX(t){const e=IP(t),n=MO(e,t),r=MO(e.reverse(),t);return[n,r]}bs(bX,"getTabbableEdges");function IP(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:bs(r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)e.push(n.currentNode);return e}bs(IP,"getTabbableCandidates");function MO(t,e){const n=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const r of t)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):wX(r,{upTo:e})))return r}bs(MO,"findVisible");function wX(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}bs(wX,"isHidden");function kX(t){return t instanceof HTMLInputElement&&"select"in t}bs(kX,"isSelectableInput");function Ll(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&kX(t)&&e&&t.select()}}bs(Ll,"focus");var QF=jX();function jX(){let t=[];return{add(e){const n=t[0];e!==n&&(n==null||n.pause()),t=DO(t,e),t.unshift(e)},remove(e){var n;t=DO(t,e),(n=t[0])==null||n.resume()}}}bs(jX,"createFocusScopesStack");function DO(t,e){const n=[...t],r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}bs(DO,"arrayRemove");function SX(t){return t.filter(e=>e.tagName!=="A")}bs(SX,"removeLinks");var RFe=Object.defineProperty,MFe=(t,e)=>RFe(t,"name",{value:e,configurable:!0}),DFe=g.forwardRef(MFe(function(e,n){var c;const{container:r,...a}=e,[s,o]=g.useState(!1);em(()=>o(!0),[]);const l=r||s&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return l?gs.createPortal(i.jsx(Ki.div,{...a,ref:n}),l):null},"Portal")),IFe=Object.defineProperty,xc=(t,e)=>IFe(t,"name",{value:e,configurable:!0});function _X(t,e){return g.useReducer((n,r)=>e[n][r]??n,t)}xc(_X,"useStateMachine");var $P=xc(t=>{const{present:e,children:n}=t,r=NX(e),a=typeof n=="function"?n({present:r.isPresent}):g.Children.only(n),s=CX(r.ref,EX(a));return typeof n=="function"||r.isPresent?g.cloneElement(a,{ref:s}):null},"Presence");function NX(t){const[e,n]=g.useState(),r=g.useRef(null),a=g.useRef(t),s=g.useRef("none"),o=g.useRef(void 0),l=t?"mounted":"unmounted",[c,u]=_X(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{c==="mounted"?(s.current=o.current??sh(r.current),o.current=void 0):s.current="none"},[c]),em(()=>{const d=r.current,f=a.current;if(f!==t){const p=s.current,m=sh(d);t?(o.current=m,u("MOUNT")):m==="none"||(d==null?void 0:d.display)==="none"?u("UNMOUNT"):u(f&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,u]),em(()=>{if(e){let d;const f=e.ownerDocument.defaultView??window,h=xc(m=>{const v=sh(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&v&&(u("ANIMATION_END"),!a.current)){const b=e.style.animationFillMode;e.style.animationFillMode="forwards",d=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=b)})}},"handleAnimationEnd"),p=xc(m=>{m.target===e&&(s.current=sh(r.current))},"handleAnimationStart");return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",h),e.addEventListener("animationend",h),()=>{f.clearTimeout(d),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",h),e.removeEventListener("animationend",h)}}else u("ANIMATION_END")},[e,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:g.useCallback(d=>{if(d){const f=getComputedStyle(d);r.current=f,o.current=sh(f)}else r.current=null;n(d)},[])}}xc(NX,"usePresence");function IO(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}xc(IO,"setRef");function CX(...t){const e=g.useRef(t);return e.current=t,g.useCallback(n=>{const r=e.current;let a=!1;const s=r.map(o=>{const l=IO(o,n);return!a&&typeof l=="function"&&(a=!0),l});if(a)return()=>{for(let o=0;o{Vo||(Vo={start:eB(),end:eB()});const{start:t,end:e}=Vo;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),Pb++,()=>{Pb===1&&(Vo==null||Vo.start.remove(),Vo==null||Vo.end.remove(),Vo=null),Pb=Math.max(0,Pb-1)}},[])}function eB(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var el=function(){return el=Object.assign||function(e){for(var n,r=1,a=arguments.length;r"u")return eBe;var e=tBe(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},rBe=PX(),tp="data-scroll-locked",aBe=function(t,e,n,r){var a=t.left,s=t.top,o=t.right,l=t.gap;return n===void 0&&(n="margin"),` - .`.concat(FFe,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(l,"px ").concat(r,`; - } - body[`).concat(tp,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([e&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(o,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(l,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(u1,` { - right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(d1,` { - margin-right: `).concat(l,"px ").concat(r,`; - } - - .`).concat(u1," .").concat(u1,` { - right: 0 `).concat(r,`; - } - - .`).concat(d1," .").concat(d1,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(tp,`] { - `).concat(BFe,": ").concat(l,`px; - } -`)},nB=function(){var t=parseInt(document.body.getAttribute(tp)||"0",10);return isFinite(t)?t:0},sBe=function(){g.useEffect(function(){return document.body.setAttribute(tp,(nB()+1).toString()),function(){var t=nB()-1;t<=0?document.body.removeAttribute(tp):document.body.setAttribute(tp,t.toString())}},[])},iBe=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,a=r===void 0?"margin":r;sBe();var s=g.useMemo(function(){return nBe(a)},[a]);return g.createElement(rBe,{styles:aBe(s,!e,a,n?"":"!important")})},$O=!1;if(typeof window<"u")try{var Rb=Object.defineProperty({},"passive",{get:function(){return $O=!0,!0}});window.addEventListener("test",Rb,Rb),window.removeEventListener("test",Rb,Rb)}catch{$O=!1}var Yf=$O?{passive:!1}:!1,oBe=function(t){return t.tagName==="TEXTAREA"},RX=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!oBe(t)&&n[e]==="visible")},lBe=function(t){return RX(t,"overflowY")},cBe=function(t){return RX(t,"overflowX")},rB=function(t,e){var n=e.ownerDocument,r=e;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=MX(t,r);if(a){var s=DX(t,r),o=s[1],l=s[2];if(o>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},uBe=function(t){var e=t.scrollTop,n=t.scrollHeight,r=t.clientHeight;return[e,n,r]},dBe=function(t){var e=t.scrollLeft,n=t.scrollWidth,r=t.clientWidth;return[e,n,r]},MX=function(t,e){return t==="v"?lBe(e):cBe(e)},DX=function(t,e){return t==="v"?uBe(e):dBe(e)},fBe=function(t,e){return t==="h"&&e==="rtl"?-1:1},hBe=function(t,e,n,r,a){var s=fBe(t,window.getComputedStyle(e).direction),o=s*r,l=n.target,c=e.contains(l),u=!1,d=o>0,f=0,h=0;do{if(!l)break;var p=DX(t,l),m=p[0],x=p[1],v=p[2],b=x-v-s*m;(m||b)&&MX(t,l)&&(f+=b,h+=m);var y=l.parentNode;l=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!c&&l!==document.body||c&&(e.contains(l)||e===l));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Mb=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},aB=function(t){return[t.deltaX,t.deltaY]},sB=function(t){return t&&"current"in t?t.current:t},pBe=function(t,e){return t[0]===e[0]&&t[1]===e[1]},mBe=function(t){return` - .block-interactivity-`.concat(t,` {pointer-events: none;} - .allow-interactivity-`).concat(t,` {pointer-events: all;} -`)},gBe=0,Xf=[];function xBe(t){var e=g.useRef([]),n=g.useRef([0,0]),r=g.useRef(),a=g.useState(gBe++)[0],s=g.useState(PX)[0],o=g.useRef(t);g.useEffect(function(){o.current=t},[t]),g.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var x=LFe([t.lockRef.current],(t.shards||[]).map(sB),!0).filter(Boolean);return x.forEach(function(v){return v.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var l=g.useCallback(function(x,v){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!o.current.allowPinchZoom;var b=Mb(x),y=n.current,w="deltaX"in x?x.deltaX:y[0]-b[0],j="deltaY"in x?x.deltaY:y[1]-b[1],k,S=x.target,_=Math.abs(w)>Math.abs(j)?"h":"v";if("touches"in x&&_==="h"&&S.type==="range")return!1;var C=window.getSelection(),E=C&&C.anchorNode,P=E?E===S||E.contains(S):!1;if(P)return!1;var R=rB(_,S);if(!R)return!0;if(R?k=_:(k=_==="v"?"h":"v",R=rB(_,S)),!R)return!1;if(!r.current&&"changedTouches"in x&&(w||j)&&(r.current=k),!k)return!0;var A=r.current||k;return hBe(A,v,x,A==="h"?w:j)},[]),c=g.useCallback(function(x){var v=x;if(!(!Xf.length||Xf[Xf.length-1]!==s)){var b="deltaY"in v?aB(v):Mb(v),y=e.current.filter(function(k){return k.name===v.type&&(k.target===v.target||v.target===k.shadowParent)&&pBe(k.delta,b)})[0];if(y&&y.should){v.cancelable&&v.preventDefault();return}if(!y){var w=(o.current.shards||[]).map(sB).filter(Boolean).filter(function(k){return k.contains(v.target)}),j=w.length>0?l(v,w[0]):!o.current.noIsolation;j&&v.cancelable&&v.preventDefault()}}},[]),u=g.useCallback(function(x,v,b,y){var w={name:x,delta:v,target:b,should:y,shadowParent:yBe(b)};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(j){return j!==w})},1)},[]),d=g.useCallback(function(x){n.current=Mb(x),r.current=void 0},[]),f=g.useCallback(function(x){u(x.type,aB(x),x.target,l(x,t.lockRef.current))},[]),h=g.useCallback(function(x){u(x.type,Mb(x),x.target,l(x,t.lockRef.current))},[]);g.useEffect(function(){return Xf.push(s),t.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",c,Yf),document.addEventListener("touchmove",c,Yf),document.addEventListener("touchstart",d,Yf),function(){Xf=Xf.filter(function(x){return x!==s}),document.removeEventListener("wheel",c,Yf),document.removeEventListener("touchmove",c,Yf),document.removeEventListener("touchstart",d,Yf)}},[]);var p=t.removeScrollBar,m=t.inert;return g.createElement(g.Fragment,null,m?g.createElement(s,{styles:mBe(a)}):null,p?g.createElement(iBe,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function yBe(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const vBe=qFe(TX,xBe);var IX=g.forwardRef(function(t,e){return g.createElement(m2,el({},t,{ref:e,sideCar:vBe}))});IX.classNames=m2.classNames;var bBe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Jf=new WeakMap,Db=new WeakMap,Ib={},dN=0,$X=function(t){return t&&(t.host||$X(t.parentNode))},wBe=function(t,e){return e.map(function(n){if(t.contains(n))return n;var r=$X(n);return r&&t.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},kBe=function(t,e,n,r){var a=wBe(e,Array.isArray(t)?t:[t]);Ib[n]||(Ib[n]=new WeakMap);var s=Ib[n],o=[],l=new Set,c=new Set(a),u=function(f){!f||l.has(f)||(l.add(f),u(f.parentNode))};a.forEach(u);var d=function(f){!f||c.has(f)||Array.prototype.forEach.call(f.children,function(h){if(l.has(h))d(h);else try{var p=h.getAttribute(r),m=p!==null&&p!=="false",x=(Jf.get(h)||0)+1,v=(s.get(h)||0)+1;Jf.set(h,x),s.set(h,v),o.push(h),x===1&&m&&Db.set(h,!0),v===1&&h.setAttribute(n,"true"),m||h.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return d(e),l.clear(),dN++,function(){o.forEach(function(f){var h=Jf.get(f)-1,p=s.get(f)-1;Jf.set(f,h),s.set(f,p),h||(Db.has(f)||f.removeAttribute(r),Db.delete(f)),p||f.removeAttribute(n)}),dN--,dN||(Jf=new WeakMap,Jf=new WeakMap,Db=new WeakMap,Ib={})}},jBe=function(t,e,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),a=bBe(t);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),kBe(r,a,n,"aria-hidden")):function(){return null}},SBe=Object.defineProperty,jc=(t,e)=>SBe(t,"name",{value:e,configurable:!0}),LP="Dialog",[LX]=oFe(LP),[_Be,Nf]=LX(LP),NBe=jc(t=>{const{__scopeDialog:e,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:o=!0}=t,l=g.useRef(null),c=g.useRef(null),[u,d]=dX({prop:r,defaultProp:a??!1,onChange:s,caller:LP}),[f,h]=g.useState(0),[p,m]=g.useState(0);return i.jsx(_Be,{scope:e,triggerRef:l,contentRef:c,contentId:rc(),titleId:rc(),descriptionId:rc(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:h,setDescriptionCount:m,open:u,onOpenChange:d,onOpenToggle:g.useCallback(()=>d(x=>!x),[d]),modal:o,children:n})},"Dialog"),FX="DialogPortal",[CBe,BX]=LX(FX,{forceMount:void 0}),EBe=jc(t=>{const{__scopeDialog:e,forceMount:n,children:r,container:a}=t,s=Nf(FX,e);return i.jsx(CBe,{scope:e,forceMount:n,children:g.Children.map(r,o=>i.jsx($P,{present:n||s.open,children:i.jsx(DFe,{asChild:!0,container:a,children:o})}))})},"DialogPortal"),LO="DialogOverlay",ABe=g.forwardRef(jc(function(e,n){const r=BX(LO,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Nf(LO,e.__scopeDialog);return o.modal?i.jsx($P,{present:a||o.open,children:i.jsx(TBe,{...s,ref:n})}):null},"DialogOverlay")),OBe=pX("DialogOverlay.RemoveScroll"),TBe=g.forwardRef(jc(function(e,n){const{__scopeDialog:r,...a}=e,s=Nf(LO,r),o=gX(),l=Vy(n,o);return i.jsx(IX,{as:OBe,allowPinchZoom:!0,shards:[s.contentRef],children:i.jsx(Ki.div,{"data-state":FP(s.open),...a,ref:l,style:{pointerEvents:"auto",...a.style}})})},"DialogOverlayImpl")),uy="DialogContent",PBe=g.forwardRef(jc(function(e,n){const r=BX(uy,e.__scopeDialog),{forceMount:a=r.forceMount,...s}=e,o=Nf(uy,e.__scopeDialog);return i.jsx($P,{present:a||o.open,children:o.modal?i.jsx(RBe,{...s,ref:n}):i.jsx(MBe,{...s,ref:n})})},"DialogContent")),RBe=g.forwardRef(jc(function(e,n){const r=Nf(uy,e.__scopeDialog),a=g.useRef(null),s=Vy(n,r.contentRef,a);return g.useEffect(()=>{const o=a.current;if(o)return jBe(o)},[]),i.jsx(zX,{...e,ref:s,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Vd(e.onCloseAutoFocus,o=>{var l;o.preventDefault(),(l=r.triggerRef.current)==null||l.focus()}),onPointerDownOutside:Vd(e.onPointerDownOutside,o=>{const l=o.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&o.preventDefault()}),onFocusOutside:Vd(e.onFocusOutside,o=>o.preventDefault())})},"DialogContentModal")),MBe=g.forwardRef(jc(function(e,n){const r=Nf(uy,e.__scopeDialog),a=g.useRef(!1),s=g.useRef(!1);return i.jsx(zX,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var l,c;(l=e.onCloseAutoFocus)==null||l.call(e,o),o.defaultPrevented||(a.current||(c=r.triggerRef.current)==null||c.focus(),o.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:o=>{var u,d;(u=e.onInteractOutside)==null||u.call(e,o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const l=o.target;((d=r.triggerRef.current)==null?void 0:d.contains(l))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&s.current&&o.preventDefault()}})},"DialogContentNonModal")),zX=g.forwardRef(jc(function(e,n){const{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:o,...l}=e,c=Nf(uy,r);return $Fe(),i.jsx(i.Fragment,{children:i.jsx(PFe,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:o,children:i.jsx(AFe,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionPresent?c.descriptionId:void 0,"aria-labelledby":c.titlePresent?c.titleId:void 0,"data-state":FP(c.open),...l,ref:n,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})},"DialogContentImpl"));function FP(t){return t?"open":"closed"}jc(FP,"getState");var Rg='[cmdk-group=""]',fN='[cmdk-group-items=""]',DBe='[cmdk-group-heading=""]',UX='[cmdk-item=""]',iB=`${UX}:not([aria-disabled="true"])`,FO="cmdk-item-select",ih="data-value",IBe=(t,e,n)=>aFe(t,e,n),VX=g.createContext(void 0),Hy=()=>g.useContext(VX),WX=g.createContext(void 0),BP=()=>g.useContext(WX),HX=g.createContext(void 0),GX=g.forwardRef((t,e)=>{let n=oh(()=>{var I,q;return{search:"",value:(q=(I=t.value)!=null?I:t.defaultValue)!=null?q:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=oh(()=>new Set),a=oh(()=>new Map),s=oh(()=>new Map),o=oh(()=>new Set),l=qX(t),{label:c,children:u,value:d,onValueChange:f,filter:h,shouldFilter:p,loop:m,disablePointerSelection:x=!1,vimBindings:v=!0,...b}=t,y=rc(),w=rc(),j=rc(),k=g.useRef(null),S=qBe();mf(()=>{if(d!==void 0){let I=d.trim();n.current.value=I,_.emit()}},[d]),mf(()=>{S(6,T)},[]);let _=g.useMemo(()=>({subscribe:I=>(o.current.add(I),()=>o.current.delete(I)),snapshot:()=>n.current,setState:(I,q,M)=>{var B,z,Z,pe;if(!Object.is(n.current[I],q)){if(n.current[I]=q,I==="search")A(),P(),S(1,R);else if(I==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let ae=document.getElementById(j);ae?ae.focus():(B=document.getElementById(y))==null||B.focus()}if(S(7,()=>{var ae;n.current.selectedItemId=(ae=D())==null?void 0:ae.id,_.emit()}),M||S(5,T),((z=l.current)==null?void 0:z.value)!==void 0){let ae=q??"";(pe=(Z=l.current).onValueChange)==null||pe.call(Z,ae);return}}_.emit()}},emit:()=>{o.current.forEach(I=>I())}}),[]),C=g.useMemo(()=>({value:(I,q,M)=>{var B;q!==((B=s.current.get(I))==null?void 0:B.value)&&(s.current.set(I,{value:q,keywords:M}),n.current.filtered.items.set(I,E(q,M)),S(2,()=>{P(),_.emit()}))},item:(I,q)=>(r.current.add(I),q&&(a.current.has(q)?a.current.get(q).add(I):a.current.set(q,new Set([I]))),S(3,()=>{A(),P(),n.current.value||R(),_.emit()}),()=>{s.current.delete(I),r.current.delete(I),n.current.filtered.items.delete(I);let M=D();S(4,()=>{A(),(M==null?void 0:M.getAttribute("id"))===I&&R(),_.emit()})}),group:I=>(a.current.has(I)||a.current.set(I,new Set),()=>{s.current.delete(I),a.current.delete(I)}),filter:()=>l.current.shouldFilter,label:c||t["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:y,inputId:j,labelId:w,listInnerRef:k}),[]);function E(I,q){var M,B;let z=(B=(M=l.current)==null?void 0:M.filter)!=null?B:IBe;return I?z(I,n.current.search,q):0}function P(){if(!n.current.search||l.current.shouldFilter===!1)return;let I=n.current.filtered.items,q=[];n.current.filtered.groups.forEach(B=>{let z=a.current.get(B),Z=0;z.forEach(pe=>{let ae=I.get(pe);Z=Math.max(ae,Z)}),q.push([B,Z])});let M=k.current;L().sort((B,z)=>{var Z,pe;let ae=B.getAttribute("id"),ue=z.getAttribute("id");return((Z=I.get(ue))!=null?Z:0)-((pe=I.get(ae))!=null?pe:0)}).forEach(B=>{let z=B.closest(fN);z?z.appendChild(B.parentElement===z?B:B.closest(`${fN} > *`)):M.appendChild(B.parentElement===M?B:B.closest(`${fN} > *`))}),q.sort((B,z)=>z[1]-B[1]).forEach(B=>{var z;let Z=(z=k.current)==null?void 0:z.querySelector(`${Rg}[${ih}="${encodeURIComponent(B[0])}"]`);Z==null||Z.parentElement.appendChild(Z)})}function R(){let I=L().find(M=>M.getAttribute("aria-disabled")!=="true"),q=I==null?void 0:I.getAttribute(ih);_.setState("value",q||void 0)}function A(){var I,q,M,B;if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let z=0;for(let Z of r.current){let pe=(q=(I=s.current.get(Z))==null?void 0:I.value)!=null?q:"",ae=(B=(M=s.current.get(Z))==null?void 0:M.keywords)!=null?B:[],ue=E(pe,ae);n.current.filtered.items.set(Z,ue),ue>0&&z++}for(let[Z,pe]of a.current)for(let ae of pe)if(n.current.filtered.items.get(ae)>0){n.current.filtered.groups.add(Z);break}n.current.filtered.count=z}function T(){var I,q,M;let B=D();B&&(((I=B.parentElement)==null?void 0:I.firstChild)===B&&((M=(q=B.closest(Rg))==null?void 0:q.querySelector(DBe))==null||M.scrollIntoView({block:"nearest"})),B.scrollIntoView({block:"nearest"}))}function D(){var I;return(I=k.current)==null?void 0:I.querySelector(`${UX}[aria-selected="true"]`)}function L(){var I;return Array.from(((I=k.current)==null?void 0:I.querySelectorAll(iB))||[])}function X(I){let q=L()[I];q&&_.setState("value",q.getAttribute(ih))}function J(I){var q;let M=D(),B=L(),z=B.findIndex(pe=>pe===M),Z=B[z+I];(q=l.current)!=null&&q.loop&&(Z=z+I<0?B[B.length-1]:z+I===B.length?B[0]:B[z+I]),Z&&_.setState("value",Z.getAttribute(ih))}function U(I){let q=D(),M=q==null?void 0:q.closest(Rg),B;for(;M&&!B;)M=I>0?HBe(M,Rg):GBe(M,Rg),B=M==null?void 0:M.querySelector(iB);B?_.setState("value",B.getAttribute(ih)):J(I)}let Y=()=>X(L().length-1),W=I=>{I.preventDefault(),I.metaKey?Y():I.altKey?U(1):J(1)},G=I=>{I.preventDefault(),I.metaKey?X(0):I.altKey?U(-1):J(-1)};return g.createElement(Ki.div,{ref:e,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:I=>{var q;(q=b.onKeyDown)==null||q.call(b,I);let M=I.nativeEvent.isComposing||I.keyCode===229;if(!(I.defaultPrevented||M))switch(I.key){case"n":case"j":{v&&I.ctrlKey&&W(I);break}case"ArrowDown":{W(I);break}case"p":case"k":{v&&I.ctrlKey&&G(I);break}case"ArrowUp":{G(I);break}case"Home":{I.preventDefault(),X(0);break}case"End":{I.preventDefault(),Y();break}case"Enter":{I.preventDefault();let B=D();if(B){let z=new Event(FO);B.dispatchEvent(z)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:YBe},c),g2(t,I=>g.createElement(WX.Provider,{value:_},g.createElement(VX.Provider,{value:C},I))))}),$Be=g.forwardRef((t,e)=>{var n,r;let a=rc(),s=g.useRef(null),o=g.useContext(HX),l=Hy(),c=qX(t),u=(r=(n=c.current)==null?void 0:n.forceMount)!=null?r:o==null?void 0:o.forceMount;mf(()=>{if(!u)return l.item(a,o==null?void 0:o.id)},[u]);let d=KX(a,s,[t.value,t.children,s],t.keywords),f=BP(),h=Du(S=>S.value&&S.value===d.current),p=Du(S=>u||l.filter()===!1?!0:S.search?S.filtered.items.get(a)>0:!0);g.useEffect(()=>{let S=s.current;if(!(!S||t.disabled))return S.addEventListener(FO,m),()=>S.removeEventListener(FO,m)},[p,t.onSelect,t.disabled]);function m(){var S,_;x(),(_=(S=c.current).onSelect)==null||_.call(S,d.current)}function x(){f.setState("value",d.current,!0)}if(!p)return null;let{disabled:v,value:b,onSelect:y,forceMount:w,keywords:j,...k}=t;return g.createElement(Ki.div,{ref:Qp(s,e),...k,id:a,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!h,"data-disabled":!!v,"data-selected":!!h,onPointerMove:v||l.getDisablePointerSelection()?void 0:x,onClick:v?void 0:m},t.children)}),LBe=g.forwardRef((t,e)=>{let{heading:n,children:r,forceMount:a,...s}=t,o=rc(),l=g.useRef(null),c=g.useRef(null),u=rc(),d=Hy(),f=Du(p=>a||d.filter()===!1?!0:p.search?p.filtered.groups.has(o):!0);mf(()=>d.group(o),[]),KX(o,l,[t.value,t.heading,c]);let h=g.useMemo(()=>({id:o,forceMount:a}),[a]);return g.createElement(Ki.div,{ref:Qp(l,e),...s,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&g.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:u},n),g2(t,p=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?u:void 0},g.createElement(HX.Provider,{value:h},p))))}),FBe=g.forwardRef((t,e)=>{let{alwaysRender:n,...r}=t,a=g.useRef(null),s=Du(o=>!o.search);return!n&&!s?null:g.createElement(Ki.div,{ref:Qp(a,e),...r,"cmdk-separator":"",role:"separator"})}),BBe=g.forwardRef((t,e)=>{let{onValueChange:n,...r}=t,a=t.value!=null,s=BP(),o=Du(u=>u.search),l=Du(u=>u.selectedItemId),c=Hy();return g.useEffect(()=>{t.value!=null&&s.setState("search",t.value)},[t.value]),g.createElement(Ki.input,{ref:e,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:a?t.value:o,onChange:u=>{a||s.setState("search",u.target.value),n==null||n(u.target.value)}})}),zBe=g.forwardRef((t,e)=>{let{children:n,label:r="Suggestions",...a}=t,s=g.useRef(null),o=g.useRef(null),l=Du(u=>u.selectedItemId),c=Hy();return g.useEffect(()=>{if(o.current&&s.current){let u=o.current,d=s.current,f,h=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let p=u.offsetHeight;d.style.setProperty("--cmdk-list-height",p.toFixed(1)+"px")})});return h.observe(u),()=>{cancelAnimationFrame(f),h.unobserve(u)}}},[]),g.createElement(Ki.div,{ref:Qp(s,e),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:c.listId},g2(t,u=>g.createElement("div",{ref:Qp(o,c.listInnerRef),"cmdk-list-sizer":""},u)))}),UBe=g.forwardRef((t,e)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:o,...l}=t;return g.createElement(NBe,{open:n,onOpenChange:r},g.createElement(EBe,{container:o},g.createElement(ABe,{"cmdk-overlay":"",className:a}),g.createElement(PBe,{"aria-label":t.label,"cmdk-dialog":"",className:s},g.createElement(GX,{ref:e,...l}))))}),VBe=g.forwardRef((t,e)=>Du(n=>n.filtered.count===0)?g.createElement(Ki.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),WBe=g.forwardRef((t,e)=>{let{progress:n,children:r,label:a="Loading...",...s}=t;return g.createElement(Ki.div,{ref:e,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},g2(t,o=>g.createElement("div",{"aria-hidden":!0},o)))}),Zf=Object.assign(GX,{List:zBe,Item:$Be,Input:BBe,Group:LBe,Separator:FBe,Dialog:UBe,Empty:VBe,Loading:WBe});function HBe(t,e){let n=t.nextElementSibling;for(;n;){if(n.matches(e))return n;n=n.nextElementSibling}}function GBe(t,e){let n=t.previousElementSibling;for(;n;){if(n.matches(e))return n;n=n.previousElementSibling}}function qX(t){let e=g.useRef(t);return mf(()=>{e.current=t}),e}var mf=typeof window>"u"?g.useEffect:g.useLayoutEffect;function oh(t){let e=g.useRef();return e.current===void 0&&(e.current=t()),e}function Du(t){let e=BP(),n=()=>t(e.snapshot());return g.useSyncExternalStore(e.subscribe,n,n)}function KX(t,e,n,r=[]){let a=g.useRef(),s=Hy();return mf(()=>{var o;let l=(()=>{var u;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(u=d.current.textContent)==null?void 0:u.trim():a.current}})(),c=r.map(u=>u.trim());s.value(t,l,c),(o=e.current)==null||o.setAttribute(ih,l),a.current=l}),a}var qBe=()=>{let[t,e]=g.useState(),n=oh(()=>new Map);return mf(()=>{n.current.forEach(r=>r()),n.current=new Map},[t]),(r,a)=>{n.current.set(r,a),e({})}};function KBe(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function g2({asChild:t,children:e},n){return t&&g.isValidElement(e)?g.cloneElement(KBe(e),{ref:e.ref},n(e.props.children)):n(e)}var YBe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const oB=[{heading:"General",items:[{to:"/",label:"Overview",icon:DW,keywords:["home","dashboard"]},{to:"/analytics",label:"Analytics",icon:Yb,keywords:["metrics","charts","stats"]},{to:"/analytics",label:"Multi-objective",hint:"Analytics",icon:Yb,keywords:["sr","success rate","multi objective","transactions"]},{to:"/analytics?view=rule_based",label:"Rule & Volume",hint:"Analytics",icon:Yb,keywords:["rule based","volume","rules","analytics"]},{to:"/audit",label:"Decision Audit",icon:Uh,keywords:["payment","inspect","logs","transactions"]},{to:"/audit",label:"Multi-objective",hint:"Decision Audit",icon:Uh,keywords:["sr","success rate","multi objective","transactions"]},{to:"/audit?mode=rule_based",label:"Rule & Volume",hint:"Decision Audit",icon:Uh,keywords:["rule based","volume","rules"]},{to:"/audit?mode=debit_routing",label:"Debit Routing",hint:"Decision Audit",icon:_o,keywords:["debit","network","card"]},{to:"/events",label:"Routing Events",icon:zw,keywords:["stream","live","feed"]}]},{heading:"Routing",items:[{to:"/routing",label:"Routing Hub",icon:Lj,keywords:["strategies","algorithms","overview"]},{to:"/routing/sr",label:"Multi Objective",icon:Bj,keywords:["sr","success rate","auth rate"]},{to:"/routing/sr?tab=autopilot",label:"Autopilot",hint:"Multi Objective",icon:UNe,keywords:["sr","auto","automatic"]},{to:"/routing/sr?tab=manual",label:"Manual Config",hint:"Multi Objective",icon:ec,keywords:["sr","weights","tuning"]},{to:"/routing/sr?tab=manual",label:"Scoring Defaults",hint:"Manual Config",icon:ec,keywords:["sr","scoring","defaults","weights","bucket size","hedging","payment type override"]},{to:"/routing/sr?tab=manual§ion=elimination",label:"Elimination",hint:"Manual Config",icon:OW,keywords:["sr","eliminate","threshold","latency","auth rate","drop psp","remove gateway"]},{to:"/routing/sr?tab=manual§ion=dimensions",label:"SR Dimensions",hint:"Manual Config",icon:Fj,keywords:["sr","dimensions","split","clusters","udf","card network","currency","country","bin"]},{to:"/routing/sr?tab=flags",label:"Feature Flags",hint:"Multi Objective",icon:KNe,keywords:["sr","toggles","settings"]},{to:"/routing/sr?tab=cost",label:"Cost Estimation",hint:"Multi Objective",icon:RW,keywords:["cost","pricing","fees","connectors","clusters"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Data Ingestion",hint:"Cost Estimation",icon:tA,keywords:["cost","ingest","connector","settlement","upload","report"]},{to:"/routing/sr?tab=cost§ion=ingestion",label:"Automatic Ingestion",hint:"Data Ingestion",icon:tA,keywords:["cost","ingest","credentials","sftp","connector","automatic","scheduled"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=manual",label:"Manual Report Upload",hint:"Data Ingestion",icon:UW,keywords:["cost","ingest","upload","csv","settlement","report","par","sample","manual"]},{to:"/routing/sr?tab=cost§ion=ingestion&source=invoice",label:"Invoice Upload",hint:"Data Ingestion",icon:MW,keywords:["cost","ingest","invoice","upload","monthly","scheme fees","billing"]},{to:"/routing/sr?tab=cost§ion=data",label:"Ingested Data",hint:"Cost Estimation",icon:IW,keywords:["cost","coverage","history","data"]},{to:"/routing/sr?tab=cost",label:"Costs",hint:"Cost Estimation",icon:ec,keywords:["cost","override","blended fee","fee","contract","seed","baseline","interchange","scheme","markup","connector","psp"]},{to:"/routing/rules",label:"Rule Based",icon:Dj,keywords:["euclid","rules","conditions"]},{to:"/routing/volume",label:"Volume Split",icon:rf,keywords:["distribution","percentage","weights"]},{to:"/routing/debit",label:"Debit Routing",icon:_o,keywords:["debit","network","card"]},{to:"/routing/ab-testing",label:"A/B Testing",hint:"Beta",icon:$p,keywords:["experiment","split test","ab"]}]},{heading:"Simulation",items:[{to:"/decisions/simulator",label:"Decision Simulator",icon:$p,keywords:["simulate","test","preview"]}]},{heading:"Settings",items:[{to:"/members",label:"Members",icon:Z3,keywords:["team","users","roles","invite","access"]},{to:"/api-keys",label:"API Keys",icon:Y3,keywords:["tokens","credentials","secrets"]},{to:"/account",label:"Change Password",hint:"Account",icon:K3,keywords:["account","password","security"]}]}],XBe=PP?oB:oB.filter(t=>t.heading!=="Simulation");function JBe(t,e,n){const r=e.trim().toLowerCase();if(!r)return 1;const a=t.toLowerCase();return a.startsWith(r)?1:a.includes(r)?.9:(n??[]).join(" ").toLowerCase().includes(r)?.6:0}function ZBe(){const t=Hr(),[e,n]=g.useState(!1);g.useEffect(()=>{function a(s){s.key.toLowerCase()==="k"&&(s.metaKey||s.ctrlKey)&&(s.preventDefault(),n(o=>!o))}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);const r=g.useCallback(a=>{n(!1),t(a)},[t]);return i.jsxs(i.Fragment,{children:[i.jsx(QBe,{onClick:()=>n(!0)}),i.jsx(e9e,{open:e,onOpenChange:n,onSelect:r})]})}function QBe({onClick:t}){const e=g.useMemo(()=>typeof navigator<"u"&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),[]);return i.jsxs("button",{type:"button",onClick:t,className:"group flex h-9 w-full max-w-md items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-500 transition-colors hover:border-slate-300 hover:text-slate-500 dark:border-[#1a1a24] dark:bg-[#121218] dark:hover:border-[#2a2a38] dark:hover:text-slate-300","aria-label":"Search",children:[i.jsx(Lp,{size:14,className:"shrink-0"}),i.jsx("span",{className:"flex-1 text-left text-[13px] font-medium leading-[18px]",children:"Search…"}),i.jsxs("kbd",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-slate-200 bg-slate-50 px-1.5 py-0.5 text-[11px] font-semibold text-slate-500 sm:flex dark:border-[#22262f] dark:bg-[#0a0d12] dark:text-[#6d768a] leading-4",children:[e?"⌘":"Ctrl"," K"]})]})}function e9e({open:t,onOpenChange:e,onSelect:n}){return i.jsxs(Zf.Dialog,{open:t,onOpenChange:e,label:"Global search",filter:JBe,loop:!0,className:"flex min-h-0 flex-1 flex-col",overlayClassName:"fixed inset-0 z-[100] bg-slate-900/40 backdrop-blur-sm dark:bg-black/60",contentClassName:"fixed left-1/2 top-[12vh] z-[101] flex max-h-[76vh] w-[calc(100vw-2rem)] max-w-xl -translate-x-1/2 flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_30px_80px_-40px_rgba(15,23,42,0.55)] focus:outline-none dark:border-[#22262f] dark:bg-[#0a0d12]",children:[i.jsxs("div",{className:"flex items-center gap-3 border-b border-slate-200 px-4 dark:border-[#22262f]",children:[i.jsx(Lp,{size:17,className:"shrink-0 text-slate-500"}),i.jsx(Zf.Input,{autoFocus:!0,placeholder:"Search pages and settings…",className:"h-12 w-full bg-transparent px-0 text-[15px] text-slate-900 outline-none focus:ring-0 placeholder:text-slate-500 dark:text-white dark:placeholder:text-[#78849a] leading-[22px]"})]}),i.jsxs(Zf.List,{className:"min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-2",children:[i.jsx(Zf.Empty,{className:"px-3 py-8 text-center text-sm text-slate-500",children:"No results found."}),XBe.map(r=>i.jsx(Zf.Group,{heading:r.heading,className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-bold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-widest [&_[cmdk-group-heading]]:text-slate-400 dark:[&_[cmdk-group-heading]]:text-[#6d768a]",children:r.items.map(a=>{const s=a.icon;return i.jsxs(Zf.Item,{value:a.hint?`${a.label} ${a.hint}`:a.label,keywords:a.keywords??[],onSelect:()=>n(a.to),className:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-[14px] text-slate-600 aria-selected:bg-slate-100 aria-selected:text-slate-900 dark:text-[#8d96aa] dark:aria-selected:bg-white/[0.06] dark:aria-selected:text-white leading-5",children:[i.jsx(s,{size:16,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate font-medium",children:a.label}),a.hint?i.jsx("span",{className:"shrink-0 text-[12px] text-slate-500 dark:text-[#78849a] leading-4",children:a.hint}):null]},`${a.to}::${a.label}`)})},r.heading))]})]})}const t9e=8;function Nk(t){return{org:t.hs_org_name??t.hs_org_id??null,merchant:t.hs_merchant_name??t.hs_merchant_id??null,profile:t.profile_name??t.merchant_name??t.merchant_id}}function n9e(t){return t.length>14?`${t.slice(0,8)}…${t.slice(-4)}`:t}const lB="ungrouped:no-ancestry";function r9e(t){const e=new Map;for(const n of t){const r=Nk(n),a=n.hs_merchant_id??r.merchant??lB,s=e.get(a);s?s.scopes.push(n):e.set(a,{key:a,merchant:r.merchant,org:r.org,orgIsId:n.hs_org_name==null,orgKey:n.hs_org_id??r.org??lB,scopes:[n]})}return[...e.values()]}function a9e(t,e){const n=Nk(t);return[n.profile,n.merchant,n.org,t.merchant_id,t.merchant_name].some(r=>r==null?void 0:r.toLowerCase().includes(e))}function s9e(){const t=Hr(),{user:e,merchants:n,updateMerchant:r}=hr(),{setMerchantId:a}=$r(),[s,o]=g.useState(!1),[l,c]=g.useState(""),[u,d]=g.useState(null),[f,h]=g.useState(new Set),[p,m]=g.useState(null),x=g.useRef(null),v=g.useRef(null),b=!!(e!=null&&e.isRedirectSession||e!=null&&e.isSuperAdminView),y=n.length>(b?1:0),w=!(e!=null&&e.isRedirectSession)&&!(e!=null&&e.isSuperAdminView),j=n.find(W=>W.merchant_id===(e==null?void 0:e.merchantId)),k=e!=null&&e.hierarchy?{org:e.hierarchy.hs_org_name??e.hierarchy.hs_org_id??null,merchant:e.hierarchy.hs_merchant_name??e.hierarchy.hs_merchant_id??null,profile:e.hierarchy.profile_name??(j==null?void 0:j.merchant_name)??e.merchantId}:j?Nk(j):{org:null,merchant:null,profile:(e==null?void 0:e.merchantId)??"No scope"},S=g.useMemo(()=>r9e(n),[n]),_=l.trim().toLowerCase(),C=S.length>1,E=g.useMemo(()=>new Set(S.map(W=>W.orgKey)).size>1,[S]),P=C?null:S[0]??null,R=g.useMemo(()=>_?S.map(W=>({...W,scopes:W.scopes.filter(G=>a9e(G,_))})).filter(W=>W.scopes.length>0):S,[S,_]),A=W=>C&&W.merchant!==null&&!_&&f.has(W.key),T=g.useMemo(()=>R.flatMap(W=>A(W)?[]:W.scopes),[R,f,_,C]);g.useEffect(()=>{function W(G){x.current&&!x.current.contains(G.target)&&o(!1)}return document.addEventListener("mousedown",W),()=>document.removeEventListener("mousedown",W)},[]),g.useEffect(()=>{if(!s)return;c(""),m((e==null?void 0:e.merchantId)??null);const W=S.find(G=>G.scopes.some(I=>I.merchant_id===(e==null?void 0:e.merchantId)));h(n.length<=t9e?new Set:new Set(S.filter(G=>G.key!==(W==null?void 0:W.key)).map(G=>G.key)))},[s,S,n.length,e==null?void 0:e.merchantId]),g.useEffect(()=>{var W;!s||!_||m(((W=T[0])==null?void 0:W.merchant_id)??null)},[s,_,T]),g.useEffect(()=>{var W,G;s&&((G=(W=v.current)==null?void 0:W.querySelector('[data-active="true"]'))==null||G.scrollIntoView({block:"nearest"}))},[p,s]);async function D(W){if(W===(e==null?void 0:e.merchantId)){o(!1);return}if(!u){d(W);try{const G=await aa("/auth/switch-merchant",{method:"POST",body:JSON.stringify({merchant_id:W})});r(G.token,G.merchant_id,G.merchants),a(G.merchant_id),o(!1)}catch{}finally{d(null)}}}function L(W){h(G=>{const I=new Set(G);return I.has(W)?I.delete(W):I.add(W),I})}function X(W){if(W.key==="Escape"){o(!1);return}if(W.key==="ArrowDown"||W.key==="ArrowUp"){if(W.preventDefault(),T.length===0)return;const G=W.key==="ArrowDown"?1:-1,I=T.findIndex(M=>M.merchant_id===p),q=I===-1?G===1?0:T.length-1:(I+G+T.length)%T.length;m(T[q].merchant_id);return}if(W.key==="Enter"){W.preventDefault();const G=T.find(I=>I.merchant_id===p);G&&D(G.merchant_id)}}const J=k.merchant?PS:jh,U=i.jsxs(i.Fragment,{children:[i.jsx(J,{size:14,className:"shrink-0 text-slate-500"}),i.jsxs("span",{className:"flex min-w-0 flex-col items-start leading-tight",children:[k.merchant&&i.jsx("span",{className:"max-w-[170px] truncate text-[11px] font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 leading-4",children:k.merchant}),i.jsx("span",{className:"max-w-[170px] truncate text-[12.5px] font-semibold text-slate-700 dark:text-slate-200 leading-[17px]",children:k.profile})]})]}),Y=[k.org&&`Organization ${k.org}`,k.merchant&&`Merchant ${k.merchant}`,`Profile ${k.profile}`,`Scope id ${(e==null?void 0:e.merchantId)??"—"}`].filter(Boolean).join(` -`);return y?i.jsxs("div",{className:"relative",ref:x,children:[i.jsxs("button",{onClick:()=>o(W=>!W),title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 transition-colors hover:bg-slate-50 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300 dark:hover:bg-[#18181f]",children:[U,i.jsx(ln,{size:12,className:"shrink-0 text-slate-500"})]}),s&&i.jsxs("div",{onKeyDown:X,className:"absolute right-0 top-12 z-50 flex max-h-[min(560px,70vh)] w-[380px] flex-col overflow-hidden rounded-xl border border-[#e6e6ee] bg-white shadow-xl dark:border-[#1a1a24] dark:bg-[#0c0c10]",children:[P&&(P.org||P.merchant)&&i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-[#e6e6ee] px-3.5 py-2 text-slate-500 dark:border-[#1a1a24] dark:text-slate-400",children:[P.org&&i.jsxs(i.Fragment,{children:[i.jsx(jh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`min-w-0 truncate leading-4 ${P.orgIsId?"font-mono text-[10.5px]":"text-[11px]"}`,children:P.org})]}),P.org&&P.merchant&&i.jsx(So,{size:10,className:"shrink-0"}),P.merchant&&i.jsxs(i.Fragment,{children:[i.jsx(PS,{size:11,className:"shrink-0"}),i.jsx("span",{className:"min-w-0 truncate text-[11px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:P.merchant})]})]}),i.jsxs("div",{className:"relative border-b border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx(Lp,{size:13,className:"pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-500"}),i.jsx("input",{value:l,onChange:W=>c(W.target.value),placeholder:b?"Search profiles, merchants, ids":"Search merchants",autoFocus:!0,className:"h-11 w-full bg-transparent pl-9 pr-3.5 text-[13px] text-slate-700 placeholder:text-slate-500 focus:outline-none dark:text-slate-200 leading-[18px]"})]}),i.jsxs("div",{ref:v,className:`flex-1 overflow-y-auto pb-1 ${E||C?"":"pt-1"}`,children:[R.length===0&&i.jsxs("p",{className:"px-3.5 py-6 text-center text-[12px] text-slate-500 leading-4",children:["Nothing matches “",l.trim(),"”."]}),R.map((W,G)=>{const I=E&&W.org!==null,q=I&&(G===0||R[G-1].orgKey!==W.orgKey),M=C&&W.merchant!==null,B=A(W);return i.jsxs("div",{children:[q&&i.jsxs("p",{className:"sticky top-0 z-20 flex items-center gap-1.5 bg-white px-3.5 pb-1 pt-2.5 text-slate-500 dark:bg-[#0c0c10] dark:text-slate-500 leading-4",children:[i.jsx(jh,{size:11,className:"shrink-0"}),i.jsx("span",{className:`truncate ${W.orgIsId?"font-mono text-[10.5px]":"text-[11px] font-semibold uppercase tracking-widest"}`,children:W.org})]}),M&&i.jsxs("button",{onClick:()=>L(W.key),className:`sticky z-10 flex w-full items-center gap-1.5 bg-white px-3.5 py-1.5 text-left transition-colors hover:bg-slate-50 dark:bg-[#0c0c10] dark:hover:bg-[#13131a] ${I?"top-[26px]":"top-0"}`,children:[i.jsx(So,{size:12,className:`shrink-0 text-slate-500 transition-transform ${B?"":"rotate-90"}`}),i.jsx(PS,{size:12,className:"shrink-0 text-slate-500"}),i.jsx("span",{className:"flex-1 truncate text-[12px] font-medium text-slate-600 dark:text-slate-300 leading-4",children:W.merchant}),i.jsx("span",{className:"shrink-0 text-[11px] tabular-nums text-slate-500 leading-4",children:W.scopes.length})]}),!B&&W.scopes.map(z=>{const Z=W.merchant!==null?Fj:jh,pe=Nk(z),ae=z.merchant_id===(e==null?void 0:e.merchantId),ue=z.merchant_id===p;return i.jsxs("button",{"data-active":ue,onMouseEnter:()=>m(z.merchant_id),onClick:()=>D(z.merchant_id),disabled:u===z.merchant_id,className:`flex w-full items-center gap-2 py-1.5 pr-3 text-left transition-colors disabled:opacity-50 ${M?"pl-9":"pl-3.5"} ${ue?"bg-slate-50 dark:bg-[#13131a]":""}`,children:[i.jsx(Z,{size:12,className:"shrink-0 text-slate-500 dark:text-slate-400"}),i.jsx("span",{className:`flex-1 truncate text-[13px] ${ae?"font-semibold text-brand-600":"font-medium text-slate-700 dark:text-slate-300"} leading-[18px]`,children:pe.profile}),i.jsx("span",{className:"shrink-0 font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:n9e(z.merchant_id)}),ae&&i.jsx(gi,{size:13,className:"shrink-0 text-brand-600"})]},z.merchant_id)})]},W.key)})]}),i.jsxs("div",{className:"flex items-center gap-1.5 border-t border-[#e6e6ee] px-3.5 py-2 dark:border-[#1a1a24]",children:[i.jsx("span",{title:Y,className:"min-w-0 truncate font-mono text-[11px] text-slate-500 dark:text-slate-400 leading-4",children:e==null?void 0:e.merchantId}),i.jsx(Fy,{text:(e==null?void 0:e.merchantId)??"",label:"Copy scope id"}),w&&i.jsxs("button",{onClick:()=>{o(!1),t("/onboarding")},className:"ml-auto flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-brand-600 transition-colors hover:bg-slate-50 dark:hover:bg-[#13131a]",children:[i.jsx(Qn,{size:12}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Add merchant"})]})]})]})]}):i.jsx("div",{title:Y,className:"flex h-10 min-w-0 items-center gap-2 rounded-lg border border-[#e6e6ee] bg-white px-3 text-slate-700 dark:border-[#1a1a24] dark:bg-[#121218] dark:text-slate-300",children:U})}function i9e(){const{user:t,setAuth:e}=hr(),{setMerchantId:n}=$r(),[r,a]=g.useState(!1),[s,o]=g.useState(""),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(""),[p,m]=g.useState([]),[x,v]=g.useState(!1),b=g.useRef(null);g.useEffect(()=>{function w(j){b.current&&!b.current.contains(j.target)&&a(!1)}return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[]),g.useEffect(()=>{if(!r)return;const w=f.trim();if(!w){m([]),v(!1);return}let j=!1;v(!0);const k=setTimeout(async()=>{try{const S=await aa("/auth/super-admin/lookup",{method:"POST",body:JSON.stringify({query:w})});j||m(S)}catch{j||m([])}finally{j||v(!1)}},300);return()=>{j=!0,clearTimeout(k)}},[f,r]);async function y(w){if(!(!w||l)){c(!0),d(null);try{const j=await aa("/auth/super-admin/enter-merchant",{method:"POST",body:JSON.stringify({merchant_id:w})});e(j.token,{userId:j.user_id,email:j.email,merchantId:j.merchant_id,role:j.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!0},[]),n(j.merchant_id),a(!1),o(""),h(""),m([])}catch(j){const k=j.status;d(k===404?"No merchant with that ID.":"Could not enter that merchant.")}finally{c(!1)}}}return i.jsxs("header",{className:"flex h-[78px] shrink-0 items-center gap-4 border-b border-slate-200 bg-white px-6 transition-colors duration-300 dark:border-[#22262f] dark:bg-[#06080d] relative z-10",children:[i.jsx("div",{className:"flex-1"}),i.jsx("div",{className:"flex min-w-0 flex-[2] justify-center lg:-translate-x-32",children:i.jsx(ZBe,{})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-end gap-2",children:[i.jsx(Y6e,{}),(t==null?void 0:t.isSuperAdmin)&&!(t!=null&&t.isSuperAdminView)&&i.jsxs("div",{className:"relative shrink-0",ref:b,children:[i.jsxs("button",{onClick:()=>a(w=>!w),className:"flex items-center gap-2 h-8 px-3 whitespace-nowrap rounded-lg border border-amber-300/70 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 hover:bg-amber-100 dark:hover:bg-amber-500/20 transition-colors text-amber-700 dark:text-amber-300",children:[i.jsx(X3,{size:13,className:"shrink-0"}),i.jsx("span",{className:"text-[12px] font-medium leading-4",children:"Super admin"}),i.jsx(ln,{size:12,className:"shrink-0"})]}),r&&i.jsxs("div",{className:"absolute right-0 top-10 w-80 bg-white dark:bg-[#0c0c10] border border-[#e6e6ee] dark:border-[#1a1a24] rounded-lg shadow-lg p-3 z-50",children:[i.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-widest text-slate-500 dark:text-slate-400 mb-2 leading-4",children:"View a merchant dashboard"}),i.jsx("input",{value:f,onChange:w=>h(w.target.value),placeholder:"Search by email or merchant name",autoFocus:!0,className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),f.trim()&&i.jsx("div",{className:"mt-2 max-h-64 overflow-y-auto",children:x&&p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"Searching…"}):p.length===0?i.jsx("p",{className:"px-1 py-2 text-[12px] text-slate-500 leading-4",children:"No matches."}):p.map(w=>i.jsxs("button",{onClick:()=>y(w.merchant_id),disabled:l,className:"w-full text-left px-2 py-2 rounded-md hover:bg-slate-50 dark:hover:bg-[#13131a] transition-colors disabled:opacity-50",children:[(w.hs_org_name||w.hs_merchant_name)&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:[w.hs_org_name,w.hs_merchant_name].filter(Boolean).join(" › ")}),i.jsx("p",{className:"text-[13px] font-medium text-slate-700 dark:text-slate-200 truncate leading-[18px]",children:w.merchant_name}),i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.merchant_id}),w.members.length>0&&i.jsx("p",{className:"text-[11px] text-slate-500 truncate leading-4",children:w.members.map(j=>j.email).join(", ")})]},w.merchant_id))}),i.jsxs("div",{className:"mt-2 pt-2 border-t border-[#e6e6ee] dark:border-[#1a1a24]",children:[i.jsx("input",{value:s,onChange:w=>{o(w.target.value),d(null)},onKeyDown:w=>{w.key==="Enter"&&y(s.trim())},placeholder:"…or paste an exact merchant ID",className:"w-full h-8 px-2.5 rounded-md border border-[#e6e6ee] dark:border-[#1a1a24] bg-white dark:bg-[#121218] text-[13px] text-slate-700 dark:text-slate-200 placeholder:text-slate-500 focus:outline-none focus:border-brand-500 leading-[18px]"}),u&&i.jsx("p",{className:"mt-1.5 text-[11px] text-red-600 leading-4",children:u}),i.jsx("button",{onClick:()=>y(s.trim()),disabled:!s.trim()||l,className:"mt-2 w-full flex items-center justify-center gap-1.5 h-8 rounded-md bg-amber-600 hover:bg-amber-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors text-[13px] font-medium text-white leading-[18px]",children:l?"Entering…":i.jsxs(i.Fragment,{children:["Enter dashboard ",i.jsx(ju,{size:13})]})})]})]})]}),i.jsx(s9e,{})]})]})}function o9e(){var l,c;const{user:t,setAuth:e}=hr(),{setMerchantId:n}=$r(),[r,a]=g.useState(!1);if(!(t!=null&&t.isSuperAdminView))return null;const s=[(l=t.hierarchy)==null?void 0:l.hs_merchant_name,(c=t.hierarchy)==null?void 0:c.profile_name].filter(Boolean).join(" / ")||t.merchantId;async function o(){if(!r){a(!0);try{const u=await aa("/auth/super-admin/exit",{method:"POST"});e(u.token,{userId:u.user_id,email:u.email,merchantId:u.merchant_id,role:u.role,isRedirectSession:!1,isSuperAdmin:!0,isSuperAdminView:!1},u.merchants),n(u.merchant_id)}catch{}finally{a(!1)}}}return i.jsxs("div",{title:`Scope id ${t.merchantId}`,className:"flex h-9 shrink-0 items-center justify-center gap-3 bg-amber-500 px-4 text-[12.5px] font-medium text-amber-950 leading-[17px]",children:[i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(X3,{size:14,className:"shrink-0"}),"Viewing",i.jsx("span",{className:"min-w-0 truncate font-semibold",children:s}),"as platform super admin"]}),i.jsxs("button",{onClick:o,disabled:r,className:"flex items-center gap-1.5 rounded-md bg-amber-950/15 px-2.5 py-1 hover:bg-amber-950/25 disabled:opacity-60 transition-colors",children:[i.jsx($W,{size:12}),r?"Exiting…":"Exit"]})]})}function l9e(){const t=hr(n=>n.user);return hr(n=>sT(n.user,"routing:write"))?null:i.jsxs("div",{className:"flex h-9 shrink-0 items-center justify-center gap-2 bg-slate-700 px-4 text-[12.5px] font-medium text-slate-100 dark:bg-[#1e2430] leading-[17px]",children:[i.jsx(jf,{size:14,className:"shrink-0"}),i.jsxs("span",{children:["View only — your Hyperswitch role can see routing for"," ",i.jsx("span",{className:"font-semibold",children:t==null?void 0:t.merchantId})," but not change it."]})]})}function c9e(){return i.jsx(sAe,{children:i.jsxs("div",{className:"relative flex h-screen overflow-hidden bg-[#ffffff] text-slate-900 transition-colors duration-300 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(59,130,246,0.05),_transparent_22%),radial-gradient(circle_at_top_right,_rgba(14,165,233,0.04),_transparent_20%),linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[radial-gradient(circle_at_top_left,_rgba(56,189,248,0.06),_transparent_22%),linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"aurora-top"}),i.jsx(H6e,{}),i.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden relative z-10",children:[i.jsx(o9e,{}),i.jsx(l9e,{}),i.jsx(i9e,{}),i.jsx("main",{className:"relative flex-1 overflow-y-auto px-4 py-5 sm:px-5 sm:py-6 lg:px-6 lg:py-7 xl:px-8",children:i.jsx("div",{className:"mx-auto w-full max-w-[1760px]",children:i.jsx(Iz,{})})})]})]})})}function u9e(t){return typeof t=="string"?t:Array.isArray(t)&&typeof t[0]=="string"?t[0]:null}function d9e(t){const e=u9e(t);return e!=null&&e.startsWith("/")?e!=="/auth/me"&&!e.startsWith("/health"):!1}function f9e(){Gz(d9e,void 0,{revalidate:!0}).catch(()=>{})}function hN({label:t}){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-slate-200 bg-white px-5 py-4 text-sm text-slate-600 shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:text-[#c7cfdb] dark:shadow-none",children:[i.jsx(Su,{size:16,className:"animate-spin text-brand-600 dark:text-[#7ea4ff]"}),t]})})}function cB(){return i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white px-4 text-slate-900 dark:bg-[#030507] dark:text-white",children:i.jsxs("div",{className:"flex max-w-sm flex-col items-center gap-3 rounded-2xl border border-slate-200 bg-white px-6 py-6 text-center shadow-[0_16px_40px_-30px_rgba(15,23,42,0.35)] dark:border-[#1d1d23] dark:bg-[#111318] dark:shadow-none",children:[i.jsx("p",{className:"text-sm font-medium text-slate-900 dark:text-white",children:"Your routing session has expired"}),i.jsx("p",{className:"text-sm text-slate-600 dark:text-[#c7cfdb]",children:"Reopen it from the Hyperswitch dashboard to continue."}),i.jsx("button",{type:"button",onClick:()=>window.close(),className:"mt-1 rounded-lg bg-brand-600 px-4 py-2 text-sm font-medium text-white hover:bg-brand-700 dark:bg-[#2d4b8f] dark:hover:bg-[#33569f]",children:"Close tab"})]})})}function h9e(){const t=hr(h=>h.token),e=hr(h=>h.user),n=hr(h=>h.hasHydrated),r=hr(h=>h.setAuth),a=hr(h=>h.clearAuth),s=$r(h=>h.setMerchantId),o=g.useRef(null),[l,c]=g.useState(!1),{data:u,error:d,isValidating:f}=ct(t&&n?["/auth/me",t]:null,([h])=>Dt(h),{revalidateOnFocus:!1,shouldRetryOnError:!1});if(g.useEffect(()=>{!n||!t||o.current===t||(o.current=t,f9e())},[n,t]),g.useEffect(()=>{var p;if(!u||!t)return;const h=u.merchant_id||((p=u.merchants[0])==null?void 0:p.merchant_id)||"";r(t,{userId:u.user_id,email:u.email,merchantId:h,role:u.role,isRedirectSession:u.user_id.startsWith("hs_"),isSuperAdmin:u.is_super_admin,isSuperAdminView:u.is_super_admin_view,permissions:u.permissions,hierarchy:u.hierarchy},u.merchants),s(h)},[u,t,r,s]),g.useEffect(()=>{if(!d||f)return;const h=d.status;(h===401||h===403)&&(e!=null&&e.isRedirectSession&&c(!0),a(),s(""))},[d,f,a,s,e]),!n)return i.jsx(hN,{label:"Restoring session"});if(l)return i.jsx(cB,{});if(!t)return i.jsx($1,{to:"/login",replace:!0});if(!u&&!d)return i.jsx(hN,{label:"Validating session"});if(d){const h=d.status;if(h===401||h===403)return f?i.jsx(hN,{label:"Validating session"}):e!=null&&e.isRedirectSession?i.jsx(cB,{}):i.jsx($1,{to:"/login",replace:!0})}return i.jsx(Iz,{})}function uB(t){return TP&&t.endsWith("/signup")?"signup":"login"}function p9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function m9e(t){return/email.*(already registered|already exists)|user.*already exists/i.test(t)}function dB(){const t=Hr(),e=wl(),n=e.state,{token:r,hasHydrated:a,setAuth:s,updateMerchant:o}=hr(),{setMerchantId:l}=$r(),c="/decision-engine/",u=g.useRef(null),[d,f]=g.useState(()=>Om()==="dark"),[h,p]=g.useState(()=>uB(e.pathname)),[m,x]=g.useState((n==null?void 0:n.email)??""),[v,b]=g.useState(""),[y,w]=g.useState(""),[j,k]=g.useState(!1),[S,_]=g.useState(!1),[C,E]=g.useState(null),[P,R]=g.useState((n==null?void 0:n.notice)??null),[A,T]=g.useState(!!(n!=null&&n.focusPassword));g.useEffect(()=>{!a||!r||S||t(oH()??"/",{replace:!0})},[a,S,t,r]),g.useEffect(()=>{p(uB(e.pathname)),n!=null&&n.email&&x(n.email),n!=null&&n.notice&&R(n.notice),n!=null&&n.focusPassword&&T(!0)},[e.pathname,n==null?void 0:n.email,n==null?void 0:n.focusPassword,n==null?void 0:n.notice]),g.useEffect(()=>{var J;h!=="login"||!A||((J=u.current)==null||J.focus(),T(!1))},[A,h]);function D(){const J=d?"light":"dark";f(J==="dark"),Uy(J)}function L(J){p(J),E(null),R(null),t(J==="login"?"/login":"/signup")}async function X(J){if(J.preventDefault(),E(null),R(null),h==="signup"){const U=p9e(v);if(U){E(U);return}}_(!0);try{const U=h==="login"?"/auth/login":"/auth/signup",Y=y.trim(),W=await aa(U,{method:"POST",body:JSON.stringify({email:m,password:v})});if("email_verification_required"in W&&W.email_verification_required){Y&&localStorage.setItem("pending_merchant_name",JSON.stringify({email:m,merchant_name:Y})),t("/login",{replace:!0,state:{notice:W.message}});return}const G=W;s(G.token,{userId:G.user_id,email:G.email,merchantId:G.merchant_id,role:G.role,isRedirectSession:!1},G.merchants),G.merchant_id&&l(G.merchant_id);const I=localStorage.getItem("pending_merchant_name"),q=I?(()=>{try{return JSON.parse(I)}catch{return null}})():null,M=((q==null?void 0:q.email)===G.email?q.merchant_name:"")??"",B=Y||M;if(B&&!G.merchant_id){localStorage.removeItem("pending_merchant_name");const z=await aa("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:B})});o(z.token,z.merchant_id,z.merchants),l(z.merchant_id),t("/",{replace:!0});return}localStorage.removeItem("pending_merchant_name"),!G.merchant_id||G.merchants.length===0?t("/onboarding",{replace:!0}):t("/",{replace:!0})}catch(U){const Y=Sf(U);if(h==="signup"&&m9e(Y)){p("login");const W="Account already exists. Sign in with this email.";R(W),T(!0),t("/login",{replace:!0,state:{email:m,focusPassword:!0,notice:W}});return}E(Y)}finally{_(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(255,255,255,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.06fr_0.94fr]",children:[i.jsx("button",{type:"button",onClick:D,className:"absolute right-4 top-4 z-20 flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white sm:right-6 sm:top-6","aria-label":"Toggle theme",title:"Toggle theme",children:d?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})}),i.jsxs("section",{className:"flex min-h-[44vh] flex-col border-b border-slate-200 px-6 py-8 dark:border-white/6 sm:px-10 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${c}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-11 w-auto dark:hidden sm:h-12"}),i.jsx("img",{src:`${c}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-11 w-auto dark:block sm:h-12"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h2",{className:"max-w-[10ch] text-[clamp(4rem,7vw,6.2rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Manage routing, analytics, and audits from one dashboard."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.35rem]",children:"Sign in to manage gateway routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(gN,{children:"Gateway routing"}),i.jsx(gN,{children:"Merchant analytics"}),i.jsx(gN,{children:"Payment audit"})]})]})})]}),i.jsx("section",{className:"flex min-h-[56vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[520px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h3",{className:"text-[clamp(2.25rem,3.6vw,3.15rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:h==="login"?"Welcome back":"Create account"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:h==="login"?"Sign in to access your dashboard":"Create access for your Decision Engine dashboard"})]}),i.jsxs("div",{className:"mt-10",children:[i.jsxs("div",{className:"inline-flex rounded-full border border-slate-200 bg-white p-1 dark:border-[#27272a] dark:bg-[#121214]",children:[i.jsx(fB,{active:h==="login",onClick:()=>L("login"),children:"Sign in"}),TP?i.jsx(fB,{active:h==="signup",onClick:()=>L("signup"),children:"Sign up"}):null]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:X,className:"space-y-5",children:[i.jsx(pN,{label:"Email",children:i.jsx(mN,{type:"email",value:m,onChange:J=>x(J.target.value),placeholder:"name@company.com",required:!0,icon:i.jsx(LW,{size:16})})}),h==="signup"?i.jsx(pN,{label:"Merchant name",footer:"This merchant will be available across routing, analytics, and audits.",children:i.jsx(mN,{type:"text",value:y,onChange:J=>w(J.target.value),placeholder:"e.g. Acme Corp",required:!0,icon:i.jsx(jh,{size:16})})}):null,i.jsx(pN,{label:"Password",footer:h==="login"?void 0:"Use at least 10 characters with uppercase, lowercase, number, and special character.",children:i.jsxs("div",{className:"relative",children:[i.jsx(mN,{type:j?"text":"password",value:v,onChange:J=>b(J.target.value),placeholder:"Enter your password",required:!0,icon:i.jsx(nA,{size:16}),inputRef:u,className:"pr-12"}),i.jsx("button",{type:"button",onClick:()=>k(J=>!J),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":j?"Hide password":"Show password",children:j?i.jsx(jf,{size:18}):i.jsx($j,{size:18})})]})}),h==="login"?i.jsx("div",{className:"-mt-1 flex justify-end",children:i.jsx(Yd,{to:"/forgot-password",state:{email:m},className:"text-sm font-medium text-brand-600 transition-colors hover:text-brand-700 dark:text-brand-500 dark:hover:text-brand-100",children:"Forgot password?"})}):null,h==="signup"?i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Password policy: minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}):null,i.jsx(vt,{error:C}),P?i.jsx("div",{className:"rounded-lg border border-sky-500/30 bg-sky-50 px-4 py-3 text-sm text-sky-700 dark:border-sky-500/20 dark:bg-sky-500/8 dark:text-sky-300",children:P}):null,i.jsx("button",{type:"submit",disabled:S,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:S?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Authenticating"]}):i.jsxs(i.Fragment,{children:[h==="login"?"Enter dashboard":"Create account",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"By continuing you agree to access policy and audit logging for account activity."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})]})})]})]})}function fB({active:t,children:e,onClick:n}){return i.jsx("button",{type:"button",onClick:n,className:`rounded-full px-4 py-2 text-sm font-semibold transition-all duration-200 ${t?"bg-slate-950 text-white shadow-[0_8px_24px_-18px_rgba(15,23,42,0.45)] dark:bg-white dark:text-slate-950":"text-slate-500 hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white"}`,children:e})}function pN({label:t,children:e,footer:n}){return i.jsxs("label",{className:"block",children:[i.jsx(vn,{className:"mb-2 block text-slate-500 dark:text-[#8a94a7]",children:t}),e,n?i.jsx("p",{className:"mt-2 text-xs leading-5 text-slate-500 dark:text-[#7b8496]",children:n}):null]})}function mN({icon:t,className:e="",inputRef:n,...r}){return i.jsxs("div",{className:"relative",children:[t?i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:t}):null,i.jsx("input",{...r,ref:n,className:`h-14 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none ${t?"pl-12":""} ${e}`})]})}function gN({children:t}){return i.jsx("div",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm text-slate-700 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.1)] dark:border-[#27272a] dark:bg-[#121214] dark:text-[#c6d0e1] dark:shadow-none",children:t})}function xN({children:t}){return i.jsx("span",{className:"inline-flex items-center rounded-full border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 dark:border-[#2a2d35] dark:bg-[#111318] dark:text-[#d0d7e2]",children:t})}function g9e({label:t,children:e,footer:n}){return i.jsxs("div",{className:"space-y-3",children:[i.jsx("label",{className:"block text-xs font-semibold uppercase tracking-[0.24em] text-slate-500 dark:text-[#8d95a3]",children:t}),e,n?i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#78849a]",children:n}):null]})}function x9e(){const t=Hr(),{updateMerchant:e}=hr(),{setMerchantId:n}=$r(),r="/decision-engine/",[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(null);async function d(f){f.preventDefault(),u(null),l(!0);try{const h=await aa("/onboarding/merchant",{method:"POST",body:JSON.stringify({merchant_name:a})});e(h.token,h.merchant_id,h.merchants),n(h.merchant_id),t("/",{replace:!0})}catch(h){u(Sf(h))}finally{l(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,_rgba(255,255,255,1),_rgba(248,250,252,1))] dark:bg-[linear-gradient(180deg,_rgba(3,5,7,1),_rgba(5,8,12,1))]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_20%_22%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_74%_18%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 grid min-h-screen lg:grid-cols-[1.08fr_0.92fr]",children:[i.jsxs("section",{className:"flex min-h-[42vh] flex-col border-b border-slate-200 dark:border-white/6 lg:min-h-screen lg:border-b-0 lg:border-r lg:border-slate-200 lg:dark:border-[#1d1d23] px-6 py-8 sm:px-10 lg:px-14 lg:py-12 xl:px-16",children:[i.jsxs("div",{className:"pt-2",children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("div",{className:"flex flex-1 items-center py-12 lg:py-0",children:i.jsxs("div",{className:"max-w-[620px] space-y-9",children:[i.jsxs("div",{className:"space-y-6",children:[i.jsx("h1",{className:"max-w-[10ch] text-[clamp(3.8rem,6.8vw,6rem)] font-semibold leading-[0.92] tracking-[-0.065em] text-slate-950 dark:text-white",children:"Set up your merchant before processing traffic."}),i.jsx("p",{className:"max-w-[38rem] text-lg leading-9 text-slate-600 dark:text-[#9aa4b6] sm:text-[1.3rem]",children:"Create your merchant account, then configure routing, analytics, and payment audits."})]}),i.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.jsx(xN,{children:"Merchant account"}),i.jsx(xN,{children:"Routing controls"}),i.jsx(xN,{children:"Analytics ready"})]})]})})]}),i.jsx("section",{className:"flex min-h-[58vh] items-center justify-center px-6 py-10 sm:px-10 lg:min-h-screen lg:px-14 lg:py-12 xl:px-16",children:i.jsxs("div",{className:"w-full max-w-[540px]",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h2",{className:"text-[clamp(2.15rem,3.6vw,3.05rem)] font-semibold tracking-[-0.05em] text-slate-950 dark:text-white",children:"Create your merchant"}),i.jsx("p",{className:"mt-3 text-base text-slate-500 dark:text-[#8a94a7]",children:"Set up the merchant account for your Decision Engine dashboard."})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-10 dark:border-[#1d1d23]",children:[i.jsxs("form",{onSubmit:d,className:"space-y-6",children:[i.jsx(g9e,{label:"Merchant name",footer:"You can adjust rules, connectors, and analytics after the merchant is created.",children:i.jsxs("div",{className:"relative",children:[i.jsx(jh,{size:16,className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#798191]"}),i.jsx("input",{type:"text",required:!0,autoFocus:!0,value:a,onChange:f=>s(f.target.value),placeholder:"e.g. Acme Corp",className:"h-16 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-5 text-[15px] text-slate-900 outline-none transition-all placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500 leading-[22px]"})]})}),i.jsx(vt,{error:c}),i.jsx("button",{type:"submit",disabled:o,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:o?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Creating merchant"]}):i.jsxs(i.Fragment,{children:["Create merchant",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsxs("div",{className:"mt-10 border-t border-slate-200 pt-6 text-center text-xs text-slate-500 dark:border-[#1d1d23] dark:text-[#78849a]",children:[i.jsx("p",{children:"Merchant access will be linked to your current session."}),i.jsx("p",{className:"mt-4 text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})]})})]})]})}function y9e({role:t}){const e=t==="admin"?"bg-violet-50 text-violet-700 dark:bg-violet-950/40 dark:text-violet-300":"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-300";return i.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-[11px] font-semibold capitalize ${e} leading-4`,children:t})}function hB({text:t}){const[e,n]=g.useState(!1);async function r(){if(navigator.clipboard)try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsx("button",{onClick:r,className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-slate-500 hover:text-slate-600 dark:hover:text-slate-200 transition-colors",title:e?"Copied":"Copy","aria-label":e?"Copied":"Copy",children:e?i.jsx(gi,{size:13,className:"text-green-700"}):i.jsx(nf,{size:13})})}function v9e(){const[t,e]=g.useState([]),[n,r]=g.useState(!0),[a,s]=g.useState(null),[o,l]=g.useState(""),[c,u]=g.useState("member"),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(null),[v,b]=g.useState(!1);async function y(){r(!0),s(null);try{const j=await aa("/merchant/members");e(j)}catch(j){s(j instanceof Error?j.message:"Failed to load members")}finally{r(!1)}}g.useEffect(()=>{y()},[]);async function w(j){j.preventDefault(),p(null),x(null),f(!0);try{const k=await aa("/merchant/members/invite",{method:"POST",body:JSON.stringify({email:o,role:c})});x(k),l(""),y()}catch(k){p(Sf(k))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-3xl space-y-8 px-4 py-8",children:[i.jsx("div",{children:i.jsx(Ba,{title:"Members"})}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-6 dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 mb-5",children:[i.jsx(E$,{size:18,className:"text-brand-600 dark:text-sky-400"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Invite member"})]}),i.jsxs("form",{onSubmit:w,className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{type:"email",required:!0,value:o,onChange:j=>l(j.target.value),placeholder:"colleague@example.com",className:"h-10 flex-1 rounded-xl border border-slate-200 bg-white px-3.5 text-sm text-slate-900 outline-none transition placeholder:text-slate-500 focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-white dark:placeholder:text-[#6e7684] dark:focus:border-blue-500"}),i.jsxs("select",{value:c,onChange:j=>u(j.target.value),className:"h-10 rounded-xl border border-slate-200 bg-white px-3 text-sm text-slate-700 outline-none transition focus:border-blue-500 dark:border-[#2a2d35] dark:bg-[#1a1d25] dark:text-slate-200",children:[i.jsx("option",{value:"member",children:"Member"}),i.jsx("option",{value:"admin",children:"Admin"})]}),i.jsxs("button",{type:"submit",disabled:d,className:"inline-flex h-10 items-center gap-2 rounded-xl bg-brand-600 px-4 text-sm font-semibold text-white transition hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:[d?i.jsx(Su,{size:14,className:"animate-spin"}):i.jsx(E$,{size:14}),"Invite"]})]}),i.jsx(vt,{error:h})]}),m&&i.jsx("div",{className:`mt-4 rounded-xl border p-4 ${m.is_new_user?"border-amber-200 bg-amber-50 dark:border-amber-900/40 dark:bg-amber-950/20":"border-green-200 bg-green-50 dark:border-green-900/40 dark:bg-green-950/20"}`,children:m.is_new_user?i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"text-sm font-semibold text-amber-800 dark:text-amber-300 mb-2",children:"New account created — share these credentials"}),i.jsxs("div",{className:"space-y-1.5 text-sm",children:[i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Email"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:m.email}),i.jsx(hB,{text:m.email})]}),i.jsxs("div",{className:"flex items-center",children:[i.jsx("span",{className:"w-20 text-amber-700 dark:text-amber-400 font-medium",children:"Password"}),i.jsx("code",{className:"text-amber-900 dark:text-amber-200",children:v?m.password:"••••••••••••••••"}),i.jsx("button",{onClick:()=>b(j=>!j),className:"ml-1.5 inline-flex items-center justify-center w-6 h-6 rounded text-amber-700 hover:text-amber-800 dark:text-amber-400 dark:hover:text-amber-200 transition-colors",title:v?"Hide password":"Show password","aria-label":v?"Hide password":"Show password",children:v?i.jsx($j,{size:13}):i.jsx(jf,{size:13})}),m.password&&i.jsx(hB,{text:m.password})]})]})]}):i.jsxs("p",{className:"text-sm text-green-800 dark:text-green-300",children:[i.jsx("span",{className:"font-semibold",children:m.email})," has been added to this merchant."]})})]}),i.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white dark:border-[#1d2029] dark:bg-[#0c0e14]",children:[i.jsxs("div",{className:"flex items-center gap-2.5 border-b border-slate-100 px-6 py-4 dark:border-[#1a1d25]",children:[i.jsx(Z3,{size:18,className:"text-slate-500"}),i.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Current members"}),!n&&i.jsxs("span",{className:"ml-auto text-xs text-slate-500",children:[t.length," member",t.length!==1?"s":""]})]}),n?i.jsx("div",{className:"flex items-center justify-center py-12 text-slate-500",children:i.jsx(Su,{size:20,className:"animate-spin"})}):a?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-red-600",children:a}):t.length===0?i.jsx("div",{className:"px-6 py-8 text-center text-sm text-slate-500",children:"No members yet"}):i.jsx("ul",{className:"divide-y divide-slate-100 dark:divide-[#1a1d25]",children:t.map(j=>i.jsxs("li",{className:"flex items-center gap-4 px-6 py-3.5",children:[i.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-brand-600 text-[11px] font-semibold text-white leading-4",children:j.email.slice(0,2).toUpperCase()}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsx("p",{className:"truncate text-sm font-medium text-slate-800 dark:text-slate-200",children:j.email}),i.jsx("p",{className:"truncate text-xs text-slate-500",children:j.user_id})]}),i.jsx(y9e,{role:j.role})]},j.user_id))})]})]})}function b9e({text:t}){const[e,n]=g.useState(!1);async function r(){try{await navigator.clipboard.writeText(t),n(!0),setTimeout(()=>n(!1),1800)}catch{}}return i.jsxs("button",{onClick:r,className:"inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2.5 py-1 text-xs font-medium text-slate-600 transition hover:border-slate-300 hover:text-slate-900 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-slate-300 dark:hover:text-white",title:e?"Copied":"Copy key",children:[e?i.jsx(gi,{size:12,className:"text-emerald-700"}):i.jsx(nf,{size:12}),e?"Copied":"Copy"]})}function w9e(){const{merchantId:t}=$r(),[e,n]=g.useState(""),[r,a]=g.useState(!1),[s,o]=g.useState(null),[l,c]=g.useState(null),[u,d]=g.useState(null),[f,h]=g.useState(null),[p,m]=g.useState(new Set),{data:x,mutate:v}=ct(t?`/api-key/list/${t}`:null,Dt);async function b(){if(t){a(!0),c(null),o(null);try{const j=await Fe("/api-key/create",{merchant_id:t,description:e.trim()||null});o(j),n(""),await v()}catch(j){c(j instanceof Error?j.message:"Failed to create API key")}finally{a(!1)}}}async function y(j){d(j),h(null);try{await aa(`/api-key/${j}`,{method:"DELETE"}),m(k=>new Set([...k,j])),(s==null?void 0:s.key_id)===j&&o(null),v()}catch(k){h(k instanceof Error?k.message:"Failed to revoke key")}finally{d(null)}}const w=(x==null?void 0:x.filter(j=>j.is_active&&!p.has(j.key_id)))??[];return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{children:i.jsx(Ba,{title:"API Keys",description:i.jsxs(i.Fragment,{children:["Create and manage API keys for programmatic access to the routing engine. Pass the key via the"," "," ",i.jsx("code",{className:"rounded bg-slate-100 px-1 py-0.5 text-xs font-mono dark:bg-[#1c1c24]",children:"x-api-key"})," "," header on all API requests."]})})}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Qn,{size:15}),i.jsx("span",{className:"font-medium text-slate-800 dark:text-white",children:"Create API Key"})]})}),i.jsxs(He,{className:"space-y-4",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("input",{value:e,onChange:j=>n(j.target.value),onKeyDown:j=>j.key==="Enter"&&b(),placeholder:"Description (optional)",className:"flex-1 rounded-lg border border-slate-200 bg-transparent px-3 py-1.5 text-sm focus:outline-none focus:border-brand-500 dark:border-[#222226]"}),i.jsx(we,{onClick:b,disabled:r||!t,children:r?"Creating…":"Create API Key"})]}),i.jsx(vt,{error:l}),s&&i.jsxs("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 p-4 dark:border-emerald-800/40 dark:bg-emerald-950/20",children:[i.jsx("p",{className:"mb-2 text-xs font-semibold text-emerald-700 dark:text-emerald-400",children:"API key created — copy it now. It will not be shown again."}),i.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-emerald-200 bg-white px-3 py-2 font-mono text-sm dark:border-emerald-800/40 dark:bg-[#0d1a12]",children:[i.jsx("span",{"data-testid":"api-key-value",className:"flex-1 break-all text-slate-800 dark:text-slate-200",children:s.api_key}),i.jsx(b9e,{text:s.api_key})]}),s.description&&i.jsxs("p",{className:"mt-2 text-xs text-emerald-700 dark:text-emerald-500",children:["Description: ",s.description]})]})]})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Y3,{size:15}),i.jsxs("span",{className:"font-medium text-slate-800 dark:text-white",children:["Active Keys",w.length>0&&` (${w.length})`]})]})}),i.jsxs(He,{className:"p-0",children:[i.jsx(vt,{error:f}),w.length===0?i.jsx("p",{className:"px-5 py-6 text-sm text-slate-500 dark:text-[#8a8a93]",children:"No active API keys. Create one above."}):i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{className:"bg-slate-50 text-xs font-semibold uppercase tracking-wider text-slate-500 dark:bg-[#0a0a0f] dark:text-[#6d768a]",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-5 py-3 text-left",children:"Key prefix"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Description"}),i.jsx("th",{className:"px-5 py-3 text-left",children:"Created"}),i.jsx("th",{className:"px-5 py-3"})]})}),i.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-[#1c1c24]",children:w.map(j=>i.jsxs("tr",{className:"dark:bg-[#0f0f16]",children:[i.jsxs("td",{className:"px-5 py-3 font-mono text-slate-800 dark:text-slate-200",children:[j.key_prefix,"…"]}),i.jsx("td",{className:"px-5 py-3 text-slate-600 dark:text-[#8a8a93]",children:j.description||i.jsx("span",{className:"italic text-slate-500",children:"—"})}),i.jsx("td",{className:"px-5 py-3 text-slate-500 dark:text-[#78849a]",children:new Date(j.created_at).toLocaleDateString()}),i.jsx("td",{className:"px-5 py-3 text-right",children:i.jsxs(we,{size:"sm",variant:"danger",disabled:u===j.key_id,onClick:()=>y(j.key_id),children:[i.jsx(wn,{size:12}),u===j.key_id?"Revoking…":"Revoke"]})})]},j.key_id))})]})]})]})]})}function k9e(){const[t]=vc(),e=Hr(),[n,r]=g.useState("verifying"),[a,s]=g.useState(null),[o,l]=g.useState(()=>Om()==="dark"),c=g.useRef(null),u="/decision-engine/";g.useEffect(()=>{const f=t.get("token");if(f!==c.current){if(c.current=f,!f){r("error"),s("Verification link is missing a token. Please use the link from your email.");return}aa(`/auth/verify-email?token=${encodeURIComponent(f)}`,{method:"GET"}).then(()=>{r("success"),setTimeout(()=>{e("/login",{replace:!0,state:{notice:"Email verified! You can now sign in."}})},2500)}).catch(h=>{s(Sf(h,"Verification failed")),r("error")})}},[e,t]);function d(){const f=o?"light":"dark";l(f==="dark"),Uy(f)}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${u}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${u}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:d,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:o?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsxs("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:[n==="verifying"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-brand-500/10",children:i.jsx(Su,{size:28,className:"animate-spin text-brand-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verifying your email"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Hang on while we confirm your address…"})]})]}),n==="success"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(TW,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Email verified"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"Your account is confirmed. Redirecting you to sign in…"})]}),i.jsx("div",{className:"pt-1",children:i.jsx("div",{className:"mx-auto h-1 w-24 overflow-hidden rounded-full bg-slate-100 dark:bg-white/8",children:i.jsx("div",{className:"h-full animate-[progress_2.5s_linear_forwards] rounded-full bg-emerald-500"})})})]}),n==="error"&&i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Ij,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Verification failed"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:a??"The link may have expired or already been used."})]}),i.jsx("div",{className:"pt-2",children:i.jsx("button",{onClick:()=>e("/login",{replace:!0}),className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})})]})]})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function j9e(){var x;const t="/decision-engine/",n=((x=wl().state)==null?void 0:x.email)??"",[r,a]=g.useState(()=>Om()==="dark"),[s,o]=g.useState(n),[l,c]=g.useState(!1),[u,d]=g.useState(null),[f,h]=g.useState(null);function p(){const v=r?"light":"dark";a(v==="dark"),Uy(v)}async function m(v){v.preventDefault(),d(null),c(!0);try{const b=await aa("/auth/forgot-password",{method:"POST",body:JSON.stringify({email:s})});h(b.message??"If an account exists for that email, a password reset link has been sent.")}catch(b){d(Sf(b))}finally{c(!1)}}return i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${t}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${t}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),i.jsx("button",{type:"button",onClick:p,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:r?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})})]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:i.jsx("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:f?i.jsxs("div",{className:"space-y-6 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-500/10",children:i.jsx(TW,{size:28,className:"text-emerald-700"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Check your inbox"}),i.jsx("p",{className:"text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:f})]}),i.jsx(Yd,{to:"/login",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Back to sign in"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Forgot your password?"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7] mx-auto max-w-[57ch]",children:"Enter the email tied to your account and we’ll send you a link to reset your password."})]}),i.jsxs("form",{onSubmit:m,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Email"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(LW,{size:16})}),i.jsx("input",{type:"email",value:s,onChange:v=>o(v.target.value),placeholder:"name@company.com",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx(vt,{error:u}),i.jsx("button",{type:"submit",disabled:l,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:l?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Sending link"]}):i.jsxs(i.Fragment,{children:["Send reset link",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsxs(Yd,{to:"/login",className:"inline-flex items-center gap-1.5 text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:[i.jsx(Mj,{size:15}),"Back to sign in"]})})]})})}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]})}function S9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function _9e(){const t=Hr(),[e]=vc(),n=e.get("token"),r="/decision-engine/",[a,s]=g.useState(()=>Om()==="dark"),[o,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,x]=g.useState(null);function v(){const j=a?"light":"dark";s(j==="dark"),Uy(j)}async function b(j){j.preventDefault(),x(null);const k=S9e(o);if(k){x(k);return}if(o!==c){x("Passwords do not match.");return}p(!0);try{await aa("/auth/reset-password",{method:"POST",body:JSON.stringify({token:n,new_password:o})}),t("/login",{replace:!0,state:{notice:"Password reset! Sign in with your new password."}})}catch(S){x(Sf(S))}finally{p(!1)}}const y=i.jsx("button",{type:"button",onClick:v,className:"flex h-9 w-9 items-center justify-center rounded-xl text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-950 dark:text-slate-400 dark:hover:bg-white/8 dark:hover:text-white","aria-label":"Toggle theme",title:"Toggle theme",children:a?i.jsx(Ny,{size:18}):i.jsx(Sy,{size:18})}),w=j=>i.jsxs("div",{className:"relative min-h-screen overflow-hidden bg-white text-slate-900 dark:bg-[#030507] dark:text-white",children:[i.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_18%_18%,_rgba(59,130,246,0.06),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(14,165,233,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.03),_transparent_24%)] dark:bg-[radial-gradient(circle_at_18%_18%,_rgba(56,189,248,0.05),_transparent_24%),radial-gradient(circle_at_78%_20%,_rgba(59,130,246,0.04),_transparent_18%),radial-gradient(circle_at_50%_100%,_rgba(14,165,233,0.035),_transparent_24%)]"}),i.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.05] dark:opacity-[0.08] [background-image:linear-gradient(rgba(148,163,184,0.08)_1px,transparent_1px),linear-gradient(90deg,rgba(148,163,184,0.08)_1px,transparent_1px)] [background-size:56px_56px]"}),i.jsxs("div",{className:"relative z-10 flex min-h-screen flex-col",children:[i.jsxs("header",{className:"flex items-center justify-between px-6 py-5 sm:px-10",children:[i.jsxs("div",{children:[i.jsx("img",{src:`${r}logo/decision-engine-light.svg`,alt:"Juspay Decision Engine",className:"h-10 w-auto dark:hidden sm:h-11"}),i.jsx("img",{src:`${r}logo/decision-engine-dark.svg`,alt:"Juspay Decision Engine",className:"hidden h-10 w-auto dark:block sm:h-11"})]}),y]}),i.jsx("div",{className:"flex flex-1 items-center justify-center px-6 py-12",children:j}),i.jsx("footer",{className:"px-6 py-5 text-center text-xs text-slate-500 dark:text-[#78849a]",children:"Juspay Decision Engine"})]})]});return w(n?i.jsxs("div",{className:"w-full max-w-[440px] rounded-3xl border border-slate-200 bg-white px-8 py-10 shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none sm:px-10",children:[i.jsxs("div",{className:"text-center",children:[i.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-[1.75rem]",children:"Set a new password"}),i.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-500 dark:text-[#8a94a7]",children:"Choose a strong password you don’t use anywhere else."})]}),i.jsxs("form",{onSubmit:b,className:"mt-8 space-y-5",children:[i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"New password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(nA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:o,onChange:j=>l(j.target.value),placeholder:"Enter new password",required:!0,autoFocus:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-12 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"}),i.jsx("button",{type:"button",onClick:()=>f(j=>!j),className:"absolute right-4 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200","aria-label":d?"Hide password":"Show password",children:d?i.jsx(jf,{size:18}):i.jsx($j,{size:18})})]})]}),i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:"Confirm password"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{className:"pointer-events-none absolute left-4 top-1/2 -translate-y-1/2 text-slate-500 dark:text-[#78849a]",children:i.jsx(nA,{size:16})}),i.jsx("input",{type:d?"text":"password",value:c,onChange:j=>u(j.target.value),placeholder:"Re-enter new password",required:!0,className:"h-14 w-full rounded-2xl border border-slate-200 bg-white pl-12 pr-4 text-sm text-slate-950 shadow-[0_12px_30px_-24px_rgba(15,23,42,0.12)] outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white dark:shadow-none"})]})]}),i.jsx("p",{className:"text-xs leading-5 text-slate-500 dark:text-[#7b8496] max-w-[57ch]",children:"Minimum 10 characters, including 1 uppercase letter, 1 lowercase letter, 1 number, and 1 special character."}),i.jsx(vt,{error:m}),i.jsx("button",{type:"submit",disabled:h,className:"group inline-flex h-14 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-5 text-sm font-semibold text-white transition-all duration-200 hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-60",children:h?i.jsxs(i.Fragment,{children:[i.jsx(Su,{size:16,className:"animate-spin"}),"Resetting"]}):i.jsxs(i.Fragment,{children:["Reset password",i.jsx(ju,{size:16,className:"transition-transform duration-200 group-hover:translate-x-0.5"})]})})]}),i.jsx("div",{className:"mt-8 border-t border-slate-200 pt-6 text-center dark:border-[#1d1d23]",children:i.jsx(Yd,{to:"/login",className:"text-sm font-medium text-slate-500 transition-colors hover:text-slate-950 dark:text-[#8a94a7] dark:hover:text-white",children:"Back to sign in"})})]}):i.jsx("div",{className:"w-full max-w-[420px] rounded-3xl border border-slate-200 bg-white px-10 py-12 text-center shadow-[0_20px_60px_-20px_rgba(15,23,42,0.08)] dark:border-[#1d1d23] dark:bg-[#0b0e14] dark:shadow-none",children:i.jsxs("div",{className:"space-y-5",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-500/10",children:i.jsx(Ij,{size:28,className:"text-red-600"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-xl font-semibold tracking-tight text-slate-950 dark:text-white",children:"Invalid reset link"}),i.jsx("p",{className:"text-sm text-slate-500 dark:text-[#8a94a7]",children:"This link is missing a token. Request a new password reset link to continue."})]}),i.jsx(Yd,{to:"/forgot-password",className:"inline-flex h-12 w-full items-center justify-center gap-2 rounded-2xl bg-[linear-gradient(90deg,#4371ff_0%,#3a63f4_100%)] px-6 text-sm font-semibold text-white transition-all hover:brightness-110",children:"Request a new link"})]})}))}function N9e(t){return t.length<10?"Use at least 10 characters.":/[A-Z]/.test(t)?/[a-z]/.test(t)?/[0-9]/.test(t)?/[^A-Za-z0-9]/.test(t)?null:"Add at least one special character.":"Add at least one number.":"Add at least one lowercase letter.":"Add at least one uppercase letter."}function C9e(){const[t,e]=g.useState(""),[n,r]=g.useState(""),[a,s]=g.useState(""),[o,l]=g.useState(!1),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(null),[m,x]=g.useState(!1);async function v(b){b.preventDefault(),p(null),x(!1);const y=N9e(n);if(y){p(y);return}if(n!==a){p("New passwords do not match.");return}if(n===t){p("New password must differ from the current one.");return}f(!0);try{await aa("/auth/change-password",{method:"POST",body:JSON.stringify({current_password:t,new_password:n})}),x(!0),e(""),r(""),s("")}catch(w){p(Sf(w))}finally{f(!1)}}return i.jsxs("div",{className:"mx-auto max-w-lg px-4 py-10",children:[i.jsxs("div",{className:"mb-8 flex items-center gap-3",children:[i.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-brand-500/10",children:i.jsx(K3,{size:20,className:"text-brand-600"})}),i.jsx("div",{children:i.jsx(Ba,{title:"Account",description:"Manage your account security"})})]}),i.jsxs(Te,{children:[i.jsx(yt,{children:"Change password"}),i.jsx(He,{children:i.jsxs("form",{onSubmit:v,className:"space-y-5",children:[i.jsx(yN,{label:"Current password",value:t,onChange:e,show:o,onToggleShow:()=>l(b=>!b)}),i.jsx(yN,{label:"New password",value:n,onChange:r,show:c,onToggleShow:()=>u(b=>!b),footer:"Minimum 10 characters with uppercase, lowercase, number, and special character."}),i.jsx(yN,{label:"Confirm new password",value:a,onChange:s,show:c,onToggleShow:()=>u(b=>!b)}),i.jsx(vt,{error:h}),m&&i.jsx("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-50 px-4 py-3 text-sm text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/8 dark:text-emerald-300",children:"Password updated successfully."}),i.jsx(we,{type:"submit",disabled:d,className:"w-full",children:d?"Updating…":"Update password"})]})})]})]})}function yN({label:t,value:e,onChange:n,show:r,onToggleShow:a,footer:s}){return i.jsxs("label",{className:"block",children:[i.jsx("span",{className:"mb-1.5 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-[#8a94a7]",children:t}),i.jsxs("div",{className:"relative",children:[i.jsx("input",{type:r?"text":"password",value:e,onChange:o=>n(o.target.value),required:!0,className:"h-12 w-full rounded-xl border border-slate-200 bg-white px-4 pr-11 text-sm text-slate-950 outline-none transition placeholder:text-slate-500 focus:border-brand-500 dark:border-[#2a303a] dark:bg-[#161b24] dark:text-white"}),i.jsx("button",{type:"button",onClick:a,className:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 transition-colors hover:text-slate-700 dark:hover:text-slate-200","aria-label":r?"Hide password":"Show password",children:r?i.jsx(jf,{size:17}):i.jsx($j,{size:17})})]}),s&&i.jsx("p",{className:"mt-1.5 text-xs text-slate-500 dark:text-[#7b8496]",children:s})]})}let vN=null;function E9e(){const t=hr(s=>s.setAuth),e=$r(s=>s.setMerchantId),n=Hr(),[r,a]=g.useState(()=>new URLSearchParams(window.location.search).has("code"));return g.useEffect(()=>{const s=new URLSearchParams(window.location.search).get("code");if(!s){a(!1);return}const o=()=>{const c=new URLSearchParams(window.location.search);c.delete("code");const u=c.toString(),d=window.location.pathname+(u?`?${u}`:"");window.history.replaceState(window.history.state,"",d)};vN||(vN=Fe("/auth/admin/merchant-token/exchange",{code:s}).catch(()=>null));let l=!0;return vN.then(c=>{if(l)try{if(c){const d=c.merchant_id??"";t(c.token,{userId:c.user_id??"",email:c.email??"",merchantId:d,role:c.role??"admin",isRedirectSession:!0}),d&&(e(d),uEe(d))}const u=c?oH():null;u&&n(u,{replace:!0})}finally{o(),a(!1)}}),()=>{l=!1}},[t,e,n]),r?i.jsx("div",{className:"flex min-h-screen items-center justify-center bg-white text-sm text-slate-600 dark:bg-[#030507] dark:text-[#c7cfdb]",children:"Signing you in…"}):i.jsxs(wee,{children:[i.jsx(on,{path:"login",element:i.jsx(dB,{})}),TP?i.jsx(on,{path:"signup",element:i.jsx(dB,{})}):null,i.jsx(on,{path:"verify-email",element:i.jsx(k9e,{})}),i.jsx(on,{path:"forgot-password",element:i.jsx(j9e,{})}),i.jsx(on,{path:"reset-password",element:i.jsx(_9e,{})}),i.jsxs(on,{element:i.jsx(h9e,{}),children:[i.jsx(on,{path:"onboarding",element:i.jsx(x9e,{})}),i.jsxs(on,{element:i.jsx(c9e,{}),children:[i.jsx(on,{index:!0,element:i.jsx(B$e,{})}),i.jsx(on,{path:"routing",element:i.jsx(xLe,{})}),i.jsx(on,{path:"routing/sr",element:i.jsx(m6e,{})}),i.jsx(on,{path:"routing/rules",element:i.jsx(aOe,{})}),i.jsx(on,{path:"routing/rules/new",element:i.jsx(T6,{})}),i.jsx(on,{path:"routing/rules/:id/edit",element:i.jsx(T6,{})}),i.jsx(on,{path:"routing/volume",element:i.jsx(j6e,{})}),i.jsx(on,{path:"routing/volume/new",element:i.jsx(K6,{})}),i.jsx(on,{path:"routing/volume/:id/edit",element:i.jsx(K6,{})}),i.jsx(on,{path:"routing/debit",element:i.jsx(zAe,{})}),i.jsx(on,{path:"routing/volume-contracts",element:i.jsx(uOe,{})}),i.jsx(on,{path:"routing/cost",element:i.jsx($1,{to:"/routing/sr?tab=cost",replace:!0})}),i.jsx(on,{path:"routing/ab-testing",element:i.jsx(V6e,{})}),i.jsx(on,{path:"decisions",element:i.jsx(MEe,{})}),PP?i.jsx(on,{path:"decisions/simulator",element:i.jsx(LAe,{})}):null,i.jsx(on,{path:"analytics",element:i.jsx(CCe,{})}),i.jsx(on,{path:"audit",element:i.jsx(dLe,{})}),i.jsx(on,{path:"events",element:i.jsx(mLe,{})}),i.jsx(on,{path:"members",element:i.jsx(v9e,{})}),i.jsx(on,{path:"api-keys",element:i.jsx(w9e,{})}),i.jsx(on,{path:"account",element:i.jsx(C9e,{})}),i.jsx(on,{path:"*",element:i.jsx($1,{to:".",replace:!0})})]})]})]})}class A9e extends g.Component{constructor(){super(...arguments);dR(this,"state",{error:null,errorInfo:null})}static getDerivedStateFromError(n){return{error:n,errorInfo:null}}componentDidCatch(n,r){console.log(` -`+"!".repeat(80)),console.log("[ERROR BOUNDARY] Component Error Caught"),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Error Message:",n.message),console.log("Error Stack:",n.stack),console.log("Component Stack:",r.componentStack),console.log("!".repeat(80)+` -`),this.setState({errorInfo:r})}render(){return this.state.error?i.jsxs("div",{style:{padding:32,fontFamily:"monospace",color:"red"},children:[i.jsx("h2",{children:"Dashboard Error"}),i.jsx("pre",{children:this.state.error.message}),i.jsx("pre",{children:this.state.error.stack}),this.state.errorInfo&&i.jsxs("pre",{style:{marginTop:16,color:"darkred"},children:["Component Stack:",this.state.errorInfo.componentStack]})]}):this.props.children}}const O9e="/decision-engine/".endsWith("/")?"/decision-engine/".slice(0,-1):"/decision-engine/";MP(),console.log(` -`+"=".repeat(80)),console.log("[APP STARTUP] Dashboard initializing..."),console.log(`Timestamp: ${new Date().toISOString()}`),console.log("Environment: production"),console.log("Base URL: /decision-engine/"),console.log("=".repeat(80)+` -`),window.onerror=(t,e,n,r,a)=>{console.log(` -`+"!".repeat(80)),console.log("[WINDOW ERROR]"),console.log("Message:",t),console.log("Source:",e),console.log("Line:",n,"Column:",r),a&&(console.log("Error:",a.message),console.log("Stack:",a.stack)),console.log("!".repeat(80)+` -`)},window.onunhandledrejection=t=>{console.log(` -`+"!".repeat(80)),console.log("[UNHANDLED PROMISE REJECTION]"),console.log("Reason:",t.reason),t.reason instanceof Error&&console.log("Stack:",t.reason.stack),console.log("!".repeat(80)+` -`)},bN.createRoot(document.getElementById("root")).render(i.jsx(H.StrictMode,{children:i.jsx(A9e,{children:i.jsx(Aee,{basename:O9e,children:i.jsx(E9e,{})})})})); diff --git a/website/dist/decision-engine/index.html b/website/dist/decision-engine/index.html index 8fcc5c0c..89cd4a0f 100644 --- a/website/dist/decision-engine/index.html +++ b/website/dist/decision-engine/index.html @@ -10,8 +10,8 @@ Juspay Decision Engine Dashboard - - + +
diff --git a/website/dist/index.html b/website/dist/index.html index 8fcc5c0c..89cd4a0f 100644 --- a/website/dist/index.html +++ b/website/dist/index.html @@ -10,8 +10,8 @@ Juspay Decision Engine Dashboard - - + +
diff --git a/website/src/components/pages/SRRoutingPage.tsx b/website/src/components/pages/SRRoutingPage.tsx index a550dda6..aa8fe990 100644 --- a/website/src/components/pages/SRRoutingPage.tsx +++ b/website/src/components/pages/SRRoutingPage.tsx @@ -829,6 +829,15 @@ const SR_FEATURES: { feature: KnownFeature; title: string; description: string; 'Multi-objective routing: alongside approval rate, weighs each PSP\'s expected cost and picks the highest expected-value option. Works with either the Autopilot or Manual scoring config.', docsUrl: 'https://docs.hyperswitch.io/integration-guide/workflows/intelligent-routing/routing-strategies/multi-objective-routing', }, + { + // Sticky is independent of the euclid rule store: this flag is THE config. The decide + // path pins a returning customer's proven connector over the SR pick (health-vetoed), + // and the feedback path accumulates the per-customer success counts. + feature: 'sticky-routing', + title: 'Sticky routing (pin returning customers)', + description: + 'Routes each returning customer to the connector of their last successful payment for that payment method. Payment feedback maintains a per-customer habit score (successes add, gateway failures subtract); the pin only applies when that connector is eligible and healthy, and explicit priority rules always take precedence.', + }, { feature: 'volume-contracts', title: 'Volume contracts (meet PSP commitments)', diff --git a/website/src/hooks/useMerchantFeatures.ts b/website/src/hooks/useMerchantFeatures.ts index aad206dc..5e14985d 100644 --- a/website/src/hooks/useMerchantFeatures.ts +++ b/website/src/hooks/useMerchantFeatures.ts @@ -11,6 +11,7 @@ export type KnownFeature = | 'auto-calibration' | 'autopilot' | 'volume-contracts' + | 'sticky-routing' export function useMerchantFeatures(merchantId?: string) { const path = merchantId ? `/merchant-account/${merchantId}/features` : null